﻿Imports System.Web.Configuration
Imports Superbowl.sqlDB
Imports Superbowl.AuditEntity

Partial Class BrandDetails
   Inherits System.Web.UI.Page

   Public Shared BrandID As Integer = 0
   Public Shared dwActive As Integer = 0
   Public Shared dwBrand As String = ""
   Public Shared dwGroupingD As String = 0
   Public Shared dwGroupingP As String = 0
   Public Shared dwGroupingS As String = 0
   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") = "BrandDetails"
         If WebConfigurationManager.AppSettings("ULEVEL") <> 5 Then
            btnSave.Enabled = False
         End If
         Try
            BrandID = Request.QueryString("BID")
         Catch ex As Exception
            BrandID = 0
         End Try

         If BrandID <> 0 Then
            Try
               drIni = sqlDB.GetRow(db.sql_get_Brand(BrandID))

               dwBrand = drIni!strBrand                                               'get ori brand for dw
               txtBrand.Text = drIni!strBrand
               'txtBrand.ReadOnly = True

               ddlPrincipal.SelectedValue = Nz(drIni!refPrincipalID, 0)
               ddlCompany.SelectedValue = Nz(drIni!refCompanyID, 0)

               Try
                  ddlBrandManager.DataBind() 'v1.4.4 - 20160906 - rebinded brand ddl before doing check to see if user exists - maanie
                  If Not ddlBrandManager.Items.FindByValue(Nz(drIni!refBrandManagerID, 0)) Is Nothing Then
                     ddlBrandManager.SelectedValue = Nz(drIni!refBrandManagerID, 0)
                  End If
               Catch ex As Exception
               End Try

               Try
                  If Not ddlBrandManager2.Items.FindByValue(Nz(drIni!refBrandManager2ID, 0)) Is Nothing Then
                     ddlBrandManager2.SelectedValue = Nz(drIni!refBrandManager2ID, 0)
                  End If
               Catch ex As Exception
               End Try

               intLeadMonths.Text = drIni!intLeadMonths
               dblVariance.Text = drIni!dblVariance

               ddlDaily.SelectedValue = Nz(drIni!refGroupingDailyID, 0)
               dwGroupingD = Nz(drIni!refGroupingDailyID, 0)
               ddlPrimary.SelectedValue = Nz(drIni!refGroupingPrimaryID, 0)
               dwGroupingP = Nz(drIni!refGroupingPrimaryID, 0)
               ddlSecondary.SelectedValue = Nz(drIni!refGroupingSecondaryID, 0)
               dwGroupingS = Nz(drIni!refGroupingSecondaryID, 0)

               strAccpacCode.Text = Nz(drIni!strAccpacCode, "")
               strGroupCode.Text = Nz(drIni!strGroupCode, "")
               strGroupAccounts.Text = Nz(drIni!strGroupAccounts, "")
               strBrand2.Text = Nz(drIni!brand2, "")
               strBrandRebate.Text = Nz(drIni!brandrebate, "")
               strBrandToolkit.Text = Nz(drIni!brandToolkit, "")

               lblLastEdit.Text = Nz(drIni!strLastUser, "unknown") & " - " & SqlDate(Nz(drIni!dtStamp, ""), "d MMMM yyyy HH:mm")
               chkActive.Checked = drIni!blnActive
               dwActive = drIni!blnActive

            Catch ex As IndexOutOfRangeException                       'dr = ds.tables(0).rows(0) doesn't exist
               lblMessage.Text = "Brand ID, <font color=black>" & BrandID & "</font>, was not found!"
               drIni = Nothing
            End Try
         Else
            'txtBrand.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 = ""

      Try
         BrandID = Request.QueryString("BID")
      Catch ex As Exception
         BrandID = 0
      End Try
      'v1.2.4 - added AdvAudit
      dr = sqlDB.GetRow(db.sql_get_Brand(BrandID))
      If Not dr Is Nothing Then
         aeFormer = New AuditEntity(dr, "mstBrand")
      End If

      If txtBrand.Text.Trim() = "" Then lblMessage.Text &= "Brand name required."
      If ddlPrincipal.SelectedIndex < 1 Then lblMessage.Text &= "<BR>Principal Required"
      If ddlCompany.SelectedIndex < 1 Then lblMessage.Text &= "<BR>Company Required"
      If ddlBrandManager.SelectedIndex < 1 Then lblMessage.Text &= "<BR>Brand Manager Required"

      Try
         If CInt(intLeadMonths.Text.Trim) < 0 Or CInt(intLeadMonths.Text.Trim) > 12 Then
            lblMessage.Text &= "<BR>Lead Months must be between 0 and 12"
         End If
      Catch ex As Exception
         lblMessage.Text &= "<BR>Lead Months must be between 0 and 12"
      End Try

      Try
         If CDbl(dblVariance.Text.Trim) < 0 Then
            lblMessage.Text &= "<BR>Variance must be a positive number"
         End If
      Catch ex As Exception
         lblMessage.Text &= "<BR>Variance must be a positive number"
      End Try

      If sqlDB.CountRows(db.sql_get_Brand(txtBrand.Text.Trim, BrandID)) > 0 Then lblMessage.Text &= "Brand """ & txtBrand.Text.Trim & """ already exists!"

      If Not lblMessage.Text.Length > 0 Then

         If BrandID <> 0 Then
            sqlDB.doQueryDS(db.sql_update_Brand(BrandID, ddlPrincipal.SelectedValue, ddlCompany.SelectedValue, ddlBrandManager.SelectedValue, ddlBrandManager2.SelectedValue, strAccpacCode.Text.Trim, txtBrand.Text.Trim, strGroupCode.Text.Trim, strGroupAccounts.Text.Trim, strBrand2.Text.Trim, strBrandRebate.Text.Trim, strBrandToolkit.Text.Trim, intLeadMonths.Text.Trim, dblVariance.Text.Trim, CInt(chkActive.Checked), ddlDaily.SelectedValue, ddlPrimary.SelectedValue, ddlSecondary.SelectedValue, Session.Item("User")))
            sqlDB.doQueryDS(db.sql_update_Brand_dw(BrandID, ddlPrincipal.SelectedValue, ddlCompany.SelectedValue, txtBrand.Text.Trim, CInt(chkActive.Checked), ddlDaily.SelectedItem.Text, ddlPrimary.SelectedItem.Text, ddlSecondary.SelectedItem.Text))

            'v1.2.4 - added AdvAudit
            dr = sqlDB.GetRow(db.sql_get_Brand(BrandID))
            aeLatter = New AuditEntity(dr, "mstBrand")
            AuditEntity.Audit(aeFormer, aeLatter, Session.Item("User")) 'v1.4.5 - 20160913 - Fixed logged In user & savings (i.e use session instead) - maanie

         Else
            sqlDB.doQueryDS(db.sql_insert_Brand(ddlPrincipal.SelectedValue, ddlCompany.SelectedValue, ddlBrandManager.SelectedValue, ddlBrandManager2.SelectedValue, strAccpacCode.Text.Trim, txtBrand.Text.Trim, strGroupCode.Text.Trim, strGroupAccounts.Text.Trim, strBrand2.Text.Trim, strBrandRebate.Text.Trim, strBrandToolkit.Text.Trim, intLeadMonths.Text.Trim, dblVariance.Text.Trim, 1, ddlDaily.SelectedValue, ddlPrimary.SelectedValue, ddlSecondary.SelectedValue))
         End If

         '2-Update DWD product		
         'If dwBrand <> txtBrand.Text.Trim Or dwActive <> CInt(chkActive.Checked) Or dwGroupingD <> ddlDaily.SelectedValue Or dwGroupingP <> ddlPrimary.SelectedValue Or dwGroupingS <> ddlSecondary.SelectedValue Then

         'End If

         Response.Redirect("BrandList.aspx", True)
      End If

   End Sub

   Protected Sub btnClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
      Response.Redirect("BrandList.aspx")
   End Sub

End Class
