
' Developer  -> Jignesh Jitiya

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports ModCommon
Partial Class CommercialTerms
    Inherits System.Web.UI.Page
    Shared g_User As String
    Shared g_Company As String
    Shared g_FinYear As String
    Shared Category(10) As String
    Shared CT_Kid As String
    Shared CT_Code As String
    Shared i As Integer
    Shared Mode As String
    Dim dfc, rc, rr, rp, ra, ar, dr, ass As String
    Shared kid As String
    Shared code As String


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("SupplierID") Is Nothing Then
            Response.Redirect("listproduct.aspx?sess=expire")
            Exit Sub
        End If
        If Not IsPostBack Then
            'g_User = Session("g_User").ToString
            'g_Company = Session("g_Company").ToString
            'g_FinYear = Session("g_FinYear").ToString

            btnUpdate.Attributes.Add("onclick", "return UpdateMsg();")
            BtnSaveCount.Attributes.Add("onclick", "return SaveConfirm();")

            i = 0
            If Session("ProductID") = Nothing Then ' check for session
                Response.Redirect("List_Product.aspx")
            Else
                ' Session("ID") = Nothing
                'Dim str As String
                'str = Session("productID").ToString()
                Dim catid As String
                catid = ReturnValue("Select Product_CategoryID from Product_Master where Product_Kid= '" & Session("ProductID").ToString() & "'and Product_IsDeleted='0' and Product_CompanyId ='" & Session("g_Company").ToString & "'")
                ' get categoryid according to productid from productmaster
                FillCategoryName(catid)
                ' fill category herarchy in label
                Dim sd_ProductId As String
                sd_ProductId = ReturnValue("Select ct_productId from CommercialTerms where ct_productId= '" & Session("ProductID").ToString() & "' and ct_Isdeleted='0' and ct_CompanyId ='" & Session("g_Company").ToString & "'")

                If sd_ProductId = "" Then ' check data already exist or not
                    ' If not exist
                    GenerateCommercialTermsCode() ' generate code and kid
                    Mode = "Insert" ' set mode
                    ddlExisting.Visible = True
                    lblExisting.Visible = True
                    FillExistingDropDown("SELECT ct_productid FROM CommercialTerms WHERE ct_userid = '" & Session("g_User").ToString.Trim & "' AND ct_companyid = '" & Session("g_Company").ToString & "' AND ct_IsDeleted = N'0'", ddlExisting)
                    ' fill existing ddl with product name from product master
                Else
                    ' if records exist
                    ddlExisting.Visible = False
                    lblExisting.Visible = False
                    CT_Code = ReturnValue("Select ct_Code from CommercialTerms where ct_productId= '" & Session("ProductID").ToString() & "' and ct_Isdeleted='0' and ct_CompanyId ='" & Session("g_Company").ToString & "'")
                    CT_Kid = ReturnValue("Select ct_KId from CommercialTerms where ct_productId= '" & Session("ProductID").ToString() & "' and ct_Isdeleted='0' and ct_CompanyId ='" & Session("g_Company").ToString & "'")
                    GetExistingData()
                    ' get existing data
                    txtenable(False)
                    Mode = "Update" ' set mode
                End If
            End If
            If Session("AdminID") <> Nothing Then ' check whether admin is login or not
                btnUpdate.Visible = True
                BtnSaveCount.Visible = False
                txtenable(True)
                If ddlExisting.Visible = True Then
                    BtnSaveCount.Visible = True
                    btnUpdate.Visible = False
                End If
            Else
                btnUpdate.Visible = False
            End If
            If ddlExisting.Visible = False Then
                ImageButton4.Visible = False
            End If
        Else

        End If
    End Sub
    Public Sub FillExistingDropDown(ByVal strQuery As String, ByVal ddl As DropDownList)
        ' fill existing ddl with product name from product master acoording to strQry
        Dim dt1 As DataTable = getTable(strQuery, "PR")
        Dim i As Integer
        Dim Kid As String
        Dim KidBool As Boolean = True

        For i = 0 To dt1.Rows.Count - 1
            If KidBool = True Then
                Kid = "'" & dt1.Rows(i).Item(0).ToString & "'"
                KidBool = False
            Else
                Kid &= ","
                Kid &= "'" & dt1.Rows(i).Item(0).ToString & "'"

            End If

        Next

        Fill_Combo("Select Product_Kid,Product_Name from Product_Master where Product_SupplierID='" & Session.Item("SupplierID").ToString.Trim & "'and Product_UserID = '" & Session("g_User").ToString().Trim & "' and Product_Kid In ( " & Kid & ")", ddl)

        If ddl.Items.Count > 1 Then
            ddl.Items.Insert(ddl.Items.Count, "Add New")
            lblExisting.Visible = True
            txtenable(False)
        Else
            lblExisting.Visible = False
            ddl.Visible = False
            txtenable(True)
        End If

    End Sub
    Public Sub txtenable(ByVal bool As Boolean)
        dfc1.Enabled = bool
        dfc2.Enabled = bool
        rc1.Enabled = bool
        rc2.Enabled = bool
        rr1.Enabled = bool
        rr2.Enabled = bool
        rp1.Enabled = bool
        rp2.Enabled = bool
        ra1.Enabled = bool
        ra2.Enabled = bool
        ar1.Enabled = bool
        ar2.Enabled = bool
        dr1.Enabled = bool
        dr2.Enabled = bool
        as1.Enabled = bool
        as2.Enabled = bool
        txt_remark.Enabled = bool
    End Sub
    Public Sub GetExistingData()
        Dim dt As DataTable
        dt = ReturnDataTable("Select * From CommercialTerms Where ct_Kid ='" & CT_Kid & "' and ct_productid='" & Session("ProductID") & "' and ct_Isdeleted = '0' and ct_CompanyId ='" & Session("g_Company").ToString & "'")
        If dt.Rows.Count > 0 Then
            ' get existing data and assign it to the controls
            kid = dt.Rows(0).Item("ct_Kid").ToString()
            code = dt.Rows(0).Item("ct_Code").ToString()
            dfc = dt.Rows(0).Item(3).ToString()
            rc = dt.Rows(0).Item(4).ToString()
            rr = dt.Rows(0).Item(5).ToString()
            rp = dt.Rows(0).Item(6).ToString()
            ra = dt.Rows(0).Item(7).ToString()
            ar = dt.Rows(0).Item(8).ToString()
            dr = dt.Rows(0).Item(9).ToString()
            ass = dt.Rows(0).Item(10).ToString()
            txt_remark.Text = dt.Rows(0).Item(11).ToString()
            If dfc = "Y" Then
                dfc1.Checked = True
                dfc2.Checked = False
            Else
                dfc2.Checked = True
                dfc1.Checked = False
            End If
            If rc = "Y" Then
                rc1.Checked = True
                rc2.Checked = False
            Else
                rc1.Checked = False
                rc2.Checked = True
            End If
            If rr = "Y" Then
                rr1.Checked = True
                rr2.Checked = False
            Else
                rr1.Checked = False
                rr2.Checked = True
            End If
            If rp = "Y" Then
                rp1.Checked = True
                rp2.Checked = False
            Else
                rp1.Checked = False
                rp2.Checked = True
            End If
            If ra = "Y" Then
                ra1.Checked = True
                ra2.Checked = False
            Else
                ra1.Checked = False
                ra2.Checked = True
            End If
            If ar = "Y" Then
                ar1.Checked = True
                ar2.Checked = False
            Else
                ar1.Checked = False
                ar2.Checked = True
            End If
            If dr = "Y" Then
                dr1.Checked = True
                dr2.Checked = False
            Else
                dr1.Checked = False
                dr2.Checked = True
            End If
            If ass = "Y" Then
                as1.Checked = True
                as2.Checked = False
            Else
                as1.Checked = False
                as2.Checked = True
            End If
            BtnSaveCount.Visible = False
        Else
            GenerateCommercialTermsCode()
            BtnSaveCount.Visible = True

        End If
        dt.Clear()
      
    End Sub

    Public Sub FillCategoryName(ByVal Catid As String)
        ' fill category herarchy in label
        Dim dt As DataTable
        dt = ReturnDataTable("Select * From Category_Master Where Category_Kid ='" & Catid & "' and Category_Isdeleted = '0' and Category_CompanyId ='" & Session("g_Company").ToString & "'")
        Dim ParentId As String
        ParentId = dt.Rows(0).Item(3).ToString()
        If ParentId = "Root Category" Then
            Dim j As Integer
            Category(i) = dt.Rows(0).Item(2).ToString() & "  >>  "
            For j = 0 To i
                Labelc1.Text += Category(i)
                i = i - 1
            Next
            Exit Sub
        Else
            Category(i) = dt.Rows(0).Item(2).ToString() & "  >>  "
            i = i + 1
            FillCategoryName(dt.Rows(0).Item(3).ToString())
        End If
        dt.Clear()
    End Sub
    Protected Sub GenerateCommercialTermsCode()
        ' generate kid and code
        Try
            Dim i As String
            Dim qry As String
            Dim code As String
            CT_Kid = NewPrimaryKey(Me)
            i = "1"
            i = Format(Val(i), "000")
            While True
                code = "CT" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
                qry = "select count(*) from CommercialTerms where ct_Code='" & code & "'"
                If IsAlreadyPresent(qry) Then
                    i = Val(i) + 1
                    i = Format(Val(i), "000")
                Else
                    CT_Code = code
                    Exit Sub
                End If
            End While
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Sub

    Protected Sub BtnSaveCount_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSaveCount.Click
        ' save process
        If Page.IsValid = False Then
            CreateMessageAlert(Me, "Please Enter Remarks.!", "strkeyval")
            Exit Sub
        Else
            If (dfc1.Checked = True) Then
                dfc = "Y"
            Else
                dfc = "N"
            End If
            If (rc1.Checked = True) Then
                rc = "Y"
            Else
                rc = "N"
            End If
            If (rr1.Checked = True) Then
                rr = "Y"
            Else
                rr = "N"
            End If
            If (rp1.Checked = True) Then
                rp = "Y"
            Else
                rp = "N"
            End If
            If (ra1.Checked = True) Then
                ra = "Y"
            Else
                ra = "N"
            End If
            If (ar1.Checked = True) Then
                ar = "Y"
            Else
                ar = "N"
            End If
            If (dr1.Checked = True) Then
                dr = "Y"
            Else
                dr = "N"
            End If
            If (as1.Checked = True) Then
                ass = "Y"
            Else
                ass = "N"
            End If

            Dim Con As New SqlConnection
            Dim cmd As New SqlCommand
            Con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            cmd.Connection = Con
            cmd.CommandText = "CommercialTerms_Proc" ' store procedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@ct_Kid", SqlDbType.NVarChar, 10)).Value = CT_Kid
            cmd.Parameters.Add(New SqlParameter("@ct_Code", SqlDbType.NVarChar, 25)).Value = CT_Code
            cmd.Parameters.Add(New SqlParameter("@ct_ProductID", SqlDbType.NVarChar, 10)).Value = Session("ProductID").ToString()
            cmd.Parameters.Add(New SqlParameter("@ct_dfc", SqlDbType.NVarChar, 1)).Value = dfc
            cmd.Parameters.Add(New SqlParameter("@ct_rc", SqlDbType.NVarChar, 1)).Value = rc
            cmd.Parameters.Add(New SqlParameter("@ct_rr", SqlDbType.NVarChar, 1)).Value = rr
            cmd.Parameters.Add(New SqlParameter("@ct_rp", SqlDbType.NVarChar, 1)).Value = rp
            cmd.Parameters.Add(New SqlParameter("@ct_ra", SqlDbType.NVarChar, 1)).Value = ra
            cmd.Parameters.Add(New SqlParameter("@ct_ar", SqlDbType.NVarChar, 1)).Value = ar
            cmd.Parameters.Add(New SqlParameter("@ct_dr", SqlDbType.NVarChar, 1)).Value = dr
            cmd.Parameters.Add(New SqlParameter("@ct_as", SqlDbType.NVarChar, 1)).Value = ass
            cmd.Parameters.Add(New SqlParameter("@ct_remark", SqlDbType.NVarChar, 100)).Value = txt_remark.Text
            cmd.Parameters.Add(New SqlParameter("@ct_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear").ToString
            cmd.Parameters.Add(New SqlParameter("@ct_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").ToString
            cmd.Parameters.Add(New SqlParameter("@ct_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Commerical Terms"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = Mode
            If Con.State = ConnectionState.Open Then ' check connection state
                Con.Close()
            End If
            Con.Open()
            cmd.ExecuteNonQuery()
            Con.Close() ' connection close
            Con.Dispose()
            CreateMessageAlert(Me, "Record Saved Successfully.", "StrKeyVal")

            Response.Redirect("supplier-keycontacts.aspx") ' redirect to next page
        End If
    End Sub

    Protected Sub BtnSkipCount_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSkipCount.Click
        Response.Redirect("supplier-keycontacts.aspx") ' redirect to next page
    End Sub

    Protected Sub ddlExisting_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlExisting.SelectedIndexChanged
        If ddlExisting.SelectedIndex > 0 Then
            If ddlExisting.SelectedItem.Text = "Add New" Then
                ' new records entered
                txtenable(True)
                txt_remark.Text = ""
            Else
                ' existing records saved
                Dim Kid As String = ddlExisting.SelectedItem.Value

                Dim dt As DataTable = getTable("Select * from CommercialTerms where ct_ProductId='" & Kid & "' and ct_IsDeleted='0' and ct_CompanyID='" & Session("g_Company").ToString.Trim & "' and ct_UserID='" & Session("g_User").ToString.Trim & "'", "CT")

                If dt.Rows.Count > 0 Then
                    dfc = dt.Rows(0).Item(3).ToString()
                    rc = dt.Rows(0).Item(4).ToString()
                    rr = dt.Rows(0).Item(5).ToString()
                    rp = dt.Rows(0).Item(6).ToString()
                    ra = dt.Rows(0).Item(7).ToString()
                    ar = dt.Rows(0).Item(8).ToString()
                    dr = dt.Rows(0).Item(9).ToString()
                    ass = dt.Rows(0).Item(10).ToString()
                    txt_remark.Text = dt.Rows(0).Item(11).ToString()
                    If dfc = "Y" Then
                        dfc1.Checked = True
                        dfc2.Checked = False
                    Else
                        dfc2.Checked = True
                        dfc1.Checked = False
                    End If
                    If rc = "Y" Then
                        rc1.Checked = True
                        rc2.Checked = False
                    Else
                        rc1.Checked = False
                        rc2.Checked = True
                    End If
                    If rr = "Y" Then
                        rr1.Checked = True
                        rr2.Checked = False
                    Else
                        rr1.Checked = False
                        rr2.Checked = True
                    End If
                    If rp = "Y" Then
                        rp1.Checked = True
                        rp2.Checked = False
                    Else
                        rp1.Checked = False
                        rp2.Checked = True
                    End If
                    If ra = "Y" Then
                        ra1.Checked = True
                        ra2.Checked = False
                    Else
                        ra1.Checked = False
                        ra2.Checked = True
                    End If
                    If ar = "Y" Then
                        ar1.Checked = True
                        ar2.Checked = False
                    Else
                        ar1.Checked = False
                        ar2.Checked = True
                    End If
                    If dr = "Y" Then
                        dr1.Checked = True
                        dr2.Checked = False
                    Else
                        dr1.Checked = False
                        dr2.Checked = True
                    End If
                    If ass = "Y" Then
                        as1.Checked = True
                        as2.Checked = False
                    Else
                        as1.Checked = False
                        as2.Checked = True
                    End If

                    txtenable(True)
                End If
                dt.Clear()
            End If
        Else
            ' dont selected any
            txtenable(False)
        End If
    End Sub

    Protected Sub btnUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        If Page.IsValid = False Then
            CreateMessageAlert(Me, "Please Enter Remarks.!", "strkeyval")
            Exit Sub
        Else
            ' updation process
            If (dfc1.Checked = True) Then
                dfc = "Y"
            Else
                dfc = "N"
            End If
            If (rc1.Checked = True) Then
                rc = "Y"
            Else
                rc = "N"
            End If
            If (rr1.Checked = True) Then
                rr = "Y"
            Else
                rr = "N"
            End If
            If (rp1.Checked = True) Then
                rp = "Y"
            Else
                rp = "N"
            End If
            If (ra1.Checked = True) Then
                ra = "Y"
            Else
                ra = "N"
            End If
            If (ar1.Checked = True) Then
                ar = "Y"
            Else
                ar = "N"
            End If
            If (dr1.Checked = True) Then
                dr = "Y"
            Else
                dr = "N"
            End If
            If (as1.Checked = True) Then
                ass = "Y"
            Else
                ass = "N"
            End If

            Dim Con As New SqlConnection
            Dim cmd As New SqlCommand
            Con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            cmd.Connection = Con
            cmd.CommandText = "CommercialTerms_Proc" ' store prodecure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@ct_Kid", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(kid.ToString.Trim)
            cmd.Parameters.Add(New SqlParameter("@ct_Code", SqlDbType.NVarChar, 25)).Value = code.ToString.Trim
            cmd.Parameters.Add(New SqlParameter("@ct_ProductID", SqlDbType.NVarChar, 10)).Value = Session("ProductID").ToString()
            cmd.Parameters.Add(New SqlParameter("@ct_dfc", SqlDbType.NVarChar, 1)).Value = dfc
            cmd.Parameters.Add(New SqlParameter("@ct_rc", SqlDbType.NVarChar, 1)).Value = rc
            cmd.Parameters.Add(New SqlParameter("@ct_rr", SqlDbType.NVarChar, 1)).Value = rr
            cmd.Parameters.Add(New SqlParameter("@ct_rp", SqlDbType.NVarChar, 1)).Value = rp
            cmd.Parameters.Add(New SqlParameter("@ct_ra", SqlDbType.NVarChar, 1)).Value = ra
            cmd.Parameters.Add(New SqlParameter("@ct_ar", SqlDbType.NVarChar, 1)).Value = ar
            cmd.Parameters.Add(New SqlParameter("@ct_dr", SqlDbType.NVarChar, 1)).Value = dr
            cmd.Parameters.Add(New SqlParameter("@ct_as", SqlDbType.NVarChar, 1)).Value = ass
            cmd.Parameters.Add(New SqlParameter("@ct_remark", SqlDbType.NVarChar, 100)).Value = txt_remark.Text
            cmd.Parameters.Add(New SqlParameter("@ct_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear").ToString
            cmd.Parameters.Add(New SqlParameter("@ct_CompanyId", SqlDbType.NVarChar, 10)).Value = g_Company
            cmd.Parameters.Add(New SqlParameter("@ct_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Commerical Terms"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Update"
            If Con.State = ConnectionState.Open Then ' check connection state
                Con.Close()
            End If
            Con.Open()
            cmd.ExecuteNonQuery()
            Con.Close() ' close connection
            Con.Dispose()
            CreateMessageAlert(Me, "Record Was Successfully Updated.", "StrKeyVal")
        End If
    End Sub
End Class
