Imports System.Data
Imports System.Data.SqlClient
Partial Class WoodData
    Inherits System.Web.UI.Page
    Shared g_FinYear As String
    Shared g_User As String
    Shared g_Company As String
    Shared Category(10) As String
    Shared i As Integer
    Shared kid As String
    Shared code As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            If Not IsPostBack Then
                'g_User = "U1"
                'g_Company = "COM1"
                'g_FinYear = "2007"
                If Session.Item("ProductID") Is Nothing Then
                    Response.Redirect("List_Product.aspx")
                    Exit Sub
                End If
                'g_User = Session("g_User").ToString
                'g_Company = Session("g_Company").ToString
                'g_FinYear = Session("g_FinYear").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 & "' ")
                i = 0
                FillCategoryName(catid)
                ClearFields()
                Fill_Combo("select Country_Kid,Country_Name from Country_Master where Country_IsDeleted='0' and Country_CompanyID='" & Session("g_Company").ToString.Trim & "'", ddlWoodContryId)
                ddlWoodContryId.Items.FindByText("India").Selected = True
                getExistingData()

                btnUpdate.Attributes.Add("onclick", "return UpdateMsg();")
                BtnSave.Attributes.Add("onclick", "return SaveConfirm();")


                txtWoodCWaste.Attributes.Add("onkeypress", "return CheckNumericValue(event)")
                txtWoodRContcrap.Attributes.Add("onkeypress", "return CheckNumericValue(event)")
                txtWoodIScrap.Attributes.Add("onkeypress", "return CheckNumericValue(event)")
                txt1WoodIWaste.Attributes.Add("onkeypress", "return CheckNumericValue(event)")
                If Session("AdminID") <> Nothing Then
                    btnUpdate.Visible = True
                    ddlExisting.Visible = False
                    Label9.Visible = False
                    EnableControls(True)

                    If ddlExisting.Visible = True Then
                        BtnSave.Visible = True
                        btnUpdate.Visible = False
                        EnableControls(False)
                    Else
                        EnableControls(True)
                    End If

                Else
                    btnUpdate.Visible = False
                End If
                If ddlExisting.Visible = False Then
                    ImageButton5.Visible = False
                    Label9.Visible = False
                End If
            End If
        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Sub
    Public Sub FillCategoryName(ByVal Catid As String)
        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
            'Label1.Text += dt.Rows(0).Item(2).ToString()
            'Dim CategoryName(10) As String
            Dim j As Integer
            Category(i) = dt.Rows(0).Item(2).ToString() & "  >  "
            'Array.Reverse(Category)
            For j = 0 To i
                Label2.Text += Category(i)
                i = i - 1
            Next
            Exit Sub
        Else
            Category(i) = dt.Rows(0).Item(2).ToString() & "  >  "
            i = i + 1
            'Label1.Text += dt.Rows(0).Item(2).ToString() & "  >>  "
            FillCategoryName(dt.Rows(0).Item(3).ToString())
        End If
        dt.Clear()
        'GridView1.DataSource = dt
        'GridView1.DataBind()
    End Sub
    Private Sub getExistingData()
        Dim dt As DataTable = getTable("Select * from WoodData where WoodData_ProductId='" & Session.Item("ProductID").Trim & "' and WoodData_IsDeleted='0' and WoodData_CompanyID='" & Session("g_Company").ToString.Trim & "'", "WD")
        If dt.Rows.Count > 0 Then
            ddlExisting.Visible = False
            kid = dt.Rows(0).Item("WoodData_Kid").ToString()
            code = dt.Rows(0).Item("WoodData_Code").ToString()
            txtWoodCode.Text = dt.Rows(0).Item("WoodData_Code").ToString
            txt1WoodIWaste.Text = dt.Rows(0).Item("WoodData_IndustrialWaste").ToString
            txtWoodCWaste.Text = dt.Rows(0).Item("WoodData_ConsumerWaste").ToString
            txtWoodGname.Text = dt.Rows(0).Item("WoodData_GenericName").ToString
            txtWoodIScrap.Text = dt.Rows(0).Item("WoodData_IndustrialScrap").ToString
            txtWoodRContcrap.Text = dt.Rows(0).Item("WoodData_RecycleContent").ToString
            txtWoodSname.Text = dt.Rows(0).Item("WoodData_SpecificName").ToString
            ddlWoodContryId.ClearSelection()
            Try
                ddlWoodContryId.Items.FindByValue(dt.Rows(0).Item("WoodData_CountryId").ToString).Selected = True
            Catch ex As Exception

            End Try
            If dt.Rows(0).Item("WoodData_IsManufactureFromWood").ToString = "Y" Then
                rblWoodMWood.ClearSelection()
                rblWoodMWood.Items(0).Selected = True
            Else
                rblWoodMWood.ClearSelection()
                rblWoodMWood.Items(1).Selected = True
            End If
            If dt.Rows(0).Item("WoodData_IsContainFibre").ToString = "Y" Then
                rblWoodCWood.ClearSelection()
                rblWoodCWood.Items(0).Selected = True
                ControlsVisible(True)
            Else
                rblWoodCWood.ClearSelection()
                rblWoodCWood.Items(1).Selected = True
                ControlsVisible(False)
            End If
            EnableControls(False)
            BtnSave.Visible = False
        Else
            ddlExisting.Visible = True
            FillExistingDropDown("SELECT WoodData_productid FROM WoodData WHERE WoodData_userid = '" & Session("g_User").ToString.Trim & "' AND WoodData_companyid = '" & Session("g_Company").ToString & "' AND WoodData_IsDeleted = N'0'", ddlExisting)
            Call GenerateWoodDataCode()
            BtnSave.Visible = True
        End If
        dt.Clear()
    End Sub
    Public Sub FillExistingDropDown(ByVal strQuery As String, ByVal ddl As DropDownList)
        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")
            EnableControls(False)
        Else
            ddl.Visible = False
            EnableControls(True)
        End If
    End Sub
    Private Sub EnableControls(ByVal bool As Boolean)
        txt1WoodIWaste.Enabled = bool
        txtWoodCWaste.Enabled = bool
        txtWoodGname.Enabled = bool
        txtWoodIScrap.Enabled = bool
        txtWoodRContcrap.Enabled = bool
        txtWoodSname.Enabled = bool
        txtWoodCWaste.Enabled = bool
        txt1WoodIWaste.Enabled = bool
        txtWoodIScrap.Enabled = bool
        txtWoodRContcrap.Enabled = bool
        ddlWoodContryId.Enabled = bool
        rblWoodCWood.Enabled = bool
        rblWoodMWood.Enabled = bool
    End Sub
    Private Sub ControlsVisible(ByVal bool As Boolean)
        lblWoodCWaste.Visible = bool
        txtWoodCWaste.Visible = bool
        lblWoodIWaste.Visible = bool
        txt1WoodIWaste.Visible = bool
        lblWoodIScrap.Visible = bool
        txtWoodIScrap.Visible = bool
        lblWoodRContp.Visible = bool
        txtWoodRContcrap.Visible = bool
        Label5.Visible = bool
        Label6.Visible = bool
        Label7.Visible = bool
        Label8.Visible = bool
        Label4.Visible = bool
        ImageButton4.Visible = bool
    End Sub
    Protected Sub RadioButtonList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rblWoodCWood.SelectedIndexChanged
        If rblWoodCWood.Items(0).Selected = True Then
            ControlsVisible(True)
        Else
            ControlsVisible(False)
        End If
    End Sub
    Protected Sub BtnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSave.Click
        'SAve Item in Wood Data 
        Try
            Dim Isman As String
            Dim Iscon As String
            lblError.Visible = True
            If txtWoodGname.Text.Trim = "" Then
                lblError.Text = "Generic Name can not be null"
                Exit Sub
            End If
            If ddlWoodContryId.SelectedIndex = 0 Then
                lblError.Text = "Please Select  Country"
                Exit Sub
            End If
            If txtWoodSname.Text.Trim = "" Then
                lblError.Text = "Specific Name can not be null"
                Exit Sub
            End If

            'Dim qry As String
            If rblWoodCWood.Items(0).Selected = True Then
                Iscon = "Y"
            End If
            If rblWoodCWood.Items(1).Selected = True Then
                Iscon = "N"
            End If
            If rblWoodMWood.Items(0).Selected = True Then
                Isman = "Y"
            End If
            If rblWoodMWood.Items(1).Selected = True Then
                Isman = "N"
            End If

            If (Convert.ToDecimal(txt1WoodIWaste.Text) + Convert.ToDecimal(txtWoodCWaste.Text) + Convert.ToDecimal(txtWoodIScrap.Text) + Convert.ToDecimal(txtWoodRContcrap.Text)) > 100 Then
                CreateMessageAlert(Me, "Composition Values in % Are too Bigger", "StrKeyVal")
                Exit Sub
            End If

            Dim Con As New SqlConnection
            Dim cmd As New SqlCommand
            Con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            cmd.Connection = Con
            cmd.CommandText = "WoodData_Proc"
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@WoodData_Kid", SqlDbType.NVarChar)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@WoodData_Code", SqlDbType.NVarChar)).Value = txtWoodCode.Text
            cmd.Parameters.Add(New SqlParameter("@WoodData_CountryId", SqlDbType.NVarChar)).Value = ddlWoodContryId.SelectedValue.ToString()
            cmd.Parameters.Add(New SqlParameter("@WoodData_GenericName", SqlDbType.NVarChar)).Value = txtWoodGname.Text
            cmd.Parameters.Add(New SqlParameter("@WoodData_SpecificName", SqlDbType.NVarChar)).Value = txtWoodSname.Text
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsManufactureFromWood", SqlDbType.NVarChar)).Value = Isman
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsContainFibre", SqlDbType.NVarChar)).Value = Iscon
            cmd.Parameters.Add(New SqlParameter("@WoodData_ConsumerWaste", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodCWaste))
            cmd.Parameters.Add(New SqlParameter("@WoodData_IndustrialWaste", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txt1WoodIWaste))
            cmd.Parameters.Add(New SqlParameter("@WoodData_IndustrialScrap", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodIScrap))
            cmd.Parameters.Add(New SqlParameter("@WoodData_RecycleContent", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodRContcrap))

            cmd.Parameters.Add(New SqlParameter("@WoodData_ProductId", SqlDbType.NVarChar)).Value = Session("ProductID")
            cmd.Parameters.Add(New SqlParameter("@WoodData_FinancialYearId", SqlDbType.NVarChar)).Value = Session("g_FinYear").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_CompanyId", SqlDbType.NVarChar)).Value = Session("g_Company").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_UserId", SqlDbType.NVarChar)).Value = Session("g_User").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsDeleted", SqlDbType.NVarChar)).Value = "0"
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Wood Data"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 50)).Value = "Insert"
           
            If Con.State = ConnectionState.Open Then
                Con.Close()
            End If
            Con.Open()
            cmd.ExecuteNonQuery()
            Con.Close()
            Con.Dispose()

            CreateMessageAlert(Me, "Record Saved Successfully.", "StrKeyVal")
            showmessage("Record Saved Successfully.", lblError)

            Response.Redirect("market-operating-price.aspx")
        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Sub
    Sub Node_Populate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs)
        Try
            If e.Node.ChildNodes.Count = 0 Then
                Select Case (e.Node.Depth)
                    Case 0

                        FillModule(e.Node, "2")

                        Exit Sub
                    Case 1

                        FillMenu(e.Node)

                        Exit Sub

                    Case 2

                        FillSubMenu(e.Node)

                        Exit Sub

                End Select

            End If
        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Sub

    Protected Function RetInt(ByRef txt As TextBox) As String
        Try
            Dim Str As String
            Str = txt.Text
            If Str = "" Then
                txt.Text = 0
                Return 0
            Else

                Return Str
            End If
        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Function
    Protected Sub GenerateWoodDataCode()
        Try
            Dim i As String
            Dim qry As String
            Dim code As String
            'txtWoodKid.Text = NewPrimaryKey(Me)
            i = "1"
            i = Format(Val(i), "000")
            While True
                code = "GWD" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
                qry = "select count(*) from WoodData where WoodData_Code='" & code & "'"
                If IsAlreadyPresent(qry) Then
                    i = Val(i) + 1
                    i = Format(Val(i), "000")
                Else
                    txtWoodCode.Text = 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 ClearFields()
        Try
            txt1WoodIWaste.Text = ""
            txtWoodCode.Text = ""
            ddlWoodContryId.SelectedIndex = 0
            txtWoodCWaste.Text = ""
            txtWoodGname.Text = ""
            'ddlWoodPId.SelectedIndex = 0
            txtWoodIScrap.Text = ""
            txtWoodIScrap.Text = ""
            txtWoodRContcrap.Text = ""
            txtWoodSname.Text = ""

        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Sub

    Protected Sub BtnSkip_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Response.Redirect("market-operating-price.aspx")
    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
                EnableControls(True)
                ClearFields()
            Else
                Dim Kid As String = ddlExisting.SelectedItem.Value

                Dim dt As DataTable = getTable("Select * from WoodData where WoodData_ProductId='" & Kid & "' and WoodData_IsDeleted='0' and WoodData_CompanyID='" & Session("g_Company").ToString.Trim & "' and WoodData_UserID='" & Session("g_User").ToString.Trim & "'", "WoodData")

                If dt.Rows.Count > 0 Then
                    EnableControls(True)
                    txtWoodCode.Text = dt.Rows(0).Item("WoodData_Code").ToString
                    txt1WoodIWaste.Text = dt.Rows(0).Item("WoodData_IndustrialWaste").ToString
                    txtWoodCWaste.Text = dt.Rows(0).Item("WoodData_ConsumerWaste").ToString
                    txtWoodGname.Text = dt.Rows(0).Item("WoodData_GenericName").ToString
                    txtWoodIScrap.Text = dt.Rows(0).Item("WoodData_IndustrialScrap").ToString
                    txtWoodRContcrap.Text = dt.Rows(0).Item("WoodData_RecycleContent").ToString
                    txtWoodSname.Text = dt.Rows(0).Item("WoodData_SpecificName").ToString
                    ddlWoodContryId.ClearSelection()
                    Try
                        ddlWoodContryId.Items.FindByValue(dt.Rows(0).Item("WoodData_CountryId").ToString).Selected = True
                    Catch ex As Exception

                    End Try
                    If dt.Rows(0).Item("WoodData_IsManufactureFromWood").ToString = "Y" Then
                        rblWoodMWood.ClearSelection()
                        rblWoodMWood.Items(0).Selected = True
                    Else
                        rblWoodMWood.ClearSelection()
                        rblWoodMWood.Items(1).Selected = True
                    End If
                    If dt.Rows(0).Item("WoodData_IsContainFibre").ToString = "Y" Then
                        rblWoodCWood.ClearSelection()
                        rblWoodCWood.Items(0).Selected = True
                        ControlsVisible(True)
                    Else
                        rblWoodCWood.ClearSelection()
                        rblWoodCWood.Items(1).Selected = True
                        ControlsVisible(False)
                    End If
                    dt.Clear()
                End If
            End If
        Else
            EnableControls(False)
            ClearFields()
        End If
    End Sub

    Protected Sub btnUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        'SAve Item in Wood Data 
        Try
            Dim Isman As String
            Dim Iscon As String
            lblError.Visible = True
            If txtWoodGname.Text.Trim = "" Then
                lblError.Text = "Generic Name can not be null"
                Exit Sub
            End If
            If ddlWoodContryId.SelectedIndex = 0 Then
                lblError.Text = "Please Select  Country"
                Exit Sub
            End If
            If txtWoodSname.Text.Trim = "" Then
                lblError.Text = "Specific Name can not be null"
                Exit Sub
            End If

            'Dim qry As String
            If rblWoodCWood.Items(0).Selected = True Then
                Iscon = "Y"
            End If
            If rblWoodCWood.Items(1).Selected = True Then
                Iscon = "N"
            End If
            If rblWoodMWood.Items(0).Selected = True Then
                Isman = "Y"
            End If
            If rblWoodMWood.Items(1).Selected = True Then
                Isman = "N"
            End If

            If (Convert.ToDecimal(txt1WoodIWaste.Text) + Convert.ToDecimal(txtWoodCWaste.Text) + Convert.ToDecimal(txtWoodIScrap.Text) + Convert.ToDecimal(txtWoodRContcrap.Text)) > 100 Then
                CreateMessageAlert(Me, "Composition Values in % Are too Bigger", "StrKeyVal")
                Exit Sub
            End If

            Dim Con As New SqlConnection
            Dim cmd As New SqlCommand
            Con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            cmd.Connection = Con
            cmd.CommandText = "WoodData_Proc"
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@WoodData_Kid", SqlDbType.NVarChar)).Value = RemoveLiterals(kid.ToString.Trim)
            cmd.Parameters.Add(New SqlParameter("@WoodData_Code", SqlDbType.NVarChar)).Value = code.ToString.Trim
            cmd.Parameters.Add(New SqlParameter("@WoodData_CountryId", SqlDbType.NVarChar)).Value = ddlWoodContryId.SelectedValue.ToString()
            cmd.Parameters.Add(New SqlParameter("@WoodData_GenericName", SqlDbType.NVarChar)).Value = txtWoodGname.Text
            cmd.Parameters.Add(New SqlParameter("@WoodData_SpecificName", SqlDbType.NVarChar)).Value = txtWoodSname.Text
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsManufactureFromWood", SqlDbType.NVarChar)).Value = Isman
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsContainFibre", SqlDbType.NVarChar)).Value = Iscon
            cmd.Parameters.Add(New SqlParameter("@WoodData_ConsumerWaste", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodCWaste))
            cmd.Parameters.Add(New SqlParameter("@WoodData_IndustrialWaste", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txt1WoodIWaste))
            cmd.Parameters.Add(New SqlParameter("@WoodData_IndustrialScrap", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodIScrap))
            cmd.Parameters.Add(New SqlParameter("@WoodData_RecycleContent", SqlDbType.Decimal)).Value = Convert.ToDecimal(RetInt(txtWoodRContcrap))

            cmd.Parameters.Add(New SqlParameter("@WoodData_ProductId", SqlDbType.NVarChar)).Value = Session("ProductID")
            cmd.Parameters.Add(New SqlParameter("@WoodData_FinancialYearId", SqlDbType.NVarChar)).Value = Session("g_FinYear").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_CompanyId", SqlDbType.NVarChar)).Value = Session("g_Company").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_UserId", SqlDbType.NVarChar)).Value = Session("g_User").ToString
            cmd.Parameters.Add(New SqlParameter("@WoodData_IsDeleted", SqlDbType.NVarChar)).Value = "0"
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Wood Data"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 50)).Value = "Update"
          
            If Con.State = ConnectionState.Open Then
                Con.Close()
            End If
            Con.Open()
            cmd.ExecuteNonQuery()
            Con.Close()
            Con.Dispose()
            CreateMessageAlert(Me, "Record Updated Successfully.", "StrKeyVal")
            showmessage("Record Updated Successfully.", lblError)

        Catch Ex As Exception
            CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try
    End Sub
End Class
