﻿Imports System.Web.Configuration
Imports Superbowl.sqlDB
Imports Superbowl.AuditEntity

Partial Class RepDetails
   Inherits System.Web.UI.Page

   Public Shared RepID As String = ""
   Public Shared dwRepName As String = ""
   Private db As New sqlDB
   Private ds As DataSet
   Private dr, drIni As DataRow
   Private Shared aeFormer, aeLatter As AuditEntity

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

      If Not Page.IsPostBack Then
         WebConfigurationManager.AppSettings("strPage") = "RepDetails"
         If WebConfigurationManager.AppSettings("ULEVEL") <> 5 Then
            btnSave.Enabled = False
         End If
         Try
            RepID = Request.QueryString("RID")
         Catch ex As Exception
            RepID = ""
         End Try

         If RepID <> "" Then
            Try
               drIni = sqlDB.GetRow(db.sql_get_Rep(RepID))


               txtRepID.Text = drIni!RepID
               txtRepID.ReadOnly = True

               dwRepName = drIni!strRepName                                              'get ori RepName for dw
               strRepName.Text = drIni!strRepName

               strMarket.Text = Nz(drIni!strMarket, "")
               ddlBranch.SelectedValue = Nz(drIni!refBranchID, 0)
               ddlSegment.SelectedValue = Nz(drIni!refSegmentID, 0)

               strRepEmail.Text = Nz(drIni!strRepEmail, "")
               ddlRegionalManager.SelectedValue = Nz(drIni!refRegionalManagerID, 0)
               ddlSalesManager.SelectedValue = Nz(drIni!refSalesManagerID, 0)

               chkRep.Checked = Nz(drIni!blnRep, True)
               chkGenerateQF.Checked = Nz(drIni!blnGenerateQF, True)
               lblLastEdit.Text = Nz(drIni!strLastUser, "unknown") & " - " & SqlDate(Nz(drIni!dtStamp, ""), "d MMMM yyyy HH:mm")

            Catch ex As IndexOutOfRangeException                       'dr = ds.tables(0).rows(0) doesn't exist
               lblMessage.Text = "Rep ID, <font color=black>" & RepID & "</font>, was not found!"
               drIni = Nothing
            End Try
         Else
            dwRepName = ""
            txtRepID.ReadOnly = False
         End If
      End If
   End Sub

   Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
      lblMessage.Text = ""

      RepID = Nz(Request.QueryString("RID"), "")

      'v.1.2.4
      dr = db.GetRow(db.sql_get_Rep(RepID))
      If Not dr Is Nothing Then
         aeFormer = New AuditEntity(dr, "mstRep")
      End If


      If txtRepID.Text.Trim() = "" Then lblMessage.Text &= "Rep ID required.<BR>"
      If strRepName.Text.Trim() = "" Then lblMessage.Text &= "Rep name required.<BR>"
      If strMarket.Text.Trim() = "" Then lblMessage.Text &= "Market required.<BR>"
      If Not ddlBranch.SelectedIndex > 0 Then lblMessage.Text &= "Branch required.<BR>"
      If Not ddlSegment.SelectedIndex > 0 Then lblMessage.Text &= "Segment required.<BR>"
      If strRepEmail.Text.Trim() = "" Then lblMessage.Text &= "Rep email required.<BR>"

      If sqlDB.CountRows(db.sql_get_Rep(txtRepID.Text.Trim, RepID)) > 0 Then lblMessage.Text &= "Rep """ & txtRepID.Text.Trim & """ already exists!"

      If Not lblMessage.Text.Length > 0 Then

         If RepID <> "" Then
            sqlDB.doQueryDS(db.sql_update_Rep(txtRepID.Text.Trim(), strRepName.Text.Trim, strMarket.Text.Trim, ddlBranch.SelectedValue, ddlSegment.SelectedValue, strRepEmail.Text.Trim, ddlRegionalManager.SelectedValue, ddlSalesManager.SelectedValue, CInt(chkRep.Checked), CInt(chkGenerateQF.Checked), Session.Item("User")))
            '2-Update into DW	 x4	

            'v.1.2.4
            dr = sqlDB.GetRow(db.sql_get_Rep(RepID))
            aeLatter = New AuditEntity(dr, "mstRep")
            AuditEntity.Audit(aeFormer, aeLatter, Session.Item("User")) 'v1.4.5 - 20160913 - Fixed logged In user & savings (i.e use session instead) - maanie

            If dwRepName <> strRepName.Text Then
               sqlDB.doQueryDS(db.sql_update_Rep1_dw(RepID, strRepName.Text.Trim))
               sqlDB.doQueryDS(db.sql_update_Rep2_dw(RepID, strRepName.Text.Trim))
               sqlDB.doQueryDS(db.sql_update_Rep3_dw(RepID, strRepName.Text.Trim))
               sqlDB.doQueryDS(db.sql_update_Rep4_dw(RepID, strRepName.Text.Trim))
            End If
         Else
            sqlDB.doQueryDS(db.sql_insert_Rep(txtRepID.Text.Trim(), strRepName.Text.Trim, strMarket.Text.Trim, ddlBranch.SelectedValue, ddlSegment.SelectedValue, strRepEmail.Text.Trim, ddlRegionalManager.SelectedValue, ddlSalesManager.SelectedValue, CInt(chkRep.Checked), CInt(chkGenerateQF.Checked), Session.Item("User")))
         End If

         Response.Redirect("RepList.aspx")
      End If

   End Sub

   Protected Sub btnClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
      Response.Redirect("RepList.aspx")
   End Sub

   Protected Sub txtRepID_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtRepID.TextChanged
      'load rep
      If db.CountRows("SELECT * FROM mstRep WHERE RepID = '" & sqlDB.CleanString(txtRepID.Text.Trim) & "' ") > 0 Then
         Response.Redirect("RepDetails.aspx?RID=" & sqlDB.CleanString(txtRepID.Text.Trim))
      Else
         strRepName.Focus()
      End If
   End Sub
End Class