﻿
Imports System.Web.Configuration

Public Partial Class ACCustomerList
  Inherits System.Web.UI.Page

  Private Shared intDateColumn As Integer
  Private Shared dblRows As Double = 0
  Private Shared strGVFilter As String = ""

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then dblRows = 0

    lblMessage.Text = ""
  End Sub

  Private Sub Page_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete

    If Not Page.IsPostBack Then
      Dim arrFilter(0) As String
      Dim intStart, intEnd As Integer
      intDateColumn = gvACCustomer.Columns.Count - 2

      gvACCustomer.PageSize = WebConfigurationManager.AppSettings("PAGESIZE")

      If WebConfigurationManager.AppSettings("strPage") = "ACCustomerDetails" Then

        If WebConfigurationManager.AppSettings("ShowMore") = True Then
          gvACCustomer.PageSize = WebConfigurationManager.AppSettings("MAXPAGESIZE")
        End If

        gvACCustomer.PageIndex = WebConfigurationManager.AppSettings("intListIndex")
        strGVFilter = WebConfigurationManager.AppSettings("intListFilter")
        Try
          arrFilter(0) = strGVFilter.Replace(" AND ", Chr(31))
          arrFilter = arrFilter(0).Split(Chr(31))
          For i As Integer = 1 To arrFilter.Length - 1
            If arrFilter(i).Contains("strStore") Then
              intStart = arrFilter(i).LastIndexOf("'%")
              intEnd = arrFilter(i).LastIndexOf("%'")
              'ddlStatus.SelectedValue = arrFilter(i).Substring(arrFilter(i).IndexOf("=")).Trim
              txtACCustomer.Text = arrFilter(i).Substring(intStart + 2, intEnd - intStart - 2)
            End If
            If arrFilter(i).Contains("strCustomerName") Then
              intStart = arrFilter(i).LastIndexOf("'%")
              intEnd = arrFilter(i).LastIndexOf("%'")
              'ddlStatus.SelectedValue = arrFilter(i).Substring(arrFilter(i).IndexOf("=")).Trim
              txtRGBCCustomer.Text = arrFilter(i).Substring(intStart + 2, intEnd - intStart - 2)
            End If

          Next

          sdsACCustomer.FilterExpression = strGVFilter
          'Exit Sub
        Catch ex As Exception

        End Try

      End If

      btnSearch_Click(sender, e)
    End If

    dblRows = gvACCustomer.PageIndex * gvACCustomer.PageSize     '< has to run for every action		

  End Sub

  Private Sub Page_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete
    Dim s As String = ""

    btnExport.Enabled = True

    If strGVFilter.Length > 0 Then s = "WHERE " & strGVFilter
    If sqlDB.CountRows("SELECT * FROM dwfACLisp LEFT JOIN mapACStore LEFT JOIN mstCustomer ON refCustomerNo = strCustomerNo ON refACStoreID = ACStoreID " & s) = 0 Then
      lblMessage.Text = "<div width='100%' align='center'>- No AdCeck Customers found -</div>"
      btnExport.Enabled = False
    End If
    If WebConfigurationManager.AppSettings("blnDebug") = True Then
      lblMessage.Text &= sdsACCustomer.SelectCommand & sdsACCustomer.FilterExpression
    End If
  End Sub

  Private Sub gvACCustomer_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles gvACCustomer.Sorting
    sdsACCustomer.FilterExpression = strGVFilter
    dblRows = 0
  End Sub

  Private Sub gvACCustomer_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvACCustomer.PageIndexChanged
    sdsACCustomer.FilterExpression = strGVFilter
    WebConfigurationManager.AppSettings("intListIndex") = gvACCustomer.PageIndex
  End Sub

  Private Sub gvACCustomer_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvACCustomer.RowDataBound

    If e.Row.RowType = DataControlRowType.DataRow Then

      Try
        dblRows += 1
        e.Row.Cells(0).Text = dblRows
      Catch ex As Exception
      End Try
    End If
  End Sub

  Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSearch.Click
    sdsACCustomer.FilterExpression = "1=1"
    dblRows = 0

    Dim s As String
    Dim d As Double

    If txtACCustomer.Text.Length > 0 Then
      s = sqlDB.CleanString(txtACCustomer.Text.Trim)
      Try
        d = CDbl(s.Trim)
      Catch ex As Exception
        d = 0
      End Try
     
      sdsACCustomer.FilterExpression &= " AND (strStore LIKE '%" & s & "%' OR ACStoreID = '" & d & "')"
    End If
    If txtRGBCCustomer.Text.Length > 0 Then
      s = sqlDB.CleanString(txtRGBCCustomer.Text.Trim)
      sdsACCustomer.FilterExpression &= " AND (strCustomerName LIKE '%" & s & "%' OR strCustomerNo LIKE '%" & s & "%')"
    End If

    strGVFilter = sdsACCustomer.FilterExpression
    WebConfigurationManager.AppSettings("intListFilter") = strGVFilter

  End Sub

  Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExport.Click
    sdsACCustomer.FilterExpression = strGVFilter
    gvExport.Visible = True

    Response.Clear()
    Response.Buffer = True
    Response.ContentType = "application/vnd.ms-excel"
    Response.Charset = ""
      Response.AddHeader("Content-Disposition", _
       "attachment;filename=ACStoreList_" & Session.Item("User").Replace(" ", "") & "_" & Date.Today.ToString("yyyyMMdd") & ".xls") 'v1.4.5 - 20160913 - Fixed logged In user & savings (i.e use session instead) - maanie
    Me.EnableViewState = False

    Dim oStringWriter As New System.IO.StringWriter()
    Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter)
    Dim frm As HtmlForm = New HtmlForm()
    Me.Controls.Add(frm)
    frm.Controls.Add(gvExport)
    frm.RenderControl(oHtmlTextWriter)
    Response.Write(oStringWriter.ToString())

    gvExport.Visible = False

    Response.End()
  End Sub

  Protected Sub chkResize_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chkResize.CheckedChanged
    gvACCustomer.PageIndex = 0
    sdsACCustomer.FilterExpression = strGVFilter
    If chkResize.Checked Then
      gvACCustomer.PageSize = WebConfigurationManager.AppSettings("MAXPAGESIZE")
      WebConfigurationManager.AppSettings("ShowMore") = True
    Else
      gvACCustomer.PageSize = WebConfigurationManager.AppSettings("PAGESIZE")
      WebConfigurationManager.AppSettings("ShowMore") = False
    End If
  End Sub
End Class