﻿Imports System
Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
Imports System.String
Imports Ajax
Imports System.Drawing.Imaging
Imports System.Drawing
Imports System.Drawing.Drawing2D



Partial Class suppliers_addnewproduct
    Inherits System.Web.UI.Page
    Dim str, str1 As String
    Dim slc1 = "Select Date"
    Dim slc3 = "Select Year"
    Dim slc4 = "Select Country"
    Dim strcon As String = ConfigurationSettings.AppSettings.Item("ConnectionString")
    Dim con As New SqlConnection(strcon)
    Dim cmd As New SqlCommand()
    Dim dr As SqlDataReader
    Shared Category(10) As String
    Shared i As Integer = 0
    Shared Category_Kid As String
    Shared Category_Code As String
    Shared img As Integer
    Shared gwcode As String
    Shared ClientIP As String
    Dim brand_kid As String
    Dim brand_code As String
    Dim newbrandname As String


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
        'Put user code to initialize the page here
        Try
            Ajax.Utility.RegisterTypeForAjax(GetType(suppliers_addnewproduct))
            ClientIP = Request.UserHostAddress()
            'If Session("SupplierID") Is Nothing Then
            '    Response.Redirect("listproduct.aspx?sess=expire")
            '    Exit Sub
            'Else
            '    hfSupplierID.Value = Convert.ToString(Session("SupplierID"))
            'End If
            i = 0
            If Request.QueryString("PEProductID") = Nothing Then
                lblJJCloseWindow.Attributes.Add("onclick", "return CloseWindow();")
            Else
                Session("ProductID") = Request.QueryString("PEProductID")
                Session("SupplierID") = ReturnValue("Select Product_SupplierID from Product_Master where Product_KID='" & RemoveLiterals(Session("ProductID").ToString) & "'")
                hfProduct.Value = Session("ProductID")
                hfSupplierID.Value = Session("SupplierID")
            End If

            If (Request.QueryString("ProductImage") = 1) Then
                'SaveImage()
                hfProductImage.Value = SaveImage()
            End If

            If Session("SupplierID") Is Nothing And hfSupplierID.Value <> "" Then
                Session("SupplierID") = hfSupplierID.Value.ToString
            End If

            If Session("SupplierID") <> Nothing Then
                hfSupplierID.Value = Session("SupplierID").ToString
            End If

            If Session("ProductID") Is Nothing And hfProduct.Value <> "" Then
                Session("ProductID") = hfProduct.Value.ToString
            End If

            'If (Request.QueryString("ProductCatalog") = 1) Then
            '    'SaveImage()
            '    hfJJCatalog.Value = SaveCatalog()
            'End If

            If (Request.QueryString("Product") <> Nothing) Then
                hfProduct.Value = Request.QueryString("Product").ToString
                Session("ProductID") = hfProduct.Value.ToString
                Session("Product_Kid1") = hfProduct.Value.ToString
            End If

            If hfGetExisting.Value = "1" Then
                GetExisting()
                hfGetExisting.Value = "0"
            End If

            If Page.IsPostBack = False Then
                hfSupplierID.Value = Session("SupplierID")
                If (Request.QueryString("Product") <> Nothing) Then
                    hfProduct.Value = Request.QueryString("Product").ToString
                    Session("ProductID") = hfProduct.Value.ToString
                    Session("Product_Kid1") = hfProduct.Value.ToString
                    'hfSupplierID.Value = Session("SupplierID")
                    hfJJQueryString.Value = "&ProductImage"
                    hfJJCatalog.Value = "&ProductCatalog"
                    CallTechClick()
                ElseIf (Request.QueryString("PEProductID") <> Nothing) Then
                    hfProduct.Value = Request.QueryString("PEProductID").ToString
                    Session("ProductID") = hfProduct.Value.ToString
                    Session("Product_Kid1") = hfProduct.Value.ToString
                    'hfSupplierID.Value = Session("SupplierID")
                    hfJJQueryString.Value = "&ProductImage"
                    hfJJCatalog.Value = "&ProductCatalog"
                    CallTechClick()
                Else
                    Session("Product_Kid1") = Session("ProductID")
                    Session("ProductList") = Nothing
                    Session("ProductID") = Nothing
                    hfProduct.Value = ""
                    hfJJQueryString.Value = "?ProductImage"
                    hfJJCatalog.Value = "?ProductCatalog"
                End If
                fillcombos()
                img = 0
                i = 0
                LoadCategory("Root Category")
                cbosubCategory1.Visible = False
                cbosubCategory2.Visible = False
                cboCategory.Focus()
                DisplayNone()
                lblClick()
                btnSaveClick()
                txtKeyPress()
                BtnClick()

                If (Request.QueryString("Product") <> Nothing) Or Session("ProductID") <> Nothing Then
                    GetExisting()
                    Session("ProductList") = Nothing
                End If

                If (Request.QueryString("PEProductID") <> Nothing) Or Session("ProductID") <> Nothing Then
                    GetExisting()
                    Session("ProductList") = Nothing
                End If

                ddlfillSameAs()
            End If
            'If Page.IsPostBack Then
            '    img = 0
            '    GetExisting()
            'End If
        Catch ex As Exception

        End Try
    End Sub

    Public Sub ddlfillSameAs()
        fillSameAs(trStandardSameAs, ddlStandardSameAs, hypStandatdSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         ProductStandardApproval.ProdStdApproval_FileName as FileName FROM         Product_Master INNER JOIN                       ProductStandardApproval ON Product_Master.Product_Kid = ProductStandardApproval.ProdStdApproval_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (ProductStandardApproval.ProdStdApproval_FileName IS NOT NULL)")
        fillSameAs(trProductMSDSSameAs, ddlProductMSDSSameAs, hypProductMSDSSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         MaterialSafetyDataSheet.MSDS_UploadedDataSheetName as FileName FROM         Product_Master INNER JOIN                       MaterialSafetyDataSheet ON Product_Master.Product_Kid = MaterialSafetyDataSheet.MSDS_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (MaterialSafetyDataSheet.MSDS_UploadedDataSheetName IS NOT NULL)")
        fillSameAs(trProductCatelogeSameAs, ddlProductCatelogeSameAs, hypProductCatelogeSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         Catalog.Catalog_upload as FileName FROM         Product_Master INNER JOIN                       Catalog ON Product_Master.Product_Kid = Catalog.Catalog_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (Catalog.Catalog_upload IS NOT NULL)")
        fillSameAs(trUserManualSameAs, ddlUserManualSameAs, hypUserManualSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         InstallationManual.InstCommManual_UploadedManualFileName as FileName FROM         Product_Master INNER JOIN                       InstallationManual ON Product_Master.Product_Kid = InstallationManual.InstCommManual_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (InstallationManual.InstCommManual_UploadedManualFileName IS NOT NULL)")
        fillSameAs(trPackDetailsSameAs, ddlPackDetailsSameAs, hypPackDetailsSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         ProductPackaging.ProdPackaging_FileName as FileName FROM         Product_Master INNER JOIN                       ProductPackaging ON Product_Master.Product_Kid = ProductPackaging.ProdPackaging_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (ProductPackaging.ProdPackaging_FileName IS NOT NULL)")
        fillSameAs(trSpecialNotesSameAs, ddlSpecialNotesSameAs, hypSpecialNotesSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         ProductSpecialNotesInstruction.ProdSpecInstr_FileName as FileName FROM         Product_Master INNER JOIN                       ProductSpecialNotesInstruction ON Product_Master.Product_Kid = ProductSpecialNotesInstruction.ProdSpecInstr_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (ProductSpecialNotesInstruction.ProdSpecInstr_FileName IS NOT NULL)")
        fillSameAs(trgwSameAs, ddlgwSameAs, hypgwSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         Product_GuarantyWarrantydetails.gwd_FileName as FileName FROM         Product_Master INNER JOIN                       Product_GuarantyWarrantydetails ON Product_Master.Product_Kid = Product_GuarantyWarrantydetails.gwd_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (Product_GuarantyWarrantydetails.gwd_FileName IS NOT NULL)")
        fillSameAs(trInstCommSameAs, ddlInstCommSameAs, hypInstCommSameAs, "SELECT  Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName,         ProductInstallationCommissioning.InstallationComm_FileName as FileName FROM         Product_Master INNER JOIN                       ProductInstallationCommissioning ON Product_Master.Product_Kid = ProductInstallationCommissioning.InstallationComm_ProductId WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (ProductInstallationCommissioning.InstallationComm_FileName IS NOT NULL)")
        fillSameAsConsumable()
    End Sub

    Public Sub fillSameAsConsumable()
        Dim dt As DataTable
        dt = ReturnDataTable("SELECT DISTINCT Product_Master.Product_Name + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS ProductName, Product_Master.Product_Kid FROM         Product_Master INNER JOIN                       Consumables ON Product_Master.Product_Kid = Consumables.c_productid WHERE     (Product_Master.Product_SupplierId = N'" & RemoveLiterals(hfSupplierID.Value.ToString) & "') AND (Product_Master.Product_IsDeleted = N'0') AND (Consumables.c_IsDeleted = N'0') and (Product_KId <> '" & RemoveLiterals(hfProduct.Value.ToString) & "')")
        If dt.Rows.Count > 0 Then
            ddlConsumableSameAs.DataSource = dt
            ddlConsumableSameAs.DataTextField = "ProductName"
            ddlConsumableSameAs.DataValueField = "Product_Kid"
            ddlConsumableSameAs.DataBind()
            ddlConsumableSameAs.Items.Insert(0, New ListItem("Select Existing Product", "Select"))
            trgvConsumableSameAs.Visible = False
        Else
            trConsumableSameAs.Visible = False
            trgvConsumableSameAs.Visible = False
        End If
    End Sub

    Public Sub fillSameAs(ByVal tr As HtmlTableRow, ByVal ddl As DropDownList, ByVal hyp As HyperLink, ByVal strQuery As String)
        Try
            Dim dt As DataTable
            dt = ReturnDataTable(strQuery)
            If dt.Rows.Count > 0 Then
                Dim i, j As Integer
                'Dim count As Integer
                'count = dt.Rows.Count - 1
                For i = 0 To dt.Rows.Count - 1
                    If i > dt.Rows.Count - 1 Then
                        Exit For
                    End If

                    For j = 0 To dt.Rows.Count - 1
                        If j > dt.Rows.Count - 1 Then
                            Exit For
                        End If

                        If (i <> j) Then
                            If (dt.Rows(i).Item("FileName").ToString = dt.Rows(j).Item("FileName").ToString) Then
                                dt.Rows(j).Delete()
                                dt.AcceptChanges()
                                j = j - 1
                                'count = count - 1
                            End If
                        End If
                    Next
                Next

                ddl.DataSource = dt
                ddl.DataTextField = "ProductName"
                ddl.DataValueField = "FileName"
                ddl.DataBind()
                ddl.Items.Insert(0, New ListItem("Select Existing Product", "Select"))
                ddl.Attributes.Add("onchange", "ddlSameAsChange('" & ddl.ClientID.ToString & "','" & hyp.ClientID.ToString & "')")
            Else
                tr.Visible = False
            End If
        Catch ex As Exception

        End Try
    End Sub

    Public Sub CallTechClick()
        btnApplicatin_Click(Nothing, Nothing)
        btncatalogue_Click(Nothing, Nothing)
        btnconsumable_Click(Nothing, Nothing)
        btnfeature_Click(Nothing, Nothing)
        btnGuaranty_Click(Nothing, Nothing)
        btnaccincluded_Click(Nothing, Nothing)
        btnInsttComm_Click(Nothing, Nothing)
        btnproductmsds_Click(Nothing, Nothing)
        btnaccoptional_Click(Nothing, Nothing)
        btnpckdetails_Click(Nothing, Nothing)
        btnstandards_Click(Nothing, Nothing)
        btnspareparts_Click(Nothing, Nothing)
        btnspecialnote_Click(Nothing, Nothing)
        btntechspec_Click(Nothing, Nothing)
        btnUserManual_Click(Nothing, Nothing)
        btnwearntear_Click(Nothing, Nothing)

    End Sub

    Public Sub BtnClick()
        btnApplicatin.Attributes.Add("onmouseover", "return mousehand(this);")
        btncatalogue.Attributes.Add("onmouseover", "return mousehand(this);")
        btnconsumable.Attributes.Add("onmouseover", "return mousehand(this);")
        btnfeature.Attributes.Add("onmouseover", "return mousehand(this);")
        btnGuaranty.Attributes.Add("onmouseover", "return mousehand(this);")
        btnaccincluded.Attributes.Add("onmouseover", "return mousehand(this);")
        btnInsttComm.Attributes.Add("onmouseover", "return mousehand(this);")
        btnproductmsds.Attributes.Add("onmouseover", "return mousehand(this);")
        btnaccoptional.Attributes.Add("onmouseover", "return mousehand(this);")
        btnpckdetails.Attributes.Add("onmouseover", "return mousehand(this);")
        btnstandards.Attributes.Add("onmouseover", "return mousehand(this);")
        btnspareparts.Attributes.Add("onmouseover", "return mousehand(this);")
        btnspecialnote.Attributes.Add("onmouseover", "return mousehand(this);")
        btntechspec.Attributes.Add("onmouseover", "return mousehand(this);")
        btnUserManual.Attributes.Add("onmouseover", "return mousehand(this);")
        btnwearntear.Attributes.Add("onmouseover", "return mousehand(this);")


        btnApplicatin.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblApplication.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btncatalogue.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblCataloge.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnconsumable.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblConsumables.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnfeature.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblFeature.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnGuaranty.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblguwarranty.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnaccincluded.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblAccIncluded.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnInsttComm.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblInstallationCommissioning.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnproductmsds.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblProductMSDS.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnaccoptional.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblAccOptional.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnpckdetails.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblPackagingDetails.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnstandards.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblStandards.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnspareparts.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblSpareParts.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnspecialnote.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblSpecialNotes.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btntechspec.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblTechnicalSpecification.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnUserManual.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblUserManual.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")
        btnwearntear.Attributes.Add("onclick", "return JJTechSpecClick(this,'" & tblWearAndTear.ClientID.ToString & "','" & CType(Me.Page.FindControl("hfProduct"), HiddenField).ClientID.ToString & "');")



        'btnApplicatin.Attributes.Add("onclick", "return imgmouseover(this,'" & tblApplication.ClientID.ToString & "');")
        'btncatalogue.Attributes.Add("onclick", "return imgmouseover(this,'" & tblCataloge.ClientID.ToString & "');")
        'btnconsumable.Attributes.Add("onclick", "return imgmouseover(this,'" & tblConsumables.ClientID.ToString & "');")
        'btnfeature.Attributes.Add("onclick", "return imgmouseover(this,'" & tblFeature.ClientID.ToString & "');")
        'btnGuaranty.Attributes.Add("onclick", "return imgmouseover(this,'" & tblGuatantyWarranty.ClientID.ToString & "');")
        'btnaccincluded.Attributes.Add("onclick", "return imgmouseover(this,'" & tblAccIncluded.ClientID.ToString & "');")
        'btnInsttComm.Attributes.Add("onclick", "return imgmouseover(this,'" & tblInstallationCommissioning.ClientID.ToString & "');")
        'btnproductmsds.Attributes.Add("onclick", "return imgmouseover(this,'" & tblProductMSDS.ClientID.ToString & "');")
        'btnaccoptional.Attributes.Add("onclick", "return imgmouseover(this,'" & tblAccOptional.ClientID.ToString & "');")
        'btnpckdetails.Attributes.Add("onclick", "return imgmouseover(this,'" & tblPackagingDetails.ClientID.ToString & "');")
        'btnstandards.Attributes.Add("onclick", "return imgmouseover(this,'" & tblStandards.ClientID.ToString & "');")
        'btnspareparts.Attributes.Add("onclick", "return imgmouseover(this,'" & tblSpareParts.ClientID.ToString & "');")
        'btnspecialnote.Attributes.Add("onclick", "return imgmouseover(this,'" & tblSpecialNotes.ClientID.ToString & "');")
        'btntechspec.Attributes.Add("onclick", "return imgmouseover(this,'" & tblTechnicalSpecification.ClientID.ToString & "');")
        'btnUserManual.Attributes.Add("onclick", "return imgmouseover(this,'" & tblUserManual.ClientID.ToString & "');")
        'btnwearntear.Attributes.Add("onclick", "return imgmouseover(this,'" & tblWearAndTear.ClientID.ToString & "');")


        'ImgApplication.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblApplication.ClientID.ToString & "');")
        'ImgCatalog.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblCatalog.ClientID.ToString & "');")
        'ImgConsumables.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblConsumables.ClientID.ToString & "');")
        'ImgFeatures.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblFeature.ClientID.ToString & "');")
        'ImgGuarantyWarranty.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblGarantyWaranty.ClientID.ToString & "');")
        'ImgIncludedAccess.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblIncludedAccess.ClientID.ToString & "');")
        'ImgInstallationCommissioning.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblInstComm.ClientID.ToString & "');")
        'ImgMSDS.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblMSDS.ClientID.ToString & "');")
        'ImgOptionalAccess.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblOptionalAccess.ClientID.ToString & "');")
        'ImgPackagingDetails.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblPackaging.ClientID.ToString & "');")
        'ImgProductStandardApproval.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblStandardApproval.ClientID.ToString & "');")
        'ImgSpareParts.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblSpareParts.ClientID.ToString & "');")
        'ImgSpecialNotes.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblSpecialNotes.ClientID.ToString & "');")
        'ImgTechSpecification.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblTechSpeci.ClientID.ToString & "');")
        'ImgUserManual.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblUserManual.ClientID.ToString & "');")
        'ImgWearAndTear.Attributes.Add("onmouseout", "return imgmouseout(this,'" & tblWearAndTear.ClientID.ToString & "');")


    End Sub

    Private Function SaveImage() As String

        Try
            Dim file_name As String
            If fuJJProductImage.HasFile Then
                file_name = ""
                Dim folderpath As String = Server.MapPath("~/Upload Image/Product Image/UploadImages/")
                'file_name = ReturnValue("Select Product_Image from Product_Master Where Product_Kid ='" & RemoveLiterals(hfProduct.Value.ToString) & "'and Product_IsDeleted = '0'")
                file_name = Image_upload(fuJJProductImage, img, folderpath, file_name)
                JJKeepAspectRatioNew(imgJJProductImage, folderpath & file_name, 160, 150)
                imgJJProductImage.ImageUrl = "~/Upload Image/Product Image/UploadImages/" & file_name
                'lblJJProductImage.Text = file_name
                'lblJJProductImage.Style.Add("color", "balck")
                ExecuteQuery("Update Product_Master Set Product_Image = '" & file_name & "' ,Product_ClientIP='" & ClientIP & "' where Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "'")
                System.Threading.Thread.Sleep(1000)
                Return file_name
            End If
        Catch

        End Try

    End Function

    '=======================For  Upload All Image in Jpeg format and user define size BY Pankaj Mishra
    Public Function Image_upload(ByRef fileup As FileUpload, ByVal i As Integer, ByVal folderpath As String, ByVal existfile As String) As String
        Try
            Dim filetype As String = Path.GetExtension(fileup.FileName)
            Dim j As Integer = Len(filetype)
            Dim filename As String = fileup.FileName
            '------updated by Prachi - 03/09/2009 - to generate unique guid for image uploaded by client------
            Dim file As String = Convert.ToString(System.Guid.NewGuid())
            filename = file & filetype
            'Dim file As String = Mid(fileup.FileName, 1, Len(filename) - j)
            'If existfile = "" Then
            '    While System.IO.File.Exists(folderpath & filename) ' function for checking file already exist
            '        i = i + 1
            '        filename = file & i & filetype
            '    End While
            'Else
            '    filename = existfile
            '    If FileIsLocked(folderpath & filename) = False Then
            '        System.IO.File.SetAttributes(folderpath & filename, FileAttributes.Normal)
            '    End If
            'End If
            '------end update------

            Dim filepath As String = folderpath & filename
            fileup.SaveAs(filepath)
            fileup.Dispose()
            'set a working directory
            Dim WorkingDirectory As String = folderpath

            'create a image object containing a verticel photograph
            Dim imgPhotoVert As Image = Image.FromFile(WorkingDirectory & filename)
            Dim imgPhotoHoriz As Image = Image.FromFile(WorkingDirectory & filename)
            Dim imgPhoto As Image = Nothing
            If imgPhotoVert.Height >= 650 Then
                imgPhoto = ConstrainProportions(imgPhotoVert, 650, Dimensions.Width, 650)
            ElseIf imgPhotoVert.Width >= 650 Then
                imgPhoto = ConstrainProportions(imgPhotoVert, 650, Dimensions.Height, 650)
            ElseIf imgPhotoVert.Height <= 200 Then
                imgPhoto = ConstrainProportions(imgPhotoVert, 250, 0, 250)
            ElseIf imgPhotoVert.Width <= 250 Then
                imgPhoto = ConstrainProportions(imgPhotoVert, 200, 1, 250)
            Else
                imgPhoto = ConstrainProportions(imgPhotoVert, imgPhotoVert.Width, Dimensions.Width, imgPhotoVert.Width)
            End If
            imgPhotoVert.Dispose()
            imgPhotoHoriz.Dispose()
            imgPhoto.Save(WorkingDirectory & filename)
            imgPhoto.Dispose()
            Return filename
        Catch ex As Exception

        End Try
    End Function

    Private Function SaveCatalog() As String

        Try
            Dim file_name As String
            If FileUploadCatalog.HasFile Then
                file_name = ""
                Dim folderpath As String = Server.MapPath("~/Upload Image/Product Image/UploadImages/")
                file_name = Final_FileUpload(FileUploadCatalog, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))

                Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
                con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File

                Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
                cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
                cmd.CommandText = "Catalog_Proc"                                        'Assign the Name of Stored Procedure, to Execute
                cmd.Connection = con                                                            'Assign the connection

                cmd.Parameters.Add(New SqlParameter("@Catalog_kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
                cmd.Parameters.Add(New SqlParameter("@Catalog_code", SqlDbType.NVarChar, 25)).Value = GenerateCatalogCode().ToString        'Add Parameter MSDS_Code and assign the value of txtMSDS_Code TextField to it
                'If rblProductCataloge.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@Catalog_pcatalog", SqlDbType.NVarChar, 1)).Value = "Y"
                'Else
                '    cmd.Parameters.Add(New SqlParameter("@Catalog_pcatalog", SqlDbType.NVarChar, 1)).Value = "N"
                'End If

                cmd.Parameters.Add(New SqlParameter("@Catalog_upload", SqlDbType.NVarChar, 100)).Value = file_name.ToString   'strImageName 'Session("UploadFile")
                cmd.Parameters.Add(New SqlParameter("@Catalog_Adminupload", SqlDbType.NVarChar, 100)).Value = "" 'AdminStrImageName 'Session("UploadFile")
                cmd.Parameters.Add(New SqlParameter("@Catalog_productid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
                cmd.Parameters.Add(New SqlParameter("@Catalog_companyid", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
                cmd.Parameters.Add(New SqlParameter("@Catalog_userid", SqlDbType.NVarChar, 20)).Value = Session("g_User")       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
                cmd.Parameters.Add(New SqlParameter("@Catalog_financialyearid", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")            'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
                cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Catalog"                           'Add Parameter FormName and assign the name of form to it
                cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                con.Open()
                cmd.ExecuteNonQuery()                                                           'Execute the Query
                con.Close()
                GenerateCatalogCode()
                displayone(tblCataloge)
                CreateMessageAlert(Me, "Product Cataloge saved successfully.!", "strkeyval")
                getCatalogExistingData()
                'ExecuteQuery("Update Product_Master Set Product_Image = '" & file_name & "' where Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "'")
                System.Threading.Thread.Sleep(1000)
                Return file_name
            End If
        Catch

        End Try

    End Function

    Sub JJKeepAspectRatioNew(ByRef Image1 As System.Web.UI.WebControls.Image, ByVal FilePath As String, ByVal newWidth As Long, ByVal newHeight As Long)
        Dim x As Long
        Dim y As Long
        Dim nx As Long
        Dim ny As Long
        Dim img As Image = Nothing
        If FilePath = "" Or IsDBNull(FilePath) Then
            Image1.Visible = False
            Exit Sub
        End If
        If System.IO.File.Exists(FilePath) = False Then
            Image1.Visible = False
            Exit Sub
        End If
        img = System.Drawing.Image.FromFile(FilePath)
        Dim nPercent As Single = 0
        x = img.Height
        y = img.Width
        nx = newHeight
        ny = newWidth


        If (y = ny Or y > ny) Then
            '========13.01.09
            'ny = (y * nx) / x
            'If (ny = newWidth Or ny < newWidth) Then
            '    Image1.Height = nx
            '    Image1.Width = ny
            'Else
            '    x = nx
            '    y = ny
            '    ny = newWidth
            '    nx = (x * ny) / y
            '    Image1.Height = nx
            '    Image1.Width = ny
            'End If
            nPercent = (CSng(ny) / CSng(y))
            Image1.Width = CInt((y * nPercent))
            Image1.Height = CInt((x * nPercent))
            hfJJWidth.Value = CInt((y * nPercent))
            hfJJHeight.Value = CInt((x * nPercent))
            x = Image1.Height.Value
            y = Image1.Width.Value
            If (x = nx Or x > nx) Then
                nPercent = (CSng(nx) / CSng(x))
                Image1.Width = CInt((y * nPercent))
                Image1.Height = CInt((x * nPercent))

                hfJJWidth.Value = CInt((y * nPercent))
                hfJJHeight.Value = CInt((x * nPercent))

            End If

        ElseIf (x = nx Or x > nx) Then
            nPercent = (CSng(nx) / CSng(x))
            Image1.Width = CInt((y * nPercent))
            Image1.Height = CInt((x * nPercent))
            hfJJWidth.Value = CInt((y * nPercent))
            hfJJHeight.Value = CInt((x * nPercent))
            '========13.01.09
            'nx = (x * ny) / y
            'If (nx = newHeight Or nx < newHeight) Then
            '    Image1.Height = nx
            '    Image1.Width = ny
            'Else
            '    x = nx
            '    y = ny
            '    nx = newHeight
            '    ny = (y * nx) / x
            '    Image1.Height = nx
            '    Image1.Width = ny
            'End If
        Else                 '========13.01.09
            Image1.Width = y
            Image1.Height = x
            hfJJWidth.Value = y
            hfJJHeight.Value = x
        End If
    End Sub

    Public Sub GetExisting()
        If hfProduct.Value <> "" Then
            tbl1.Style.Add("display", "none")
            T1.Visible = True
            Label1.Visible = False
            T1.Style.Add("display", "auto")
            Dim dt As DataTable
            'Dim getexistDT As DataTable
            'If IsNothing(ViewState("getexistDT")) Then
            '    ViewState("getexistDT") = ReturnDataTable("Select * From Product_Master Where Product_SupplierID = '" & Session("SupplierID").ToString & "'and Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "'and Product_IsDeleted = '0'")
            'End If
            dt = ReturnDataTable("Select * From Product_Master Where Product_SupplierID = '" & Session("SupplierID").ToString & "'and Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "'and Product_IsDeleted = '0'") ' CType(ViewState("getexistDT"), DataTable).DefaultView.ToTable
            If dt.Rows.Count > 0 Then
                'DisplayAuto()
                tdJJCategorySuggest.Visible = False
                lblCat.Text = "<b>Product Category::</b> <br/>"
                'FillCategoryName(RemoveLiterals(dt.Rows(0).Item("Product_CategoryId")).ToString.Trim, lblCat)
                lblCat.Text += fillcategory(RemoveLiterals(dt.Rows(0).Item("Product_CategoryId")).ToString.Trim)
                hfCategory.Value = dt.Rows(0).Item("Product_CategoryId").ToString

                Dim dtCat As New DataTable
                dtCat = ReturnDataTable("Select ProductCategory_CategoryID from ProductCategory_Master where ProductCategory_ProductID='" & RemoveLiterals(hfProduct.Value.ToString) & "' and ProductCategory_CategoryID <>'" & RemoveLiterals(dt.Rows(0).Item("Product_CategoryId")).ToString.Trim & "' ")
                If dtCat.Rows.Count > 0 Then
                    Dim dtCatCount As Integer
                    For dtCatCount = 0 To dtCat.Rows.Count - 1
                        lblCat.Text += "<br/>" & fillcategory(RemoveLiterals(dtCat.Rows(dtCatCount).Item("ProductCategory_CategoryId")).ToString.Trim)
                    Next
                End If
                lblCat.Visible = True

                If IsDBNull(dt.Rows(0).Item("Product_Code")) Or dt.Rows(0).Item("Product_Code").ToString = "" Or dt.Rows(0).Item("Product_Code").ToString = "&nbsp;" Then
                    lblJJAtcomaartProductCode.Text = """Will be generate after approval."""
                    lblJJAtcomaartProductCode.Style.Add("font-size", "8pt")
                Else
                    lblJJAtcomaartProductCode.Text = dt.Rows(0).Item("Product_Code").ToString()
                End If

                '   Product_code = lblProductCode.Text.ToString
                If IsDBNull(dt.Rows(0).Item("Product_Name")) Or dt.Rows(0).Item("Product_Name").ToString = "" Then
                Else
                    lblJJProductNameValue.Text = dt.Rows(0).Item("Product_Name").ToString()
                    lblJJProductName.Text = "Edit"
                    If txtJJProductName.Text = "" Then
                        txtJJProductName.Text = dt.Rows(0).Item("Product_Name").ToString
                    End If
                    'txtJJProductName.Text = dt.Rows(0).Item("Product_Name").ToString
                End If

                If IsDBNull(dt.Rows(0).Item("Product_Image")) Or dt.Rows(0).Item("Product_Image").ToString = "" Then
                Else
                    'lblJJProductImageValue.Text = dt.Rows(0).Item("Product_Image").ToString()
                    lblJJProductImageValue.Text = ""
                    lblJJProductImage.Text = "Edit" 'dt.Rows(0).Item("Product_Image").ToString()
                    Dim folderp As String
                    folderp = Page.ResolveUrl("~/Upload Image/Product Image/UploadImages/")
                    imgJJProductImage.ImageUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("Product_Image").ToString()
                    If System.IO.File.Exists(Server.MapPath(imgJJProductImage.ImageUrl)) Then
                        Dim imgpath As String
                        imgpath = Server.MapPath(imgJJProductImage.ImageUrl)
                        KeepAspectRatioNew(imgJJProductImage, imgpath, 180, 150)
                    Else
                        imgJJProductImage.ImageUrl = Page.ResolveUrl("~/Images/no-product-image.JPG")
                    End If


                End If

                If IsDBNull(dt.Rows(0).Item("Product_MarketPriceType")) Or dt.Rows(0).Item("Product_MarketPriceType").ToString = "" Then
                    lblJJProductPriceValue.Text = " "
                Else
                    Try
                        ddlJJProductPriceType.ClearSelection()
                        lblJJProductPriceValue.Text = ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_MarketPriceType").ToString() & "'and Unit_IsDeleted ='0'")
                        lblJJProductPrice.Text = "Edit" 'ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_MarketPriceType").ToString() & "'and Unit_IsDeleted ='0'")
                        ddlJJProductPriceType.Items.FindByValue(ReturnValue("Select Unit_Kid from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_MarketPriceType").ToString() & "'and Unit_IsDeleted ='0'")).Selected = True
                    Catch ex As Exception
                        ddlJJProductPriceType.ClearSelection()
                    End Try

                End If
                'lblJJProductPriceValue.Text = " "
                If IsDBNull(dt.Rows(0).Item("Product_MarketPrice")) Or dt.Rows(0).Item("Product_MarketPrice").ToString = "" Then
                Else
                    lblJJProductPriceValue.Text = lblJJProductPriceValue.Text & " " & dt.Rows(0).Item("Product_MarketPrice").ToString()
                    lblJJProductPrice.Text = "Edit" '& dt.Rows(0).Item("Product_MarketPrice").ToString()
                    txtJJProductPrice.Text = dt.Rows(0).Item("Product_MarketPrice").ToString()

                End If

                If IsDBNull(dt.Rows(0).Item("Product_BrandId")) Or dt.Rows(0).Item("Product_BrandId").ToString = "" Then
                Else
                    Try

                        ddlJJProductBrand.ClearSelection()
                        lblJJProductBrandValue.Text = ReturnValue("Select Brand_Name from Brand_Master where Brand_Kid ='" & dt.Rows(0).Item("Product_BrandId").ToString() & "'and Brand_IsDeleted ='0'")
                        lblJJProductBrand.Text = "Edit" 'ReturnValue("Select Brand_Name from Brand_Master where Brand_Kid ='" & dt.Rows(0).Item("Product_BrandId").ToString() & "'and Brand_IsDeleted ='0'")
                        ddlJJProductBrand.Items.FindByValue(dt.Rows(0).Item("Product_BrandId").ToString()).Selected = True
                    Catch ex As Exception
                        ddlJJProductBrand.ClearSelection()
                    End Try
                End If

                If IsDBNull(dt.Rows(0).Item("Product_ModelNo")) Or dt.Rows(0).Item("Product_ModelNo").ToString = "" Then

                Else

                    lblJJProductMfgModelNoValue.Text = dt.Rows(0).Item("Product_ModelNo").ToString()
                    lblJJProductMfgModelNo.Text = "Edit" 'dt.Rows(0).Item("Product_ModelNo").ToString()
                    txtJJProductMfgModelNo.Text = dt.Rows(0).Item("Product_ModelNo").ToString()

                End If


                If IsDBNull(dt.Rows(0).Item("Product_MinOrderQty")) Or dt.Rows(0).Item("Product_MinOrderQty").ToString = "" Then
                Else

                    lblJJProductMinSellQtyValue.Text = dt.Rows(0).Item("Product_MinOrderQty").ToString()
                    lblJJProductMinSellQty.Text = "Edit" 'dt.Rows(0).Item("Product_MinOrderQty").ToString()
                    txtJJProductMinSellQty.Text = dt.Rows(0).Item("Product_MinOrderQty").ToString()

                End If
                If IsDBNull(dt.Rows(0).Item("Product_MinOrderQtyType")) Or dt.Rows(0).Item("Product_MinOrderQtyType").ToString = "" Then
                Else
                    Try

                        ddlJJProductMinSellQtyType.ClearSelection()
                        lblJJProductMinSellQtyValue.Text += "  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_MinOrderQtyType").ToString() & "'and Unit_IsDeleted ='0'")
                        lblJJProductMinSellQty.Text = "Edit" '& ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_MinOrderQtyType").ToString() & "'and Unit_IsDeleted ='0'")
                        ddlJJProductMinSellQtyType.Items.FindByValue(dt.Rows(0).Item("Product_MinOrderQtyType").ToString()).Selected = True
                    Catch ex As Exception
                        ddlJJProductMinSellQtyType.ClearSelection()
                    End Try
                End If

                If IsDBNull(dt.Rows(0).Item("Product_ShippingQty")) Or dt.Rows(0).Item("Product_ShippingQty").ToString = "" Then
                Else

                    lblJJProductMinShipQtyValue.Text = dt.Rows(0).Item("Product_ShippingQty").ToString()
                    lblJJProductMinShipQty.Text = "Edit" 'dt.Rows(0).Item("Product_ShippingQty").ToString()
                    txtJJProductMinShipQty.Text = dt.Rows(0).Item("Product_ShippingQty").ToString()

                End If
                If IsDBNull(dt.Rows(0).Item("Product_ShippingQtyType")) Or dt.Rows(0).Item("Product_ShippingQtyType").ToString = "" Then
                Else
                    Try

                        ddlJJProductMinShipQtyType.ClearSelection()
                        lblJJProductMinShipQtyValue.Text += "  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_ShippingQtyType").ToString() & "'and Unit_IsDeleted ='0'")
                        lblJJProductMinShipQty.Text = "Edit" '  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_ShippingQtyType").ToString() & "'and Unit_IsDeleted ='0'")
                        ddlJJProductMinShipQtyType.Items.FindByValue(dt.Rows(0).Item("Product_ShippingQtyType").ToString()).Selected = True
                    Catch ex As Exception
                        ddlJJProductMinShipQtyType.ClearSelection()
                    End Try
                End If


                If IsDBNull(dt.Rows(0).Item("Product_DeliveryPeriod")) Or dt.Rows(0).Item("Product_DeliveryPeriod").ToString = "" Then
                Else


                    lblJJProductDispatchedInValue.Text = dt.Rows(0).Item("Product_DeliveryPeriod").ToString()
                    lblJJProductDispatchedIn.Text = "Edit" 'dt.Rows(0).Item("Product_DeliveryPeriod").ToString()
                    txtJJProductDispatchedIn.Text = dt.Rows(0).Item("Product_DeliveryPeriod").ToString()

                End If
                If IsDBNull(dt.Rows(0).Item("Product_DeliveryPeriodType")) Or dt.Rows(0).Item("Product_DeliveryPeriodType").ToString = "" Then
                Else
                    Try

                        ddlJJProductDispatchedInType.ClearSelection()
                        lblJJProductDispatchedInValue.Text += "  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_DeliveryPeriodType").ToString() & "'and Unit_IsDeleted ='0'")
                        lblJJProductDispatchedIn.Text = "Edit" '  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_DeliveryPeriodType").ToString() & "'and Unit_IsDeleted ='0'")
                        ddlJJProductDispatchedInType.Items.FindByValue(dt.Rows(0).Item("Product_DeliveryPeriodType").ToString()).Selected = True
                        'End If
                    Catch ex As Exception
                        ddlJJProductDispatchedInType.ClearSelection()
                    End Try
                End If

                If IsDBNull(dt.Rows(0).Item("Product_Weight")) Or dt.Rows(0).Item("Product_Weight").ToString = "" Then
                Else

                    lblJJProductShippingWeightValue.Text = dt.Rows(0).Item("Product_Weight").ToString()
                    lblJJProductShippingWeight.Text = "Edit" 'dt.Rows(0).Item("Product_Weight").ToString()
                    txtJJPRoductShippingWeight.Text = dt.Rows(0).Item("Product_Weight").ToString()

                End If
                If IsDBNull(dt.Rows(0).Item("Product_WeightUnitId")) Or dt.Rows(0).Item("Product_WeightUnitId").ToString = "" Then
                Else
                    Try

                        ddlJJProductShippingWeightType.ClearSelection()
                        lblJJProductShippingWeightValue.Text += "  " & ReturnValue("Select Unit_Name from Unit_Master where Unit_Kid ='" & dt.Rows(0).Item("Product_WeightUnitId").ToString() & "'and Unit_IsDeleted ='0' AND Unit_Flag = 'Weight'")
                        lblJJProductShippingWeight.Text = "Edit" ' dt.Rows(0).Item("Product_Weight").ToString()
                        ddlJJProductShippingWeightType.Items.FindByValue(dt.Rows(0).Item("Product_WeightUnitId").ToString()).Selected = True
                    Catch ex As Exception
                        ddlJJProductShippingWeightType.ClearSelection()
                    End Try

                End If

                If IsDBNull(dt.Rows(0).Item("Product_Dimension")) Or dt.Rows(0).Item("Product_Dimension").ToString = "" Then
                Else
                    Try
                        Dim str, str1, str2 As String
                        str = dt.Rows(0).Item("Product_Dimension")
                        Dim i As Integer = InStr(str, "x", CompareMethod.Text)
                        str1 = Mid(str, 1, i - 1)
                        str = Mid(str, i + 1, Len(str))
                        i = InStr(str, "x", CompareMethod.Text)
                        str2 = Mid(str, 1, i - 1)
                        str = Mid(str, i + 1, Len(str))
                        txtJJProductShippingDimensionL.Text = Val(str1)
                        txtJJProductShippingDimensionW.Text = Val(str2)
                        txtJJProductShippingDimensionH.Text = Val(str)
                        lblJJProductShippingDimensionValue.Text = dt.Rows(0).Item("Product_Dimension").ToString() & "  (mm) "
                        lblJJProductShippingDimension.Text = "Edit" 'dt.Rows(0).Item("Product_Dimension").ToString() & "  (mm) "

                    Catch ex As Exception
                        txtJJProductShippingDimensionL.Text = ""
                        txtJJProductShippingDimensionH.Text = ""
                        txtJJProductShippingDimensionW.Text = ""
                    End Try

                End If



                If IsDBNull(dt.Rows(0).Item("Product_Description")) Or dt.Rows(0).Item("Product_Description").ToString = "" Then

                Else
                    lblJJProductDescriptionValue.Text = dt.Rows(0).Item("Product_Description").ToString()
                    lblJJProductDescription.Text = "Edit"
                    txtJJProductDescription.Text = dt.Rows(0).Item("Product_Description").ToString()

                End If

                If IsDBNull(dt.Rows(0).Item("Product_PcsPerKg")) Or dt.Rows(0).Item("Product_PcsPerKg").ToString = "" Then

                Else
                    lblJJProductPcsPerCartonPckgValue.Text = dt.Rows(0).Item("Product_PcsPerKg").ToString()
                    lblJJProductPcsPerCartonPckg.Text = "Edit" ' dt.Rows(0).Item("Product_PcsPerKg").ToString()
                    txtJJProductPcsPerCartonPckg.Text = dt.Rows(0).Item("Product_PcsPerKg").ToString()

                End If

            End If
            dt.Clear()
        Else
            Exit Sub
        End If
    End Sub

    Public Sub txtKeyPress()
        txtJJProductPrice.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductMinSellQty.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductMinShipQty.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJPRoductShippingWeight.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductShippingDimensionH.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductShippingDimensionL.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductShippingDimensionW.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductDispatchedIn.Attributes.Add("onkeypress", "return decimalonly(event,this)")
        txtJJProductPcsPerCartonPckg.Attributes.Add("onkeypress", "return decimalonly(event,this)")
    End Sub

    Public Sub btnSaveClick()
        btnJJProductNameSave.Attributes.Add("onclick", "return CheckProductName();")
        btnJJProductDescriptionSave.Attributes.Add("onclick", "return CheckProductDescription();")
        btnJJProductPriceSave.Attributes.Add("onclick", "return CheckProductPrice();")
        btnJJProductBrandSave.Attributes.Add("onclick", "return CheckProductBrand();")
        btnJJProductMfgModelNoSave.Attributes.Add("onclick", "return CheckProductMfgModelNo();")
        btnJJProductMinSellQtySave.Attributes.Add("onclick", "return CheckProductMinSellQty();")
        btnJJProductMinShipQtySave.Attributes.Add("onclick", "return CheckProductMinShipQty();")
        btnJJProductShippingWeightSave.Attributes.Add("onclick", "return CheckProductShippingWeight();")
        btnJJProductShippingDimensionSave.Attributes.Add("onclick", "return CheckProductShippingDimension();")
        btnJJProductPcsPerCartonPckgSave.Attributes.Add("onclick", "return CheckProductPcsPerCartonPckg();")
        btnJJProductDispatchedInSave.Attributes.Add("onclick", "return CheckProductDispatchIn();")
        btnJJProductImageSave.Attributes.Add("onclick", "return CheckProductImage();")

    End Sub

    Public Sub lblClick()
        Dim strSuppID, strgUser, strFinYear, strgCompany As String
        strSuppID = Session("SupplierID").ToString
        strgUser = Session("g_User").ToString
        strFinYear = Session("g_FinYear").ToString
        strgCompany = Session("g_Company").ToString
        If strSuppID.Contains("\") Then
            strSuppID = strSuppID.Replace("\", "\\")
        End If

        If strgUser.Contains("\") Then
            strgUser = strgUser.Replace("\", "\\")
        End If
        If strFinYear.Contains("\") Then
            strFinYear = strFinYear.Replace("\", "\\")
        End If
        If strgCompany.Contains("\") Then
            strgCompany = strgCompany.Replace("\", "\\")
        End If

        lblJJProductName.Attributes.Add("onclick", "return ProductName('" & RemoveLiterals(strSuppID) & "','" & RemoveLiterals(strgUser) & "','" & RemoveLiterals(strFinYear) & "','" & RemoveLiterals(strgCompany) & "');")
        lblJJProductDescription.Attributes.Add("onclick", "return ProductDescription();")
        lblJJProductPrice.Attributes.Add("onclick", "return ProductPrice();")
        lblJJProductBrand.Attributes.Add("onclick", "return ProductBrand();")
        lblJJProductMfgModelNo.Attributes.Add("onclick", "return ProductMfgModelNo();")
        lblJJProductMinSellQty.Attributes.Add("onclick", "return ProductMinSellQty();")
        lblJJProductMinShipQty.Attributes.Add("onclick", "return ProductMinShipQty();")
        lblJJProductShippingWeight.Attributes.Add("onclick", "return ProductShippingWeight();")
        lblJJProductShippingDimension.Attributes.Add("onclick", "return ProductShippingDimension();")
        lblJJProductPcsPerCartonPckg.Attributes.Add("onclick", "return ProductPcsPerCartonPckg();")
        lblJJProductDispatchedIn.Attributes.Add("onclick", "return ProductDispatchedIn();")
        lblJJProductImage.Attributes.Add("onclick", "return ProductImage();")
        lblJJProductTax.Attributes.Add("onclick", "return ProductTax();")
        lblProdAddInfo.Attributes.Add("onclick", "return ProdAddInfo();")
        btnBrandSave.Attributes.Add("onclick", "return CheckBrand('" & RemoveLiterals(strSuppID) & "');")
        ddlJJProductBrand.Attributes.Add("onchange", "return checkBrandValue();")
        btnBrandClose.Attributes.Add("onclick", "return checkBrandClose();")

    End Sub

    Public Sub fillcombos()
        Try
            Fill_Combo("SELECT distinct Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Amount' and unit_IsDeleted='0' and unit_CompanyId = '" & Session("g_Company").ToString() & "' order by unit_name", ddlJJProductPriceType)
            ddlJJProductPriceType.Items.FindByText("Rs.").Selected = True
            Fill_Combo("SELECT distinct Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Qty' and unit_IsDeleted='0' and unit_CompanyId = '" & Session("g_Company").ToString() & "' order by unit_name", ddlJJProductMinSellQtyType)
            ddlJJProductMinSellQtyType.Items.FindByText("Pcs").Selected = True
            Fill_Combo("SELECT distinct Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Qty' and unit_IsDeleted='0' and unit_CompanyId = '" & Session("g_Company").ToString() & "' order by unit_name", ddlJJProductMinShipQtyType)
            ddlJJProductMinShipQtyType.Items.FindByText("Pcs").Selected = True
            Fill_Combo("SELECT distinct Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Days' and unit_IsDeleted='0' and unit_CompanyId = '" & Session("g_Company").ToString() & "' order by unit_name", ddlJJProductDispatchedInType)
            ddlJJProductDispatchedInType.Items.FindByText("Days").Selected = True
            Fill_Combo("SELECT distinct Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Weight' and unit_IsDeleted='0' and unit_CompanyId = '" & Session("g_Company").ToString() & "' order by unit_name", ddlJJProductShippingWeightType)
            ddlJJProductShippingWeightType.Items.FindByText("Kg").Selected = True

            Dim strSupID As String
            strSupID = RemoveLiterals(Session("SupplierID").ToString)
            If strSupID.Contains("[") Then
                strSupID = strSupID.Replace("[", "[[]")
                'ElseIf strSupID.Contains("]") Then
                '    strSupID = strSupID.Replace("]", "[]]")
            End If

            Fill_Combo("Select Brand_Kid, Brand_Name From Brand_Master where Brand_IsDeleted = '0' and Brand_CompanyId like '%" & strSupID & "%'  order by Brand_Name", ddlJJProductBrand)
            ddlJJProductBrand.Items.Insert(ddlJJProductBrand.Items.Count, "Add Your Brand")

        Catch ex As Exception
            '  Response.Output.Write("Server error: " & ex.Message.ToString.ToUpperInvariant())
        End Try
    End Sub

    <Ajax.AjaxMethod()> _
    Public Function InsertProductName(ByVal mode As String, ByVal Product_Name As String, ByVal Product_CategoryID As String, ByVal Product_SupplierID As String, ByVal g_User As String, ByVal g_Company As String, ByVal g_FinYear As String) As String()
        Dim ProductName, ProductCode, ProductKId As String

        Try

            Dim Result(2) As String
            ProductName = Product_Name  'StrConv(Product_Name, VbStrConv.ProperCase)
            If mode = "i" Then
                '' ProductCode = GenerateProductCode(RemoveLiterals(Product_SupplierID.ToString.Trim))
                ProductKId = NewPrimaryKey(Me)
                ExecuteQuery("insert into Product_Master(Product_Kid,Product_Name, Product_RegDate, Product_CategoryId, Product_SupplierID, Product_UserId, Product_Approved, Product_FinancialYearId, Product_CompanyId,Product_ClientIP, Product_IsDeleted) Values ( '" & ProductKId & "','" & ProductName & "','" & Date.Now & "' , '" & Product_CategoryID.ToString & "' , '" & Product_SupplierID.ToString & "', '" & g_User.ToString & "','C', '" & g_FinYear.ToString & "','" & g_Company.ToString & "','" & ClientIP & "', '0')")
                'hfProduct.Value = ProductKId
                Result(0) = ProductKId.ToString
                Result(1) = "" 'ProductCode.ToString
                Result(2) = ProductName.ToString
            ElseIf mode = "u" Then
                ProductKId = Product_CategoryID.ToString
                Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
                cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
                cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
                cmd.Connection = con                                                            'Assign the connection
                cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_Name" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
                cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 150)).Value = ProductName.ToString  'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
                cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                cmd.ExecuteNonQuery()
                'ProductKId = Product_CategoryID.ToString
                'ProductCode = ReturnValue("Select Product_Code from Product_Master where Product_KId ='" & ProductKId.ToString & "'")
                'ExecuteQuery("update Product_Master set Product_Name ='" & ProductName.ToString.ToString & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_CategoryID.ToString & "'")
                'Result(0) = ProductKId.ToString
                'Result(1) = ProductCode.ToString
                'Result(2) = ProductName.ToString
            End If


            Return Result

        Catch ex As Exception
            ExecuteQuery("delete from Product_Master where Product_KId ='" & ProductKId.ToString & "'")
        End Try

    End Function

    <Ajax.AjaxMethod()> _
    Public Function InsertProductDescription(ByVal Product_KId As String, ByVal Product_Description As String) As String
        Try

            Dim ProductDescription As String
            ProductDescription = Product_Description
            If (ProductDescription.ToString.Trim = "") Then
                Return ""
            End If
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_Description" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = ProductDescription.Replace("'", "''").ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_Description='" & ProductDescription & "', Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Return ProductDescription

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
    Public Function CheckExistingProductName(ByVal Product_Name As String, ByVal SupplierID As String) As String
        Dim JJProduct_Name As String
        JJProduct_Name = Product_Name
        Dim JJProduct_Kid As String
        JJProduct_Kid = ReturnValue("SELECT  Top(1) Product_KId        FROM Product_Master WHERE    ((Product_MarketPriceType = '') or (Product_MarketPriceType is null)		or (Product_MarketPrice is null ) or (Product_MarketPrice ='0.00') 		or (Product_ModelNo = '') or (Product_ModelNo is null)		or (Product_BrandId = '')  or (Product_BrandId is null)  		or (Product_MinOrderQty = '0.00') or (Product_MinOrderQty is null)		or (Product_MinOrderQtyType is null) or  (Product_MinOrderQtyType ='') 		or (Product_ShippingQty is null ) or (Product_ShippingQty ='0.00' ) 		or (Product_ShippingQtyType = '') or (Product_ShippingQtyType is null) 		or (Product_Weight = '0.00') or (Product_Weight is null) 		or (Product_WeightUnitId = '') or (Product_WeightUnitId is null) 		or (Product_Dimension = '') or (Product_Dimension is null) 		or (Product_DimensionUnitId = '') or (Product_DimensionUnitId is null) 		or (Product_DeliveryPeriod = '0.00') or (Product_DeliveryPeriod is null) 		or (Product_DeliveryPeriodType = '') or (Product_DeliveryPeriodType is null) 		or (Product_Description = '') or (Product_Description is null) 		or (Product_Image = '') or (Product_Image is null) 		or (Product_PcsPerKg = '0.00') or (Product_PcsPerKg is null)) 		and ((Product_IsDeleted = '0') AND (Product_Name = '" & Product_Name.ToString.Trim & "') AND (Product_SupplierId = '" & SupplierID.ToString & "'))")

        'JJProduct_Kid = ReturnValue("Select Product_Kid from Product_Master where Product_Name ='" & JJProduct_Name.ToString.Trim & "' and Product_Isdeleted ='0'")
        If (JJProduct_Kid.ToString = "") Then
            Return "False"
        Else
            Return JJProduct_Kid.ToString
        End If





    End Function

    <Ajax.AjaxMethod()> _
   Public Function InsertProductPrice(ByVal Product_KId As String, ByVal Product_MarketPrice As String, ByVal Product_MarketPriceTypeValue As String, ByVal Product_MarketPriceTypeText As String) As String()
        Try
            Dim Result(1) As String
            Dim ProductMarketPrice, ProductMarketPriceText As String
            ProductMarketPrice = Product_MarketPrice
            ProductMarketPriceText = Product_MarketPriceTypeText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_MarketPrice" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 50)).Value = "Product_MarketPriceType" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_MarketPrice='" & Product_MarketPrice & "', Product_MarketPriceType = '" & RemoveLiterals(Product_MarketPriceTypeValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = Product_MarketPriceTypeText
            Result(1) = ProductMarketPrice
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
  Public Function InsertProductBrand(ByVal Product_KId As String, ByVal Product_BrandValue As String, ByVal Product_BrandText As String) As String
        Try



            Dim ProductBrand As String
            ProductBrand = Product_BrandText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_BrandId" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_BrandValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_BrandId='" & RemoveLiterals(Product_BrandValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Return ProductBrand
        Catch ex As Exception
            Return ""
        End Try

    End Function

    <Ajax.AjaxMethod()> _
  Public Function InsertProductMfgModelNo(ByVal Product_KId As String, ByVal Product_ModelNo As String) As String
        Try

            Dim ProductModelNo As String
            Dim ProductName As String = ReturnValue("Select Product_Name from Product_Master where Product_KId ='" & RemoveLiterals(Product_KId.ToString) & "'")
            Dim ProductKID As String = ReturnValue("Select Product_Kid from Product_Master where Product_Name ='" & ProductName & "' and Product_ModelNo ='" & Product_ModelNo.ToString & "'")
            If (ProductKID <> "") Then
                Return ""
            End If

            ProductModelNo = Product_ModelNo
            If (ProductModelNo.ToString.Trim = "") Then
                Return ""
            End If
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_ModelNo" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 200)).Value = ProductModelNo.ToString.Trim  'RemoveLiterals(Product_BrandValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_ModelNo='" & ProductModelNo & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Return ProductModelNo
        Catch ex As Exception
            Return ""
        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductMinSellQty(ByVal Product_KId As String, ByVal Product_MinSellQty As String, ByVal Product_MinSellQtyTypeValue As String, ByVal Product_MinSellQtyTypeText As String) As String()
        Try
            Dim Result(1) As String
            Dim ProductMinSellQty, ProductMinSellQtyTypeText As String
            ProductMinSellQty = Product_MinSellQty
            ProductMinSellQtyTypeText = Product_MinSellQtyTypeText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_MinOrderQty" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = Product_MinSellQty.ToString.Trim 'Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_MinOrderQtyType" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_MinSellQtyTypeValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_MinOrderQty='" & Product_MinSellQty & "', Product_MinOrderQtyType = '" & RemoveLiterals(Product_MinSellQtyTypeValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = ProductMinSellQty
            Result(1) = ProductMinSellQtyTypeText
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductMinShipQty(ByVal Product_KId As String, ByVal Product_MinShipQty As String, ByVal Product_MinShipQtyTypeValue As String, ByVal Product_MinShipQtyTypeText As String) As String()
        Try
            Dim Result(1) As String
            Dim ProductMinShipQty, ProductMinShipQtyTypeText As String
            ProductMinShipQty = Product_MinShipQty
            ProductMinShipQtyTypeText = Product_MinShipQtyTypeText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_ShippingQty" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = Product_MinShipQty.ToString.Trim 'Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_ShippingQtyType" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_MinShipQtyTypeValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_ShippingQty='" & Product_MinShipQty & "', Product_ShippingQtyType = '" & RemoveLiterals(Product_MinShipQtyTypeValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = ProductMinShipQty
            Result(1) = ProductMinShipQtyTypeText
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductShippingWeight(ByVal Product_KId As String, ByVal Product_ShippingWeight As String, ByVal Product_ShippingWeightTypeValue As String, ByVal Product_ShippingWeightTypeText As String) As String()
        Try
            Dim Result(1) As String
            Dim ProductShippingWeight, ProductShippingWeightTypeText As String
            ProductShippingWeight = Product_ShippingWeight
            ProductShippingWeightTypeText = Product_ShippingWeightTypeText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_Weight" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = Product_ShippingWeight.ToString.Trim 'Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_WeightUnitId" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_ShippingWeightTypeValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_Weight='" & Product_ShippingWeight & "', Product_WeightUnitId = '" & RemoveLiterals(Product_ShippingWeightTypeValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = ProductShippingWeight
            Result(1) = ProductShippingWeightTypeText
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductShippingDimension(ByVal Product_KId As String, ByVal Product_DimensionL As String, ByVal Product_DimensionH As String, ByVal Product_DimensionW As String) As String()
        Try
            Dim Result(2) As String
            Dim ProductShippingDimensionL, ProductShippingDimensionH, ProductShippingDimensionW, ProductShippingDimension As String
            ProductShippingDimensionL = Product_DimensionL
            ProductShippingDimensionH = Product_DimensionH
            ProductShippingDimensionW = Product_DimensionW
            ProductShippingDimension = Product_DimensionL.ToString & " x " & Product_DimensionH.ToString & " x " & Product_DimensionW.ToString
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_Dimension" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = ProductShippingDimension.ToString.Trim 'Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_DimensionUnitId" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = "00001:<" 'RemoveLiterals(Product_ShippingWeightTypeValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_Dimension='" & ProductShippingDimension & "', Product_DimensionUnitId ='00001:<',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = ProductShippingDimensionL
            Result(1) = ProductShippingDimensionH
            Result(2) = ProductShippingDimensionW
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductPcsPerCartonPckg(ByVal Product_KId As String, ByVal Product_PcsPerCartonPckg As String) As String
        Try

            Dim ProductPcsPerCartonPckg As String

            ProductPcsPerCartonPckg = Product_PcsPerCartonPckg
            If (ProductPcsPerCartonPckg.ToString.Trim = "") Then
                Return ""
            End If
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_PcsPerKg" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 200)).Value = ProductPcsPerCartonPckg.ToString.Trim  'RemoveLiterals(Product_BrandValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_PcsPerKg='" & ProductPcsPerCartonPckg & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Return ProductPcsPerCartonPckg
        Catch ex As Exception
            Return ""
        End Try

    End Function

    <Ajax.AjaxMethod()> _
Public Function InsertProductDispatchIn(ByVal Product_KId As String, ByVal Product_DispatchIn As String, ByVal Product_DispatchInTypeValue As String, ByVal Product_DispatchInTypeText As String) As String()
        Try
            Dim Result(1) As String
            Dim ProductDispatchIn, ProductDispatchInTypeText As String
            ProductDispatchIn = Product_DispatchIn
            ProductDispatchInTypeText = Product_DispatchInTypeText
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_DeliveryPeriod" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 2000)).Value = Product_DispatchIn.ToString.Trim 'Product_MarketPrice.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_DeliveryPeriodType" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
            cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Product_DispatchInTypeValue.ToString) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
            cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            If (con.State = ConnectionState.Closed) Then
                con.Open()
            End If
            cmd.ExecuteNonQuery()
            'ExecuteQuery("update Product_Master Set Product_DeliveryPeriod='" & Product_DispatchIn & "', Product_DeliveryPeriodType = '" & RemoveLiterals(Product_DispatchInTypeValue.ToString) & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & Product_KId & "'")
            Result(0) = ProductDispatchIn
            Result(1) = ProductDispatchInTypeText
            Return Result

        Catch ex As Exception

        End Try

    End Function

    <Ajax.AjaxMethod()> _
    Public Function CheckProductPrice(ByVal Product_KId As String) As Boolean

        If (ReturnValue("Select Product_MarketPrice from Product_Master where Product_KId ='" & Product_KId.ToString & "'").ToString = "") Then
            Return False
        Else
            Return True
        End If

    End Function

    Public Sub FillCategoryName(ByVal Catid As String, ByVal lbl As Label)
        If (i = -1) Then
            i = 0
        End If
        If (Catid = "Root Category") Then
            Exit Sub
        End If
        lbl.Text = "<b> Product Category >  </b>"
        Dim dt As DataTable
        dt = ReturnDataTable("Select * From Category_Master Where Category_Kid ='" & Catid & "' and Category_Isdeleted = '0' ")
        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
                lbl.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(), lbl)
        End If
        dt.Clear()
        'GridView1.DataSource = dt
        'GridView1.DataBind()
    End Sub

    Public Sub DisplayAuto()
        tblJJProductName.Style.Add("display", "auto")
        tblJJProductDescription.Style.Add("display", "auto")
        tblJJProductPrice.Style.Add("display", "auto")
        tblJJProductBrand.Style.Add("display", "auto")
        tblJJProductMfgModelNo.Style.Add("display", "auto")
        tblJJProductMinSellQty.Style.Add("display", "auto")
        tblJJProductMinShipQty.Style.Add("display", "auto")
        tblJJProductShippingWeight.Style.Add("display", "auto")
        tblJJProductShippingDimension.Style.Add("display", "auto")
        tblJJProductPcsPerCartonPckg.Style.Add("display", "auto")
        tblJJProductDispatchedIn.Style.Add("display", "auto")
        tblJJProductImage.Style.Add("display", "auto")


    End Sub

    Public Sub DisplayNone()
        tblJJProductName.Style.Add("display", "none")
        tblJJProductDescription.Style.Add("display", "none")
        tblJJProductPrice.Style.Add("display", "none")
        tblJJProductBrand.Style.Add("display", "none")
        tblJJProductMfgModelNo.Style.Add("display", "none")
        tblJJProductMinSellQty.Style.Add("display", "none")
        tblJJProductMinShipQty.Style.Add("display", "none")
        tblJJProductShippingWeight.Style.Add("display", "none")
        tblJJProductShippingDimension.Style.Add("display", "none")
        tblJJProductPcsPerCartonPckg.Style.Add("display", "none")
        tblJJProductDispatchedIn.Style.Add("display", "none")
        tblJJProductImage.Style.Add("display", "none")
        tblApplication.Style.Add("display", "none")
        tblCataloge.Style.Add("display", "none")
        tblConsumables.Style.Add("display", "none")
        tblFeature.Style.Add("display", "none")
        tblGuatantyWarranty.Style.Add("display", "none")
        tblInstallationCommissioning.Style.Add("display", "none")
        tblInstallationCommissioning.Style.Add("display", "none")
        tblProductMSDS.Style.Add("display", "none")
        tblPackagingDetails.Style.Add("display", "none")
        tblSpecialNotes.Style.Add("display", "none")
        tblStandards.Style.Add("display", "none")
        tblTechnicalSpecification.Style.Add("display", "none")
        tblAccOptional.Style.Add("display", "none")
        tblAccIncluded.Style.Add("display", "none")
        tblUserManual.Style.Add("display", "none")
        tblWearAndTear.Style.Add("display", "none")
        tblSpareParts.Style.Add("display", "none")
        tblguwarranty.Style.Add("display", "none")
        tblStandardMaster.Style.Add("display", "none")

    End Sub

    Public Sub displayone(ByVal tbl As HtmlTable)
        tblApplication.Style.Add("display", "none")
        tblCataloge.Style.Add("display", "none")
        tblConsumables.Style.Add("display", "none")
        tblFeature.Style.Add("display", "none")
        tblGuatantyWarranty.Style.Add("display", "none")
        tblInstallationCommissioning.Style.Add("display", "none")
        tblInstallationCommissioning.Style.Add("display", "none")
        tblProductMSDS.Style.Add("display", "none")
        tblPackagingDetails.Style.Add("display", "none")
        tblSpecialNotes.Style.Add("display", "none")
        tblStandards.Style.Add("display", "none")
        tblTechnicalSpecification.Style.Add("display", "none")
        tblAccOptional.Style.Add("display", "none")
        tblAccIncluded.Style.Add("display", "none")
        tblUserManual.Style.Add("display", "none")
        tblWearAndTear.Style.Add("display", "none")
        tblSpareParts.Style.Add("display", "none")
        tblguwarranty.Style.Add("display", "none")

        tbl.Style.Add("display", "inline")
    End Sub

    Private Sub cboCategory_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboCategory.SelectedIndexChanged
        If cboCategory.SelectedItem.Value = "0" Then
            Label2.Visible = True
            Label2.Text = "Please Select the Category"
            cbosubCategory1.Visible = False
            cbosubCategory2.Visible = False
            Label15.Visible = False

        Else
            Session("lastsubcategory") = ""
            Session("lastsubcategory") = cboCategory.SelectedItem.Value
            getparents(cboCategory.SelectedItem.Value)
            LoadSubCategory1(cboCategory.SelectedItem.Value)

        End If

    End Sub

    Private Sub cbosubCategory1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbosubCategory1.SelectedIndexChanged
        Session("lastsubcategory") = cbosubCategory1.SelectedItem.Value
        getparents(cbosubCategory1.SelectedItem.Value)
        LoadSubCategory2(cbosubCategory1.SelectedItem.Value)
        cbosubCategory1.Visible = True
    End Sub

    Private Sub cbosubCategory2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbosubCategory2.SelectedIndexChanged

        Session("lastsubcategory") = cbosubCategory2.SelectedItem.Value
        getparents(cbosubCategory2.SelectedItem.Value)
        LoadSubCategory3(cbosubCategory2.SelectedItem.Value)
    End Sub

    Private Sub LoadSubCategory3(ByVal intId As String)
        FillCategoryName(intId, lblCat)
        lblCat.Visible = False
        Dim dt As DataTable = ReturnDataTable("SELECT Category_Kid as id, Category_Name as Name FROM Category_Master WHERE Category_ParentId = '" & intId & "' and Category_IsDeleted='0' ORDER BY Category_Name")

        If dt.Rows.Count > 0 Then

            Dim strsql As String
            strsql = "SELECT Category_Kid as id, Category_Name as Name FROM Category_Master WHERE Category_ParentId = '" & intId & "' and Category_IsDeleted='0' ORDER BY Category_Name"
            cboCategory.Items.Clear()
            cboCategory.Items.Add(New ListItem("Select Subcategory", "-1"))
            Fill_Combo(strsql, cboCategory)


            Label14.Visible = True
            Label15.Visible = False
            Label16.Visible = False
            cbosubCategory1.Visible = False
            cbosubCategory2.Visible = False
            cboCategory.ForeColor = Drawing.Color.Red
            cbosubCategory1.ForeColor = Drawing.Color.Black
            cbosubCategory2.ForeColor = Drawing.Color.Black
            Label14.Text = "Select the next level"
            T1.Visible = False
            Label1.Visible = True
            hfCategory.Value = ""
        Else
            Label14.Visible = False
            Label15.Visible = False
            Label16.Visible = False
            ' Label2.Visible = True
            ' Label2.Text = "Add the product"

            T1.Visible = True
            Label1.Visible = False
            'txtProductName.Enabled = True
            'ScriptManager1.SetFocus(txtProductName)
            Session("CategoryId") = intId
            hfCategory.Value = RemoveLiterals(intId.ToString)
            Dim dtCategory As DataTable
            dtCategory = ReturnDataTable("SELECT CategoryRelation_CategoryID FROM CategoryRelation_Master WHERE (CategoryRelation_Flag IN (SELECT CategoryRelation_Flag FROM CategoryRelation_Master AS CategoryRelation_Master_1 WHERE  (CategoryRelation_CategoryID = N'" & RemoveLiterals(hfCategory.Value.ToString) & "'))) AND (CategoryRelation_CategoryID <> N'" & RemoveLiterals(hfCategory.Value.ToString) & "')")
            If dtCategory.Rows.Count > 0 Then
                tdJJCategorySuggest.Visible = True
                chkCategory.DataSource = dtCategory
                chkCategory.DataTextField = "CategoryRelation_CategoryID"
                chkCategory.DataValueField = "CategoryRelation_CategoryID"
                chkCategory.DataBind()
            Else
                tdJJCategorySuggest.Visible = False
            End If
            


            If Label2.Visible = True Then
                Label1.Visible = False
            End If
        End If

    End Sub

    Private Sub LoadCategory(ByVal parentid As String)
        FillCategoryName(parentid, lblCat)
        lblCat.Visible = False
        Dim strsql As String
        strsql = "SELECT Category_Kid as id, Category_Name as Name FROM Category_Master WHERE Category_ParentId = '" & parentid & "'and Category_IsDeleted='0' ORDER BY Category_Name"
        cboCategory.Items.Clear()
        cboCategory.Items.Add(New ListItem("Select Category", "-1"))
        Fill_Combo(strsql, cboCategory)
        If cboCategory.Items.Count > 1 Then
            Label14.Visible = True
            Label15.Visible = False
            Label16.Visible = False

            cboCategory.ForeColor = Drawing.Color.Red
            cbosubCategory1.ForeColor = Drawing.Color.Black
            cbosubCategory2.ForeColor = Drawing.Color.Black
            T1.Visible = False
            Label1.Visible = True
            Label14.Text = "Select the category"
            hfCategory.Value = ""
        Else
            Label14.Visible = False
            Label15.Visible = False
            Label16.Visible = False
            ' Label2.Visible = True
            ' Label2.Text = "Add the product"
            T1.Visible = True
            Label1.Visible = False
            'txtProductName.Enabled = True
            'ScriptManager1.SetFocus(txtProductName)
            Session("CategoryId") = parentid
            hfCategory.Value = RemoveLiterals(parentid.ToString)

            Dim dtCategory As DataTable
            dtCategory = ReturnDataTable("SELECT CategoryRelation_CategoryID FROM CategoryRelation_Master WHERE (CategoryRelation_Flag IN (SELECT CategoryRelation_Flag FROM CategoryRelation_Master AS CategoryRelation_Master_1 WHERE  (CategoryRelation_CategoryID = N'" & RemoveLiterals(hfCategory.Value.ToString) & "'))) AND (CategoryRelation_CategoryID <> N'" & RemoveLiterals(hfCategory.Value.ToString) & "')")
            If dtCategory.Rows.Count > 0 Then
                tdJJCategorySuggest.Visible = True
                chkCategory.DataSource = dtCategory
                chkCategory.DataTextField = "CategoryRelation_CategoryID"
                chkCategory.DataValueField = "CategoryRelation_CategoryID"
                chkCategory.DataBind()
            Else
                tdJJCategorySuggest.Visible = False
            End If

            If Label2.Visible = True Then
                Label1.Visible = False
            End If
        End If


    End Sub

    Private Sub LoadSubCategory1(ByVal intId As String)
        FillCategoryName(intId, lblCat)
        lblCat.Visible = False
        Dim strsql As String
        strsql = "SELECT Category_Kid as id, Category_Name as Name FROM Category_Master WHERE Category_ParentId = '" & intId & "' and Category_IsDeleted='0' ORDER BY Category_Name"

        cbosubCategory1.Items.Clear()
        cbosubCategory1.Items.Add(New ListItem("Select Subcategory", "-1"))
        Fill_Combo(strsql, cbosubCategory1)
        If cbosubCategory1.Items.Count > 1 Then
            Label14.Visible = False
            Label15.Visible = True
            Label16.Visible = False
            cboCategory.ForeColor = Drawing.Color.Black
            cbosubCategory1.ForeColor = Drawing.Color.Red
            cbosubCategory2.ForeColor = Drawing.Color.Black
            cbosubCategory1.Visible = True
            cbosubCategory2.Visible = False
            Label15.Text = "Select the next level"
            T1.Visible = False
            Label1.Visible = True
            hfCategory.Value = ""
        Else
            cbosubCategory1.Visible = False
            cbosubCategory2.Visible = False
            Label14.Visible = False
            Label15.Visible = False
            Label16.Visible = False
            ' Label2.Visible = True
            ' Label2.Text = "Add the product"
            T1.Visible = True
            Label1.Visible = False
            'txtProductName.Enabled = True
            'ScriptManager1.SetFocus(txtProductName)
            Session("CategoryId") = intId
            hfCategory.Value = RemoveLiterals(intId.ToString)

            Dim dtCategory As DataTable
            dtCategory = ReturnDataTable("SELECT CategoryRelation_CategoryID FROM CategoryRelation_Master WHERE (CategoryRelation_Flag IN (SELECT CategoryRelation_Flag FROM CategoryRelation_Master AS CategoryRelation_Master_1 WHERE  (CategoryRelation_CategoryID = N'" & RemoveLiterals(hfCategory.Value.ToString) & "'))) AND (CategoryRelation_CategoryID <> N'" & RemoveLiterals(hfCategory.Value.ToString) & "')")
            If dtCategory.Rows.Count > 0 Then
                tdJJCategorySuggest.Visible = True
                chkCategory.DataSource = dtCategory
                chkCategory.DataTextField = "CategoryRelation_CategoryID"
                chkCategory.DataValueField = "CategoryRelation_CategoryID"
                chkCategory.DataBind()
            Else
                tdJJCategorySuggest.Visible = False
            End If


            If Label2.Visible = True Then
                Label1.Visible = False
            End If
        End If

    End Sub

    Private Sub LoadSubCategory2(ByVal intId As String)
        FillCategoryName(intId, lblCat)
        lblCat.Visible = False
        Dim strsql As String
        strsql = "SELECT Category_Kid as id, Category_Name as Name FROM Category_Master WHERE Category_ParentId = '" & intId & "' and Category_IsDeleted='0' ORDER BY Category_Name"
        cbosubCategory2.Items.Clear()
        cbosubCategory2.Items.Add(New ListItem("Select Subcategory", "-1"))
        Fill_Combo(strsql, cbosubCategory2)
        If cbosubCategory2.Items.Count > 1 Then

            Label14.Visible = False
            Label15.Visible = False
            Label16.Visible = True
            cboCategory.ForeColor = Drawing.Color.Black
            cbosubCategory1.ForeColor = Drawing.Color.Black
            cbosubCategory2.ForeColor = Drawing.Color.Red
            Label16.Text = "Select the next level"
            cbosubCategory2.Visible = True
            T1.Visible = False
            Label1.Visible = True
            hfCategory.Value = ""
        Else
            cbosubCategory2.Visible = False
            Label14.Visible = False
            Label15.Visible = False
            Label16.Visible = False
            'Label2.Visible = True
            ' Label2.Text = "Add the product"
            T1.Visible = True
            Label1.Visible = False
            'txtProductName.Enabled = True
            'ScriptManager1.SetFocus(txtProductName)
            Session("CategoryId") = intId

            hfCategory.Value = RemoveLiterals(intId.ToString)

            Dim dtCategory As DataTable
            dtCategory = ReturnDataTable("SELECT CategoryRelation_CategoryID FROM CategoryRelation_Master WHERE (CategoryRelation_Flag IN (SELECT CategoryRelation_Flag FROM CategoryRelation_Master AS CategoryRelation_Master_1 WHERE  (CategoryRelation_CategoryID = N'" & RemoveLiterals(hfCategory.Value.ToString) & "'))) AND (CategoryRelation_CategoryID <> N'" & RemoveLiterals(hfCategory.Value.ToString) & "')")
            If dtCategory.Rows.Count > 0 Then
                tdJJCategorySuggest.Visible = True
                chkCategory.DataSource = dtCategory
                chkCategory.DataTextField = "CategoryRelation_CategoryID"
                chkCategory.DataValueField = "CategoryRelation_CategoryID"
                chkCategory.DataBind()
            Else
                tdJJCategorySuggest.Visible = False
            End If


            If Label2.Visible = True Then
                Label1.Visible = False
            End If
        End If



    End Sub

    Private Function getparents(ByVal i As String) As String
        Dim strsql As String
        strsql = "SELECT Category_ParentId, Category_Name FROM Category_Master WHERE Category_Kid = '" & i & "'"
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If

        Dim da As New SqlDataAdapter(strsql, con)
        Dim ds As New DataSet
        da.Fill(ds)
        Dim j As String

        Dim flag As Boolean = False
        If ds.Tables(0).Rows.Count > 0 Then
            j = ds.Tables(0).Rows(0).Item(0).ToString
            flag = True
        Else
            Return 0
            Exit Function
        End If

        If flag = True Then
            str1 = ds.Tables(0).Rows(0).Item(1).ToString & " > " & str1
            str = "<a href=./addnewproduct.aspx?subcatid=" & ds.Tables(0).Rows(0).Item(0).ToString & ">" & ds.Tables(0).Rows(0).Item(1).ToString & "</a>" & " > " & str
            getparents(j)
        End If
        'dr.Close()
        con.Close()
        Label13.Text = str
        Session("categorylevel") = Nothing
        Session("categorylevel") = str1
        Session("Category") = str1
    End Function

    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 ='" & g_Company & "'")
        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

                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

    End Sub

    Protected Sub GenerateCode()
        Try
            Dim i As String
            Dim qry As String
            Dim code As String

            i = "1"
            i = Format(Val(i), "000")
            While True
                code = "PRD" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
                qry = "select count(*) from Product_Master where Product_Code='" & code & "'"
                If IsAlreadyPresent(qry) Then
                    i = Val(i) + 1
                    i = Format(Val(i), "000")
                Else

                    Exit Sub
                End If
            End While
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub GenerateCategoryCode()
        Try
            Dim i As String
            Dim qry As String
            Dim code As String

            i = "1"
            i = Format(Val(i), "000")
            While True
                code = "PCM" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
                qry = "select count(*) from ProductCategory_Master where ProductCategoryMaster_Code='" & code & "'"
                If IsAlreadyPresent(qry) Then
                    i = Val(i) + 1
                    i = Format(Val(i), "000")
                Else
                    Category_Code = code
                    Exit Sub
                End If
            End While
        Catch ex As Exception
            ' Response.Output.Write("Server error: " & ex.Message.ToString.ToUpperInvariant())
        End Try
    End Sub

    Protected Sub btnJJProductImageSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJJProductImageSave.Click
        Try

            SaveImage()
            GetExisting()
            'Dim file_name As String
            'Dim folderpath As String = Server.MapPath("~/Upload Image/Product Image/UploadImages/")
            'file_name = ReturnValue("Select Product_Image from Product_Master Where Product_Kid ='" & RemoveLiterals(hfProduct.Value.ToString) & "'and Product_IsDeleted = '0'")
            'file_name = Image_upload(fuJJProductImage, img, folderpath, file_name)
            'KeepAspectRatioNew(imgJJProductImage, folderpath & file_name.ToString, 180, 150)
            'ExecuteQuery("Update Product_Master Set Product_Image = '" & file_name & "',Product_ClientIP='" & ClientIP & "' where Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "'")
            'System.Threading.Thread.Sleep(500)
            'imgJJProductImage.ImageUrl = "~/Upload Image/Product Image/UploadImages/" & file_name
            'lblJJProductImage.Text = file_name
            'lblJJProductImage.Style.Add("color", "balck")

        Catch ex As Exception

        End Try

    End Sub

    Protected Sub btnJJProductNameSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJJProductNameSave.Click
        Dim ProductCode, ProductKId As String

        Try

            If (Session("ProductID") = Nothing) Then
                ''ProductCode = GenerateProductCode(RemoveLiterals(Session("SupplierID")))
                ProductKId = NewPrimaryKey(Me)

                Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
                cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
                cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
                cmd.Connection = con                                                            'Assign the connection
                cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                '' cmd.Parameters.Add(New SqlParameter("@Product_Code", SqlDbType.NVarChar, 25)).Value = ProductCode.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_Name", SqlDbType.NVarChar, 150)).Value = txtJJProductName.Text.ToString.Trim 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_RegDate", SqlDbType.DateTime)).Value = Date.Now 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_CategoryId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(hfCategory.Value.ToString) 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_SupplierID", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("SupplierID"))) 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_UserId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("g_User"))) 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_Approved", SqlDbType.NVarChar, 20)).Value = IIf(Session("AdminId") Is Nothing, "N", "C") 'ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_FinancialYearId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("g_FinYear"))) '"Product_Name" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
                cmd.Parameters.Add(New SqlParameter("@Product_CompanyId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("g_Company"))) 'txtJJProductName.Text.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
                cmd.Parameters.Add(New SqlParameter("@Product_ClientIP", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'RemoveLiterals(Convert.ToString(Session("g_Company")))
                cmd.Parameters.Add(New SqlParameter("@Product_IsDeleted", SqlDbType.NVarChar, 1)).Value = "0"
                cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                If (con.State = ConnectionState.Closed) Then
                    con.Open()
                End If
                cmd.ExecuteNonQuery()

                ' ''ExecuteQuery("insert into Product_Master(Product_Kid,Product_Code, Product_Name, Product_RegDate, Product_CategoryId, Product_SupplierID, Product_UserId, Product_Approved, Product_FinancialYearId, Product_CompanyId, Product_ClientIP,Product_IsDeleted) Values ( '" & RemoveLiterals(ProductKId.ToString) & "', '" & ProductCode & "', '" & txtJJProductName.Text.ToString.Trim & "','" & Date.Now & "' , '" & RemoveLiterals(hfCategory.Value.ToString) & "' , '" & RemoveLiterals(Convert.ToString(Session("SupplierID"))) & "', '" & RemoveLiterals(Convert.ToString(Session("g_User"))) & "','N', '" & RemoveLiterals(Convert.ToString(Session("g_FinYear"))) & "','" & RemoveLiterals(Convert.ToString(Session("g_Company"))) & "','" & ClientIP & "', '0')")
                Session("ProductID") = RemoveLiterals(ProductKId.ToString)
                hfProduct.Value = RemoveLiterals(ProductKId.ToString)
                lblJJProductNameValue.Text = txtJJProductName.Text
                lblJJProductName.Text = "Edit"
                'lblJJProductName.Style.Add("color", "black")
                lblJJAtcomaartProductCode.Text = "" ' ProductCode.ToString
                tbl1.Style.Add("display", "none")
                CallTechClick()
                lblCat.Visible = True

                InsertProductCategoryMaster()

            Else
                ProductKId = RemoveLiterals(Convert.ToString(Session("ProductID")))
                Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
                cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
                cmd.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
                cmd.Connection = con                                                            'Assign the connection
                cmd.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = ProductKId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
                cmd.Parameters.Add(New SqlParameter("@Product_ClientIP", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'RemoveLiterals(Convert.ToString(Session("g_Company")))
                cmd.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_Name" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
                cmd.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar, 150)).Value = txtJJProductName.Text.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
                'cmd.Parameters.Add(New SqlParameter("@Product_Field2", SqlDbType.NVarChar, 100)).Value = "Product_ClinetIP" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
                'cmd.Parameters.Add(New SqlParameter("@Product_Value2", SqlDbType.NVarChar, 150)).Value = Request.UserHostAddress.ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it
                cmd.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                If (con.State = ConnectionState.Closed) Then
                    con.Open()
                End If
                cmd.ExecuteNonQuery()
                'ExecuteQuery("update Product_Master set Product_Name ='" & txtJJProductName.Text.ToString.Trim & "',Product_ClientIP='" & ClientIP & "' where Product_KId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
                lblJJProductNameValue.Text = ReturnValue("Select Product_Name from Product_Master where Product_Kid='" & RemoveLiterals(ProductKId.ToString) & "'")
                lblJJProductName.Text = "Edit"
                'lblJJProductName.Style.Add("color", "black")
                lblCat.Visible = True
            End If
            GetExisting()


        Catch ex As Exception
            'ExecuteQuery("delete from Product_Master where Product_KId ='" & ProductKId.ToString & "'")
        End Try
    End Sub

    Public Sub InsertProductCategoryMaster()


        ExecuteQuery("insert into ProductCategory_Master values('" & NewPrimaryKey(Me) & "','" & RemoveLiterals(Session("ProductID").ToString) & "','" & RemoveLiterals(hfCategory.Value.ToString) & "') ")
        Dim i As Integer
        For i = 0 To chkCategory.Items.Count - 1
            If chkCategory.Items(i).Selected = True Then
                ExecuteQuery("insert into ProductCategory_Master values('" & NewPrimaryKey(Me) & "','" & RemoveLiterals(Session("ProductID").ToString) & "','" & RemoveLiterals(chkCategory.Items(i).Value.ToString) & "') ")
            End If
        Next
        chkCategory.Visible = False
    End Sub


    '**************************************** PRODUCT APPLICATION ************************************************
    Protected Sub btnApplicatin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicatin.Click
        Try
            'gvProductApplication.DataSource = Nothing
            'Tr5.Visible = False
            'gvProductApplication.DataBind()

            'txtProductApplication.ControlToCount = lblApptxtCount.ClientID
            'txtProductApplication.MaxLength = 1000
            'txtProductApplication.MaxSizeCount = 1000

            'lblResult.Visible = False
            btnApplicaionAddMore.Visible = True
            btnApplicationUpDate.Visible = False
            btnApplicationDelete.Visible = False
            btnApplicationCancel.Visible = False
            'MultiView2.ActiveViewIndex = 0
            ClearApplicationFields()
            getApplicationExistingData()
            txtProductApplication.Focus()
            btnApplicaionAddMore.Attributes.Add("onclick", "return checktxt('" & txtProductApplication.ClientID.ToString & "','Enter application for your products.!');")
            btnApplicationUpDate.Attributes.Add("onclick", "return checktxt('" & txtProductApplication.ClientID.ToString & "','Enter application for your products.!');")
            btnApplicationDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            'btnApplicationDelete.Attributes.Add("onclick", "return checktxt('" & txtProductApplication.ClientID.ToString & "','Enter application for your products.!');")

        Catch
        End Try
    End Sub

    Protected Sub btnApplicationCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicationCancel.Click
        btnApplicaionAddMore.Visible = True
        btnApplicationCancel.Visible = False
        btnApplicationDelete.Visible = False
        btnApplicationUpDate.Visible = False
        txtProductApplication.Text = ""
        gvProductApplication.SelectedIndex = -1
        displayone(tblApplication)
    End Sub

    Protected Sub btnApplicaionAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicaionAddMore.Click
        Try
            If AddProductApplication() = True Then
                '            tblApplication.Style.Add("display", "inline")
                displayone(tblApplication)

                ClearApplicationFields()
                getApplicationExistingData()
                getPACode()
                'GetExisting()
                CreateMessageAlert(Me, "Application Saved Successfully", "strkeyval")
            End If
        Catch
        End Try
    End Sub

    Protected Sub gvProductApplication_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvProductApplication.SelectedIndexChanged
        Try
            displayone(tblApplication)
            btnApplicaionAddMore.Visible = False
            btnApplicationDelete.Visible = True
            btnApplicationUpDate.Visible = True
            btnApplicationCancel.Visible = True
            Dim Kid As String = gvProductApplication.DataKeys(gvProductApplication.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductApplication where ProdApp_Kid = '" & Kid & "' AND ProdApp_IsDeleted = '0'", "PA")
            'txtProductAppKid.Text = dt.Rows(0).Item("ProdApp_Kid").ToString
            'txtProductAppCode.Text = dt.Rows(0).Item("ProdApp_Code").ToString
            txtProductApplication.Text = dt.Rows(0).Item("ProdApp_Application").ToString
            dt.Clear()
        Catch
        End Try

    End Sub

    'Protected Sub btnApplicaionSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicaionSave.Click
    '    Try
    '        AddProductApplication()
    '        lblResult.Visible = True
    '        lblResult.Text = "Record Saved Successfully."
    '        getPACode()
    '        MultiView2.ActiveViewIndex = -1
    '    Catch
    '    End Try
    'End Sub
    Protected Sub btnApplicationUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicationUpDate.Click
        Try
            Dim Kid As String = gvProductApplication.DataKeys(gvProductApplication.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductApplication where ProdApp_Kid = '" & Kid & "' AND ProdApp_IsDeleted = '0' ", "PA")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductApplication_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdApp_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Application", SqlDbType.NVarChar, 1000)).Value = txtProductApplication.Text
            cmd.Parameters.Add(New SqlParameter("@ProdApp_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Application"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"

            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            dt.Clear()
            getApplicationExistingData()
            'GetExisting()
            '        tblApplication.Style.Add("display", "inline")
            displayone(tblApplication)
            CreateMessageAlert(Me, "Application Updated Successfully", "strkeyval")
            txtProductApplication.Text = ""
            'gvProductApplication.SelectedIndex = -1
            btnApplicaionAddMore.Visible = True
            btnApplicationUpDate.Visible = False
            btnApplicationDelete.Visible = False
            btnApplicationCancel.Visible = False
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
        End Try
        'FillPAGrid()
    End Sub

    Protected Sub btnApplicationDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplicationDelete.Click
        Try
            Dim Kid As String = gvProductApplication.DataKeys(gvProductApplication.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductApplication where ProdApp_Kid = '" & Kid & "' AND ProdApp_IsDeleted = '0' ", "PA")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductApplication_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdApp_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Application", SqlDbType.NVarChar, 1000)).Value = txtProductApplication.Text
            cmd.Parameters.Add(New SqlParameter("@ProdApp_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdApp_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdApp_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Application"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "delete"

            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            ClearApplicationFields()

            dt.Clear()
            getApplicationExistingData()
            'GetExisting()
            '        tblApplication.Style.Add("display", "inline")
            displayone(tblApplication)
            CreateMessageAlert(Me, "Application Deleted Successfully", "strkeyval")
            btnApplicaionAddMore.Visible = True
            btnApplicationUpDate.Visible = False
            btnApplicationDelete.Visible = False
            btnApplicationCancel.Visible = False
            gvProductApplication.SelectedIndex = -1
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
        End Try
        'FillPAGrid()
    End Sub

    Private Sub ClearApplicationFields()
        Try
            'txtProductAppCode.Text = ""
            txtProductApplication.Text = ""
        Catch
        End Try
    End Sub

    Protected Sub EnableControlsPA(ByVal Action As Boolean)
        Try
            txtProductApplication.Enabled = Action
        Catch
        End Try
    End Sub

    'Private Sub FillPAGrid()
    '    Try
    '        Dim dt As DataTable = getTable("SELECT ProdApp_Code,ProdApp_Kid,ProdApp_Application FROM ProductApplication WHERE ProdApp_ProductId = '" & Session("ProductId").Trim & "' AND ProdApp_IsDeleted = '0' AND ProdApp_CompanyID = '" & g_Company.Trim & "'", "PA")
    '        If dt.Rows.Count > 0 Then
    '            gvProductApplication.DataSource = dt
    '            gvProductApplication.DataBind()
    '            If Session("AdminID") <> Nothing Then
    '                EnableControlsPA(True)
    '                If dt.Rows.Count > 0 Then
    '                    btnApplicaionAddMore.Visible = True
    '                    btnApplicaionAddMore.Enabled = True
    '                    btnApplicationDelete.Enabled = True
    '                    btnApplicaionSave.Enabled = False
    '                    btnApplicationUpDate.Enabled = True
    '                Else
    '                    btnApplicationDelete.Enabled = False
    '                    btnApplicaionAddMore.Enabled = True
    '                    btnApplicaionSave.Enabled = True
    '                    btnApplicationUpDate.Enabled = False
    '                End If

    '            Else
    '                btnApplicationUpDate.Enabled = False
    '            End If
    '        End If

    '        dt.Clear()
    '    Catch
    '    End Try
    'End Sub
    Private Sub getPACode()
        Try
            ClearApplicationFields()
            'txtProductAppCode.Text = Generate_Code("Select count(*) from ProductApplication where ProdApp_Code='", "PA")
        Catch
        End Try
    End Sub

    Private Sub getApplicationExistingData()
        Try
            EnableControlsPA(True)
            Dim dt As DataTable = getTable("Select ProdApp_Kid, ProdApp_Application from ProductApplication where ProdApp_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProdApp_IsDeleted='0'", "PA")
            If dt.Rows.Count > 0 Then
                gvProductApplication.DataSource = dt
                gvProductApplication.DataBind()
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    gvProductApplication.Columns(0).Visible = False
                '' '' ''End If
                'getPACode()
                'btnApplicaionAddMore.Enabled = True
                'btnApplicaionSave.Enabled = False
                '  EnableControlsPA(False)
                lblProductApplication.Text = "Product Application :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
            Else
                'getPACode()
                lblProductApplication.Text = "Product Application :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
                gvProductApplication.DataSource = Nothing
                gvProductApplication.DataBind()
                'btnApplicaionAddMore.Visible = True
                'btnApplicaionSave.Visible = True
                'btnApplicaionAddMore.Enabled = True
                'btnApplicaionSave.Enabled = True
                'EnableControlsPA(True)
            End If
            'If Session("AdminID") <> Nothing Then

            '    'If dt.Rows.Count > 0 Then
            '    '    btnApplicaionAddMore.Visible = True
            '    '    btnApplicaionAddMore.Enabled = True
            '    '    btnApplicationDelete.Enabled = True
            '    '    btnApplicaionSave.Enabled = False
            '    '    btnApplicationUpDate.Enabled = True
            '    'Else
            '    '    btnApplicationDelete.Enabled = False
            '    '    btnApplicaionAddMore.Enabled = True
            '    '    btnApplicaionSave.Enabled = True
            '    '    btnApplicationUpDate.Enabled = False
            '    'End If

            'Else
            '    'btnApplicationUpDate.Enabled = False
            'End If
            dt.Clear()
        Catch
        End Try
    End Sub

    Private Function AddProductApplication() As Boolean
        Try
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductApplication_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProdApp_Code) from  ProductApplication WHERE ProdApp_Code LIKE" + "'PA" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Code", SqlDbType.NVarChar, 25)).Value = "PA" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            'cmd.Parameters.Add(New SqlParameter("@ProdApp_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from ProductApplication where ProdApp_Code='", "PA").ToString()
            cmd.Parameters.Add(New SqlParameter("@ProdApp_Application", SqlDbType.NVarChar, 1000)).Value = txtProductApplication.Text
            cmd.Parameters.Add(New SqlParameter("@ProdApp_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@ProdApp_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@ProdApp_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@ProdApp_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Application"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"

            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    '***************************************** Product Feature **************************************************
    Protected Sub btnfeature_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnfeature.Click
        Try
            'gvProductFeature.DataSource = Nothing
            'gvProductFeature.DataBind()
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 1
            'Tr8.Visible = False
            ClearFeaturesFields()
            btnFeatureAddMore.Visible = True
            btnFeatureUpdate.Visible = False
            btnFeatureDelete.Visible = False
            btnFeatureCancel.Visible = False
            getFeaturesExistingData()
            btnFeatureCancel.Visible = False
            txtProductFeature.Focus()
            btnFeatureAddMore.Attributes.Add("onclick", "return checktxt('" & txtProductFeature.ClientID.ToString & "','Enter features for your products.!');")
            btnFeatureUpdate.Attributes.Add("onclick", "return checktxt('" & txtProductFeature.ClientID.ToString & "','Enter features for your products.!');")
            btnFeatureDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
        Catch
        End Try
    End Sub

    Protected Sub btnFeatureAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFeatureAddMore.Click
        Try
            If AddProductFeature() = True Then
                '            tblFeature.Style.Add("display", "inline")
                displayone(tblFeature)
                ClearFeaturesFields()
                getFeaturesExistingData()
                getPFCode()
                ' GetExisting()
                CreateMessageAlert(Me, "Features saved successfully.!", "strkeyval")
                gvProductFeature.SelectedIndex = -1
            End If
        Catch
        End Try
    End Sub

    Protected Sub gvProductFeature_SelectedIndexChanged1(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvProductFeature.SelectedIndexChanged
        Try
            txtProductFeature.Enabled = True
            '        tblFeature.Style.Add("display", "inline")
            displayone(tblFeature)
            Dim Kid As String = gvProductFeature.DataKeys(gvProductFeature.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductFeatures where ProdFeatures_Kid = '" & Kid & "' AND ProdFeatures_IsDeleted = '0'", "PF")
            btnFeatureAddMore.Visible = False
            btnFeatureUpdate.Visible = True
            btnFeatureDelete.Visible = True
            btnFeatureCancel.Visible = True
            'txtProductFeaKid.Text = dt.Rows(0).Item("ProdFeatures_Kid").ToString
            'txtProductFeaCode.Text = dt.Rows(0).Item("ProdFeatures_Code").ToString
            txtProductFeature.Text = dt.Rows(0).Item("ProdFeatures_Features").ToString
            dt.Clear()
        Catch
        End Try
    End Sub

    Protected Sub btnFeatureSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFeatureCancel.Click
        Try
            '        tblFeature.Style.Add("display", "inline")
            displayone(tblFeature)
            btnFeatureAddMore.Visible = True
            btnFeatureUpdate.Visible = False
            btnFeatureDelete.Visible = False
            btnFeatureCancel.Visible = False
            txtProductFeature.Text = ""
            gvProductFeature.SelectedIndex = -1
        Catch
        End Try
    End Sub

    Protected Sub btnFeatureDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFeatureDelete.Click
        Try
            Dim Kid As String = gvProductFeature.DataKeys(gvProductFeature.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductFeatures where ProdFeatures_Kid = '" & Kid & "' AND ProdFeatures_IsDeleted = '0'", "PF")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductFeatures_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdFeatures_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Features", SqlDbType.NVarChar, 1000)).Value = txtProductFeature.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Product Feature"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Delete"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            dt.Clear()
            getFeaturesExistingData()
            ' GetExisting()
            btnFeatureAddMore.Visible = True
            btnFeatureUpdate.Visible = False
            btnFeatureDelete.Visible = False
            btnFeatureCancel.Visible = False
            '        tblFeature.Style.Add("display", "inline")
            displayone(tblFeature)
            CreateMessageAlert(Me, "Feature deleted successfully.!", "strkeyval")
            gvProductFeature.SelectedIndex = -1
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
        End Try
    End Sub

    Protected Sub btnFeatureUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFeatureUpdate.Click
        Try
            Dim Kid As String = gvProductFeature.DataKeys(gvProductFeature.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("Select * from ProductFeatures where ProdFeatures_Kid = '" & Kid & "' AND ProdFeatures_IsDeleted = '0'", "PF")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductFeatures_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdFeatures_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Features", SqlDbType.NVarChar, 1000)).Value = txtProductFeature.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdFeatures_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Product Feature"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            dt.Clear()
            getFeaturesExistingData()
            ' GetExisting()
            btnFeatureAddMore.Visible = True
            btnFeatureUpdate.Visible = False
            btnFeatureDelete.Visible = False
            btnFeatureCancel.Visible = False
            displayone(tblFeature)
            '        tblFeature.Style.Add("display", "inline")
            CreateMessageAlert(Me, "Features Updated Successfully.!", "strkeyval")
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
        End Try
    End Sub

    Private Sub ClearFeaturesFields()
        Try
            txtProductFeature.Text = ""
            'txtProductFeaCode.Text = ""
        Catch
        End Try
    End Sub

    Protected Sub EnableControlsPF(ByVal Action As Boolean)
        Try
            txtProductFeature.Enabled = Action
        Catch
        End Try
    End Sub

    'Private Sub FillPFGrid()
    '    Try
    '        Dim dt As DataTable = getTable("SELECT ProdFeatures_Kid,ProdFeatures_Features FROM ProductFeatures WHERE ProdFeatures_ProductId = '" & Session("ProductId").Trim & "' AND ProdFeatures_IsDeleted = '0' AND ProdFeatures_CompanyId = '" & g_Company.Trim & "'", "PF")
    '        gvProductFeature.DataSource = dt
    '        gvProductFeature.DataBind()
    '        dt.Clear()
    '    Catch
    '    End Try
    'End Sub
    Private Sub getPFCode()
        Try
            ClearFeaturesFields()
            'txtProductFeaCode.Text = Generate_Code("Select count(*) from ProductFeatures where ProdFeatures_Code='", "PF")
        Catch
        End Try
    End Sub

    Private Sub getFeaturesExistingData()
        Try

            Dim dt As DataTable = getTable("SELECT ProdFeatures_Kid,ProdFeatures_Features FROM ProductFeatures WHERE ProdFeatures_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' AND ProdFeatures_IsDeleted = '0'", "PF")
            If dt.Rows.Count > 0 Then
                gvProductFeature.DataSource = dt
                gvProductFeature.DataBind()
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    gvProductFeature.Columns(0).Visible = False
                '' '' ''End If
                getPFCode()
                'btnFeatureAddMore.Enabled = True
                'btnFeatureCancel.Enabled = False
                'btnFeatureDelete.Visible = False
                'btnFeatureDelete.Enabled = False
                'EnableControlsPF(False)
                lblProductFeature.Text = "Product Features :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
            Else
                'getPFCode()
                lblProductFeature.Text = "Product Features :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
                gvProductFeature.DataSource = Nothing
                gvProductFeature.DataBind()
                'btnFeatureDelete.Visible = False
                'btnFeatureDelete.Enabled = False
                'btnFeatureAddMore.Visible = True
                'btnFeatureAddMore.Enabled = True
                'btnFeatureCancel.Visible = True
                'btnFeatureCancel.Enabled = True
                'EnableControlsPF(True)
            End If
            'If Session("AdminID") <> Nothing Then
            '    EnableControlsPF(True)
            '    If dt.Rows.Count > 0 Then
            '        btnFeatureAddMore.Visible = True
            '        btnFeatureAddMore.Enabled = True
            '        btnFeatureCancel.Visible = True
            '        btnFeatureCancel.Enabled = False
            '        btnFeatureUpdate.Visible = True
            '        btnFeatureUpdate.Enabled = True
            '        btnFeatureDelete.Visible = True
            '        btnFeatureDelete.Enabled = True
            '    Else
            '        btnFeatureDelete.Visible = True
            '        btnFeatureDelete.Enabled = False
            '        btnFeatureAddMore.Visible = True
            '        btnFeatureAddMore.Enabled = True
            '        btnFeatureCancel.Visible = True
            '        btnFeatureCancel.Enabled = True
            '        btnFeatureUpdate.Visible = True
            '        btnFeatureUpdate.Enabled = False
            '    End If
            'Else
            '    btnFeatureUpdate.Visible = False
            'End If
            dt.Clear()
        Catch
        End Try
    End Sub

    Private Function AddProductFeature() As Boolean
        Try
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductFeatures_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProdFeatures_Code) from  ProductFeatures WHERE ProdFeatures_Code LIKE" + "'PF" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Code", SqlDbType.NVarChar, 25)).Value = "PF" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            'cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from ProductFeatures where ProdFeatures_Code='", "PF").ToString()
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_Features", SqlDbType.NVarChar, 1000)).Value = txtProductFeature.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company") 'Trim(g_Company)
            cmd.Parameters.Add(New SqlParameter("@ProdFeatures_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Product Feature"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"

            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    '********************************** Product Technical Specification  ******************************************
    Protected Sub btntechspec_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btntechspec.Click
        Try
            'gvProTechSpe.DataSource = Nothing
            'gvProTechSpe.DataBind()
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 2
            'Tr14.Visible = False
            ClearTechSpecificationFields()                               'Clear the TextFields
            getExistingTechSpecificationData()
            'TrtxtTechSpec.Style.Add("display", "none")
            Dim strCatID As String = ReturnValue("Select Product_CategoryId from Product_Master where Product_KID ='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
            If strCatID.Contains("\") Then
                strCatID = strCatID.Replace("\", "\\\")
            End If

            Dim strSuppID, strgUser, strFinYear, strgCompany As String
            strSuppID = Session("SupplierID").ToString
            strgUser = Session("g_User").ToString
            strFinYear = Session("g_FinYear").ToString
            strgCompany = Session("g_Company").ToString
            If strSuppID.Contains("\") Then
                strSuppID = strSuppID.Replace("\", "\\")
            End If

            If strgUser.Contains("\") Then
                strgUser = strgUser.Replace("\", "\\")
            End If
            If strFinYear.Contains("\") Then
                strFinYear = strFinYear.Replace("\", "\\")
            End If
            If strgCompany.Contains("\") Then
                strgCompany = strgCompany.Replace("\", "\\")
            End If
            If strCatID.Contains("\") Then
                strCatID = strCatID.Replace("\", "\\")
            End If
            lnkTechSpecNameSave.Attributes.Add("onclick", "return promptCallbackTechSpec();")
            'lnkTechSpecNameCancel.Attributes.Add("onclick", "return lnkTechSpecNameCancel();")
            TrtxtTechSpec.Style.Add("display", "none")
            ddlProTecSpeParameter.Attributes.Add("onchange", "return checkTechSpecddl(this,'" & RemoveLiterals(strCatID) & "','" & RemoveLiterals(strgCompany) & "','" & RemoveLiterals(strgUser) & "','" & RemoveLiterals(strFinYear) & "');")

            'lnkProdTechSpecCancel.Attributes.Add("onclick", "return CancelClick();")
            'lnkProdTechSpecAdd.Attributes.Add("onclick", "return AddClick('" & ReturnValue("Select Product_CategoryId from Product_Master where Product_KID ='" & Session("ProductID").ToString & "'") & "','" & Session("g_Company").ToString & "','" & Session("g_User") & "','" & Session("g_FinYear") & "');")
            filltechspec()
            'btnProTecSpeCancel.Visible = False
            btnProTecSpeAddMore.Attributes.Add("onclick", "return CheckTechSpec('" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "','s');")
            btnProTecSpeUpdate.Attributes.Add("onclick", "return CheckTechSpec('" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "','u');")
            btnProTecSpeDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            visiblebtntechspec()
            ddlProTecSpeParameter.Focus()
            gvProTechSpe.SelectedIndex = -1
        Catch
        End Try
    End Sub

    Protected Sub lnkTechSpecNameSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkTechSpecNameSave.Click
        Dim strTech As String
        strTech = InsertMaster(txtProTecSpecName.Text, hfCategory.Value.ToString, Session("g_Company").ToString, Session("g_User").ToString, Session("g_FinYear").ToString)

        If strTech = "false" Then
            CreateMessageAlert(Me, "Parameter Name is Already Present.!", "strkeyval")
            TrddlTechSpec.Style.Add("display", "none")
            TrtxtPvalue.Style.Add("display", "none")
            TrtxtTechSpec.Style.Add("display", "auto")
            ddlProTecSpeParameter.ClearSelection()
            displayone(tblTechnicalSpecification)
            ScriptManager1.SetFocus(txtProTecSpecName)
        Else
            TrddlTechSpec.Style.Add("display", "auto")
            TrtxtPvalue.Style.Add("display", "auto")
            TrtxtTechSpec.Style.Add("display", "none")
            filltechspec()
            'ddlProTecSpeParameter.Items.Add(New ListItem(txtProTecSpecName.Text.ToString, strTech))
            'ddlProTecSpeParameter.ClearSelection()
            ddlProTecSpeParameter.Items.FindByValue(strTech).Selected = True
            txtProTecSpecName.Text = ""
            ''ddlProTecSpeParameter.ClearSelection()
            displayone(tblTechnicalSpecification)
        End If
       
    End Sub

    Protected Sub lnkTechSpecNameCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkTechSpecNameCancel.Click
        TrddlTechSpec.Style.Add("display", "auto")
        TrtxtPvalue.Style.Add("display", "auto")
        TrtxtTechSpec.Style.Add("display", "none")
        ddlProTecSpeParameter.ClearSelection()
        txtProTecSpecName.Text = ""
        displayone(tblTechnicalSpecification)
    End Sub

    <Ajax.AjaxMethod()> _
 Public Function CheckExistingTechSpec(ByVal strTechSpecID As String, ByVal StrProductID As String) As Boolean
        'Dim KID As String
        'KID = NewPrimaryKey(Me)

        'Dim strMatch As String
        'strMatch = ReturnValue("SELECT     TechSpec_Kid FROM ProductTechnicalSpecification_Master WHERE     TechSpec_CategoryId = '" & strCategoryID.Trim & "' AND TechSpec_IsDeleted = '0' AND (soundex(TechSpec_parameter) = soundex('" & strParameter.Trim & "'))")
        'If strMatch <> "" Then
        '    Return "false"
        'End If
        If IsAlreadyPresent("Select count(*) from ProductTechnicalSpecification where (TechSpec_ParameterId='" & strTechSpecID.ToString.Trim & "') and TechSpec_ProductId ='" & StrProductID.ToString.Trim & "' and TechSpec_Isdeleted ='0'") Then
            Return False
        End If
        Return True


    End Function
    Public Sub visiblebtntechspec()
        btnProTecSpeAddMore.Visible = True
        btnProTecSpeDelete.Visible = False
        btnProTecSpeUpdate.Visible = False
        btnProTecSpeCancel.Visible = False
    End Sub
    Public Sub filltechspec()
        ddlProTecSpeParameter.Items.Clear()
        FillComboWithOthersJJ("Select TechSpec_KID, TechSpec_Parameter from ProductTechnicalSpecification_Master where TechSpec_CategoryId='" & ReturnValue("Select Product_CategoryId from Product_Master where Product_KId ='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'") & "' order by TechSpec_Parameter ", ddlProTecSpeParameter, "Select Parameter")
    End Sub
    '<Ajax.AjaxMethod()> _
    Public Function InsertMaster(ByVal strParameter As String, ByVal strCategoryID As String, ByVal strCompanyID As String, ByVal strUserID As String, ByVal strFinancialYearID As String) As String
        Dim KID As String
        KID = NewPrimaryKey(Me)

        'Dim strMatch As String
        'strMatch = ReturnValue("SELECT     TechSpec_Kid FROM ProductTechnicalSpecification_Master WHERE     TechSpec_CategoryId = '" & strCategoryID.Trim & "' AND TechSpec_IsDeleted = '0' AND (soundex(TechSpec_parameter) = soundex('" & strParameter.Trim & "'))")
        'If strMatch <> "" Then
        '    Return "false"
        'End If
        If IsAlreadyPresent("Select count(*) from ProductTechnicalSpecification_Master where (TechSpec_Parameter='" & StrConv(strParameter.Trim, VbStrConv.ProperCase) & "' or TechSpec_Parameter like'" & StrConv(strParameter.Trim, VbStrConv.ProperCase) & "%') and TechSpec_CategoryId ='" & strCategoryID.ToString & "'") Then
            Return "false"
        End If
        If KID <> "" Then
            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductTechnicalSpecificationMaster_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Kid", SqlDbType.NVarChar, 10)).Value = KID
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from ProductTechnicalSpecification_Master where TechSpec_Code='", "TSM").ToString()
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Parameter", SqlDbType.NVarChar, 200)).Value = StrConv(strParameter.Trim, VbStrConv.ProperCase)
            cmd.Parameters.Add(New SqlParameter("@TechSpec_CategoryId", SqlDbType.NVarChar, 10)).Value = strCategoryID
            cmd.Parameters.Add(New SqlParameter("@TechSpec_CompanyId", SqlDbType.NVarChar, 10)).Value = strCompanyID.ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_UserId", SqlDbType.NVarChar, 10)).Value = strUserID.ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_FinancialYearId", SqlDbType.NVarChar, 10)).Value = strFinancialYearID.Trim
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Technical Specification Master"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                System.Threading.Thread.Sleep(1000)
                con.Close()
                Return KID
            Catch ex As Exception
                con.Close()
                Return "false"
            End Try
            Return True
        Else
            Return "false"
        End If

    End Function
    Protected Sub btnProTecSpeAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProTecSpeAddMore.Click
        Try
            If AddTechSpec() = True Then
                'displayone(tblTechnicalSpecification)
                displayone(tblTechnicalSpecification)

                getExistingTechSpecificationData()
                ' GetExisting()
                getTSCode()
                filltechspec()
                ClearTechSpecificationFields()
                ScriptManager1.SetFocus(ddlProTecSpeParameter)
                gvProTechSpe.SelectedIndex = -1
                'CreateMessageAlert(Me, "Technical Specification saved successfully.!", "strkeyval")
            End If
        Catch
        End Try
    End Sub
    Protected Sub gvProTechSpe_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvProTechSpe.SelectedIndexChanged
        Try
            'txtProTecSpeParameter.Enabled = True
            displayone(tblTechnicalSpecification)
            txtProTecSpeValue.Enabled = True
            Dim Kid As String = gvProTechSpe.DataKeys(gvProTechSpe.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductTechnicalSpecification where TechSpec_Kid = '" & Kid & "' and TechSpec_IsDeleted='0' ", "PTS")
            'txtProTecSpeParameter.Text = dt.Rows(0).Item("TechSpec_parameter").ToString
            txtProTecSpeValue.Text = dt.Rows(0).Item("TechSpec_value").ToString
            TrddlTechSpec.Style.Add("display", "auto")
            TrtxtTechSpec.Style.Add("display", "none")
            filltechspec()
            ddlProTecSpeParameter.ClearSelection()
            ddlProTecSpeParameter.Items.FindByValue(dt.Rows(0).Item("TechSpec_ParameterId")).Selected = True
            dt.Clear()
            btnProTecSpeAddMore.Visible = False
            btnProTecSpeUpdate.Visible = True
            btnProTecSpeDelete.Visible = True
            btnProTecSpeCancel.Visible = True

        Catch
            btnProTecSpeAddMore.Visible = False
            btnProTecSpeUpdate.Visible = True
            btnProTecSpeDelete.Visible = True
            btnProTecSpeCancel.Visible = True
        End Try

    End Sub
    Protected Sub btnProTecSpeSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProTecSpeCancel.Click
        Try
            'AddTechSpec()
            displayone(tblTechnicalSpecification)        'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            visiblebtntechspec()
            gvProTechSpe.SelectedIndex = -1
            ClearTechSpecificationFields()
            'getTSCode()
            'MultiView2.ActiveViewIndex = -1
        Catch
        End Try
    End Sub
    Protected Sub btnProTecSpeDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProTecSpeDelete.Click
        Try
            Dim Kid As String = gvProTechSpe.DataKeys(gvProTechSpe.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductTechnicalSpecification where TechSpec_Kid = '" & Kid & "' and TechSpec_IsDeleted='0' ", "PTS")


            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductTechnicalSpecification_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("TechSpec_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_value", SqlDbType.NVarChar, 200)).Value = txtProTecSpeValue.Text
            cmd.Parameters.Add(New SqlParameter("@TechSpec_ParameterId", SqlDbType.NVarChar, 10)).Value = ddlProTecSpeParameter.SelectedItem.Value.ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Technical Specification"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Delete"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                dt.Clear()
                getExistingTechSpecificationData()
                ' GetExisting()
                visiblebtntechspec()
                displayone(tblTechnicalSpecification)
                CreateMessageAlert(Me, "Technical Specification deleted successfully.!", "strkeyval")
                gvProTechSpe.SelectedIndex = -1
                filltechspec()
            Catch ex As Exception
                con.Close()
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
            End Try
        Catch
        End Try
    End Sub
    Protected Sub btnProTecSpeUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Try

            Dim Kid As String = gvProTechSpe.DataKeys(gvProTechSpe.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductTechnicalSpecification where TechSpec_Kid = '" & Kid & "' and TechSpec_IsDeleted='0' ", "PTS")


            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductTechnicalSpecification_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("TechSpec_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_value", SqlDbType.NVarChar, 200)).Value = txtProTecSpeValue.Text
            cmd.Parameters.Add(New SqlParameter("@TechSpec_ParameterId", SqlDbType.NVarChar, 10)).Value = ddlProTecSpeParameter.SelectedItem.Value.ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("TechSpec_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Technical Specification"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Update"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                dt.Clear()
                getExistingTechSpecificationData()
                ' GetExisting()
                displayone(tblTechnicalSpecification)
                CreateMessageAlert(Me, "Technical Specification updated successfully.!", "strkeyval")
                visiblebtntechspec()
                filltechspec()
            Catch ex As Exception
                con.Close()
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
            End Try
        Catch
        End Try
    End Sub
    Private Sub ClearTechSpecificationFields()
        Try
            'txtProTecSpeCode.Text = ""
            'txtProTecSpeParameter.Text = ""
            txtProTecSpeValue.Text = ""
            ddlProTecSpeParameter.ClearSelection()

        Catch
        End Try
    End Sub
    Protected Sub EnableControlsTS(ByVal Action As Boolean)
        Try
            'txtProTecSpeParameter.Enabled = Action
            txtProTecSpeValue.Enabled = Action
        Catch
        End Try
    End Sub
    'Private Sub FillTSGrid()
    '    Try
    '        gvProTechSpe.Visible = True
    '        Dim dt As DataTable = getTable("SELECT ProductTechnicalSpecification.TechSpec_Kid as Kid, ProductTechnicalSpecification.TechSpec_code, ProductTechnicalSpecification.TechSpec_parameter, ProductTechnicalSpecification.TechSpec_value FROM ProductTechnicalSpecification  where ProductTechnicalSpecification.TechSpec_ProductId ='" & Session("ProductId").Trim & "' and TechSpec_IsDeleted='0' and TechSpec_CompanyID='" & Session("g_Company").Trim & "'", "PTS")
    '        gvProTechSpe.DataSource = dt
    '        gvProTechSpe.DataBind()
    '    Catch
    '    End Try
    'End Sub
    Private Sub getExistingTechSpecificationData()
        Try

            ClearTechSpecificationFields()
            Dim dt As DataTable = getTable("SELECT ProductTechnicalSpecification.TechSpec_Kid, ProductTechnicalSpecification.TechSpec_code, ProductTechnicalSpecification.TechSpec_value, ProductTechnicalSpecification_Master.TechSpec_Parameter FROM         ProductTechnicalSpecification_Master INNER JOIN                       ProductTechnicalSpecification ON ProductTechnicalSpecification_Master.TechSpec_KID = ProductTechnicalSpecification.TechSpec_ParameterId where ProductTechnicalSpecification.TechSpec_ProductId ='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProductTechnicalSpecification.TechSpec_IsDeleted='0' and ProductTechnicalSpecification.TechSpec_CompanyID='" & Session("g_Company").Trim & "' order by ProductTechnicalSpecification_Master.TechSpec_Parameter", "PTS")
            If dt.Rows.Count > 0 Then
                gvProTechSpe.DataSource = dt
                gvProTechSpe.DataBind()
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    gvProTechSpe.Columns(0).Visible = False
                '' '' ''End If
                'gvProTechSpe.SelectedIndex = -1
                'getTSCode()
                'btnProTecSpeAddMore.Enabled = True
                'btnProTecSpeCancel.Enabled = False
                'EnableControlsTS(False)
            Else
                'getTSCode()
                gvProTechSpe.DataSource = Nothing
                gvProTechSpe.DataBind()
                'btnProTecSpeAddMore.Enabled = True
                'btnProTecSpeCancel.Enabled = True
                'EnableControlsTS(True)
            End If

            'If Session("AdminID") <> Nothing Then
            '    EnableControlsTS(True)
            '    If dt.Rows.Count > 0 Then
            '        btnProTecSpeDelete.Visible = True
            '        btnProTecSpeDelete.Enabled = True
            '        btnProTecSpeAddMore.Visible = True
            '        btnProTecSpeAddMore.Enabled = True
            '        btnProTecSpeCancel.Visible = True
            '        btnProTecSpeCancel.Enabled = False
            '        btnProTecSpeUpdate.Visible = True
            '        btnProTecSpeUpdate.Enabled = True
            '    Else
            '        btnProTecSpeDelete.Visible = True
            '        btnProTecSpeDelete.Enabled = False
            '        btnProTecSpeAddMore.Visible = True
            '        btnProTecSpeAddMore.Enabled = True
            '        btnProTecSpeCancel.Visible = True
            '        btnProTecSpeCancel.Enabled = True
            '        btnProTecSpeUpdate.Visible = True
            '        btnProTecSpeUpdate.Enabled = False

            '    End If
            'Else
            '    btnProTecSpeUpdate.Visible = False
            'End If
            dt.Clear()
        Catch
        End Try
    End Sub
    Private Sub getTSCode()
        Try
            'txtProTecSpeCode.Text = Generate_Code("Select count(*) from ProductTechnicalSpecification where TechSpec_Code='", "TS")
        Catch
        End Try
    End Sub
    Private Function AddTechSpec() As Boolean
        Try

            'If Val(txtProTecSpeValue.Text) <= 0 Then
            '    lblResult.Visible = True
            '    lblResult.Text = "Value must be greater than zero"
            '    Exit Function
            'Else
            '    lblResult.Visible = False
            'End If
            'lblResult.Visible = True
            'If txtProTecSpeParameter.Text.Trim.Length = 0 Then
            '    lblResult.Text = "Parameter cant be blank !!"
            '    Return False
            '    Exit Function
            'End If
            If txtProTecSpeValue.Text.Trim.Length = 0 Then
                'lblResult.Visible = True
                'lblResult.Text = "Value cant be blank !!"
                Return False
                Exit Function
            End If
            'If ddlProTecSpeUnitName.SelectedIndex = 0 Then
            '    lblResult.Text = "Select Unit Name !!"
            '    Return False
            '    Exit Function
            'End If
            getTSCode()
            'lblResult.Visible = False
            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductTechnicalSpecification_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)

            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(TechSpec_Code) from  ProductTechnicalSpecification WHERE TechSpec_Code LIKE" + "'TS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            cmd.Parameters.Add(New SqlParameter("@TechSpec_Code", SqlDbType.NVarChar, 25)).Value = "TS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))

            'cmd.Parameters.Add(New SqlParameter("@TechSpec_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from ProductTechnicalSpecification where TechSpec_Code='", "TS").ToString()
            cmd.Parameters.Add(New SqlParameter("@TechSpec_value", SqlDbType.NVarChar, 200)).Value = txtProTecSpeValue.Text
            If ddlProTecSpeParameter.SelectedItem.Value = "Select" Then
                cmd.Parameters.Add(New SqlParameter("@TechSpec_ParameterId", SqlDbType.NVarChar, 10)).Value = HiddenField1.Value
            Else
                cmd.Parameters.Add(New SqlParameter("@TechSpec_ParameterId", SqlDbType.NVarChar, 10)).Value = ddlProTecSpeParameter.SelectedItem.Value
            End If
            'cmd.Parameters.Add(New SqlParameter("@TechSpec_ParameterId", SqlDbType.NVarChar, 10)).Value = ddlProTecSpeParameter.SelectedItem.Value.ToString
            cmd.Parameters.Add(New SqlParameter("@TechSpec_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@TechSpec_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear").Trim
            cmd.Parameters.Add(New SqlParameter("@TechSpec_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@TechSpec_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Technical Specification"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
            Catch ex As Exception
                con.Close()
                Return False
            End Try
            Return True
        Catch
        End Try
    End Function
    '********************************** Product Special Notes Instruction  ******************************************
    Protected Sub btnspecialnote_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnspecialnote.Click
        Try
            'gvProdSpecInstr.DataSource = Nothing
            'gvProdSpecInstr.DataBind()
            ''.Visible = False
            'MultiView2.ActiveViewIndex = 3
            'Tr22.Visible = False
            ClearSpecialNoteFields()
            getExistingSpecialNoteData()
            btnProdSpecInstrCancel.Visible = False
            fuSpecialNotes.Focus()
            btnProdSpecInstrAddMore.Attributes.Add("onclick", "return checkSpecialNotes();")
            btnProdSpecInstrUpdate.Attributes.Add("onclick", "return checkSpecialNotes();")
            btnProdSpecInstrDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            'btnvisibleSpecInstr()
        Catch
        End Try
    End Sub
    Protected Sub btnProdSpecInstrAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdSpecInstrAddMore.Click
        Try
            If AddProdSpecInstr() = True Then
                ClearSpecialNoteFields()
                getExistingSpecialNoteData()
                ' GetExisting()
                GetSpecialNoteCode()
                displayone(tblSpecialNotes)
                CreateMessageAlert(Me, "Special Notes saved successfully.!", "strkeyval")
            End If
        Catch
        End Try
    End Sub
    Protected Sub gvProdSpecInstr_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvProdSpecInstr.SelectedIndexChanged
        Try
            txtProdSpecInstr_Instruction.Enabled = True
            displayone(tblSpecialNotes)
            Dim Kid As String = gvProdSpecInstr.DataKeys(gvProdSpecInstr.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductSpecialNotesInstruction where ProdSpecInstr_Kid = '" & Kid & "' and ProdSpecInstr_IsDeleted='0' ", "PTS")
            txtProdSpecInstr_Instruction.Text = dt.Rows(0).Item("ProdSpecInstr_Instruction").ToString.Trim
            btnProdSpecInstrAddMore.Visible = False
            btnProdSpecInstrCancel.Visible = True
            btnProdSpecInstrDelete.Visible = True
            btnProdSpecInstrUpdate.Visible = True
            dt.Clear()
        Catch
        End Try

    End Sub
    Protected Sub btnProdSpecInstrDelete_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdSpecInstrDelete.Click
        Try
            Dim Kid As String = gvProdSpecInstr.DataKeys(gvProdSpecInstr.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductSpecialNotesInstruction where ProdSpecInstr_Kid = '" & Kid & "' and ProdSpecInstr_IsDeleted='0' ", "PTS")
            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductSpecialNotesInstruction_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdSpecInstr_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Instruction", SqlDbType.NVarChar, 1000)).Value = txtProdSpecInstr_Instruction.Text
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Special Notes Instruction"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Delete"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                dt.Clear()
                getExistingSpecialNoteData()
                ' GetExisting()
                btnvisibleSpecInstr()
                displayone(tblSpecialNotes)
                CreateMessageAlert(Me, "Special Notes deleted successfully.!", "strkeyval")
            Catch ex As Exception
                con.Close()
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
            End Try
        Catch
        End Try
    End Sub
    Protected Sub btnProdSpecInstrUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdSpecInstrUpdate.Click

        Try

            Dim strImageName As String = ""
            '----------------------------------
            'If rblUserManual.SelectedValue = "Yes" Then
            If (fuSpecialNotes.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuSpecialNotes.FileName).ToLower
                If fileType = ".pdf" Then
                    strImageName = Final_FileUpload(fuSpecialNotes, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                Else
                    'lblResult.Visible = True
                    'lblResult.Text = "Please select .pdf only!"
                    fuSpecialNotes.Focus()
                    Exit Sub
                End If
            Else
                strImageName = ddlSpecialNotesSameAs.SelectedValue.ToString
                'lblResult.Visible = True
                'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
                'Exit Sub
            End If

            'Dim Kid As String = gvProdSpecInstr.DataKeys(gvProdSpecInstr.SelectedIndex).Value.ToString
            'Dim dt As DataTable = getTable("SELECT * FROM ProductSpecialNotesInstruction where ProdSpecInstr_Kid = '" & Kid & "' and ProdSpecInstr_IsDeleted='0' ", "PTS")


            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductSpecialNotesInstruction_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Kid", SqlDbType.NVarChar, 10)).Value = ReturnValue("Select ProdSpecInstr_kid from ProductSpecialNotesInstruction where ProdSpecInstr_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and ProdSpecInstr_Isdeleted ='0'") 'dt.Rows(0).Item("ProdSpecInstr_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Code", SqlDbType.NVarChar, 25)).Value = ReturnValue("Select ProdSpecInstr_Code from ProductSpecialNotesInstruction where ProdSpecInstr_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and ProdSpecInstr_Isdeleted ='0'")  'dt.Rows(0).Item("ProdSpecInstr_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Instruction", SqlDbType.NVarChar, 1000)).Value = ""
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID"))) 'dt.Rows(0).Item("ProdSpecInstr_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FileName", SqlDbType.NVarChar, 50)).Value = strImageName.ToString ' dt.Rows(0).Item("ProdSpecInstr_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear").ToString  'dt.Rows(0).Item("ProdSpecInstr_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").ToString  'dt.Rows(0).Item("ProdSpecInstr_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").ToString  'dt.Rows(0).Item("ProdSpecInstr_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Special Notes Instruction"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                'dt.Clear()
                getExistingSpecialNoteData()
                ' GetExisting()
                ClearSpecialNoteFields()
                btnvisibleSpecInstr()
                displayone(tblSpecialNotes)
                CreateMessageAlert(Me, "Special Notes Updated Successfully.!", "strkeyval")
            Catch ex As Exception
                con.Close()
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
            End Try
        Catch
        End Try
    End Sub
    Protected Sub btnProdSpecInstrSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdSpecInstrCancel.Click
        Try
            ClearSpecialNoteFields()
            btnvisibleSpecInstr()
            displayone(tblSpecialNotes)
            gvProdSpecInstr.SelectedIndex = -1
        Catch
        End Try
    End Sub
    Protected Sub btnProdSpecInstrDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            Dim Kid As String = gvProdSpecInstr.DataKeys(gvProdSpecInstr.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM ProductSpecialNotesInstruction where ProdSpecInstr_Kid = '" & Kid & "' and ProdSpecInstr_IsDeleted='0' ", "PTS")


            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductSpecialNotesInstruction_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Kid", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdSpecInstr_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Instruction", SqlDbType.NVarChar, 150)).Value = txtProdSpecInstr_Instruction.Text
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_ProductId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_CompanyId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_UserId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("ProdSpecInstr_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Special Notes Instruction"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Delete"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                dt.Clear()
                getExistingSpecialNoteData()
                ' GetExisting()
                ClearSpecialNoteFields()
                btnvisibleSpecInstr()
                displayone(tblSpecialNotes)
                CreateMessageAlert(Me, "Special Notes Deleted Sucessfully.!", "strkeyval")
            Catch ex As Exception
                con.Close()
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")
            End Try
        Catch
        End Try
    End Sub
    Public Sub btnvisibleSpecInstr()
        btnProdSpecInstrAddMore.Visible = True
        btnProdSpecInstrUpdate.Visible = False
        btnProdSpecInstrDelete.Visible = False
        btnProdSpecInstrCancel.Visible = False
    End Sub
    Private Sub getExistingSpecialNoteData()
        Try

            Dim fileName As String
            fileName = ReturnValue("Select ProdSpecInstr_FileName from ProductSpecialNotesInstruction where ProdSpecInstr_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and ProdSpecInstr_Isdeleted ='0' AND (ProdSpecInstr_FileName IS NOT NULL)")
            If fileName.ToString <> "" Then
                trSpecialNotesFileName.Style.Add("display", "auto")
                hlSpecialInstruction.Text = fileName.ToString
                hlSpecialInstruction.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & fileName.ToString
                btnProdSpecInstrAddMore.Visible = False
                btnProdSpecInstrUpdate.Visible = True
            Else
                trSpecialNotesFileName.Style.Add("display", "none")
                btnProdSpecInstrAddMore.Visible = True
                btnProdSpecInstrUpdate.Visible = False
            End If

            '' '' ''Dim dt As DataTable = getTable("SELECT ProdSpecInstr_Code,ProdSpecInstr_Kid,ProdSpecInstr_Instruction FROM ProductSpecialNotesInstruction where  ProdSpecInstr_ProductID='" & Session("ProductId").Trim & "' and ProdSpecInstr_IsDeleted='0' and ProdSpecInstr_CompanyID='" & Session("g_Company").Trim & "'", "TS")
            '' '' ''If dt.Rows.Count > 0 Then
            '' '' ''    gvProdSpecInstr.DataSource = dt
            '' '' ''    gvProdSpecInstr.DataBind()
            '' '' ''    '' '' ''If Session("AdminID") = Nothing Then
            '' '' ''    '' '' ''    gvProdSpecInstr.Columns(0).Visible = False
            '' '' ''    '' '' ''End If
            '' '' ''    'GetSpecialNoteCode()
            '' '' ''    'btnProdSpecInstrAddMore.Enabled = True
            '' '' ''    'btnProdSpecInstrCancel.Enabled = False
            '' '' ''    'EnableControlsSN(False)
            '' '' ''    'ClearSpecialNoteFields()
            '' '' ''    lblProductInstruction.Text = "Product Instruction :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
            '' '' ''Else
            '' '' ''    lblProductInstruction.Text = "Product Instruction :&nbsp;&nbsp;<b>" & dt.Rows.Count + 1 & ".</b>"
            '' '' ''    GetSpecialNoteCode()
            '' '' ''    gvProdSpecInstr.DataSource = Nothing
            '' '' ''    'gvProdSpecInstr.DataBind()
            '' '' ''    'btnProdSpecInstrAddMore.Enabled = True
            '' '' ''    'btnProdSpecInstrCancel.Enabled = True
            '' '' ''    'EnableControlsSN(True)
            '' '' ''    'ClearSpecialNoteFields()
            '' '' ''End If

            'If Session("AdminID") <> Nothing Then
            '    EnableControlsSN(True)
            '    If dt.Rows.Count > 0 Then
            '        btnProdSpecInstrDelete.Visible = True
            '        btnProdSpecInstrDelete.Enabled = True
            '        btnProdSpecInstrAddMore.Visible = True
            '        btnProdSpecInstrAddMore.Enabled = True
            '        btnProdSpecInstrCancel.Visible = True
            '        btnProdSpecInstrCancel.Enabled = False
            '        btnProdSpecInstrUpdate.Visible = True
            '        btnProdSpecInstrUpdate.Enabled = True

            '    Else
            '        btnProdSpecInstrDelete.Visible = True
            '        btnProdSpecInstrDelete.Enabled = False
            '        btnProdSpecInstrAddMore.Visible = True
            '        btnProdSpecInstrAddMore.Enabled = True
            '        btnProdSpecInstrCancel.Visible = True
            '        btnProdSpecInstrCancel.Enabled = True
            '        btnProdSpecInstrUpdate.Visible = True
            '        btnProdSpecInstrUpdate.Enabled = False

            '    End If
            'Else
            '    btnProdSpecInstrUpdate.Visible = False
            'End If

            'dt.Clear()
        Catch
        End Try
    End Sub
    Protected Sub EnableControlsSN(ByVal Action As Boolean)
        Try
            txtProdSpecInstr_Instruction.Enabled = Action
        Catch
        End Try
    End Sub
    Private Sub ClearSpecialNoteFields()
        Try
            'txtProdSpecInstr_Code.Text = ""
            txtProdSpecInstr_Instruction.Text = ""
            ddlSpecialNotesSameAs.ClearSelection()
            hypSpecialNotesSameAs.Text = ""
            hypSpecialNotesSameAs.NavigateUrl = ""
        Catch
        End Try
    End Sub
    Private Sub GetSpecialNoteCode()
        Try
            'txtProdSpecInstr_Code.Text = Generate_Code("Select count(*) from ProductSpecialNotesInstruction where ProdSpecInstr_Code='", "TS")
        Catch
        End Try
    End Sub
    ''Private Sub FillSNGrid()
    ''    Try
    ''        Dim dt As DataTable = getTable("SELECT ProdSpecInstr_Code,ProdSpecInstr_Kid,ProdSpecInstr_Instruction FROM ProductSpecialNotesInstruction where  ProdSpecInstr_ProductID='" & Session("ProductId").Trim & "' and ProdSpecInstr_IsDeleted='0' and ProdSpecInstr_CompanyID='" & Session("g_Company").Trim & "'", "TS")
    ''        gvProdSpecInstr.DataSource = dt
    ''        gvProdSpecInstr.DataBind()
    ''    Catch
    ''    End Try
    ''End Sub
    Private Function AddProdSpecInstr() As Boolean
        Try
            Dim strImageName As String = ""
            '----------------------------------
            'If rblUserManual.SelectedValue = "Yes" Then
            If (fuSpecialNotes.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuSpecialNotes.FileName).ToLower
                If fileType = ".pdf" Then
                    strImageName = Final_FileUpload(fuSpecialNotes, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                Else
                    'lblResult.Visible = True
                    'lblResult.Text = "Please select .pdf only!"
                    fuSpecialNotes.Focus()
                    Exit Function
                End If
            Else
                strImageName = ddlSpecialNotesSameAs.SelectedValue.ToString
                'lblResult.Visible = True
                'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
                'Exit Function
            End If
            Dim con As New SqlConnection()
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
            Dim cmd As New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductSpecialNotesInstruction_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)

            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProdSpecInstr_Code) from  ProductSpecialNotesInstruction WHERE ProdSpecInstr_Code LIKE" + "'TS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Code", SqlDbType.NVarChar, 25)).Value = "TS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))

            'cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from ProductSpecialNotesInstruction where ProdSpecInstr_Code='", "TS").ToString()
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_Instruction", SqlDbType.NVarChar, 1000)).Value = txtProdSpecInstr_Instruction.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FileName", SqlDbType.NVarChar, 50)).Value = strImageName.ToString 'Session("ProductId")
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@ProdSpecInstr_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Special Notes Instruction"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"
            Try
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                Return True
            Catch ex As Exception
                con.Close()
                Return False
            End Try
        Catch
        End Try
    End Function
    '************************************* Material Safety Data Sheet  *********************************************
    Protected Sub btnproductmsds_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnproductmsds.Click
        Try
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 4
            'Tr28.Visible = False
            'trProductMSDS.Style.Add("display", "none")
            'rblProductMSDS.Attributes.Add("onclick", "return rblProductMSDSClick(this);")
            btnProductMSDSSave.Attributes.Add("onclick", "return checkMSDS();")
            btnProductMSDSUpdate.Attributes.Add("onclick", "return checkMSDS();")
            'rblProductMSDS.ClearSelection()
            'rblProductMSDS.Focus()
            getExistingMSDSData()
            'rbYes.Checked = True
            '            rblProductMSDS.SelectedValue = "Yes"
        Catch
        End Try
    End Sub
    Protected Sub btnProductMSDSSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProductMSDSSave.Click
        Try
            Dim strImageName As String = ""
            Dim AdminstrImageName As String = ""
            'If rblProductMSDS.SelectedItem.Value = "Yes" Then
            If (FileUploadMSDS.HasFile) Then
                Dim fileType As String = Path.GetExtension(FileUploadMSDS.FileName)
                If fileType.ToLower = ".gif" Or fileType = ".jpg" Or fileType = ".docx" Or fileType = ".doc" Or fileType = ".bmp" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                    strImageName = Final_FileUpload(FileUploadMSDS, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                Else
                    'lblResult.Visible = True
                    'lblResult.Text = "Please Select .pdf , .gif , .jpg, .bmp, .doc, .docx File Only!"
                    FileUploadMSDS.Focus()
                    Exit Sub
                End If
            Else
                strImageName = ddlProductMSDSSameAs.SelectedValue.ToString
                'strImageName = ""
                'CreateMessageAlert(Me, "Please Select .pdf , .gif , .jpg, .bmp, .doc, .docx File Only!", "StrKeyVal")
                'Exit Sub
            End If
            ' End If

            'If Session("AdminID") <> Nothing Then
            '    If (AdminFileUploadMSDS.HasFile) Then
            '        Dim fileType As String = Path.GetExtension(AdminFileUploadMSDS.FileName)
            '        If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
            '            AdminstrImageName = Final_FileUpload(AdminFileUploadMSDS, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            '        Else
            '            lblResult.Visible = True
            '            lblResult.Text = "Please Select .pdf, .gif, .jpg file only!"
            '            AdminFileUploadMSDS.Focus()
            '            Exit Sub
            '        End If
            '    End If
            'End If

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "MaterialSafetyDataSheet_Proc"
            cmd.Connection = con

            cmd.Parameters.Add(New SqlParameter("@MSDS_Kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@MSDS_Code", SqlDbType.NVarChar, 25)).Value = GenerateMSDSCode().ToString
            Try
                'If rblProductMSDS.SelectedItem.Value = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@MSDS_IsDataSheetUpload", SqlDbType.NVarChar, 1)).Value = "Y"
                'Else
                'cmd.Parameters.Add(New SqlParameter("@MSDS_IsDataSheetUpload", SqlDbType.NVarChar, 1)).Value = "N"
                'End If
            Catch
            End Try
            cmd.Parameters.Add(New SqlParameter("@MSDS_UploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = strImageName
            'If (AdminFileUploadMSDS.HasFile) Then
            '    cmd.Parameters.Add(New SqlParameter("@MSDS_AdminUploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = AdminstrImageName
            'ElseIf AdminhyplnkMSDS.Text.Trim.Length > 0 Then
            '    cmd.Parameters.Add(New SqlParameter("@MSDS_AdminUploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = AdminhyplnkMSDS.Text
            'End If
            cmd.Parameters.Add(New SqlParameter("@MSDS_ProductId", SqlDbType.NVarChar, 25)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@MSDS_FinancialYearId", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@MSDS_CompanyId", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@MSDS_UserId", SqlDbType.NVarChar, 20)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Material Safety Data Sheet"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            displayone(tblProductMSDS)
            CreateMessageAlert(Me, "Product MSDS Saved Successfully.!", "strkeyval")
            ClearProductMsdsFields()
            getExistingMSDSData()
            'MultiView2.ActiveViewIndex = -1
        Catch
        End Try
    End Sub
    Protected Sub btnProductMSDSUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProductMSDSUpdate.Click
        Try
            Dim dt As DataTable = getTable("Select * from MaterialSafetyDataSheet where MSDS_ProductId='" & Session.Item("ProductId").Trim & "' and MSDS_IsDeleted='0' and MSDS_CompanyID='" & Session("g_Company").Trim & "'", "MSDS")

            Dim strImageName As String = ""
            Dim AdminstrImageName As String = ""
            'If rblProductMSDS.SelectedItem.Value = "Yes" Then
            If (FileUploadMSDS.HasFile) Then
                Dim fileType As String = Path.GetExtension(FileUploadMSDS.FileName)
                If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                    strImageName = Final_FileUpload(FileUploadMSDS, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                Else
                    'lblResult.Text = "Please Select .pdf , .gif , .jpg File Only!"
                    strImageName = dt.Rows(0).Item("MSDS_UploadedDataSheetName").ToString
                End If
            Else
                strImageName = ddlProductMSDSSameAs.SelectedValue.ToString
                'strImageName = dt.Rows(0).Item("MSDS_UploadedDataSheetName").ToString
            End If
            'End If

            'If (AdminFileUploadMSDS.HasFile) Then
            '    Dim fileType As String = Path.GetExtension(AdminFileUploadMSDS.FileName)
            '    If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
            '        AdminstrImageName = Final_FileUpload(AdminFileUploadMSDS, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            '    Else
            '        lblResult.Visible = True
            '        lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
            '        AdminFileUploadMSDS.Focus()
            '        Exit Sub
            '    End If
            'ElseIf AdminhyplnkMSDS.Text.Trim.Length > 0 Then
            '    AdminstrImageName = dt.Rows(0).Item("MSDS_AdminUploadedDataSheetName").ToString
            'Else
            '    AdminstrImageName = ""
            '    CreateMessageAlert(Me, "Please select .pdf, .gif, .jpg file first..!!", "StrKeyVal")
            '    Exit Sub
            'End If

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "MaterialSafetyDataSheet_Proc"
            cmd.Connection = con

            cmd.Parameters.Add(New SqlParameter("@MSDS_Kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("MSDS_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@MSDS_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("MSDS_Code").ToString
            Try
                'If rblProductMSDS.SelectedItem.Value = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@MSDS_IsDataSheetUpload", SqlDbType.NVarChar, 1)).Value = "Y"
                'Else
                'cmd.Parameters.Add(New SqlParameter("@MSDS_IsDataSheetUpload", SqlDbType.NVarChar, 1)).Value = "N"
                'strImageName = ""
                'End If
            Catch
            End Try
            'If (FileUploadMSDS.HasFile) Then
            cmd.Parameters.Add(New SqlParameter("@MSDS_UploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = strImageName
            'ElseIf hyplnkMSDS.Text.Trim.Length <> 0 Then
            'cmd.Parameters.Add(New SqlParameter("@MSDS_UploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = hyplnkMSDS.Text.Trim
            'Else
            'CreateMessageAlert(Me, "PLease Select Pdf File First..!!", "StrKeyVal")
            'Exit Sub
            'End If
            'If (AdminFileUploadMSDS.HasFile) Then
            '    cmd.Parameters.Add(New SqlParameter("@MSDS_AdminUploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = AdminstrImageName
            'ElseIf AdminhyplnkMSDS.Text.Trim.Length > 0 Then
            '    cmd.Parameters.Add(New SqlParameter("@MSDS_AdminUploadedDataSheetName", SqlDbType.NVarChar, 50)).Value = AdminhyplnkMSDS.Text
            'Else
            '    CreateMessageAlert(Me, "PLease Select Pdf File First..!!", "StrKeyVal")
            '    Exit Sub
            'End If
            cmd.Parameters.Add(New SqlParameter("@MSDS_ProductId", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("MSDS_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@MSDS_FinancialYearId", SqlDbType.NVarChar, 10)).Value = dt.Rows(0).Item("MSDS_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@MSDS_CompanyId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("MSDS_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@MSDS_UserId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("MSDS_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Material Safety Data Sheet"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            'lblResult.Visible = True
            'lblResult.Text = "Record Update Successfully."
            displayone(tblProductMSDS)
            CreateMessageAlert(Me, "Product MSDS Updated Successfully.!", "strkeyval")
            ClearProductMsdsFields()
            getExistingMSDSData()
            'MultiView2.ActiveViewIndex = -1
        Catch
        End Try
    End Sub
    Protected Sub EnableControlsMSDS(ByVal Action As Boolean)
        Try
            'rblProductMSDS.Enabled = Action
        Catch
        End Try
    End Sub
    Protected Sub ClearProductMsdsFields()
        Try
            ddlProductMSDSSameAs.ClearSelection()
            hypProductMSDSSameAs.Text = ""
            hypProductMSDSSameAs.NavigateUrl = ""
            'txtMSDS_Code.Text = ""                  'Assign Null to the TextField
            'rblProductMSDS.ClearSelection()
            'rbYes.Checked = False                           'Assign unchecked to the Radio Button
            'rbNo.Checked = False                           'Assign unchecked to the Radio Button
        Catch
        End Try
    End Sub
    Private Sub getExistingMSDSData()
        Try
            ' GetExisting()
            Dim dt As DataTable = getTable("Select MSDS_Kid,MSDS_Code,MSDS_IsDataSheetUpload,MSDS_UploadedDataSheetName,MSDS_AdminUploadedDataSheetName from MaterialSafetyDataSheet where MSDS_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and MSDS_IsDeleted='0' and MSDS_CompanyID='" & Session("g_Company").Trim & "'", "MSDS")
            If dt.Rows.Count > 0 Then
                'txtMSDS_Code.Text = dt.Rows(0).Item("MSDS_Code").ToString
                If dt.Rows(0).Item("MSDS_IsDataSheetUpload").ToString = "Y" Then
                    '' '' ''If Session("AdminID") <> Nothing Then
                    trProductMSDS.Style.Add("display", "auto")
                    '' '' ''End If
                    'rblProductMSDS.SelectedValue = "Yes"
                    trProductMSDSFileName.Style.Add("display", "auto")
                    'rblProductMSDS.SelectedValue = "Yes"
                    'lblMSDS_UploadedDataSheetName.Visible = True
                    hyplnkMSDS.Text = dt.Rows(0).Item("MSDS_UploadedDataSheetName").ToString
                    hyplnkMSDS.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("MSDS_UploadedDataSheetName").ToString
                    'FileUploadMSDS.Visible = False
                    ''Label4.Visible = False
                    'AdminFileUploadMSDS.Visible = False
                    'Label95.Visible = False
                    'hyplnkMSDS.Visible = True
                    'If dt.Rows(0).Item("MSDS_AdminUploadedDataSheetName").ToString.Trim.Length > 0 Then
                    '    AdminhyplnkMSDS.Visible = True
                    '    AdminhyplnkMSDS.Text = dt.Rows(0).Item("MSDS_AdminUploadedDataSheetName").ToString
                    '    AdminhyplnkMSDS.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("MSDS_AdminUploadedDataSheetName").ToString
                    'Else
                    '    AdminhyplnkMSDS.Visible = False
                    'End If
                    'EnableControlsMSDS(False)
                Else
                    'rblProductMSDS.SelectedValue = "No"
                    trProductMSDSFileName.Style.Add("display", "none")
                    'rblProductMSDS.SelectedValue = "No"
                    'trProductMSDSFileName.Visible = False
                    'lblMSDS_UploadedDataSheetName.Visible = False
                    'FileUploadMSDS.Visible = False
                    ''Label4.Visible = False
                    'AdminFileUploadMSDS.Visible = False
                    'Label95.Visible = False
                    'hyplnkMSDS.Visible = False
                    'AdminhyplnkMSDS.Visible = False
                    'EnableControlsMSDS(False)
                End If
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    btnProductMSDSSave.Visible = False
                '' '' ''    btnProductMSDSUpdate.Visible = False
                '' '' ''    EnableControlsMSDS(False)
                '' '' ''Else
                btnProductMSDSSave.Visible = False
                btnProductMSDSUpdate.Visible = True
                EnableControlsMSDS(True)
                '' '' ''End If
                'btnProductMSDSSave.Visible = False
            Else
                trProductMSDSFileName.Style.Add("display", "none")
                btnProductMSDSSave.Visible = True
                btnProductMSDSUpdate.Visible = False
                EnableControlsMSDS(True)
                'GenerateMSDSCode()
                'btnProductMSDSSave.Enabled = True
                'FileUploadMSDS.Visible = True
                'Label4.Visible = True
                'AdminFileUploadMSDS.Visible = True
                'Label95.Visible = True
                'lblMSDS_UploadedDataSheetName.Visible = True
                'hyplnkMSDS.Visible = False
                'AdminhyplnkMSDS.Visible = False
            End If
            ' ''If Session("AdminID") <> Nothing Then
            ' ''    EnableControlsMSDS(True)
            ' ''    FileUploadMSDS.Visible = True
            ' ''    'Label4.Visible = True
            ' ''    AdminFileUploadMSDS.Visible = True
            ' ''    Label95.Visible = True
            ' ''    If dt.Rows.Count > 0 Then
            ' ''        btnProductMSDSSave.Visible = False
            ' ''        'btnApplicaionSave.Enabled = True
            ' ''        btnProductMSDSUpdate.Visible = True
            ' ''    Else
            ' ''        btnProductMSDSSave.Visible = True
            ' ''        'btnApplicaionSave.Enabled = True
            ' ''        btnProductMSDSUpdate.Visible = False
            ' ''    End If
            ' ''Else
            ' ''    btnProductMSDSUpdate.Visible = False
            ' ''    AdminhyplnkMSDS.Visible = False
            ' ''    AdminFileUploadMSDS.Visible = False
            ' ''    Label95.Visible = False
            ' ''End If
            dt = Nothing
        Catch
        End Try
    End Sub
    Protected Function GenerateMSDSCode() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'txtMSDS_Code.Text = NewPrimaryKey(Me)
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "MSS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from MaterialSafetyDataSheet where MSDS_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(MSDS_Code) from  MaterialSafetyDataSheet WHERE MSDS_Code LIKE" + "'MSS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "MSS" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function


    '****************************************** Optional Accessories   *********************************************
    Protected Sub btnaccoptional_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnaccoptional.Click
        Try
            'MultiView2.ActiveViewIndex = 6
            FillFactoryCombo("SELECT Product_Master.Product_Kid, Product_Master.Product_Name + ' - ' + Product_Master.Product_Code + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS [Asseccory Name] FROM Product_Master WHERE (Product_Master.Product_SupplierId = '" & Session("SupplierID").ToString.Trim & "') AND (Product_Master.Product_IsAssc = 'Y') AND (Product_Master.Product_IsDeleted = '0') AND (Product_Approved = 'Y') AND (Product_Master.Product_Kid <> '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "')", ddlOptionalAccessories, "A")
            'FillFactoryCombo("SELECT     Product_Kid, Product_Name + ' - ' + Product_Code + ' - ' + ISNULL(Product_ModelNo, N'') AS [Asseccory Name]             FROM(Product_Master) WHERE     (Product_SupplierId = '" & RemoveLiterals(Session("SupplierID").ToString) & "') AND (Product_IsAssc = 'Y') AND (Product_IsDeleted = '0') AND (Product_Kid <> '" & RemoveLiterals(Session("ProductID").ToString) & "') AND                        (Product_Kid NOT IN                           (SELECT     ODTOA_OAccessId             FROM(OtherDetail_OptionalAccessories)                             WHERE      (ODTOA_IsDeleted = '0') AND (ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString) & "')))", ddlOptionalAccessories, "A")
            FillOptionalGrid()
            btnAccOptAddMore.Attributes.Add("onclick", "return checkAccOpt();")
            btnAccOptUpdate.Attributes.Add("onclick", "return checkAccOpt();")
            btnAccOptDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            '' '' ''If Session("AdminID") = Nothing Then
            '' '' ''    gvAccOpt.Columns(0).Visible = False
            '' '' ''End If
            visibleAccOpt()

        Catch ex As Exception

        End Try

    End Sub
    Public Sub visibleAccOpt()
        btnAccOptAddMore.Visible = True
        btnAccOptCancel.Visible = False
        btnAccOptDelete.Visible = False
        btnAccOptUpdate.Visible = False
    End Sub
    Public Sub FillFactoryCombo(ByVal strQuery As String, ByVal ddl As DropDownList, ByVal flag As String)
        Try
            Dim SqlCon As New SqlConnection(ConfigurationManager.AppSettings("ConnectionString"))  ' Declare connection Object
            Dim SqlAdapter As New SqlDataAdapter      ' Declare Dataadapter Object
            Dim SqlDataSet As New Data.DataSet        ' Declare Dataset Object
            Dim DT As New Data.DataTable              ' Declare Datatable Oblect
            Dim sqlCmd As New SqlCommand(strQuery, SqlCon) ' Declare Command Object
            Dim i As Integer

            SqlCon.Open()                                 ' Open Connection
            SqlAdapter.SelectCommand = sqlCmd             ' Set command to Adapter
            SqlAdapter.Fill(SqlDataSet, "TableName")      ' Links Adapter with DataSet
            DT = SqlDataSet.Tables("TableName")           ' Get datatable from dataset
            sqlCmd.ExecuteNonQuery()                      ' Executes Command

            If flag = "F" Then
                ddl.Items.Clear()                             ' Clear the Items of DropDownList  
                ddl.Items.Insert(0, New ListItem("Select FactoryName - City", "Select"))     ' Insert Blank Row at index 0  
            ElseIf flag = "W" Then
                ddl.Items.Clear()                             ' Clear the Items of DropDownList  
                ddl.Items.Insert(0, New ListItem("Select WareHouseName - City", "Select"))     ' Insert Blank Row at index 0  
            ElseIf flag = "C" Then
                ddl.Items.Clear()                             ' Clear the Items of DropDownList  
                ddl.Items.Insert(0, New ListItem("Select ClientName - City", "Select"))     ' Insert Blank Row at index 0  
            ElseIf flag = "A" Then
                ddl.Items.Clear()                             ' Clear the Items of DropDownList  
                ddl.Items.Insert(0, New ListItem("Select Asseccory Name - Code - ModelNo", "Select"))     ' Insert Blank Row at index 0  
            ElseIf flag = "S" Then
                ddl.Items.Clear()                             ' Clear the Items of DropDownList  
                ddl.Items.Insert(0, New ListItem("Select SparePart Name - Code - ModelNo", "Select"))     ' Insert Blank Row at index 0              ElseIf flag = "S" Then
            End If

            For i = 0 To DT.Rows.Count - 1
                ddl.Items.Insert(i + 1, New ListItem(DT.Rows(i).Item(1), DT.Rows(i).Item(0)))  '' Add Items(code,Exact Value) into DropDownList
            Next i
            ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(""))     '' Assigning 0 th Index to DropDownList

            If flag = "F" Then
                ddl.Items.Add(New ListItem("Add New Factory", "Add New"))
            ElseIf flag = "W" Then
                ddl.Items.Add(New ListItem("Add New WareHouse", "Add New"))
            ElseIf flag = "C" Then
                ddl.Items.Add(New ListItem("Add New Client", "Add New"))
            End If

            SqlCon.Close()                                '' Close Connection Object
            SqlCon.Dispose()                              '' Dispose Connection Oblect
            sqlCmd.Dispose()                              '' Dispose command object
            SqlAdapter.Dispose()                          '' Dispose adapter Object
            SqlDataSet.Dispose()                          '' Dispose dataset Object
            DT.Dispose()                                  '' Dispose datatable Object
        Catch ex As Exception
            CreateMessageAlert(ddl.Page, ex.Message, "StrKeyVal")     'Display the Error Message
            ddl = Nothing
        End Try
    End Sub
    Protected Sub btnAccOptAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccOptAddMore.Click
        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_OptionalAccessories WHERE (ODTOA_IsDeleted = '0') AND (ODTOA_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTOA_OAccessId = '" & RemoveLiterals(ddlOptionalAccessories.SelectedItem.Value.ToString.Trim) & "') and ODTOA_IsDeleted='0'") Then

                'showmessage("Optional Accessory is Already Present.", lblOptionalMsg)
                'ddlOptionalAccessories.ClearSelection()
                ddlOptionalAccessories.ClearSelection()
                ScriptManager1.SetFocus(ddlOptionalAccessories) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "Optional Accessories Already Present.!", "strkeyval")
                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTOA_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(NewPrimaryKey(Me))
            sqlcoll.Add("@ODTOA_Code", Data.SqlDbType.NVarChar, 25).Value = GenerateOptionalAcceCode().ToString
            sqlcoll.Add("@ODTOA_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTOA_OAccessId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlOptionalAccessories.SelectedItem.Value)
            sqlcoll.Add("@ODTOA_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTOA_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTOA_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Insert"
            ExecQuery("OtherDetail_OptionalAccessories_Proc", sqlcoll)
            sqlcoll.Clear()
            displayone(tblAccOptional)
            CreateMessageAlert(Me, "Optional Accessories Saved Successfully.!", "strkeyval")
            'showmessage("Record Saved Successfully.", lblOptionalMsg)
            ddlOptionalAccessories.ClearSelection()
            'ddlOptionalAccessories.Enabled = False
            FillOptionalGrid()
            'lblOptDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            'CreateMessageAlert(Me, "Record Saved Successfully.", "StrKeyVal")
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'SaveClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
        Catch ex As Exception

        End Try
    End Sub
    Public Sub FillOptionalGrid()
        Try
            ' GetExisting()
            'Dim OptDt As DataTable
            'Dim dt1 As DataTable = getTable("Select ODTOA_OAccessId From OtherDetail_OptionalAccessories where ODTOA_ProductId ='" & RemoveLiterals(Session("ProductID").ToString.Trim) & "'and ODTOA_IsDeleted = '0'", "Optional")
            'Dim i As Integer
            'Dim Kid As String
            'Dim KidBool As Boolean = True
            ''ddl.ClearSelection()
            '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
            'dt1.Clear()
            'dt1.Dispose()
            'dt.Clear()
            'OptDt1 = ReturnDataTable("Select * From OtherDetail_OptionalAccessories where ODTOA_ProductId ='" & RemoveLiterals(Session("ProductID").ToString.Trim) & "'and ODTOA_IsDeleted = '0'")

            'If OptDt1.Rows.Count > 0 Then
            'Dim i As Integer
            'For i = 0 To OptDt1.Rows.Count - 1
            'OptDt = ReturnDataTable("SELECT Product_Master.*, OtherDetail_OptionalAccessories.ODTOA_kid, OtherDetail_OptionalAccessories.ODTOA_OAccessId FROM Product_Master INNER JOIN OtherDetail_OptionalAccessories ON Product_Master.Product_Kid = OtherDetail_OptionalAccessories.ODTOA_OAccessId WHERE Product_Master.Product_Kid IN (" & Kid & ")AND OtherDetail_OptionalAccessories.ODTOA_IsDeleted = '0' AND Product_Master.Product_IsDeleted = '0'")
            'OptDt = ReturnDataTable("Select * From Product_Master where Product_Kid in ( " & Kid & ") and Product_IsDeleted ='0'")
            Dim optdt As DataTable
            optdt = ReturnDataTable("SELECT     OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Image, Product_Master.Product_Code, Product_Master.Product_ModelNo FROM         OtherDetail_OptionalAccessories INNER JOIN                       Product_Master ON OtherDetail_OptionalAccessories.ODTOA_OAccessId = Product_Master.Product_Kid WHERE     (OtherDetail_OptionalAccessories.ODTOA_ProductId = N'" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND                        (Product_Master.Product_IsDeleted = N'0')")
            gvAccOpt.DataSource = optdt
            gvAccOpt.DataBind()
            'Next
            'Else

            optdt.Clear()
            optdt.Dispose()
            'End If
            'Dim Con As New SqlConnection(ConfigurationManager.AppSettings("ConnectionString")) 'Define connection variable for connecting to SQL-Server
            'Con.Open()                                             'Open the Connection
            'Dim cmd As New SqlCommand(StrQry, Con)                 'Define command variable to execute the query
            'Dim dr As SqlDataReader                                'Define DataReader variable for storing the output of the query
            'dr = cmd.ExecuteReader                                 'Assign the output of query to DataReader variable
            'gv.DataSource = dr                                     'Set the DataReader Variable as DataSource for the Grid
            'gv.DataBind()
            'If Con.State = ConnectionState.Open Then Con.Close() ' If Connection Exists Then Close
            'Con = Nothing                                        ' Set Connnection Object as nothing       
            'cmd = Nothing                                        ' Set Command Object as nothing
            'dr = Nothing                                         ' Set DataReader Object as nothing
        Catch ex As Exception
            ' CreateMessageAlert(gv.Page, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Sub
    Protected Function GenerateOptionalAcceCode() As String
        ' generate supplier factory details code and kid
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "OAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from OtherDetail_OptionalAccessories where ODTOA_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ODTOA_Code) from  OtherDetail_OptionalAccessories WHERE ODTOA_Code LIKE" + "'OAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "OAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function
    Protected Sub gvAccOpt_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvAccOpt.SelectedIndexChanged
        Try
            displayone(tblAccOptional)
            Dim kid As String
            kid = ReturnValue("Select ODTOA_OAccessId from OtherDetail_OptionalAccessories where ODTOA_KId ='" & RemoveLiterals(gvAccOpt.SelectedDataKey.Value.ToString.Trim) & "'and ODTOA_IsDeleted = '0'")
            'ddlOptionalAccessories.ClearSelection()
            ddlOptionalAccessories.ClearSelection()
            ddlOptionalAccessories.Items.FindByValue(RemoveLiterals(kid.ToString.Trim)).Selected = True
            'GridClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
            ddlOptionalAccessories.Enabled = True
            btnAccOptAddMore.Visible = False
            btnAccOptCancel.Visible = True
            btnAccOptDelete.Visible = True
            btnAccOptUpdate.Visible = True
            'If Session("AdminID") <> Nothing Then
            '    ddlOptionalAccessories.Enabled = True
            'Else
            '    ddlOptionalAccessories.Enabled = False
            'End If

        Catch ex As Exception
            ddlOptionalAccessories.Enabled = True
            btnAccOptAddMore.Visible = False
            btnAccOptCancel.Visible = True
            btnAccOptDelete.Visible = True
            btnAccOptUpdate.Visible = True
        End Try

    End Sub
    Protected Sub btnAccOptUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccOptUpdate.Click

        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_OptionalAccessories WHERE (ODTOA_IsDeleted = '0') AND (ODTOA_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTOA_OAccessId = '" & RemoveLiterals(ddlOptionalAccessories.SelectedItem.Value.ToString.Trim) & "') and ODTOA_IsDeleted='0'") Then

                'showmessage("Optional Accessory is Already Present.", lblOptionalMsg)
                ddlOptionalAccessories.ClearSelection()
                ScriptManager1.SetFocus(ddlOptionalAccessories) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "Optional Accessories Already Present.!", "strkeyval")
                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTOA_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(gvAccOpt.SelectedDataKey.Value.ToString.Trim)
            sqlcoll.Add("@ODTOA_Code", Data.SqlDbType.NVarChar, 25).Value = ReturnValue("Select ODTOA_code from OtherDetails_OptionalAccessories where ODTOA_kid = '" & RemoveLiterals(gvAccOpt.SelectedDataKey.Value.ToString.Trim) & "'and ODTOA_IsDeleted ='0'")
            sqlcoll.Add("@ODTOA_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTOA_OAccessId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlOptionalAccessories.SelectedItem.Value)
            sqlcoll.Add("@ODTOA_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTOA_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTOA_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Update"
            ExecQuery("OtherDetail_OptionalAccessories_Proc", sqlcoll)
            sqlcoll.Clear()
            displayone(tblAccOptional)
            CreateMessageAlert(Me, "Optional Accessories Updated Successfully.!", "strkeyval")

            'showmessage("Record Updated Successfully.", lblOptionalMsg)
            ddlOptionalAccessories.ClearSelection()
            visibleAccOpt()
            'ddlOptionalAccessories.Enabled = False
            FillOptionalGrid()
            'lblOptDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            'CreateMessageAlert(Me, "Record Updated Successfully.", "StrKeyVal")
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'EditClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnAccOptDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccOptDelete.Click
        Try

            'If ddlOptionalAccessories.SelectedIndex > 0 Then
            ExecuteQuery("Update OtherDetail_OptionalAccessories set ODTOA_isdeleted ='1' where ODTOA_kid = '" & RemoveLiterals(gvAccOpt.SelectedDataKey.Value.ToString.Trim) & "'")
            CreateMessageAlert(Me, "Optional Accessories Deleted Successfully.!", "strkeyval")
            'showmessage("Record Deleted Successfully.", lblOptionalMsg)
            ddlOptionalAccessories.ClearSelection()
            'ddlOptionalAccessories.Enabled = False
            'DeleteClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
            FillOptionalGrid()
            visibleAccOpt()
            displayone(tblAccOptional)
            'If gvOptionalAccesories.Rows.Count = 0 Then
            '    lblOptDetails.Visible = False
            'Else
            '    lblOptDetails.Visible = True
            'End If
            'CreateMessageAlert(Me, "Record Deleted Successfully.", "StrKeyVal")
            'End If
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnAccOptCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccOptCancel.Click
        visibleAccOpt()
        ddlOptionalAccessories.ClearSelection()
        displayone(tblAccOptional)
    End Sub

    '****************************************** Included Accessories  **********************************************
    Protected Sub btnaccincluded_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnaccincluded.Click
        Try
            'MultiView2.ActiveViewIndex = 7
            FillFactoryCombo("SELECT Product_Master.Product_Kid, Product_Master.Product_Name + ' - ' + Product_Master.Product_Code + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS [Asseccory Name] FROM Product_Master WHERE (Product_Master.Product_SupplierId = '" & Session("SupplierID").ToString.Trim & "') AND (Product_Master.Product_IsAssc = 'Y') AND (Product_Master.Product_IsDeleted = '0') AND (Product_Approved = 'Y') AND (Product_Master.Product_Kid <> '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "')", ddlIncAcc, "A")
            'FillFactoryCombo("SELECT     Product_Kid, Product_Name + ' - ' + Product_Code + ' - ' + ISNULL(Product_ModelNo, N'') AS [Asseccory Name]             FROM(Product_Master) WHERE     (Product_SupplierId = '" & RemoveLiterals(Session("SupplierID").ToString) & "') AND (Product_IsAssc = 'Y') AND (Product_IsDeleted = '0') AND (Product_Kid <> '" & RemoveLiterals(Session("ProductID").ToString) & "') AND                        (Product_Kid NOT IN                           (SELECT     ODTOA_OAccessId             FROM(OtherDetail_OptionalAccessories)                             WHERE      (ODTOA_IsDeleted = '0') AND (ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString) & "')))", ddlOptionalAccessories, "A")
            FillIncludedGrid()
            btnIncAccAddMore.Attributes.Add("onclick", "return checkIncAcc();")
            btnIncAccUpdate.Attributes.Add("onclick", "return checkIncAcc();")
            btnIncAccDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            '' '' ''If Session("AdminID") = Nothing Then
            '' '' ''    gvIncAcc.Columns(0).Visible = False
            '' '' ''End If
            visibleIncAcc()
        Catch
        End Try
    End Sub
    Public Sub visibleIncAcc()
        btnIncAccAddMore.Visible = True
        btnIncAccCancel.Visible = False
        btnIncAccDelete.Visible = False
        btnIncAccUpdate.Visible = False
    End Sub
    Public Sub FillIncludedGrid()
        Try
            ' GetExisting()
            Dim optdt As DataTable
            optdt = ReturnDataTable("SELECT     OtherDetail_IncludedAccessories.ODTIA_kid, Product_Master.Product_Name, Product_Master.Product_Image, Product_Master.Product_Code, Product_Master.Product_ModelNo FROM         OtherDetail_IncludedAccessories INNER JOIN                       Product_Master ON OtherDetail_IncludedAccessories.ODTIA_InAccessId = Product_Master.Product_Kid WHERE     (OtherDetail_IncludedAccessories.ODTIA_ProductId = N'" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (OtherDetail_IncludedAccessories.ODTIA_IsDeleted = N'0') AND                        (Product_Master.Product_IsDeleted = N'0')")
            gvIncAcc.DataSource = optdt
            gvIncAcc.DataBind()
            'Next
            'Else

            optdt.Clear()
            optdt.Dispose()
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnIncAccAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIncAccAddMore.Click
        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_IncludedAccessories WHERE (ODTIA_IsDeleted = '0') AND (ODTIA_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTIA_InAccessId = '" & RemoveLiterals(ddlIncAcc.SelectedItem.Value.ToString.Trim) & "') and ODTIA_IsDeleted='0'") Then
                'showmessage("Included Accessory is Already Present.", lblIncludedMsg)
                ddlOptionalAccessories.ClearSelection()
                ScriptManager1.SetFocus(ddlIncAcc) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "Included Accessories Already Presents.!", "strkeyval")

                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTIA_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(NewPrimaryKey(Me))
            sqlcoll.Add("@ODTIA_Code", Data.SqlDbType.NVarChar, 25).Value = GenerateIncludedAcceCode().ToString
            sqlcoll.Add("@ODTIA_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTIA_InAccessId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlIncAcc.SelectedItem.Value)
            sqlcoll.Add("@ODTIA_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTIA_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTIA_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Insert"
            ExecQuery("OtherDetail_IncludedAccessories_Proc", sqlcoll)
            sqlcoll.Clear()

            'showmessage("Record Saved Successfully.", lblIncludedMsg)
            ddlIncAcc.ClearSelection()
            'ddlIncludedAccessories.Enabled = False
            FillIncludedGrid()
            'lblIncDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            displayone(tblAccIncluded)
            CreateMessageAlert(Me, "Included Accessories Saved Successfully.", "StrKeyVal")
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'SaveClick(Me, btnIncludedAcceAdd, btnIncludedAcceSave, btnIncludedAcceUpdate, btnIncludedAcceDelete, btnIncludedAcceCancel, btnIncludedAcceSearch)
        Catch ex As Exception

        End Try
    End Sub
    Protected Function GenerateIncludedAcceCode() As String
        ' generate supplier factory details code and kid
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from OtherDetail_IncludedAccessories where ODTIA_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ODTIA_Code) from  OtherDetail_IncludedAccessories WHERE ODTIA_Code LIKE" + "'IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function
    Protected Sub btnIncAccUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIncAccUpdate.Click
        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_IncludedAccessories WHERE (ODTIA_IsDeleted = '0') AND (ODTIA_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTIA_InAccessId = '" & RemoveLiterals(ddlIncAcc.SelectedItem.Value.ToString.Trim) & "') and ODTIA_IsDeleted='0'") Then
                'showmessage("Included Accessory is Already Present.", lblIncludedMsg)
                ddlOptionalAccessories.ClearSelection()
                ScriptManager1.SetFocus(ddlIncAcc) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "Included Accessories Already Presents.!", "strkeyval")

                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTIA_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(gvIncAcc.SelectedDataKey.Value.ToString.Trim)
            sqlcoll.Add("@ODTIA_Code", Data.SqlDbType.NVarChar, 25).Value = ReturnValue("Select ODTIA_code from OtherDetail_IncludedAccessories where ODTIA_kid = '" & RemoveLiterals(gvIncAcc.SelectedDataKey.Value.ToString.Trim) & "'and ODTIA_IsDeleted ='0'")
            sqlcoll.Add("@ODTIA_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTIA_InAccessId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlIncAcc.SelectedItem.Value)
            sqlcoll.Add("@ODTIA_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTIA_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTIA_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Update"
            ExecQuery("OtherDetail_IncludedAccessories_Proc", sqlcoll)
            sqlcoll.Clear()

            'showmessage("Record Updated Successfully.", lblIncludedMsg)
            ddlIncAcc.ClearSelection()
            'ddlIncludedAccessories.Enabled = False
            FillIncludedGrid()
            'lblIncDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            displayone(tblAccIncluded)
            CreateMessageAlert(Me, "Included Accessories Updated Successfully.", "StrKeyVal")
            visibleIncAcc()
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'EditClick(Me, btnIncludedAcceAdd, btnIncludedAcceSave, btnIncludedAcceUpdate, btnIncludedAcceDelete, btnIncludedAcceCancel, btnIncludedAcceSearch)
        Catch ex As Exception

        End Try

    End Sub
    Protected Sub btnIncAccDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIncAccDelete.Click
        Try

            'If ddlIncAcc.SelectedIndex > 0 Then
            ExecuteQuery("Update OtherDetail_IncludedAccessories set ODTIA_isdeleted ='1' where ODTIA_kid = '" & RemoveLiterals(gvIncAcc.SelectedDataKey.Value.ToString.Trim) & "'")
            'showmessage("Record Deleted Successfully.", lblIncludedMsg)
            ddlIncAcc.ClearSelection()
            'ddlIncludedAccessories.Enabled = False
            'DeleteClick(Me, btnIncludedAcceAdd, btnIncludedAcceSave, btnIncludedAcceUpdate, btnIncludedAcceDelete, btnIncludedAcceCancel, btnIncludedAcceSearch)
            FillIncludedGrid()
            visibleIncAcc()
            'If gvIncludedAccessories.Rows.Count = 0 Then
            '    lblIncDetails.Visible = False
            'Else
            '    lblIncDetails.Visible = True
            'End If
            displayone(tblAccIncluded)
            CreateMessageAlert(Me, "Included Accessories Deleted Successfully.", "StrKeyVal")
            'End If
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnIncAccCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIncAccCancel.Click
        visibleIncAcc()
        ddlIncAcc.ClearSelection()
        displayone(tblAccIncluded)
    End Sub
    Protected Sub gvIncAcc_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvIncAcc.SelectedIndexChanged
        Try
            displayone(tblAccIncluded)
            Dim kid As String
            kid = ReturnValue("Select ODTIA_InAccessId from OtherDetail_IncludedAccessories where ODTIA_KId ='" & RemoveLiterals(gvIncAcc.SelectedDataKey.Value.ToString.Trim) & "'and ODTIA_IsDeleted = '0'")
            'ddlOptionalAccessories.ClearSelection()
            ddlIncAcc.ClearSelection()
            ddlIncAcc.Items.FindByValue(RemoveLiterals(kid.ToString.Trim)).Selected = True
            'GridClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
            ddlIncAcc.Enabled = True
            btnIncAccAddMore.Visible = False
            btnIncAccCancel.Visible = True
            btnIncAccDelete.Visible = True
            btnIncAccUpdate.Visible = True
            'If Session("AdminID") <> Nothing Then
            '    ddlOptionalAccessories.Enabled = True
            'Else
            '    ddlOptionalAccessories.Enabled = False
            'End If

        Catch ex As Exception
            btnIncAccAddMore.Visible = False
            btnIncAccCancel.Visible = True
            btnIncAccDelete.Visible = True
            btnIncAccUpdate.Visible = True
        End Try
    End Sub

    '***************************************** Wear and Tear *****************************************************

    Protected Sub btnwearntear_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnwearntear.Click
        Try
            Dim str As String
            str = Session("SupplierID").ToString
            'MultiView2.ActiveViewIndex = 8
            fillWearAndTearGrid()
        Catch Ex As Exception
            'CreateMessageAlert(Me, Ex.Message, "StrKeyVal")
        End Try

    End Sub
    Public Sub fillWearAndTearGrid()
        ' GetExisting()
        Dim dt As DataTable
        dt = ReturnDataTable("SELECT     Product_Master.Product_Name, Product_Master.Product_Kid, Product_Master.Product_Code, Product_Master.Product_ModelNo,         Product_Master.Product_SupplierId, Product_Master.Product_Image FROM         Product_Master INNER JOIN                       OtherDetail_SpareParts ON Product_Master.Product_Kid = OtherDetail_SpareParts.ODTSP_SparePartId WHERE     (Product_Master.Product_SupplierId = '" & Session("SupplierID").ToString & "') AND (OtherDetail_SpareParts.ODTSP_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND                        (OtherDetail_SpareParts.ODTSP_IsDeleted = N'0') AND (Product_Master.Product_IsSpareParts = N'y') AND                        (Product_Master.Product_IsWear_Tear = N'y') AND (Product_Master.Product_IsDeleted = N'0')")
        gvWearAndTear.DataSource = dt
        gvWearAndTear.DataBind()
        gvWearAndTear.Columns(0).Visible = False

    End Sub

    '*****************************************   Spare Parts  *****************************************************

    Protected Sub btnspareparts_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnspareparts.Click
        Try
            'MultiView2.ActiveViewIndex = 9
            FillFactoryCombo("SELECT Product_Master.Product_Kid,Product_Master.Product_Name + ' - ' + Product_Master.Product_Code + ' - ' + isnull(Product_Master.Product_ModelNo,'') AS [Asseccory Name] FROM Product_Master WHERE (Product_Master.Product_SupplierId = '" & Session("SupplierID").ToString.Trim & "') AND (Product_Master.Product_IsSpareParts = 'Y') AND (Product_Master.Product_IsDeleted = '0') AND (Product_Approved = 'Y') AND (Product_Master.Product_Kid <> '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "')", ddlSpareParts, "S")
            'FillFactoryCombo("SELECT     Product_Kid, Product_Name + ' - ' + Product_Code + ' - ' + ISNULL(Product_ModelNo, N'') AS [Asseccory Name]             FROM(Product_Master) WHERE     (Product_SupplierId = '" & RemoveLiterals(Session("SupplierID").ToString) & "') AND (Product_IsAssc = 'Y') AND (Product_IsDeleted = '0') AND (Product_Kid <> '" & RemoveLiterals(Session("ProductID").ToString) & "') AND                        (Product_Kid NOT IN                           (SELECT     ODTOA_OAccessId             FROM(OtherDetail_OptionalAccessories)                             WHERE      (ODTOA_IsDeleted = '0') AND (ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString) & "')))", ddlOptionalAccessories, "A")
            FillSparePartsGrid()
            btnSparePartsAddMore.Attributes.Add("onclick", "return checkSpareParts();")
            btnSparePartsUpdate.Attributes.Add("onclick", "return checkSpareParts();")
            btnSparePartsDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            '' '' ''If Session("AdminID") = Nothing Then
            '' '' ''    gvSpareParts.Columns(0).Visible = False
            '' '' ''End If
            visibleSpareParts()
        Catch ex As Exception

        End Try
    End Sub
    Public Sub visibleSpareParts()
        btnSparePartsAddMore.Visible = True
        btnSparePartsCancel.Visible = False
        btnSparePartsDelete.Visible = False
        btnSparePartsUpdate.Visible = False
    End Sub
    Public Sub FillSparePartsGrid()
        Try
            ' GetExisting()
            Dim optdt As DataTable
            optdt = ReturnDataTable("SELECT     OtherDetail_SpareParts.ODTSP_kid, Product_Master.Product_Name, Product_Master.Product_Image, Product_Master.Product_Code, Product_Master.Product_ModelNo FROM         OtherDetail_SpareParts INNER JOIN                       Product_Master ON OtherDetail_SpareParts.ODTSP_SparePartId = Product_Master.Product_Kid WHERE     (OtherDetail_SpareParts.ODTSP_ProductId = N'" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (OtherDetail_SpareParts.ODTSP_IsDeleted = N'0') AND                        (Product_Master.Product_IsDeleted = N'0')")
            gvSpareParts.DataSource = optdt
            gvSpareParts.DataBind()
            'Next
            'Else

            optdt.Clear()
            optdt.Dispose()
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnSparePartsAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSparePartsAddMore.Click
        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_SpareParts WHERE (ODTSP_IsDeleted = '0') AND (ODTSP_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTSP_SparePartId = '" & RemoveLiterals(ddlSpareParts.SelectedItem.Value.ToString.Trim) & "') and ODTSP_IsDeleted='0'") Then
                'showmessage("Spare Parts is Already Present.", lblSparePartsMsg)
                'ddlOptionalAccessories.ClearSelection()
                ddlSpareParts.ClearSelection()
                ScriptManager1.SetFocus(ddlSpareParts) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "SpareParts is Already Present.!", "StrKeyVal")

                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTSP_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(NewPrimaryKey(Me))
            sqlcoll.Add("@ODTSP_Code", Data.SqlDbType.NVarChar, 25).Value = GenerateSparePartsCode().ToString
            sqlcoll.Add("@ODTSP_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTSP_SparePartId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlSpareParts.SelectedItem.Value)
            sqlcoll.Add("@ODTSP_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTSP_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTSP_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Insert"
            ExecQuery("OtherDetail_SpareParts_Proc", sqlcoll)
            sqlcoll.Clear()


            'showmessage("Record Saved Successfully.", lblSparePartsMsg)
            ddlSpareParts.ClearSelection()
            'ddlSpareParts.Enabled = False
            FillSparePartsGrid()
            'lblSparePartsDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            displayone(tblSpareParts)
            CreateMessageAlert(Me, "SpareParts Saved Successfully.", "StrKeyVal")
            visibleSpareParts()
            fillWearAndTearGrid()
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'SaveClick(Me, btnSparePartsAdd, btnSparePartsSave, btnSparePartsUpdate, btnSparePartsDelete, btnSparePartsCancel, btnSparePartsSearch)
        Catch ex As Exception

        End Try
    End Sub
    Protected Function GenerateSparePartsCode() As String
        ' generate supplier factory details code and kid
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from OtherDetail_SpareParts where ODTSP_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ODTSP_Code) from  OtherDetail_SpareParts WHERE ODTSP_Code LIKE" + "'IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "IAC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function
    Protected Sub btnSparePartsUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSparePartsUpdate.Click
        Try

            If IsAlreadyPresent("SELECT COUNT(*) FROM OtherDetail_SpareParts WHERE (ODTSP_IsDeleted = '0') AND (ODTSP_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (ODTSP_SparePartId = '" & RemoveLiterals(ddlSpareParts.SelectedItem.Value.ToString.Trim) & "') and ODTSP_IsDeleted='0'") Then
                'showmessage("Spare Parts is Already Present.", lblSparePartsMsg)
                'ddlOptionalAccessories.ClearSelection()
                ddlSpareParts.ClearSelection()
                ScriptManager1.SetFocus(ddlSpareParts) 'Put the Focus to branchName TextField
                CreateMessageAlert(Me, "SpareParts is Already Present.!", "StrKeyVal")

                Exit Sub
            End If

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@ODTSP_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(gvSpareParts.SelectedDataKey.Value.ToString.Trim)
            sqlcoll.Add("@ODTSP_Code", Data.SqlDbType.NVarChar, 25).Value = ReturnValue("Select ODTSP_code from OtherDetail_SpareParts where ODTSP_kid = '" & RemoveLiterals(gvSpareParts.SelectedDataKey.Value.ToString.Trim) & "'and ODTSP_IsDeleted ='0'")
            sqlcoll.Add("@ODTSP_ProductId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            sqlcoll.Add("@ODTSP_SparePartId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlSpareParts.SelectedItem.Value)
            sqlcoll.Add("@ODTSP_FinancialYearId", Data.SqlDbType.NVarChar, 10).Value = Session("g_FinYear").ToString
            sqlcoll.Add("@ODTSP_CompanyID", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company").ToString
            sqlcoll.Add("@ODTSP_UserID", Data.SqlDbType.NVarChar, 10).Value = Session("g_User").ToString
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.NVarChar, 10).Value = "Update"
            ExecQuery("OtherDetail_SpareParts_Proc", sqlcoll)
            sqlcoll.Clear()

            'showmessage("Record Updated Successfully.", lblSparePartsMsg)
            ddlSpareParts.ClearSelection()
            'ddlSpareParts.Enabled = False
            FillSparePartsGrid()
            'lblSparePartsDetails.Visible = True
            'Fill_Grid("SELECT OtherDetail_OptionalAccessories.ODTOA_kid, Product_Master.Product_Name, Product_Master.Product_Code, Product_Master.Product_ModelNo, Product_Master.Product_Kid, OtherDetail_OptionalAccessories.ODTOA_IsDeleted, Product_Master.Product_IsDeleted FROM OtherDetail_OptionalAccessories INNER JOIN Product_Master ON OtherDetail_OptionalAccessories.ODTOA_ProductId = Product_Master.Product_Kid WHERE (Product_Master.Product_Kid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (OtherDetail_OptionalAccessories.ODTOA_ProductId = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND(OtherDetail_OptionalAccessories.ODTOA_IsDeleted = N'0') AND (Product_Master.Product_IsDeleted = N'0')", gvOptionalAccesories)
            displayone(tblSpareParts)
            CreateMessageAlert(Me, "SpareParts Updated Successfully.", "StrKeyVal")
            visibleSpareParts()
            fillWearAndTearGrid()
            'enableconcontrol(False)
            'lblConField.Visible = False
            'clearconfields()
            'Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            ' Fill_Grid("SELECT Client_Master.ctm_Kid, Client_Master.ctm_name + ' - ' + City_Master.City_Name AS [Client Name] FROM Client_Master INNER JOIN City_Master ON Client_Master.ctm_City = City_Master.City_Kid WHERE (Client_Master.ctm_SupplierId = '" & Session("SupplierID").ToString.Trim & "')AND (Client_Master.ctm_productid = '" & RemoveLiterals(Session("ProductID").ToString.Trim) & "') AND (Client_Master.ctm_IsDeleted = '0') AND (City_Master.City_IsDeleted = '0')", gvClient)
            'EditClick(Me, btnSparePartsAdd, btnSparePartsSave, btnSparePartsUpdate, btnSparePartsDelete, btnSparePartsCancel, btnSparePartsSearch)
        Catch ex As Exception

        End Try

    End Sub
    Protected Sub btnSparePartsDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSparePartsDelete.Click
        Try
            displayone(tblSpareParts)
            If ddlSpareParts.SelectedIndex > 0 Then
                ExecuteQuery("Update OtherDetail_SpareParts set ODTSP_isdeleted ='1' where ODTSP_kid = '" & RemoveLiterals(gvSpareParts.SelectedDataKey.Value.ToString.Trim) & "'")
                'showmessage("Record Deleted Successfully.", lblSparePartsMsg)
                CreateMessageAlert(Me, "SpareParts Deleted Successfully.!", "StrKeyVal")
                ddlSpareParts.ClearSelection()
                'ddlSpareParts.Enabled = False
                'DeleteClick(Me, btnSparePartsAdd, btnSparePartsSave, btnSparePartsUpdate, btnSparePartsDelete, btnSparePartsCancel, btnSparePartsSearch)
                FillSparePartsGrid()
                visibleSpareParts()
                fillWearAndTearGrid()
                'If gvSpareParts.Rows.Count = 0 Then
                '    lblSparePartsDetails.Visible = False
                'Else
                '    lblSparePartsDetails.Visible = True
                'End If
                'CreateMessageAlert(Me, "Record Deleted Successfully.", "StrKeyVal")
            End If

        Catch ex As Exception

        End Try

    End Sub
    Protected Sub btnSparePartsCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSparePartsCancel.Click
        ddlSpareParts.ClearSelection()
        visibleSpareParts()
        displayone(tblSpareParts)
    End Sub
    Protected Sub gvSpareParts_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvSpareParts.SelectedIndexChanged
        Try
            displayone(tblSpareParts)
            Dim kid As String
            kid = ReturnValue("Select ODTSP_SparePartId from OtherDetail_SpareParts where ODTSP_KId ='" & RemoveLiterals(gvSpareParts.SelectedDataKey.Value.ToString.Trim) & "'and ODTSP_IsDeleted = '0'")
            'ddlOptionalAccessories.ClearSelection()
            ddlSpareParts.ClearSelection()
            ddlSpareParts.Items.FindByValue(RemoveLiterals(kid.ToString.Trim)).Selected = True
            'GridClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
            'ddlIncAcc.Enabled = True
            btnSparePartsAddMore.Visible = False
            btnSparePartsCancel.Visible = True
            btnSparePartsDelete.Visible = True
            btnSparePartsUpdate.Visible = True
            'If Session("AdminID") <> Nothing Then
            '    ddlOptionalAccessories.Enabled = True
            'Else
            '    ddlOptionalAccessories.Enabled = False
            'End If

        Catch ex As Exception

        End Try
    End Sub

    '============================================= Product Standard ====================================================
    Protected Sub btnProdStdAppDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdStdAppDelete.Click
        Try
            displayone(tblStandards)
            If gvStandardApproval.SelectedDataKey.Value.ToString <> "" Then
                ExecuteQuery("Update ProductStandardApproval set ProdStdApproval_IsDeleted ='1' where ProdStdApproval_kid = '" & RemoveLiterals(gvStandardApproval.SelectedDataKey.Value.ToString.Trim) & "'")
                'showmessage("Record Deleted Successfully.", lblSparePartsMsg)
                CreateMessageAlert(Me, "Standards Deleted Successfully.!", "StrKeyVal")
                ddlSpareParts.ClearSelection()
                'ddlSpareParts.Enabled = False
                'DeleteClick(Me, btnSparePartsAdd, btnSparePartsSave, btnSparePartsUpdate, btnSparePartsDelete, btnSparePartsCancel, btnSparePartsSearch)
                getExistingPSAData()
                visibleStandardApproval()
                'If gvSpareParts.Rows.Count = 0 Then
                '    lblSparePartsDetails.Visible = False
                'Else
                '    lblSparePartsDetails.Visible = True
                'End If
                'CreateMessageAlert(Me, "Record Deleted Successfully.", "StrKeyVal")
            End If
        Catch ex As Exception

        End Try
    End Sub
    Protected Sub btnProdStdAppCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdStdAppCancel.Click
        ddlStandard.ClearSelection()
        visibleStandardApproval()
        displayone(tblStandards)
    End Sub
    Protected Sub gvStandardApproval_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvStandardApproval.SelectedIndexChanged
        Try
            displayone(tblStandards)

            Dim dt As DataTable
            dt = ReturnDataTable("SELECT     ProductStandardsMaster.PSM_Name AS StandardName, ProductStandardApproval.ProdStdApproval_FileName AS FileName,                       ProductStandardApproval.ProdStdApproval_StandardId AS StandardID, ProductStandardApproval.ProdStdApproval_Kid AS KID,                       ProductStandardsMaster.PSM_Logo AS Logo FROM         ProductStandardApproval INNER JOIN                      ProductStandardsMaster ON ProductStandardApproval.ProdStdApproval_StandardId = ProductStandardsMaster.PSM_Kid where ProductStandardApproval.ProdStdApproval_Kid='" & RemoveLiterals(gvStandardApproval.SelectedDataKey.Value.ToString.Trim) & "'  and ProdStdApproval_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProdStdApproval_IsDeleted='0'")
            ddlStandard.ClearSelection()
            ddlStandard.Items.FindByValue(dt.Rows(0).Item("StandardID").ToString).Selected = True
            TrStandardLogo.Style.Add("display", "auto")
            imgProductStanardLogo.Src = ResolveUrl("~/Upload%20Image/Product%20Standard%20Logo/" & dt.Rows(0).Item("Logo").ToString)
            TrStandardFileName.Style.Add("display", "auto")
            HypStandard.Text = dt.Rows(0).Item("FileName").ToString
            HypStandard.Target = "_blank"
            HypStandard.NavigateUrl = ResolveUrl("~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("FileName").ToString)


            'Dim kid As String
            'kid = ReturnValue("Select ODTSP_SparePartId from OtherDetail_SpareParts where ODTSP_KId ='" & RemoveLiterals(gvSpareParts.SelectedDataKey.Value.ToString.Trim) & "'and ODTSP_IsDeleted = '0'")
            ''ddlOptionalAccessories.ClearSelection()
            'ddlSpareParts.ClearSelection()
            'ddlSpareParts.Items.FindByValue(RemoveLiterals(kid.ToString.Trim)).Selected = True
            'GridClick(Me, btnOptionAccAdd, btnOptionAccSave, btnOptionAccUpdate, btnOptionAccDelete, btnOptionAccCancel, btnOptionAccSearch)
            'ddlIncAcc.Enabled = True
            btnProdStdAppSave.Visible = False
            btnProdStdAppCancel.Visible = True
            btnProdStdAppDelete.Visible = True
            btnProdStdAppUpdate.Visible = True
            'If Session("AdminID") <> Nothing Then
            '    ddlOptionalAccessories.Enabled = True
            'Else
            '    ddlOptionalAccessories.Enabled = False
            'End If

        Catch ex As Exception

        End Try
    End Sub
    Public Sub visibleStandardApproval()
        btnProdStdAppSave.Visible = True
        TrStandardLogo.Style.Add("display", "none")
        TrStandardFileName.Style.Add("display", "none")
        btnProdStdAppCancel.Visible = False
        btnProdStdAppDelete.Visible = False
        btnProdStdAppUpdate.Visible = False
    End Sub
    Protected Sub btnstandards_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnstandards.Click
        Try
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 11
            ClearPSAFields()
            'Tr56.Visible = False
            FillComboWithSelectJJ("Select PSM_Kid, PSM_Name from ProductStandardsMaster where PSM_Isdeleted='0'", ddlStandard, "Select Standards")
            TrStandardLogo.Style.Add("display", "none")
            TrStandardFileName.Style.Add("display", "none")
            getExistingPSAData()
            ddlStandard.Attributes.Add("onchange", "ProductStandardDDL(this)")
            btnProdStdAppSave.Attributes.Add("onclick", "return CheckStandard('a','" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "','" & ddlStandardSameAs.ClientID.ToString & "');")
            btnProdStdAppUpdate.Attributes.Add("onclick", "return CheckStandard('a','" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "','" & ddlStandardSameAs.ClientID.ToString & "');")
            BtnStandardMasterSave.Attributes.Add("onclick", "return StandardMasterSave();")
            visibleStandardApproval()
            tblStandardMaster.Style.Add("display", "none")
            getExistingPSAData()
            'BtnStandardMasterCancel.Attributes.Add("onclick", "return CancelClickStandardMaster();")
        Catch
        End Try

    End Sub
    <Ajax.AjaxMethod()> _
    Public Function CheckExistingStandards(ByVal ProductID As String, ByVal StandardKID As String) As Boolean
        Return IsAlreadyPresent("Select Count(*) from ProductStandardApproval where ProdStdApproval_ProductId='" & RemoveLiterals(ProductID.ToString) & "' and ProdStdApproval_StandardId ='" & RemoveLiterals(StandardKID.ToString) & "' and ProdStdApproval_Isdeleted='0'")
    End Function
    <Ajax.AjaxMethod()> _
    Public Function GetProductStandard(ByVal ProductstandardKID As String) As DataTable
        Dim dt As DataTable
        dt = ReturnDataTable("Select PSM_Logo, PSM_Desc from ProductStandardsMaster where PSM_KId='" & RemoveLiterals(ProductstandardKID.ToString) & "'")
        Return dt
    End Function
    Protected Sub btnProdStdAppUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdStdAppUpdate.Click
        ' Try
        ' Dim dt As DataTable = getTable("Select * from ProductStandardApproval where ProdStdApproval_ProductId='" & Session.Item("ProductId").Trim & "' and ProdStdApproval_IsDeleted='0' and ProdStdApproval_CompanyID='" & Session("g_Company").Trim & "'", "PSA")

        Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
        con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File

        Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
        cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
        cmd.CommandText = "ProductStandardApproval_Proc"                                        'Assign the Name of Stored Procedure, to Execute
        cmd.Connection = con

        Dim strImageName As String = ""
        Dim file_name As String = ""
        If (ProRevwFileUpload.HasFile) Then
            Dim fileType = Path.GetExtension(ProRevwFileUpload.FileName).ToLower
            'If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
            strImageName = Final_FileUpload(ProRevwFileUpload, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            'strImageName = Server.MapPath("~/Upload Image/Product Image/UploadImages/")
            'file_name = Fileupload(ProRevwFileUpload, img, strImageName) 'Replace Final_FileUpload() function to Fileuload() by Pankaj mishra
            'Else
            '    lblResult.Visible = True
            '    lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
            '    'strImageName = dt.Rows(0).Item("ProdStdApproval_FileName").ToString
            'End If
        Else
            'strImageName = dt.Rows(0).Item("ProdStdApproval_FileName").ToString
        End If


        Dim AdminstrImageName As String = ""
        'If (AdminProRevwFileUpload.HasFile) Then
        '    Dim fileType = Path.GetExtension(AdminProRevwFileUpload.FileName).ToLower
        '    If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
        '        AdminstrImageName = Final_FileUpload(AdminProRevwFileUpload, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
        '    Else
        '        lblResult.Visible = True
        '        lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
        '        AdminProRevwFileUpload.Focus()
        '        Exit Sub
        '        'AdminstrImageName = dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
        '    End If
        'ElseIf AdminHypStandard.Text.Trim.Length > 0 Then
        '    AdminstrImageName = dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
        'Else

        '    AdminstrImageName = ""
        '    CreateMessageAlert(Me, "Please select .pdf , .gif, .jpg file first..!!", "StrKeyVal")
        '    Exit Sub
        '    'AdminstrImageName = dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
        'End If

        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_Kid", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(ReturnValue("Select ProdStdApproval_Kid from ProductStandardApproval where ProdStdApproval_ProductId ='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProdStdApproval_Isdeleted='0'"))  'RemoveLiterals(gvStandardApproval.SelectedDataKey.Value.ToString.Trim) ' dt.Rows(0).Item("ProdStdApproval_Kid").ToString
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_Code", SqlDbType.NVarChar, 25)).Value = RemoveLiterals(ReturnValue("Select ProdStdApproval_Code from ProductStandardApproval where ProdStdApproval_ProductId ='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProdStdApproval_Isdeleted='0'"))     'dt.Rows(0).Item("ProdStdApproval_Code").ToString
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_StandardName", SqlDbType.NVarChar, 200)).Value = "" 'Trim(txtProdStdAppSName.Text)
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_AgencyApproved", SqlDbType.NVarChar, 200)).Value = "" 'Trim(txtProdStdAppAAproved.Text)
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))   ' dt.Rows(0).Item("ProdStdApproval_ProductId").ToString
        If (ProRevwFileUpload.HasFile) Then
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FileName", SqlDbType.NVarChar, 100)).Value = strImageName
        Else
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FileName", SqlDbType.NVarChar, 100)).Value = ddlStandardSameAs.SelectedValue.ToString 'HypStandard.Text
        End If

        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_StandardId", SqlDbType.NVarChar, 10)).Value = ddlStandard.SelectedItem.Value.ToString

        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_AdminFileName", SqlDbType.NVarChar, 20)).Value = AdminstrImageName
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear")  'dt.Rows(0).Item("ProdStdApproval_FinancialYearId").ToString
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Comapany") 'dt.Rows(0).Item("ProdStdApproval_CompanyId").ToString
        cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")  'dt.Rows(0).Item("ProdStdApproval_UserId").ToString
        cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Standard Approval"
        cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Update"
        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
        displayone(tblStandards)
        CreateMessageAlert(Me, "Product Standard Updated Successfully.!", "strkeyval")
        visibleStandardApproval()
        getExistingPSAData()
        'lblResult.Visible = True
        'lblResult.Text = "Record Updated Successfully."
        ClearPSAFields()
        'MultiView2.ActiveViewIndex = -1
        ' Catch
        ' End Try
    End Sub
    Protected Sub btnProdStdAppSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProdStdAppSave.Click
        Try
            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File

            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "ProductStandardApproval_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con

            Dim strImageName As String = ""
            Dim file_name As String = ""
            If (ProRevwFileUpload.HasFile) Then
                Dim fileType As String = Path.GetExtension(ProRevwFileUpload.FileName).ToLower
                'If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                strImageName = Final_FileUpload(ProRevwFileUpload, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                'strImageName = Server.MapPath("~/Upload Image/Product Image/UploadImages/")
                'file_name = Fileupload(ProRevwFileUpload, img, strImageName) 'Replace Final_FileUpload() function to Fileuload() by Pankaj mishra
                'Else
                '    lblResult.Visible = True
                '    lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
                '    ProRevwFileUpload.Focus()
                '    Exit Sub
                'End If
            End If

            Dim AdminstrImageName As String = ""
            'If Session("AdminID") <> Nothing Then
            '    If (AdminProRevwFileUpload.HasFile) Then
            '        Dim fileType = Path.GetExtension(AdminProRevwFileUpload.FileName).ToLower
            '        If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
            '            AdminstrImageName = Final_FileUpload(AdminProRevwFileUpload, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            '        Else
            '            lblResult.Visible = True
            '            lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
            '            AdminProRevwFileUpload.Focus()
            '            Exit Sub
            '            'AdminstrImageName = dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
            '        End If
            '    End If
            'End If


            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_Code", SqlDbType.NVarChar, 25)).Value = GenerateProdStdAppCode().ToString
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_StandardName", SqlDbType.NVarChar, 200)).Value = "" 'Trim(txtProdStdAppSName.Text)
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_AgencyApproved", SqlDbType.NVarChar, 200)).Value = "" ' Trim(txtProdStdAppAAproved.Text)
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            If (ProRevwFileUpload.HasFile) Then
                cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FileName", SqlDbType.NVarChar, 100)).Value = strImageName
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FileName", SqlDbType.NVarChar, 100)).Value = ddlStandardSameAs.SelectedValue.ToString 'HypStandard.Text
            End If
            'If (AdminProRevwFileUpload.HasFile) Then
            '    cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_AdminFileName", SqlDbType.NVarChar, 20)).Value = AdminstrImageName
            'Else
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_AdminFileName", SqlDbType.NVarChar, 20)).Value = "" ' AdminHypStandard.Text
            'End If

            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_StandardId", SqlDbType.NVarChar, 10)).Value = ddlStandard.SelectedValue.ToString


            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_FinancialYearId", SqlDbType.NVarChar, 10)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@ProdStdApproval_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Product Standard Approval"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Insert"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            displayone(tblStandards)
            CreateMessageAlert(Me, "Product Standard Saved Successfully.!", "strkeyval")
            ClearPSAFields()
            getExistingPSAData()
            'MultiView2.ActiveViewIndex = -1
        Catch
        End Try
    End Sub
    Private Sub getExistingPSAData()
        Try
            ' GetExisting()
            Dim fileName As String
            fileName = ReturnValue("Select ProdStdApproval_FileName from ProductStandardApproval where ProdStdApproval_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and ProdStdApproval_Isdeleted ='0' AND (ProdStdApproval_FileName IS NOT NULL)")
            If fileName.ToString <> "" Then
                TrStandardFileName.Style.Add("display", "auto")
                HypStandard.Text = fileName.ToString
                HypStandard.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & fileName.ToString
                btnProdStdAppSave.Visible = False
                btnProdStdAppUpdate.Visible = True
            Else
                TrStandardFileName.Style.Add("display", "none")
                btnProdStdAppSave.Visible = True
                btnProdStdAppUpdate.Visible = False
            End If


            'Dim dt As DataTable = getTable("Select ProdStdApproval_Kid,ProdStdApproval_Code,ProdStdApproval_StandardName,ProdStdApproval_StandardId,ProdStdApproval_AgencyApproved,ProdStdApproval_FileName, ProdStdApproval_AdminFileName from ProductStandardApproval where ProdStdApproval_ProductId='" & Session("ProductId").Trim & "' and ProdStdApproval_IsDeleted='0' and ProdStdApproval_CompanyID='" & Session("g_Company").Trim & "'", "PSA")
            '' ''Dim dt As DataTable = ReturnDataTable("SELECT     ProductStandardApproval.ProdStdApproval_FileName AS FileName,             ProductStandardApproval.ProdStdApproval_StandardId, ProductStandardApproval.ProdStdApproval_Kid FROM         ProductStandardApproval where ProdStdApproval_ProductId='" & Session("ProductId").Trim & "' and ProdStdApproval_IsDeleted='0'")
            '' ''If (dt.Rows.Count > 0) Then
            '' ''    gvStandardApproval.DataSource = dt
            '' ''    gvStandardApproval.DataBind()
            '' ''    gvStandardApproval.Columns(1).Visible = False
            '' ''    gvStandardApproval.Columns(2).Visible = False
            '' ''    TrStandardFileName.Style.Add("display", "none")
            '' ''    'btnProdStdAppUpdate.Visible = False
            '' ''    Dim i As Integer
            '' ''    For i = 0 To dt.Rows.Count - 1
            '' ''        gvStandardApproval.Rows(i).Cells(4).Text = "<a target='_blank' href='" & ResolveUrl("~/Upload Image/Product Image/UploadImages/" & dt.Rows(i).Item("FileName").ToString) & "'>" & dt.Rows(i).Item("FileName").ToString & "</a>"
            '' ''    Next
            '' ''    '' '' ''If Session("AdminID") = Nothing Then
            '' ''    '' '' ''    gvStandardApproval.Columns(0).Visible = False
            '' ''    '' '' ''End If
            '' ''Else
            '' ''    gvStandardApproval.DataSource = Nothing
            '' ''    gvStandardApproval.DataBind()
            '' ''End If


            ' ''If dt.Rows.Count > 0 Then
            ' ''    'ddlStandard.Visible = False
            ' ''    'txtProdStdAppCode.Text = dt.Rows(0).Item("ProdStdApproval_Code").ToString
            ' ''    'txtProdStdAppSName.Text = dt.Rows(0).Item("ProdStdApproval_StandardName").ToString
            ' ''    ' ''ddlStandard.Items.FindByValue(dt.Rows(0).Item("ProdStdApproval_StandardId").ToString).Selected = True
            ' ''    ' ''TrStandardLogo.Style.Add("display", "auto")
            ' ''    ' ''imgProductStanardLogo.Src = Page.ResolveUrl("~/Upload Image/Product Standard Logo/" & ReturnValue("Select PSM_Logo from ProductStandardsMaster where PSM_Kid='" & dt.Rows(0).Item("ProdStdApproval_StandardId").ToString & "'"))
            ' ''    ' ''tdProductStandardDesciption.InnerHtml = ReturnValue("Select PSM_Desc from ProductStandardsMaster where PSM_Kid='" & dt.Rows(0).Item("ProdStdApproval_StandardId").ToString & "'")
            ' ''    ' ''HypStandard.Text = dt.Rows(0).Item("ProdStdApproval_FileName").ToString
            ' ''    ' ''HypStandard.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("ProdStdApproval_FileName").ToString
            ' ''    ' ''TrStandardFileName.Style.Add("display", "auto")
            ' ''    '' ''HypStandard.Enabled = True
            ' ''    '' ''txtProdStdAppAAproved.Text = dt.Rows(0).Item("ProdStdApproval_AgencyApproved").ToString
            ' ''    ' ''If Session("AdminID") <> Nothing Then
            ' ''    ' ''    trStandardFU.Style.Add("display", "auto")
            ' ''    ' ''    btnProdStdAppUpdate.Visible = True
            ' ''    ' ''    btnProdStdAppSave.Visible = False
            ' ''    ' ''    EnableControls(True)
            ' ''    ' ''Else
            ' ''    ' ''    EnableControls(False)
            ' ''    ' ''    btnProdStdAppUpdate.Visible = False
            ' ''    ' ''    btnProdStdAppSave.Visible = False
            ' ''    ' ''    trStandardFU.Style.Add("display", "none")
            ' ''    ' ''End If
            ' ''    'Try
            ' ''    '    If IsDBNull(dt.Rows(0).Item("ProdStdApproval_FileName").ToString) Or dt.Rows(0).Item("ProdStdApproval_FileName").ToString = "" Then
            ' ''    '        Tr63.Visible = True
            ' ''    '        'Tr59.Visible = False
            ' ''    '    Else
            ' ''    '        Tr63.Visible = False
            ' ''    '        'Tr59.Visible = True
            ' ''    '        HypStandard.Visible = True
            ' ''    '        HypStandard.Text = dt.Rows(0).Item("ProdStdApproval_FileName").ToString
            ' ''    '        HypStandard.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("ProdStdApproval_FileName").ToString
            ' ''    '        HypStandard.Enabled = True
            ' ''    '    End If
            ' ''    'Catch
            ' ''    'End Try


            ' ''    ''btnProdStdAppSave.Enabled = False

            ' ''Else

            ' ''    ' ''TrStandardFileName.Style.Add("display", "none")
            ' ''    ' ''btnProdStdAppUpdate.Visible = False

            ' ''    'GenerateProdStdAppCode()
            ' ''    ''btnProdStdAppSave.Enabled = True
            ' ''    'EnableControls(True)
            ' ''End If

            '' ''If Session("AdminID") <> Nothing Then
            '' ''    EnableControls(True)
            '' ''    If dt.Rows.Count > 0 Then
            '' ''        ddlStandard.Visible = True
            '' ''        'If dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString.Trim.Length > 0 Then
            '' ''        '    Label106.Visible = True
            '' ''        '    AdminProRevwFileUpload.Visible = True
            '' ''        '    AdminHypStandard.Visible = True
            '' ''        '    AdminHypStandard.Text = dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
            '' ''        '    AdminHypStandard.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("ProdStdApproval_AdminFileName").ToString
            '' ''        'Else
            '' ''        '    Label106.Visible = True
            '' ''        '    AdminProRevwFileUpload.Visible = True
            '' ''        '    AdminHypStandard.Visible = False
            '' ''        'End If

            '' ''        btnProdStdAppSave.Visible = False
            '' ''        'btnApplicaionSave.Enabled = True
            '' ''        btnProdStdAppUpdate.Visible = True
            '' ''        'Tr59.Visible = True
            '' ''    Else
            '' ''        btnProdStdAppSave.Visible = True
            '' ''        'btnApplicaionSave.Enabled = True
            '' ''        btnProdStdAppUpdate.Visible = False
            '' ''    End If
            '' ''Else
            '' ''    'Label106.Visible = False
            '' ''    'AdminProRevwFileUpload.Visible = False
            '' ''    'AdminHypStandard.Visible = False
            '' ''    btnProdStdAppUpdate.Visible = False
            '' ''End If
            '' ''dt = Nothing
        Catch
        End Try
    End Sub
    Protected Sub EnableControls(ByVal Action As Boolean)
        Try
            ddlStandard.Enabled = Action
            'txtProdStdAppSName.Enabled = Action
            'txtProdStdAppAAproved.Enabled = Action
            'Tr63.Visible = Action
        Catch
        End Try
    End Sub
    Protected Sub ClearPSAFields()
        Try
            ddlStandardSameAs.ClearSelection()
            hypStandatdSameAs.Text = ""
            hypStandatdSameAs.NavigateUrl = ""
            '' ''ddlStandard.ClearSelection()
            ' '' ''txtProdStdAppCode.Text = ""
            ' '' ''txtProdStdAppSName.Text = ""
            ' '' ''txtProdStdAppAAproved.Text = ""
            '' ''HypStandard.Text = ""
        Catch
        End Try
    End Sub
    Protected Function GenerateProdStdAppCode() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "PSA" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from ProductStandardApproval where ProdStdApproval_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProdStdApproval_Code) from  ProductStandardApproval WHERE ProdStdApproval_Code LIKE" + "'PSA" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "PSA" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try

    End Function

    '********************************************** User Manual  ***************************************************
    Protected Sub btnUserManual_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserManual.Click
        Try
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 12
            'RUserM.Visible = False
            ClearUserManualFields()
            GenerateUMCode()
            'trUserManual.Style.Add("display", "none")
            'rblUserManual.Attributes.Add("onclick", "return rblUserManualClick(this);")
            btnUserManSave.Attributes.Add("onclick", "return checkUserManual();")
            btnUserManUpdate.Attributes.Add("onclick", "return checkUserManual();")
            'rblUserManual.ClearSelection()
            'rblUserManual.Focus()
            getExistingUMData()
        Catch
        End Try
    End Sub

    Protected Sub btnUserManUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserManUpdate.Click
        Try

            Dim dt As DataTable = getTable("Select * from InstallationManual where InstCommManual_ProductId='" & Session.Item("ProductId").Trim & "' and InstCommManual_IsDeleted='0' and InstCommManual_CompanyID='" & Session("g_Company").Trim & "'", "ICM")


            Dim strImageName As String = ""
            '----------------------------------
            'If rblUserManual.SelectedValue = "Yes" Then
            If (UserManUpload.HasFile) Then
                Dim fileType As String = Path.GetExtension(UserManUpload.FileName).ToLower
                'If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                strImageName = Final_FileUpload(UserManUpload, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                'Else
                '    lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
                '    strImageName = dt.Rows(0).Item("InstCommManual_UploadedManualFileName").ToString
                'End If
            Else
                strImageName = ddlUserManualSameAs.SelectedValue.ToString  'dt.Rows(0).Item("InstCommManual_UploadedManualFileName").ToString
            End If
            'ElseIf rblUserManual.SelectedValue = "No" Then
            'strImageName = ""
            'Else
            ''lblCatError.Visible = True
            ''lblCatError.Text = "Please Select Yes Or No..!!"
            'Exit Sub
            'End If

            Dim AdminstrImageName As String = ""
            'If (AdminUserManUpload.HasFile) Then
            '    Dim fileType As String = Path.GetExtension(AdminUserManUpload.FileName).ToLower
            '    If fileType = ".gif" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".pdf" Then
            '        AdminstrImageName = Final_FileUpload(AdminUserManUpload, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            '    Else
            '        lblResult.Visible = True
            '        lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
            '        AdminUserManUpload.Focus()
            '        Exit Sub
            '        'AdminstrImageName = dt.Rows(0).Item("InstCommManual_AdminUploadedManualFileName").ToString
            '    End If
            'ElseIf AdminhyplnkUserManual.Text.Trim.Length > 0 Then
            '    AdminstrImageName = dt.Rows(0).Item("InstCommManual_AdminUploadedManualFileName").ToString
            'End If


            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File

            'Open the Connection
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "InstallationManual_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection

            cmd.Parameters.Add(New SqlParameter("@InstCommManual_Kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstCommManual_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_Code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("InstCommManual_Code").ToString
            'If rblUserManual.SelectedValue = "Yes" Then
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_IsManualUpload", SqlDbType.NVarChar, 1)).Value = "Y"
            'Else
            'cmd.Parameters.Add(New SqlParameter("@InstCommManual_IsManualUpload", SqlDbType.NVarChar, 1)).Value = "N"
            'End If

            cmd.Parameters.Add(New SqlParameter("@InstCommManual_UploadedManualFileName", SqlDbType.NVarChar, 50)).Value = strImageName 'Trim(Session("PDF_File"))
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_AdminUploadedManualFileName", SqlDbType.NVarChar, 50)).Value = AdminstrImageName 'Trim(Session("PDF_File"))
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_ProductId", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("InstCommManual_ProductId").ToString
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_CompanyId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstCommManual_CompanyId").ToString       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_UserId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstCommManual_UserId").ToString             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Installation Manual"                           'Add Parameter FormName and assign the name of form to it
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            ClearUserManualFields()                                                                  'Clear the TextFields
            'lblResult.Visible = True
            'lblResult.Text = "Record Updated Successfully."
            displayone(tblUserManual)
            CreateMessageAlert(Me, "Product User Manual updated successfully.!", "strkeyval")
            ClearUserManualFields()
            getExistingUMData()
            'MultiView2.ActiveViewIndex = -1

        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try
    End Sub

    Protected Sub btnUserManSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserManSave.Click
        Try
            Dim strImageName As String = ""
            '----------------------------------
            If (UserManUpload.HasFile) Then
                Dim fileType As String = Path.GetExtension(UserManUpload.FileName).ToLower
                strImageName = Final_FileUpload(UserManUpload, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                If strImageName = "" Then
                    CreateMessageAlert(Me, "Product User Manual Does not Saved, Please Try Again.!!", "strkeyval")
                    Exit Sub
                End If
            Else
                strImageName = ddlUserManualSameAs.SelectedValue.ToString
            End If

            Dim AdminstrImageName As String = ""
            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "InstallationManual_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection

            cmd.Parameters.Add(New SqlParameter("@InstCommManual_Kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_Code", SqlDbType.NVarChar, 25)).Value = GenerateUMCode().ToString()        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            'If rblUserManual.SelectedValue = "Yes" Then
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_IsManualUpload", SqlDbType.NVarChar, 1)).Value = "Y"
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_UploadedManualFileName", SqlDbType.NVarChar, 50)).Value = strImageName 'Trim(Session("PDF_File"))
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_AdminUploadedManualFileName", SqlDbType.NVarChar, 50)).Value = AdminstrImageName 'Trim(Session("PDF_File"))
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_ProductId", SqlDbType.NVarChar, 25)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_FinancialYearId", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_CompanyId", SqlDbType.NVarChar, 20)).Value = Session("g_Company")       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            cmd.Parameters.Add(New SqlParameter("@InstCommManual_UserId", SqlDbType.NVarChar, 20)).Value = Session("g_User")             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Installation Manual"                           'Add Parameter FormName and assign the name of form to it
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            displayone(tblUserManual)
            ClearUserManualFields()

            ''''''''' For Code Optimization B Mitesh    ''''''''''''''''''''''''''
            trUserManual.Style.Add("display", "auto")
            trUserManualFileName.Style.Add("display", "auto")
            hyplnkUserManual.Text = strImageName.ToString
            hyplnkUserManual.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & strImageName.ToString
            btnUserManSave.Visible = False
            btnUserManUpdate.Visible = True
            'getExistingUMData()    ''' Comment By Mitesh For Optimization..
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            CreateMessageAlert(Me, "Product User Manual saved successfully.!", "strkeyval")
            
        Catch ex As Exception
            CreateMessageAlert(Me, "Product User Manual Does not Saved, Please Try Again.!!", "strkeyval")
            Exit Sub
        End Try
    End Sub

    Private Sub ClearUserManualFields()
        Try
            ddlUserManualSameAs.ClearSelection()
            hypUserManualSameAs.Text = ""
            hypUserManualSameAs.NavigateUrl = ""
            'txtUserManCode.Text = ""
            'rblUserManual.ClearSelection()
        Catch
        End Try
    End Sub

    Private Sub getExistingUMData()
        Try
            ' GetExisting()
            Dim dt As DataTable = getTable("Select InstCommManual_Kid,InstCommManual_Code,InstCommManual_IsManualUpload,InstCommManual_UploadedManualFileName, InstCommManual_AdminUploadedManualFileName from InstallationManual where InstCommManual_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and InstCommManual_IsDeleted='0' and InstCommManual_CompanyID='" & Session("g_Company").Trim & "'", "ICM")
            If dt.Rows.Count > 0 Then
                'txtUserManCode.Text = dt.Rows(0).Item("InstCommManual_Code").ToString
                If dt.Rows(0).Item("InstCommManual_IsManualUpload").ToString = "Y" Then
                    '' '' ''If Session("AdminID") <> Nothing Then
                    trUserManual.Style.Add("display", "auto")
                    trUserManualFileName.Style.Add("display", "auto")
                    hyplnkUserManual.Text = dt.Rows(0).Item("InstCommManual_UploadedManualFileName").ToString
                    hyplnkUserManual.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("InstCommManual_UploadedManualFileName").ToString
                Else
                    trUserManualFileName.Style.Add("display", "none")
                End If
                btnUserManSave.Visible = False
                btnUserManUpdate.Visible = True
                EnableUMControls(True)
                '' '' ''End If
            Else
                trUserManualFileName.Style.Add("display", "none")
                btnUserManSave.Visible = True
                btnUserManUpdate.Visible = False
                EnableUMControls(True)

            End If
            dt = Nothing
        Catch
        End Try
    End Sub

    Private Sub EnableUMControls(ByVal bool As Boolean)
        Try
            'rblUserManual.Enabled = bool
        Catch
        End Try
    End Sub

    Protected Function GenerateUMCode() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            ''txtUserManCode.Text = NewPrimaryKey(Me)
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "ICM" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from InstallationManual where InstCommManual_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(InstCommManual_Code) from  InstallationManual WHERE InstCommManual_Code LIKE" + "'ICM" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "ICM" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function

    '******************************************** Guaranty  ****************************************************
    Protected Sub btnGuaranty_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuaranty.Click

        Try

            'MultiView2.ActiveViewIndex = 13
            trGuaranty.Style.Add("display", "none")
            TrWarranty.Style.Add("display", "none")
            rblGW.Attributes.Add("onclick", "return JJrblGW(this);")
            txtGPeriod.Attributes.Add("onkeypress", "return blockNonNumbers(this,event,true,false);")
            txtWPeriod.Attributes.Add("onkeypress", "return blockNonNumbers(this,event,true,false);")
            FillComboWithSelectJJ("SELECT Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Days' AND Unit_CompanyId = '" & Session("g_Company") & "' AND Unit_IsDeleted = N'0'", ddlGPeriodType, "Select Type")
            FillComboWithSelectJJ("SELECT Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Days' AND Unit_CompanyId = '" & Session("g_Company") & "' AND Unit_IsDeleted = N'0'", ddlWPeriodType, "Select Type")
            '' '' ''trCarryIn.Style.Add("display", "none")
            '' '' ''rblWWarrantyType.Attributes.Add("onclick", "return rblWWarrantyType(this);")
            '' '' ''trSpecificParts.Style.Add("display", "none")
            '' '' ''rblWWarrantyFor.Attributes.Add("onclick", "return rblWWarrantyFor(this)")
            '' '' ''gvWSpecificParts.DataSource = Nothing
            '' '' ''gvWSpecificParts.DataBind()
            '' '' ''fillGWSparePartsGrid()
            '' '' ''btnGWSave.Attributes.Add("onclick", "return ckeckGW();")
            '' '' ''btnGWUpdate.Attributes.Add("onclick", "return ckeckGW();")
            '' '' ''rblGW.Focus()
            '' '' ''rblGW.ClearSelection()
            '' '' ''rblWWarrantyFor.SelectedValue = "Complete Unit"

            '' '' ''getexistingGW()

            trGWFileName.Style.Add("display", "none")
            btnguwarrantySubmit.Attributes.Add("onclick", "return GWClick();")
            btnguwarrantyUpdate.Attributes.Add("onclick", "return GWClick();")
            GetExistingGWNew()

            'Fill_Combo("SELECT Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Days' AND Unit_CompanyId = '" & Session("g_Company") & "' AND Unit_IsDeleted = N'0'", ddlWarrantType)
            'Fill_ComboNoName("SELECT Spares_Kid, Spares_PartNumber, Spares_PartName FROM Spare_Parts WHERE Spares_CompanyId = '" & Session("g_Company") & "' AND Spares_IsDeleted = N'0'", ddlGWPartNoPartName)
            'rdoOnSite.Checked = True
            'rdoCarryIn.Checked = False
            'rwCarryIn.Visible = False
            'rdoCompleteUnit.Checked = True
            'rdoSpecificParts.Checked = False
            'rwWarrantyFor.Visible = False
            'ddlgaurntType.ClearSelection()
            'Try
            '    ddlgaurntType.Items.FindByText("Months").Selected = True
            'Catch
            'End Try
            'ddlWarrantType.ClearSelection()
            'Try
            '    ddlWarrantType.Items.FindByText("Months").Selected = True
            'Catch
            'End Try
            'ddlGWPartNoPartName.ClearSelection()
            'Try
            '    ddlGWPartNoPartName.Items.FindByText("Select").Selected = True
            'Catch
            'End Try
            'txtgurrant1.Text = ""
            'txtWarrant.Text = ""
            'txtWDesc.Text = ""
            'txtGDesc.Text = ""
            'Fill_Grid("Select * From Product_GuarantyWarrantydetails Where gwd_CompanyId = '" & Session("g_Company").ToString & "' and gwd_IsDeleted='0' and gwd_ProductId= '" & Session("ProductId").ToString.Trim & "'", gvWarranty)
            'GetGWDataTable()

            'If Session("AdminID") <> Nothing Then
            '    'EnableControlsGW(True)
            '    If gvWarranty.Rows.Count > 0 Then
            '        btnGWSave.Enabled = False
            '        btnGWAddMore.Enabled = True
            '        btnGWUpdate.Visible = True
            '        btnGWUpdate.Enabled = True
            '        btnGWDelete.Visible = True
            '        btnGWDelete.Enabled = True
            '    Else
            '        btnGWSave.Enabled = True
            '        btnGWAddMore.Enabled = True
            '        btnGWUpdate.Visible = True
            '        btnGWUpdate.Enabled = False
            '        btnGWDelete.Visible = True
            '        btnGWDelete.Enabled = False
            '    End If

            '    gvWarranty.Columns(0).Visible = True
            'Else
            '    If gvWarranty.Rows.Count > 0 Then
            '        btnGWSave.Enabled = False
            '        btnGWDelete.Visible = False
            '        btnGWAddMore.Enabled = True
            '    Else
            '        btnGWSave.Visible = True
            '        btnGWDelete.Visible = True
            '        btnGWAddMore.Visible = True
            '    End If
            '    btnGWUpdate.Visible = False
            '    btnGWDelete.Visible = False
            '    gvWarranty.Columns(0).Visible = False
            'End If

        Catch
        End Try

    End Sub

    Public Sub GetExistingGWNew()
        Try

            ' GetExisting()
            Dim dt As DataTable
            dt = ReturnDataTable("Select * from Product_GuarantyWarrantyDetails where gwd_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
            If dt.Rows.Count > 0 Then
                If (dt.Rows(0).Item("gwd_Type").ToString = "Guaranty") Then
                    rblGW.SelectedValue = "Guaranty"
                    trGuaranty.Style.Add("display", "auto")
                    txtGPeriod.Text = dt.Rows(0).Item("gwd_pguarentee1").ToString
                    ddlGPeriodType.Items.FindByValue(RemoveLiterals(dt.Rows(0).Item("gwd_pguarentee2").ToString)).Selected = True
                    txtWPeriod.Text = ""
                    ddlWPeriodType.ClearSelection()
                ElseIf (dt.Rows(0).Item("gwd_Type").ToString = "Warranty") Then
                    rblGW.SelectedValue = "Warranty"
                    TrWarranty.Style.Add("display", "auto")
                    txtGPeriod.Text = ""
                    ddlGPeriodType.ClearSelection()
                    txtWPeriod.Text = dt.Rows(0).Item("gwd_pwarranty1").ToString
                    ddlWPeriodType.Items.FindByValue(RemoveLiterals(dt.Rows(0).Item("gwd_pwarranty2").ToString)).Selected = True
                End If
                If (dt.Rows(0).Item("gwd_FileName").ToString <> "") Then
                    trGWFileName.Style.Add("display", "auto")
                    lblguwarrantyPath.Text = dt.Rows(0).Item("gwd_FileName").ToString.ToString
                    lblguwarrantyPath.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("gwd_FileName").ToString.ToString
                Else
                    trGWFileName.Style.Add("display", "none")
                End If
                btnguwarrantySubmit.Visible = False
                btnguwarrantyUpdate.Visible = True
            Else
                btnguwarrantySubmit.Visible = True
                btnguwarrantyUpdate.Visible = False
            End If
        Catch ex As Exception
            rblGW.ClearSelection()
            TrWarranty.Style.Add("display", "none")
            trGuaranty.Style.Add("display", "none")
            btnguwarrantySubmit.Visible = True
            btnguwarrantyUpdate.Visible = False
        End Try
    End Sub

    Public Sub EnableControlsGW(ByVal action As Boolean)
        rblGW.Enabled = action
        txtGDescription.Enabled = action
        txtGPeriod.Enabled = action
        ddlGPeriodType.Enabled = action
        rblWCarryIn.Enabled = action
        rblWWarrantyFor.Enabled = action
        rblWWarrantyType.Enabled = action
    End Sub
    'Public Sub getexistingGW()
    '    Dim dt As DataTable
    '    Dim i, j As Integer
    '    dt = ReturnDataTable("Select * from Product_GuarantyWarrantyDetails where gwd_ProductId='" & RemoveLiterals(Session("ProductID").ToString) & "'")
    '    If dt.Rows.Count > 0 Then
    '        '' '' ''If Session("AdminID") <> Nothing Then
    '        btnGWSave.Visible = False
    '        btnGWUpdate.Visible = True

    '        btnguwarrantySubmit.Visible = False
    '        btnguwarrantyUpdate.Visible = True
    '        EnableControlsGW(True)
    '        '' '' ''Else
    '        '' '' ''    EnableControlsGW(False)
    '        '' '' ''    btnGWSave.Visible = False
    '        '' '' ''    btnGWUpdate.Visible = False

    '        '' '' ''End If
    '        rblGW.Enabled = False
    '        If (dt.Rows(0).Item("gwd_Type").ToString = "Guaranty") Then
    '            rblGW.SelectedValue = "Guaranty"
    '            trGuaranty1.Style.Add("display", "auto")
    '            txtGPeriod.Text = dt.Rows(0).Item("gwd_pguarentee1").ToString
    '            ddlGPeriodType.Items.FindByValue(RemoveLiterals(dt.Rows(0).Item("gwd_pguarentee2").ToString)).Selected = True
    '            txtGDescription.Text = dt.Rows(0).Item("gwd_Gdesc").ToString
    '        Else
    '            rblGW.SelectedValue = "Warranty"
    '            TrWarranty1.Style.Add("display", "auto")
    '            If dt.Rows(0).Item("gwd_wtype").ToString = "On Site" Then
    '                rblWWarrantyType.SelectedValue = "On Site"
    '            Else
    '                rblWWarrantyType.SelectedValue = "Carry In"
    '                trCarryIn.Style.Add("display", "auto")
    '                rblWCarryIn.SelectedValue = dt.Rows(0).Item("gwd_CarryIn").ToString
    '            End If
    '            If (dt.Rows(0).Item("gwd_wfor").ToString = "Complete Unit") Then
    '                trSpecificParts.Style.Add("display", "none")
    '                rblWWarrantyFor.SelectedValue = "Complete Unit"
    '                TrCompleteUnit.Style.Add("display", "auto")
    '                txtWCompletePeriod.Text = dt.Rows(0).Item("gwd_pwarranty1").ToString
    '                ddlWCompletePeriodType.Items.FindByValue(RemoveLiterals(dt.Rows(0).Item("gwd_pwarranty2").ToString)).Selected = True
    '                txtWCompleteDescription.Text = dt.Rows(0).Item("gwd_Wdesc").ToString
    '                '' '' ''If Session("AdminID") <> Nothing Then
    '                txtWCompletePeriod.Enabled = True
    '                ddlWCompletePeriodType.Enabled = True
    '                txtWCompleteDescription.Enabled = True
    '                '' '' ''Else
    '                '' '' ''    txtWCompletePeriod.Enabled = False
    '                '' '' ''    ddlWCompletePeriodType.Enabled = False
    '                '' '' ''    txtWCompleteDescription.Enabled = False
    '                '' '' ''End If

    '            Else
    '                TrCompleteUnit.Style.Add("display", "none")
    '                rblWWarrantyFor.SelectedValue = "Specific Parts"
    '                trSpecificParts.Style.Add("display", "auto")

    '                If (Session("AdminID")) = Nothing Then
    '                    CType(gvWSpecificParts.HeaderRow.Cells(0).FindControl("CheckBox1"), CheckBox).Enabled = False
    '                    For j = 0 To gvWSpecificParts.Rows.Count - 1
    '                        CType(gvWSpecificParts.Rows(j).Cells(0).FindControl("CheckBox2"), CheckBox).Enabled = False
    '                        CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Enabled = False
    '                        CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("ddlWWarrantyPeriodType"), DropDownList).Enabled = False
    '                        CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyDescription"), TextBox).Enabled = False

    '                    Next
    '                End If


    '                For i = 0 To dt.Rows.Count - 1
    '                    Dim kid As String
    '                    kid = dt.Rows(i).Item("gwd_PartNo").ToString
    '                    For j = 0 To gvWSpecificParts.Rows.Count - 1
    '                        If (RemoveLiterals(kid) = RemoveLiterals(gvWSpecificParts.Rows(j).Cells(1).Text)) Then
    '                            CType(gvWSpecificParts.Rows(j).Cells(0).FindControl("CheckBox2"), CheckBox).Checked = True
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Style.Add("display", "auto")
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Text = dt.Rows(i).Item("gwd_pwarranty1").ToString
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("ddlWWarrantyPeriodType"), DropDownList).Style.Add("display", "auto")
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("ddlWWarrantyPeriodType"), DropDownList).Items.FindByValue(RemoveLiterals(RemoveLiterals(dt.Rows(i).Item("gwd_pwarranty2").ToString))).Selected = True
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyDescription"), TextBox).Style.Add("display", "auto")
    '                            CType(gvWSpecificParts.Rows(j).Cells(3).FindControl("txtWWarrantyDescription"), TextBox).Text = dt.Rows(i).Item("gwd_wdesc").ToString
    '                        End If
    '                    Next
    '                Next

    '                If dt.Rows.Count = gvWSpecificParts.Rows.Count Then
    '                    CType(gvWSpecificParts.HeaderRow.Cells(0).FindControl("CheckBox1"), CheckBox).Checked = True
    '                End If

    '            End If


    '        End If
    '    Else
    '        btnGWSave.Visible = True
    '        btnGWUpdate.Visible = False
    '        btnguwarrantySubmit.Visible = True
    '        btnguwarrantyUpdate.Visible = False
    '    End If
    'End Sub
    Public Sub fillGWSparePartsGrid()
        Dim dt As DataTable
        dt = ReturnDataTable("SELECT     Product_Master.Product_Name, OtherDetail_SpareParts.ODTSP_SparePartId FROM         OtherDetail_SpareParts INNER JOIN                       Product_Master ON OtherDetail_SpareParts.ODTSP_SparePartId = Product_Master.Product_Kid WHERE     (OtherDetail_SpareParts.ODTSP_ProductId = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (OtherDetail_SpareParts.ODTSP_IsDeleted = N'0')")
        gvWSpecificParts.Columns(1).Visible = True
        gvWSpecificParts.DataSource = dt
        gvWSpecificParts.DataBind()
        gvWSpecificParts.Columns(1).Visible = False
        dt.Clear()
    End Sub

    Protected Sub gvWSpecificParts_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvWSpecificParts.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim txtPeriod As TextBox
            Dim ddlPeriodType As DropDownList
            Dim txtDescription As TextBox
            Dim chk2 As CheckBox
            Dim kid As String
            kid = e.Row.Cells(1).Text
            chk2 = CType(e.Row.Cells(0).FindControl("CheckBox2"), CheckBox)
            txtPeriod = CType(e.Row.Cells(3).FindControl("txtWWarrantyPeriod"), TextBox)
            ddlPeriodType = CType(e.Row.Cells(4).FindControl("ddlWWarrantyPeriodType"), DropDownList)
            txtDescription = CType(e.Row.Cells(5).FindControl("txtWWarrantyDescription"), TextBox)
            CType(e.Row.Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Style.Add("display", "none")
            CType(e.Row.Cells(4).FindControl("ddlWWarrantyPeriodType"), DropDownList).Style.Add("display", "none")
            CType(e.Row.Cells(5).FindControl("txtWWarrantyDescription"), TextBox).Style.Add("display", "none")
            CType(e.Row.Cells(0).FindControl("CheckBox2"), CheckBox).Attributes.Add("onclick", "return chkrow(this," & e.Row.RowIndex & ")")
            FillComboWithSelectJJ("SELECT Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag = N'Days' AND Unit_CompanyId = '" & Session("g_Company") & "' AND Unit_IsDeleted = N'0'", CType(e.Row.Cells(4).FindControl("ddlWWarrantyPeriodType"), DropDownList), "Select Type")
            Dim str As String
            str = ""
        ElseIf e.Row.RowType = DataControlRowType.Header Then
            Dim chk1 As CheckBox
            chk1 = CType(e.Row.Cells(0).FindControl("CheckBox1"), CheckBox)
            CType(e.Row.Cells(0).FindControl("CheckBox1"), CheckBox).Attributes.Add("onclick", "return chkHeader(this)")
        End If
    End Sub
    'Protected Sub btnGWSave_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGWSave.Click
    '    Try

    '        Dim count As Integer
    '        Dim i As Integer
    '        count = 1
    '        Dim ProductKID(10), Period(10), PeriodType(10), Description(10) As String
    '        If rblWWarrantyFor.SelectedItem.Value = "Specific Parts" And gvWSpecificParts.Rows.Count > 0 Then
    '            For i = 0 To gvWSpecificParts.Rows.Count - 1
    '                If (CType(gvWSpecificParts.Rows(i).Cells(0).FindControl("CheckBox2"), CheckBox).Checked = True) Then
    '                    count = count + 1
    '                    ProductKID(i) = gvWSpecificParts.Rows(i).Cells(1).Text
    '                    Period(i) = CType(gvWSpecificParts.Rows(i).Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Text
    '                    PeriodType(i) = CType(gvWSpecificParts.Rows(i).Cells(4).FindControl("ddlWWarrantyPeriodType"), DropDownList).SelectedItem.Value.ToString
    '                    Description(i) = CType(gvWSpecificParts.Rows(i).Cells(5).FindControl("txtWWarrantyDescription"), TextBox).Text
    '                End If
    '            Next
    '            count = count - 1
    '        End If

    '        For i = 0 To count - 1

    '            Dim con As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))
    '            Dim strproc As String = "Product_GuarantyWarrantyDetails_Proc"
    '            Dim cmd As New SqlCommand(strproc, con)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me).Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeGW(gwcode).ToString()
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Type", SqlDbType.NVarChar, 20)).Value = rblGW.SelectedItem.Value.ToString
    '            cmd.Parameters.Add(New SqlParameter("@gwd_ProductId", SqlDbType.NVarChar, 18)).Value = Session("ProductId").ToString.Trim

    '            If rblGW.SelectedItem.Value = "Guaranty" Then
    '                cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee1", SqlDbType.NVarChar, 18)).Value = txtGPeriod.Text.Trim
    '                cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee2", SqlDbType.NVarChar, 18)).Value = ddlGPeriodType.SelectedValue.Trim
    '                cmd.Parameters.Add(New SqlParameter("@gwd_Gdesc", SqlDbType.NVarChar, 500)).Value = Convert.ToString(txtGDescription.Text)
    '            Else

    '                cmd.Parameters.Add(New SqlParameter("@gwd_wtype", SqlDbType.NVarChar, 50)).Value = rblWWarrantyType.SelectedItem.Value.ToString

    '                If (rblWWarrantyType.SelectedValue = "Carry In") Then
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_CarryIn", SqlDbType.NVarChar, 50)).Value = rblWCarryIn.SelectedItem.Value.ToString
    '                End If
    '                cmd.Parameters.Add(New SqlParameter("@gwd_wfor", SqlDbType.NVarChar, 50)).Value = rblWWarrantyFor.SelectedItem.Value.ToString
    '                If (rblWWarrantyFor.SelectedValue = "Specific Parts") Then
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = ProductKID(i).ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = Period(i).ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = PeriodType(i).ToString()
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = Description(i).ToString
    '                Else
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = Session("ProductID").ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWCompletePeriod.Text.ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWCompletePeriodType.SelectedItem.Value.ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = txtWCompleteDescription.Text.ToString
    '                End If
    '            End If
    '            cmd.Parameters.Add(New SqlParameter("@gwd_FinancialYearId", SqlDbType.NVarChar, 25)).Value = Session("g_FinYear").ToString.Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").Trim
    '            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 10)).Value = Me.Title.ToString.Trim
    '            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Insert"

    '            con.Open()
    '            cmd.ExecuteNonQuery()
    '            con.Close()
    '            'Fill_Grid("Select * From Product_GuarantyWarrantydetails Where gwd_CompanyId = '" & Session("g_Company").ToString & "' and gwd_IsDeleted='0' and gwd_ProductId= '" & Session("ProductId").ToString.Trim & "'", gvWarranty)
    '            'GetGWDataTable()
    '            'EnableControlsGW(True)

    '        Next
    '        getexistingGW()
    '        displayone(tblGuatantyWarranty)
    '        CreateMessageAlert(Me, "Guaranty / Warranty Saved successfully.!", "strkeyval")
    '        'MultiView2.ActiveViewIndex = -1
    '    Catch ex As Exception
    '    End Try
    'End Sub
    'Protected Sub btnGWUpdate_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGWUpdate.Click
    '    Try

    '        ExecuteQuery("delete from Product_GuarantyWarrantydetails where gwd_ProductId ='" & RemoveLiterals(Session("ProductID").ToString) & "'")

    '        Dim count As Integer
    '        Dim i As Integer
    '        count = 1
    '        Dim ProductKID(10), Period(10), PeriodType(10), Description(10) As String
    '        'Dim ExistingKID(10), ExistingCode(10) As String

    '        'Dim dt As DataTable
    '        'dt = ReturnDataTable("Select gwd_Kid, gwd_Code  from Product_GuarantyWarrantyDetails where gwd_ProductId='" & RemoveLiterals(Session("ProductID").ToString) & "'")
    '        'If dt.Rows.Count > 1 Then

    '        'Else
    '        '    ExistingKID(0) = dt.Rows(0).Item("gwd_Kid").ToString
    '        '    ExistingCode(0) = dt.Rows(0).Item("gwd_Code").ToString

    '        'End If

    '        If rblWWarrantyFor.SelectedItem.Value = "Specific Parts" And gvWSpecificParts.Rows.Count > 0 Then
    '            For i = 0 To gvWSpecificParts.Rows.Count - 1
    '                If (CType(gvWSpecificParts.Rows(i).Cells(0).FindControl("CheckBox2"), CheckBox).Checked = True) Then
    '                    count = count + 1
    '                    ProductKID(i) = gvWSpecificParts.Rows(i).Cells(1).Text
    '                    Period(i) = CType(gvWSpecificParts.Rows(i).Cells(3).FindControl("txtWWarrantyPeriod"), TextBox).Text
    '                    PeriodType(i) = CType(gvWSpecificParts.Rows(i).Cells(4).FindControl("ddlWWarrantyPeriodType"), DropDownList).SelectedItem.Value.ToString
    '                    Description(i) = CType(gvWSpecificParts.Rows(i).Cells(5).FindControl("txtWWarrantyDescription"), TextBox).Text
    '                End If
    '            Next
    '            count = count - 1
    '        End If

    '        For i = 0 To count - 1

    '            Dim con As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))
    '            Dim strproc As String = "Product_GuarantyWarrantyDetails_Proc"
    '            Dim cmd As New SqlCommand(strproc, con)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me).Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeGW(gwcode).ToString()
    '            cmd.Parameters.Add(New SqlParameter("@gwd_Type", SqlDbType.NVarChar, 20)).Value = rblGW.SelectedItem.Value.ToString
    '            cmd.Parameters.Add(New SqlParameter("@gwd_ProductId", SqlDbType.NVarChar, 18)).Value = Session("ProductId").ToString.Trim

    '            If rblGW.SelectedItem.Value = "Guaranty" Then
    '                cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee1", SqlDbType.NVarChar, 18)).Value = txtGPeriod.Text.Trim
    '                cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee2", SqlDbType.NVarChar, 18)).Value = ddlGPeriodType.SelectedValue.Trim
    '                cmd.Parameters.Add(New SqlParameter("@gwd_Gdesc", SqlDbType.NVarChar, 500)).Value = Convert.ToString(txtGDescription.Text)
    '            Else

    '                cmd.Parameters.Add(New SqlParameter("@gwd_wtype", SqlDbType.NVarChar, 50)).Value = rblWWarrantyType.SelectedItem.Value.ToString

    '                If (rblWWarrantyType.SelectedValue = "Carry In") Then
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_CarryIn", SqlDbType.NVarChar, 50)).Value = rblWCarryIn.SelectedItem.Value.ToString
    '                End If
    '                cmd.Parameters.Add(New SqlParameter("@gwd_wfor", SqlDbType.NVarChar, 50)).Value = rblWWarrantyFor.SelectedItem.Value.ToString
    '                If (rblWWarrantyFor.SelectedValue = "Specific Parts") Then
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = ProductKID(i).ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = Period(i).ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = PeriodType(i).ToString()
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = Description(i).ToString
    '                Else
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = Session("ProductID").ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWCompletePeriod.Text.ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWCompletePeriodType.SelectedItem.Value.ToString
    '                    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = txtWCompleteDescription.Text.ToString
    '                End If
    '            End If
    '            cmd.Parameters.Add(New SqlParameter("@gwd_FinancialYearId", SqlDbType.NVarChar, 25)).Value = Session("g_FinYear").ToString.Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").Trim
    '            cmd.Parameters.Add(New SqlParameter("@gwd_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").Trim
    '            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 10)).Value = Me.Title.ToString.Trim
    '            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Insert"

    '            con.Open()
    '            cmd.ExecuteNonQuery()
    '            con.Close()
    '            'Fill_Grid("Select * From Product_GuarantyWarrantydetails Where gwd_CompanyId = '" & Session("g_Company").ToString & "' and gwd_IsDeleted='0' and gwd_ProductId= '" & Session("ProductId").ToString.Trim & "'", gvWarranty)
    '            'GetGWDataTable()
    '            'EnableControlsGW(True)

    '        Next
    '        getexistingGW()
    '        displayone(tblGuatantyWarranty)
    '        CreateMessageAlert(Me, "Guaranty / Warranty Updated successfully.!", "strkeyval")
    '        'MultiView2.ActiveViewIndex = -1
    '    Catch ex As Exception
    '    End Try
    'End Sub

    Protected Sub btnguwarrantySubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnguwarrantySubmit.Click

        Dim strImageName As String = ""
        '----------------------------------
        'If rblUserManual.SelectedValue = "Yes" Then
        If (FileUploadguwarranty.HasFile) Then
            Dim fileType As String = Path.GetExtension(FileUploadguwarranty.FileName).ToLower
            'If fileType = ".pdf" Then
            strImageName = Final_FileUpload(FileUploadguwarranty, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            'Else
            '    lblResult.Visible = True
            '    lblResult.Text = "Please select .pdf only!"
            '    UserManUpload.Focus()
            '    Exit Sub
            'End If
        Else

            If ddlgwSameAs.SelectedValue <> "Select" Then
                strImageName = ddlgwSameAs.SelectedValue.ToString
            Else
                strImageName = ""
            End If

            'lblResult.Visible = True
            'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
            'Exit Sub
        End If
        'ElseIf rblUserManual.SelectedValue = "No" Then
        'strImageName = ""
        'Else
        ''lblCatError.Visible = True
        ''lblCatError.Text = "Please Select Yes Or No..!!"
        'Exit Sub
        'End If

        Dim con As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))
        Dim strproc As String = "Product_GuarantyWarrantyDetails_Proc"
        Dim cmd As New SqlCommand(strproc, con)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@gwd_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me).Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeGW(gwcode).ToString()
        cmd.Parameters.Add(New SqlParameter("@gwd_Type", SqlDbType.NVarChar, 20)).Value = rblGW.SelectedItem.Value.ToString
        cmd.Parameters.Add(New SqlParameter("@gwd_ProductId", SqlDbType.NVarChar, 18)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
        cmd.Parameters.Add(New SqlParameter("@gwd_FileName", SqlDbType.NVarChar, 50)).Value = strImageName.ToString 'Session("ProductId").ToString.Trim

        If rblGW.SelectedItem.Value = "Guaranty" Then
            cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee1", SqlDbType.NVarChar, 18)).Value = txtGPeriod.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee2", SqlDbType.NVarChar, 18)).Value = ddlGPeriodType.SelectedValue.Trim
            'cmd.Parameters.Add(New SqlParameter("@gwd_Gdesc", SqlDbType.NVarChar, 500)).Value = Convert.ToString(txtGDescription.Text)
        Else
            cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWPeriod.Text.ToString
            cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWPeriodType.SelectedItem.Value.ToString
            'cmd.Parameters.Add(New SqlParameter("@gwd_wtype", SqlDbType.NVarChar, 50)).Value = rblWWarrantyType.SelectedItem.Value.ToString

            'If (rblWWarrantyType.SelectedValue = "Carry In") Then
            '    cmd.Parameters.Add(New SqlParameter("@gwd_CarryIn", SqlDbType.NVarChar, 50)).Value = rblWCarryIn.SelectedItem.Value.ToString
            'End If
            'cmd.Parameters.Add(New SqlParameter("@gwd_wfor", SqlDbType.NVarChar, 50)).Value = rblWWarrantyFor.SelectedItem.Value.ToString
            'If (rblWWarrantyFor.SelectedValue = "Specific Parts") Then
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = ProductKID(i).ToString
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = Period(i).ToString
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = PeriodType(i).ToString()
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = Description(i).ToString
            'Else
            '    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = Session("ProductID").ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWCompletePeriod.Text.ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWCompletePeriodType.SelectedItem.Value.ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = txtWCompleteDescription.Text.ToString
            'End If
        End If
        cmd.Parameters.Add(New SqlParameter("@gwd_OMT", SqlDbType.NVarChar, 25)).Value = rblGWIsTraining.SelectedValue.ToString
        cmd.Parameters.Add(New SqlParameter("@gwd_AMC", SqlDbType.NVarChar, 25)).Value = rblGWIsContract.SelectedValue.ToString 'Session("g_FinYear").ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_FinancialYearId", SqlDbType.NVarChar, 25)).Value = Session("g_FinYear").ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").Trim
        cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 10)).Value = Me.Title.ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Insert"

        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
        GetExistingGWNew()
        displayone(tblguwarranty)
        Cleargw()
        CreateMessageAlert(Me, "Guaranty / Warranty Saved successfully.!", "strkeyval")
    End Sub

    Public Sub Cleargw()
        ddlgwSameAs.ClearSelection()
        hypgwSameAs.Text = ""
        hypgwSameAs.NavigateUrl = ""
    End Sub

    Protected Sub btnguwarrantyUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnguwarrantyUpdate.Click
        Dim strImageName As String = ""
        Dim kid As String = ReturnValue("Select gwd_kid from Product_GuarantyWarrantydetails where gwd_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and gwd_Isdeleted ='0'")
        '----------------------------------
        'If rblUserManual.SelectedValue = "Yes" Then
        If (FileUploadguwarranty.HasFile) Then
            'Dim fileType As String = Path.GetExtension(FileUploadguwarranty.FileName).ToLower
            'If fileType = ".pdf" Then
            strImageName = Final_FileUpload(FileUploadguwarranty, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
            'Else
            '    lblResult.Visible = True
            '    lblResult.Text = "Please select .pdf only!"
            '    UserManUpload.Focus()
            '    Exit Sub
            'End If
        Else
            'lblResult.Visible = True
            'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
            'Exit Sub
            If ddlgwSameAs.SelectedValue <> "Select" Then
                strImageName = ddlgwSameAs.SelectedValue.ToString
            Else
                strImageName = ReturnValue("select gwd_FileName from  Product_GuarantyWarrantydetails where gwd_kid='" & RemoveLiterals(kid) & "' and gwd_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
            End If

        End If
        'ElseIf rblUserManual.SelectedValue = "No" Then
        'strImageName = ""
        'Else
        ''lblCatError.Visible = True
        ''lblCatError.Text = "Please Select Yes Or No..!!"
        'Exit Sub
        'End If

        Dim con As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))
        Dim strproc As String = "Product_GuarantyWarrantyDetails_Proc"
        Dim cmd As New SqlCommand(strproc, con)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@gwd_Kid", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(kid)
        cmd.Parameters.Add(New SqlParameter("@gwd_Code", SqlDbType.NVarChar, 25)).Value = ReturnValue("Select gwd_Code from Product_GuarantyWarrantydetails where gwd_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'and gwd_Isdeleted ='0'")
        cmd.Parameters.Add(New SqlParameter("@gwd_Type", SqlDbType.NVarChar, 20)).Value = rblGW.SelectedItem.Value.ToString
        cmd.Parameters.Add(New SqlParameter("@gwd_ProductId", SqlDbType.NVarChar, 18)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
        cmd.Parameters.Add(New SqlParameter("@gwd_FileName", SqlDbType.NVarChar, 50)).Value = strImageName.ToString 'Session("ProductId").ToString.Trim
        If rblGW.SelectedItem.Value = "Guaranty" Then
            cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee1", SqlDbType.NVarChar, 18)).Value = txtGPeriod.Text.Trim
            cmd.Parameters.Add(New SqlParameter("@gwd_pguarentee2", SqlDbType.NVarChar, 18)).Value = ddlGPeriodType.SelectedValue.Trim
            ExecuteQuery("Update Product_GuarantyWarrantydetails set gwd_Type = N'Guaranty', gwd_pwarranty1=NULL,gwd_pwarranty2=NULL  WHERE     (gwd_Kid = N'" & RemoveLiterals(kid) & "') AND (gwd_Type = N'Warranty') AND (gwd_ProductId = N'" & Session("ProductId").ToString.Trim & "')")  'By Pankaj Mishra 09.02.2009
            'cmd.Parameters.Add(New SqlParameter("@gwd_Gdesc", SqlDbType.NVarChar, 500)).Value = Convert.ToString(txtGDescription.Text)
        Else
            cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWPeriod.Text.ToString
            cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWPeriodType.SelectedItem.Value.ToString
            ExecuteQuery("Update Product_GuarantyWarrantydetails set gwd_Type = N'Warranty', gwd_pguarentee1=NULL,gwd_pguarentee2=NULL WHERE     (gwd_Kid = N'" & RemoveLiterals(kid) & "') AND (gwd_Type = N'Guaranty') AND (gwd_ProductId = N'" & Session("ProductId").ToString.Trim & "')")  'By Pankaj Mishra 09.02.2009
            'cmd.Parameters.Add(New SqlParameter("@gwd_wtype", SqlDbType.NVarChar, 50)).Value = rblWWarrantyType.SelectedItem.Value.ToString

            'If (rblWWarrantyType.SelectedValue = "Carry In") Then
            '    cmd.Parameters.Add(New SqlParameter("@gwd_CarryIn", SqlDbType.NVarChar, 50)).Value = rblWCarryIn.SelectedItem.Value.ToString
            'End If
            'cmd.Parameters.Add(New SqlParameter("@gwd_wfor", SqlDbType.NVarChar, 50)).Value = rblWWarrantyFor.SelectedItem.Value.ToString
            'If (rblWWarrantyFor.SelectedValue = "Specific Parts") Then
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = ProductKID(i).ToString
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = Period(i).ToString
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = PeriodType(i).ToString()
            '    'cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = Description(i).ToString
            'Else
            '    cmd.Parameters.Add(New SqlParameter("@gwd_PartNo", SqlDbType.NVarChar, 18)).Value = Session("ProductID").ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty1", SqlDbType.NVarChar, 18)).Value = txtWCompletePeriod.Text.ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_pwarranty2", SqlDbType.NVarChar, 10)).Value = ddlWCompletePeriodType.SelectedItem.Value.ToString
            '    cmd.Parameters.Add(New SqlParameter("@gwd_Wdesc", SqlDbType.NVarChar, 500)).Value = txtWCompleteDescription.Text.ToString
            'End If
        End If
        cmd.Parameters.Add(New SqlParameter("@gwd_OMT", SqlDbType.NVarChar, 25)).Value = rblGWIsTraining.SelectedValue.ToString
        cmd.Parameters.Add(New SqlParameter("@gwd_AMC", SqlDbType.NVarChar, 25)).Value = rblGWIsContract.SelectedValue.ToString 'Session("g_FinYear").ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_FinancialYearId", SqlDbType.NVarChar, 25)).Value = Session("g_FinYear").ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company").Trim
        cmd.Parameters.Add(New SqlParameter("@gwd_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User").Trim
        cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 10)).Value = Me.Title.ToString.Trim
        cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 10)).Value = "Update"

        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
        GetExistingGWNew()
        displayone(tblguwarranty)
        Cleargw()
        CreateMessageAlert(Me, "Guaranty / Warranty Updated successfully.!", "strkeyval")
    End Sub

    '=================== That must be removed =============================
    Public Function GenerateCodeGW(ByRef code As String) As String
        Try
            'Dim i As String
            Dim code1 As String
            'txtProductFeaKid.Text = NewPrimaryKey(Me)
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "GWC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from Product_GuarantyWarrantyDetails where gwd_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            'Return code
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(gwd_Code) from  Product_GuarantyWarrantyDetails WHERE gwd_Code LIKE" + "'GWC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code1 = "GWC" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code1
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function

    Public Sub Fill_ComboNoName(ByVal strQuery As String, ByVal ddl As DropDownList)
        Try
            Dim SqlCon As New SqlConnection(ConfigurationManager.AppSettings("ConnectionString"))  ' Declare connection Object
            Dim SqlAdapter As New SqlDataAdapter      ' Declare Dataadapter Object
            Dim SqlDataSet As New Data.DataSet        ' Declare Dataset Object
            Dim DT As New Data.DataTable              ' Declare Datatable Oblect
            Dim sqlCmd As New SqlCommand(strQuery, SqlCon) ' Declare Command Object
            Dim i As Integer

            SqlCon.Open()                                 ' Open Connection
            SqlAdapter.SelectCommand = sqlCmd             ' Set command to Adapter
            SqlAdapter.Fill(SqlDataSet, "TableName")      ' Links Adapter with DataSet
            DT = SqlDataSet.Tables("TableName")           ' Get datatable from dataset
            sqlCmd.ExecuteNonQuery()                      ' Executes Command

            ddl.Items.Clear()                             ' Clear the Items of DropDownList  
            ddl.Items.Insert(0, New ListItem("Select", "Select"))     ' Insert Blank Row at index 0  

            For i = 0 To DT.Rows.Count - 1
                ddl.Items.Insert(i + 1, New ListItem(DT.Rows(i).Item(1).ToString & "-" & DT.Rows(i).Item(2).ToString, DT.Rows(i).Item(0).ToString))  '' Add Items(code,Exact Value) into DropDownList
            Next i
            ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(""))     '' Assigning 0 th Index to DropDownList

            SqlCon.Close()                                '' Close Connection Object
            SqlCon.Dispose()                              '' Dispose Connection Oblect
            sqlCmd.Dispose()                              '' Dispose command object
            SqlAdapter.Dispose()                          '' Dispose adapter Object
            SqlDataSet.Dispose()                          '' Dispose dataset Object
            DT.Dispose()                                  '' Dispose datatable Object
        Catch ex As Exception
            CreateMessageAlert(ddl.Page, ex.Message, "StrKeyVal")     'Display the Error Message
            ddl = Nothing
        End Try
    End Sub
    
    '***************************************** Packaging Details  ************************************************
    Protected Sub btnpckdetails_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnpckdetails.Click
        Try
            'txtPackingType.Visible = False
            'ImageButton20.Visible = False
            'ddlPackingType.Visible = True
            'ImageButton16.Visible = True
            'lblResult.Visible = False
            'ddlPackingType.Focus()
            'FillComboWithOthersTextOnlyJJ("Select distinct ProdPackaging_PackingType from ProductPackaging where ProdPackaging_Isdeleted='0' order by ProdPackaging_PackingType ", ddlPackingType, "Select Packing Type")
            'MultiView2.ActiveViewIndex = 14
            'ddlPackingType.Attributes.Add("onchange", "return checkddlPackingType(this);")
            btnPackingSave.Attributes.Add("onclick", "return checkPackaging();")
            btnPackingUpdate.Attributes.Add("onclick", "return checkPackaging();")
            'rPD.Visible = False
            ClearPckDetailsFields()
            GeneratePckDetailsCode()
            getExistingPCKDetailsData()

        Catch
        End Try
    End Sub

    <Ajax.AjaxMethod()> _
    Public Function checkPacking(ByVal PackingType As String) As Boolean
        Dim PackType As String
        PackType = ReturnValue("Select ProdPackaging_PackingType from ProductPackaging where (ProdPackaging_PackingType='" & PackingType.ToString.Trim & "' or ProdPackaging_PackingType Like '%" & PackingType.ToString.Trim & "%') and ProdPackaging_IsDeleted='0'")
        If PackType.ToString.Trim = "" Then
            Return True
        Else
            Return False
        End If
    End Function

    Protected Sub btnPackingSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPackingSave.Click
        Try
            Dim strImageName As String
            If (fuPackDetails.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuPackDetails.FileName).ToLower
                'If fileType = ".pdf" Then
                strImageName = Final_FileUpload(fuPackDetails, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                'Else
                '    lblResult.Visible = True
                '    lblResult.Text = "Please select .pdf only!"
                '    fuPackDetails.Focus()
                '    Exit Sub
                'End If
            Else
                If ddlPackDetailsSameAs.SelectedValue <> "Select" Then
                    strImageName = ddlPackDetailsSameAs.SelectedValue.ToString
                Else
                    strImageName = ""
                End If

            End If

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductPackaging_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_Kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_Code", SqlDbType.NVarChar, 20)).Value = GeneratePckDetailsCode().ToString
            'If ddlPackingType.Visible = False Then
            '    cmd.Parameters.Add(New SqlParameter("@ProdPackaging_PackingType", SqlDbType.NVarChar, 25)).Value = Trim(txtPackingType.Text)
            'Else
            'cmd.Parameters.Add(New SqlParameter("@ProdPackaging_PackingType", SqlDbType.NVarChar, 25)).Value = Trim(ddlPackingType.SelectedItem.Text.ToString)
            'End If
            If rblIsFragile.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsFragile", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsFragile", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            If rblIsWood.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsWoodContain", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsWoodContain", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            If rblIsEnvironmental.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsEnvirnomentalFriendly", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsEnvirnomentalFriendly", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_ProdDetails", SqlDbType.NVarChar, 200)).Value = txtProductDetails.Text.ToString.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_ProductId", SqlDbType.NVarChar, 25)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            'If strImageName <> "" Then
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FileName", SqlDbType.NVarChar, 100)).Value = strImageName.ToString
            'Else
            '    cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FileName", SqlDbType.NVarChar, 100)).Value = hlPackDetails.Text.ToString 'strImageName.ToString
            'End If


            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FinancialYearId", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_CompanyId", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_UserId", SqlDbType.NVarChar, 20)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Product Packaging"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Insert"
            Try
                con.Open()
                cmd.ExecuteNonQuery()                                                           'Execute the Query
                con.Close()
                'lblResult.Visible = True
                'lblResult.Text = "Record Saved Successfully."
                ClearPckDetailsFields()                                                                   'Clear the TextFields
                'MultiView2.ActiveViewIndex = -1
                CreateMessageAlert(Me, "Packaging Details saved successfully.!", "strkeyval")
                displayone(tblPackagingDetails)
                getExistingPCKDetailsData()
            Catch ex As Exception
                con.Close()
            End Try
        Catch
        End Try
    End Sub

    Protected Sub btnPackingUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPackingUpdate.Click
        Try

            Dim strImageName As String
            If (fuPackDetails.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuPackDetails.FileName).ToLower
                'If fileType = ".pdf" Then
                strImageName = Final_FileUpload(fuPackDetails, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                'Else
                '    lblResult.Visible = True
                '    lblResult.Text = "Please select .pdf only!"
                '    fuPackDetails.Focus()
                '    Exit Sub
                'End If
            Else

                If ddlPackDetailsSameAs.SelectedValue <> "Select" Then
                    strImageName = ddlPackDetailsSameAs.SelectedValue.ToString
                Else
                    strImageName = ""
                End If
            End If

            Dim dt As DataTable = getTable("Select * from ProductPackaging where ProdPackaging_ProductId='" & Session.Item("ProductId").Trim & "' and ProdPackaging_IsDeleted='0' and ProdPackaging_CompanyID='" & Session("g_Company").Trim & "'", "PP")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProductPackaging_Proc"
            cmd.Connection = con
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_Kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("ProdPackaging_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_Code", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("ProdPackaging_Code").ToString
            'If ddlPackingType.Visible = False Then
            '    cmd.Parameters.Add(New SqlParameter("@ProdPackaging_PackingType", SqlDbType.NVarChar, 25)).Value = Trim(txtPackingType.Text)
            'Else
            ' cmd.Parameters.Add(New SqlParameter("@ProdPackaging_PackingType", SqlDbType.NVarChar, 25)).Value = Trim(ddlPackingType.SelectedItem.Text.ToString)
            'End If
            If rblIsFragile.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsFragile", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsFragile", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            If rblIsWood.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsWoodContain", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsWoodContain", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            If rblIsEnvironmental.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsEnvirnomentalFriendly", SqlDbType.NVarChar, 25)).Value = "Y"
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_IsEnvirnomentalFriendly", SqlDbType.NVarChar, 25)).Value = "N"
            End If
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_ProdDetails", SqlDbType.NVarChar, 200)).Value = txtProductDetails.Text.ToString.Trim
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_ProductId", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("ProdPackaging_ProductId").ToString

            If strImageName <> "" Then
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FileName", SqlDbType.NVarChar, 100)).Value = strImageName.ToString
            Else
                cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FileName", SqlDbType.NVarChar, 100)).Value = hlPackDetails.Text.ToString 'strImageName.ToString
            End If

            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_FinancialYearId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("ProdPackaging_FinancialYearId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_CompanyId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("ProdPackaging_CompanyId").ToString
            cmd.Parameters.Add(New SqlParameter("@ProdPackaging_UserId", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("ProdPackaging_UserId").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Product Packaging"
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 50)).Value = "Update"
            Try
                con.Open()
                cmd.ExecuteNonQuery()                                                           'Execute the Query
                con.Close()
                'lblResult.Visible = True
                'lblResult.Text = "Record Updated Successfully."
                CreateMessageAlert(Me, "Packaging Deatails Updated successfully.!", "strkeyval")
                ClearPckDetailsFields()
                displayone(tblPackagingDetails) 'Clear the TextFields
                'MultiView2.ActiveViewIndex = -1
                getExistingPCKDetailsData()
            Catch ex As Exception
                con.Close()
            End Try
        Catch
        End Try
    End Sub

    Private Sub ClearPckDetailsFields()
        Try
            'ddlPackingType.SelectedIndex = 0
            'txtPackingType.Text = ""
            txtProductDetails.Text = ""
            ddlPackDetailsSameAs.ClearSelection()
            hypPackDetailsSameAs.Text = ""
            hypPackDetailsSameAs.NavigateUrl = ""
            'RbnIsEvntFriendlyYes.Checked = False
            'RbnIsEvntFriendlyNo.Checked = False
            'RbnIsFragileNo.Checked = False
            'RbnIsFragileYes.Checked = False
            'RbnIsWoodContainNo.Checked = False
            'RbnIsWoodContainYes.Checked = False
        Catch
        End Try
    End Sub

    Private Sub EnablePCKDetailsControls(ByVal Action As Boolean)
        Try
            rblIsEnvironmental.Enabled = Action
            rblIsFragile.Enabled = Action
            rblIsWood.Enabled = Action

            'ddlPackingType.Enabled = Action
            'txtPackingType.Enabled = Action
            txtProductDetails.Enabled = Action
            'RbnIsEvntFriendlyNo.Enabled = Action
            'RbnIsEvntFriendlyYes.Enabled = Action
            'RbnIsFragileNo.Enabled = Action
            'RbnIsFragileYes.Enabled = Action
            'RbnIsWoodContainNo.Enabled = Action
            'RbnIsWoodContainYes.Enabled = Action
        Catch
        End Try
    End Sub

    Private Function GeneratePckDetailsCode() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "PKG" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from ProductPackaging where ProdPackaging_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProdPackaging_Code) from  ProductPackaging WHERE ProdPackaging_Code LIKE" + "'PKG" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "PKG" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch
        End Try
    End Function

    Private Sub getExistingPCKDetailsData()
        Try
            ' GetExisting()
            Dim dt As DataTable = getTable("Select ProdPackaging_Kid,ProdPackaging_Code,ProdPackaging_FileName,ProdPackaging_PackingType,ProdPackaging_Material,ProdPackaging_IsFragile,ProdPackaging_IsWoodContain,ProdPackaging_IsEnvirnomentalFriendly,ProdPackaging_ProdDetails from ProductPackaging where ProdPackaging_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and ProdPackaging_IsDeleted='0' and ProdPackaging_CompanyID='" & Session("g_Company").Trim & "'", "PP")
            If dt.Rows.Count > 0 Then
                txtProductDetails.Text = dt.Rows(0).Item("ProdPackaging_ProdDetails").ToString

                Try
                    If (dt.Rows(0).Item("ProdPackaging_IsFragile").ToString = "Y") Then
                        rblIsFragile.SelectedValue = "Yes"
                    Else
                        rblIsFragile.SelectedValue = "No"
                    End If
                Catch ex As Exception
                    rblIsFragile.SelectedValue = "Yes"
                End Try

                Try
                    If (dt.Rows(0).Item("ProdPackaging_IsWoodContain").ToString = "Y") Then
                        rblIsWood.SelectedValue = "Yes"
                    Else
                        rblIsWood.SelectedValue = "No"
                    End If
                Catch ex As Exception
                    rblIsWood.SelectedValue = "Yes"
                End Try
                Try
                    If (dt.Rows(0).Item("ProdPackaging_IsEnvirnomentalFriendly").ToString = "Y") Then
                        rblIsEnvironmental.SelectedValue = "Yes"
                    Else
                        rblIsEnvironmental.SelectedValue = "No"
                    End If
                Catch ex As Exception
                    rblIsEnvironmental.SelectedValue = "Yes"
                End Try

                If (dt.Rows(0).Item("ProdPackaging_FileName").ToString <> "") Then
                    hlPackDetails.Text = dt.Rows(0).Item("ProdPackaging_FileName").ToString.ToString
                    hlPackDetails.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("ProdPackaging_FileName").ToString.ToString
                Else
                    hlPackDetails.Text = ""
                End If

                'btnPackingSave.Enabled = False

                '' '' ''If Session("AdminID") <> Nothing Then
                EnablePCKDetailsControls(True)
                btnPackingSave.Visible = False
                btnPackingUpdate.Visible = True
                '' '' ''Else
                '' '' ''    EnablePCKDetailsControls(False)
                '' '' ''    btnPackingSave.Visible = False
                '' '' ''    btnPackingUpdate.Visible = False
                '' '' ''End If

            Else
                hlPackDetails.Text = ""
                btnPackingUpdate.Visible = False
                GeneratePckDetailsCode()
                btnPackingSave.Enabled = True
                EnablePCKDetailsControls(True)
            End If


            dt = Nothing
        Catch
        End Try
    End Sub

    '************************************* Product Installation Commissioning  ********************************************
    Protected Sub btnInsttComm_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInsttComm.Click
        Try
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 15
            rblICIsApplicable.Attributes.Add("onclick", "checkrblICIsApplicable(this);")
            rblICIsChargeable.Attributes.Add("onclick", "checkrblICIsChargeable(this);")
            txtICAmount.Attributes.Add("onkeypress", "return blockNonNumbers(this,event,false,false);")
            tricFileName.Style.Add("display", "none")
            btnSaveIC.Attributes.Add("onclick", "return CheckIC();")
            btnUpdateIC.Attributes.Add("onclick", "return CheckIC();")
            ' ''btnUpdateIC.Visible = False
            getExistingIC()
            'rInst.Visible = False

            'Dim dauploadvalue As New SqlDataAdapter("Select * from ProductInstallationCommissioning where InstallationComm_ProductId='" & Session("ProductId") & "' and InstallationComm_CompanyId='" & Session("g_Company") & "'and InstallationComm_IsDeleted='0'", conn)
            'Dim dsuploadvalue As New DataSet()
            'dauploadvalue.Fill(dsuploadvalue)
            'If (dsuploadvalue.Tables(0).Rows.Count = 0) Then
            '    'clearvalue()

            '    GenerateCodeIC()
            '    Dim ProductName1 As String = ReturnValue("select Product_Name from Product_Master where Product_Kid='" & Session("ProductId") & "'")
            '    'lblpath.Text = createheaderlabelIC(ProductName1)
            'Else

            '    rbtnproreqins.Enabled = False
            '    rbtnprocomcha.Enabled = False
            '    rbtnopemain.Enabled = False
            '    rbtnanualmaincon.Enabled = False
            '    'txtProductInsComsnCode.Text = dsuploadvalue.Tables(0).Rows(0)("InstallationComm_Code")
            '    'txtProductInsComsnKid.Text = dsuploadvalue.Tables(0).Rows(0)("InstallationComm_Kid")
            '    txtAmount.Text = dsuploadvalue.Tables(0).Rows(0)("InstallationComm_Amount")
            '    Try
            '        rbtnproreqins.SelectedIndex = rbtnproreqins.Items.IndexOf(rbtnproreqins.Items.FindByValue(dsuploadvalue.Tables(0).Rows(0)("InstallationComm_IsRequired")))
            '    Catch
            '    End Try
            '    Try
            '        rbtnprocomcha.SelectedIndex = rbtnprocomcha.Items.IndexOf(rbtnprocomcha.Items.FindByValue(dsuploadvalue.Tables(0).Rows(0)("InstallationComm_IsChargeable")))
            '    Catch
            '    End Try
            '    Try
            '        rbtnopemain.SelectedIndex = rbtnopemain.Items.IndexOf(rbtnopemain.Items.FindByValue(dsuploadvalue.Tables(0).Rows(0)("InstallationComm_IsMaintenanceTraining")))
            '    Catch
            '    End Try
            '    Try
            '        rbtnanualmaincon.SelectedIndex = rbtnanualmaincon.Items.IndexOf(rbtnanualmaincon.Items.FindByValue(dsuploadvalue.Tables(0).Rows(0)("InstallationComm_IsAMCAvailable")))
            '    Catch
            '    End Try
            '    Try
            '        If rbtnproreqins.SelectedIndex = 0 Then
            '            If (rbtnprocomcha.SelectedIndex = 0) Then
            '                rbtnprocomcha.Enabled = False
            '                txtAmount.Enabled = False
            '                Label103.Enabled = True
            '                Label100.Enabled = True
            '                'btnFinishIC.Enabled = False
            '                btnSaveIC.Enabled = False
            '                TR2.Visible = True
            '                TR3.Visible = True
            '            Else
            '                rbtnprocomcha.Enabled = False
            '                txtAmount.Enabled = False
            '                Label103.Enabled = True
            '                Label100.Enabled = False
            '                'btnFinishIC.Enabled = False
            '                btnSaveIC.Enabled = False
            '                TR2.Visible = False
            '                TR3.Visible = False
            '            End If
            '        Else
            '            TR2.Visible = False
            '            TR3.Visible = False
            '            rbtnprocomcha.Enabled = False
            '            txtAmount.Enabled = False
            '            Label103.Enabled = False
            '            Label100.Enabled = False
            '            'btnFinishIC.Enabled = False
            '            btnSaveIC.Enabled = False
            '        End If
            '    Catch
            '    End Try
            '    Dim ProductName1 As String = ReturnValue("select Product_Name from Product_Master where Product_Kid='" & Session("ProductId") & "'")
            '    'lblpath.Text = createheaderlabelIC(ProductName1)
            'End If
            'If Session("AdminID") <> Nothing Then
            '    EnableICControls(True)
            '    If dsuploadvalue.Tables(0).Rows.Count > 0 Then
            '        btnSaveIC.Visible = False
            '        'btnSkipIC.Visible = True
            '        'btnFinishIC.Visible = True
            '        btnUpdateIC.Visible = True
            '    Else
            '        btnSaveIC.Visible = True
            '        'btnSkipIC.Visible = True
            '        'btnFinishIC.Visible = True
            '        btnUpdateIC.Visible = False
            '    End If
            'Else
            '    btnUpdateIC.Visible = False
            'End If

        Catch
        End Try
    End Sub

    Public Sub getExistingIC()
        ' GetExisting()
        Dim dt As DataTable
        dt = ReturnDataTable("Select * from ProductInstallationCommissioning where InstallationComm_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and InstallationComm_CompanyId='" & Session("g_Company") & "'and InstallationComm_IsDeleted='0'")
        If dt.Rows.Count > 0 Then
            If (dt.Rows(0).Item("InstallationComm_IsRequired").ToString = "N") Then
                rblICIsApplicable.SelectedValue = "N"
                tblICApplicable.Style.Add("display", "none")
            Else
                rblICIsApplicable.SelectedValue = "Y"
                tblICApplicable.Style.Add("display", "auto")
                If (dt.Rows(0).Item("InstallationComm_IsChargeable").ToString = "N") Then
                    rblICIsChargeable.SelectedValue = "N"
                    trICIsChargeable.Style.Add("display", "none")
                Else
                    rblICIsChargeable.SelectedValue = "Y"
                    trICIsChargeable.Style.Add("display", "auto")
                    txtICAmount.Text = dt.Rows(0).Item("InstallationComm_Amount").ToString
                End If
                rblGWIsContract.SelectedValue = dt.Rows(0).Item("InstallationComm_IsAMCAvailable").ToString
                rblGWIsTraining.SelectedValue = dt.Rows(0).Item("InstallationComm_IsMaintenanceTraining").ToString

            End If

            If (dt.Rows(0).Item("InstallationComm_FileName").ToString <> "") Then
                tricFileName.Style.Add("display", "auto")
                hlIC.Text = dt.Rows(0).Item("InstallationComm_FileName").ToString
                hlIC.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("InstallationComm_FileName").ToString
            Else
                hlIC.Text = ""
                tricFileName.Style.Add("display", "none")
            End If

            '' '' ''If Session("AdminID") <> Nothing Then
            btnUpdateIC.Visible = True
            btnSaveIC.Visible = False
            EnableICControls(True)
            '' '' ''Else
            '' '' ''    EnableICControls(False)
            '' '' ''    btnUpdateIC.Visible = False
            '' '' ''    btnSaveIC.Visible = False
            '' '' ''End If


        Else
            hlIC.Text = ""
            btnUpdateIC.Visible = False
            btnSaveIC.Visible = True
        End If



    End Sub

    Public Sub EnableICControls(ByVal action As Boolean)
        Try
            rblICIsApplicable.Enabled = action
            rblICIsChargeable.Enabled = action
            rblGWIsContract.Enabled = action
            rblGWIsTraining.Enabled = action
            txtICAmount.Enabled = action
            'txtAmount.Enabled = action
            'rbtnproreqins.Enabled = action
            'rbtnprocomcha.Enabled = action
            'rbtnopemain.Enabled = action
            'rbtnanualmaincon.Enabled = action
        Catch
        End Try
    End Sub
    'Protected Sub rbtnproreqins_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtnproreqins.SelectedIndexChanged
    '    Try
    '        If rbtnproreqins.SelectedIndex = 0 Then
    '            rbtnprocomcha.Visible = True
    '            txtAmount.Visible = True
    '            Label103.Visible = True
    '            Label100.Visible = True
    '            TR2.Visible = True
    '            TR3.Visible = True
    '            rbtnprocomcha.SelectedIndex = 0
    '            txtAmount.Text = ""
    '        Else
    '            rbtnprocomcha.Visible = False
    '            txtAmount.Visible = False
    '            Label103.Visible = False
    '            Label100.Visible = False
    '            TR2.Visible = False
    '            TR3.Visible = False
    '        End If
    '    Catch
    '    End Try
    'End Sub
    'Protected Sub rbtnprocomcha_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtnprocomcha.SelectedIndexChanged
    '    Try
    '        If rbtnprocomcha.SelectedIndex = 0 Then
    '            'Label100.Visible = True
    '            'txtAmount.Visible = True
    '            TR3.Visible = True
    '            txtAmount.Text = ""
    '        Else
    '            'Label100.Visible = False
    '            'txtAmount.Visible = False
    '            TR3.Visible = False
    '        End If
    '    Catch
    '    End Try
    'End Sub
    Private Sub clearvalueIC()
        Try
            'txtProductInsComsnCode.Text = ""
            'txtProductInsComsnKid.Text = ""
            'txtAmount.Text = ""
            'rbtnproreqins.ClearSelection()
            'rbtnprocomcha.ClearSelection()
            'rbtnopemain.ClearSelection()
            'rbtnanualmaincon.ClearSelection()
        Catch
        End Try
    End Sub

    Private Sub insertdataNotChargebleIC()
        Try

            Dim strImageName As String = ""
            '----------------------------------
            'If rblUserManual.SelectedValue = "Yes" Then
            If (fuInstallationCommissioning.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuInstallationCommissioning.FileName).ToLower
                If fileType = ".pdf" Then
                    strImageName = Final_FileUpload(fuInstallationCommissioning, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                Else
                    'lblResult.Visible = True
                    'lblResult.Text = "Please select .pdf only!"
                    UserManUpload.Focus()
                    Exit Sub
                End If
            Else
                'lblResult.Visible = True
                'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
                Exit Sub
            End If

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            'GenerateExplodedDiagramCode()
            'txtAmount.Text = ""
            Dim cmd As New SqlCommand
            cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = con
            con.Open()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeIC().ToString()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnproreqins.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnprocomcha.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.NVarChar, 18)).Value = 0
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = "" ' Trim(rbtnopemain.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnanualmaincon.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FileName", SqlDbType.NVarChar, 50)).Value = strImageName.ToString
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 50)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Insert"
            cmd.ExecuteNonQuery()
            'CreateMessageAlert(Me, "Record Was Inserted Succesfully  !!!", "StrKeyVal")
            con.Close()
        Catch
        End Try
    End Sub

    Private Sub insertdataIC()
        Try
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            'GenerateExplodedDiagramCode()
            Dim cmd As New SqlCommand
            cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = con

            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeIC().ToString()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = "" ' Trim(rbtnproreqins.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnprocomcha.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.NVarChar, 18)).Value = "" ' Trim(Convert.ToInt32(txtAmount.Text))
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = "" ' Trim(rbtnopemain.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnanualmaincon.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 50)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Insert"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            'MultiView2.ActiveViewIndex = -1



        Catch
        End Try
    End Sub

    Private Sub insertdataNotAppliIC()
        Try
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            'GenerateExplodedDiagramCode()
            'rbtnprocomcha.ClearSelection()
            Dim cmd As New SqlCommand
            cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = con
            con.Open()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeIC().ToString()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnproreqins.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnprocomcha.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.Decimal, 9)).Value = 0
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnopemain.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnanualmaincon.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 50)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Insert"

            cmd.ExecuteNonQuery()
            CreateMessageAlert(Me, "Record Was Inserted Succesfully  !!!", "StrKeyVal")
            con.Close()
        Catch
        End Try
    End Sub

    Protected Function createheaderlabelIC(ByVal Prodid As String) As String
        Try
            Dim lblhead As String
            'If ddlProductList.SelectedIndex <> 0 Then
            Dim con As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))
            Dim str As String = "SELECT     Category_Master.Category_Kid, Category_Master.Category_Name FROM         Product_Information INNER JOIN                     Category_Master ON Product_Information.Product_CategoryId = Category_Master.Category_Kid WHERE     Product_Information.Product_Name = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' AND (Category_Master.Category_IsDeleted = N'0')"
            Dim ds As New DataSet
            Dim sda As New SqlDataAdapter(str, con)
            sda.Fill(ds)

            Dim parent As String = ds.Tables(0).Rows(0)(1).ToString()

            lblhead = parent & ">"
            While parent <> "Root Category"
                parent = ReturnValue("SELECT     Category_Master.Category_Name AS Expr2 FROM         Category_Master INNER JOIN                    Category_Master AS Category_Master_1 ON Category_Master.Category_Kid = Category_Master_1.Category_ParentId WHERE     (Category_Master.Category_IsDeleted = N'0') AND (Category_Master.Category_IsDeleted = N'0') AND Category_Master_1.Category_Name = '" & parent & "'")
                If parent = "" Then
                    Exit While
                End If
                lblhead = parent & ">" & lblhead
            End While
            'Else
            '    lblhead = ""
            'End If
            Return lblhead
        Catch
        End Try
    End Function

    Protected Function GenerateCodeIC() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'Product_Kid = NewPrimaryKey(Me)
            'txtProductInsComsnKid.Text = NewPrimaryKey(Me)

            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "PRD" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from ProductDrawing where ProductDrawing_Code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(ProductDrawing_Code) from  ProductDrawing WHERE ProductDrawing_Code LIKE" + "'PRD" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "PRD" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function
    'Protected Sub btnSkipIC_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSkipIC.Click
    '    'Response.Redirect("userlist.aspx")
    'End Sub
    Protected Sub btnUpdateIC_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdateIC.Click
        Try
            Try

                Dim strImageName As String = ""
                '----------------------------------
                'If rblUserManual.SelectedValue = "Yes" Then
                If (fuInstallationCommissioning.HasFile) Then
                    Dim fileType As String = Path.GetExtension(fuInstallationCommissioning.FileName).ToLower
                    'If fileType = ".pdf" Then
                    strImageName = Final_FileUpload(fuInstallationCommissioning, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                    'Else
                    '    strImageName = ""
                    '    'lblResult.Visible = True
                    '    'lblResult.Text = "Please select .pdf only!"
                    '    'UserManUpload.Focus()
                    '    'Exit Sub
                    'End If
                Else

                    If ddlInstCommSameAs.SelectedValue <> "Select" Then
                        strImageName = ddlInstCommSameAs.SelectedValue.ToString  'ReturnValue("Select InstallationComm_FileName from ProductInstallationCommissioning where InstallationComm_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
                    Else
                        strImageName = ReturnValue("Select InstallationComm_FileName from ProductInstallationCommissioning where InstallationComm_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'")
                    End If
                    'lblResult.Visible = True
                    'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
                    'Exit Sub
                End If

                Dim dt As DataTable = ReturnDataTable("Select * from ProductInstallationCommissioning where InstallationComm_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and InstallationComm_CompanyId='" & Session("g_Company") & "'and InstallationComm_IsDeleted='0'")

                Dim con As New SqlConnection
                con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
                Dim cmd As New SqlCommand
                cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Connection = con
                con.Open()
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstallationComm_Kid").ToString
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstallationComm_Code").ToString
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = rblICIsApplicable.SelectedValue.ToString '"" 'Trim(rbtnproreqins.SelectedValue)
                If rblICIsApplicable.SelectedValue = "Y" Then
                    cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = rblICIsChargeable.SelectedValue.ToString '"" 'Trim(rbtnprocomcha.SelectedValue)
                    If rblICIsChargeable.SelectedValue = "Y" Then
                        cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.NVarChar, 18)).Value = txtICAmount.Text  ' "" ' Trim(Convert.ToInt32(txtAmount.Text))
                    End If
                    'cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = rblGWIsTraining.SelectedValue.ToString  '"" ' Trim(rbtnopemain.SelectedValue)
                    'cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = rblGWIsContract.SelectedValue.ToString '"" 'Trim(rbtnanualmaincon.SelectedValue)
                Else
                End If
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
                'If strImageName <> "" Then
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_FileName", SqlDbType.NVarChar, 100)).Value = strImageName.ToString
                'Else
                'cmd.Parameters.Add(New SqlParameter("@InstallationComm_FileName", SqlDbType.NVarChar, 100)).Value = hlIC.Text.ToString
                'End If

                cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 20)).Value = Session("g_User")
                cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
                cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Update"
                cmd.ExecuteNonQuery()
                displayone(tblInstallationCommissioning)
                CreateMessageAlert(Me, "Product Installation / Commissioning Updated Successfully.!", "strkeyval")
                'lblResult.Visible = True
                'lblResult.Text = "Record Updated Successfully."
                'MultiView2.ActiveViewIndex = -1
                getExistingIC()
                clearic()
            Catch
            End Try
        Catch
        End Try
    End Sub

    Private Sub updatdata()
        Try

            Dim dt As DataTable = ReturnDataTable("Select * from ProductInstallationCommissioning where InstallationComm_ProductId='" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "' and InstallationComm_CompanyId='" & Session("g_Company") & "'and InstallationComm_IsDeleted='0'")

            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim cmd As New SqlCommand
            cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = con
            con.Open()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstallationComm_Kid").ToString
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("InstallationComm_Code").ToString
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnproreqins.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = "" ' Trim(rbtnprocomcha.SelectedValue)
            'If rbtnproreqins.SelectedIndex = 0 Then
            '    If (rbtnprocomcha.SelectedIndex = 0) Then
            '        cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.Decimal, 20)).Value = Trim(Convert.ToDecimal(txtAmount.Text))
            '    Else
            '        cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.Decimal, 20)).Value = 0.0
            '    End If
            'Else
            '    cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.Decimal, 20)).Value = 0.0
            'End If
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = "" ' Trim(rbtnopemain.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = "" 'Trim(rbtnanualmaincon.SelectedValue)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 20)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Update"
            cmd.ExecuteNonQuery()
            'lblResult.Visible = True
            'lblResult.Text = "Record Updated Successfully."
            'MultiView2.ActiveViewIndex = -1
            clearvalueIC()
        Catch
        End Try
        'btnUpdateIC.Enabled = False
    End Sub
    'Protected Sub btnFinishIC_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFinishIC.Click
    '    Try
    '        If rbtnproreqins.SelectedIndex = 0 Then
    '            If (rbtnprocomcha.SelectedIndex = 0) Then
    '                insertdataIC()
    '            Else
    '                insertdataNotChargebleIC()
    '            End If

    '        Else
    '            insertdataNotAppliIC()
    '        End If
    '    Catch
    '    End Try
    'End Sub
    Protected Sub btnSaveIC_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSaveIC.Click
        Try

            Dim strImageName As String = ""
            '----------------------------------
            'If rblUserManual.SelectedValue = "Yes" Then
            If (fuInstallationCommissioning.HasFile) Then
                Dim fileType As String = Path.GetExtension(fuInstallationCommissioning.FileName).ToLower
                'If fileType = ".pdf" Then
                strImageName = Final_FileUpload(fuInstallationCommissioning, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                'Else
                '    lblResult.Visible = True
                '    lblResult.Text = "Please select .pdf only!"
                '    UserManUpload.Focus()
                '    Exit Sub
                'End If
            Else

                If ddlInstCommSameAs.SelectedValue <> "Select" Then
                    strImageName = ddlInstCommSameAs.SelectedValue.ToString
                Else
                    strImageName = ""
                End If

                'lblResult.Visible = True
                'lblResult.Text = "Please select .pdf, .gif, .jpg file ... !!!"
                'Exit Sub
            End If


            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            'GenerateExplodedDiagramCode()
            Dim cmd As New SqlCommand
            cmd.CommandText = "ProductInstallationCommissioning_Proc"    'give a storeprocedure
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = con

            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Kid", SqlDbType.NVarChar, 10)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_Code", SqlDbType.NVarChar, 25)).Value = GenerateCodeIC().ToString()
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsRequired", SqlDbType.NVarChar, 1)).Value = rblICIsApplicable.SelectedValue.ToString ' "" ' Trim(rbtnproreqins.SelectedValue)

            If rblICIsApplicable.SelectedValue = "Y" Then
                cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsChargeable", SqlDbType.NVarChar, 1)).Value = rblICIsChargeable.SelectedValue.ToString '"" 'Trim(rbtnprocomcha.SelectedValue)
                If rblICIsChargeable.SelectedValue = "Y" Then
                    cmd.Parameters.Add(New SqlParameter("@InstallationComm_Amount", SqlDbType.NVarChar, 18)).Value = txtICAmount.Text  ' "" ' Trim(Convert.ToInt32(txtAmount.Text))
                End If
                'cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsMaintenanceTraining", SqlDbType.NVarChar, 1)).Value = rblGWIsTraining.SelectedValue.ToString  '"" ' Trim(rbtnopemain.SelectedValue)
                'cmd.Parameters.Add(New SqlParameter("@InstallationComm_IsAMCAvailable", SqlDbType.NVarChar, 1)).Value = rblGWIsContract.SelectedValue.ToString '"" 'Trim(rbtnanualmaincon.SelectedValue)
            Else

            End If
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_ProductId", SqlDbType.NVarChar, 10)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            'If strImageName <> "" Then
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FileName", SqlDbType.NVarChar, 100)).Value = strImageName.ToString
            'Else
            '    cmd.Parameters.Add(New SqlParameter("@InstallationComm_FileName", SqlDbType.NVarChar, 100)).Value = hlIC.Text.ToString
            'End If
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_FinancialYearId", SqlDbType.NVarChar, 50)).Value = Session("g_FinYear")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_CompanyId", SqlDbType.NVarChar, 10)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@InstallationComm_UserId", SqlDbType.NVarChar, 10)).Value = Session("g_User")
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = Me.Title.ToString
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.NVarChar, 20)).Value = "Insert"
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()

            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            'MultiView2.ActiveViewIndex = -1
            displayone(tblInstallationCommissioning)
            EnableICControls(False)
            getExistingIC()
            clearic()
            CreateMessageAlert(Me, "Installation / Commissioning saved Successfully.!", "strkeyval")

        Catch
        End Try
    End Sub

    Public Sub clearic()
        ddlInstCommSameAs.ClearSelection()
        hypInstCommSameAs.Text = ""
        hypInstCommSameAs.NavigateUrl = ""
    End Sub

    '********************************************* Consumables  **************************************************
    Protected Sub btnconsumable_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnconsumable.Click
        Try
            gvConsumables.DataSource = Nothing
            gvConsumables.DataBind()
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 5
            txtc_cname.Focus()
            FillComboWithSelectJJ("SELECT DISTINCT Unit_Kid, Unit_Name, Unit_Flag FROM Unit_Master WHERE Unit_Flag In ('Qty','Tech') AND Unit_IsDeleted = N'0' AND Unit_CompanyId = '" & Session("g_Company") & "' ", ddlcunit, "Select Unit")
            'ddlcunit.Attributes.Add("onchange", "return checkConsumablesddl(this,'Qty','" & Session("g_Company").ToString & "','" & Session("g_User") & "','" & Session("g_FinYear") & "');")
            ' txtc_cquantity.Attributes.Add("onkeypress", "return blockNonNumbers(this,event,false,false);")
            btnConsumableAddMore.Attributes.Add("onclick", "return CheckConsumables();")
            btnConsumableUpdate.Attributes.Add("onclick", "return CheckConsumables();")
            btnConsumableDelete.Attributes.Add("onclick", "return confirm('Are you sure want to delete.?')")
            getConsumablesExistingData()
            btnvisibleConsumables()
            'Tr33.Visible = False
            'txtcUnit.Visible = False
            'btncUnitAdd.Visible = False
        Catch
        End Try
    End Sub

    Public Sub btnvisibleConsumables()
        btnConsumableAddMore.Visible = True
        btnConsumableUpdate.Visible = False
        btnConsumableDelete.Visible = False
        btnConsumableCancel.Visible = False
    End Sub

    <Ajax.AjaxMethod()> _
 Public Function InsertUnit(ByVal strUnitName As String, ByVal strFlag As String, ByVal strCompanyID As String, ByVal strUserID As String, ByVal strFinancialYearID As String) As String
        Dim KID As String
        KID = NewPrimaryKey(Me)

        'Dim strMatch As String
        'strMatch = ReturnValue("SELECT     TechSpec_Kid FROM ProductTechnicalSpecification_Master WHERE     TechSpec_CategoryId = '" & strCategoryID.Trim & "' AND TechSpec_IsDeleted = '0' AND (soundex(TechSpec_parameter) = soundex('" & strParameter.Trim & "'))")
        'If strMatch <> "" Then
        '    Return "false"
        'End If
        If IsAlreadyPresent("Select count(*) from Unit_Master where Unit_Name='" & strUnitName.Trim & "' and Unit_Flag ='" & strFlag.ToString & "'") Then
            Return "false"
        End If

        Dim con As New SqlConnection()
        con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")        'Read the connection string from web.config
        Dim cmd As New SqlCommand()
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "Unit_Master_Proc"
        cmd.Connection = con
        cmd.Parameters.Add(New SqlParameter("@Unit_Kid", SqlDbType.NVarChar, 10)).Value = KID
        cmd.Parameters.Add(New SqlParameter("@Unit_Code", SqlDbType.NVarChar, 25)).Value = Generate_Code("Select count(*) from Unit_Master where Unit_Code='", "UC").ToString()
        cmd.Parameters.Add(New SqlParameter("@Unit_Name", SqlDbType.NVarChar, 200)).Value = strUnitName.ToString
        cmd.Parameters.Add(New SqlParameter("@Unit_Flag", SqlDbType.NVarChar, 10)).Value = strFlag
        cmd.Parameters.Add(New SqlParameter("@Unit_CompanyId", SqlDbType.NVarChar, 10)).Value = strCompanyID.ToString  'Session("g_Company") 'Trim(strCompanyID)
        cmd.Parameters.Add(New SqlParameter("@Unit_UserId", SqlDbType.NVarChar, 10)).Value = strUserID.ToString  'Session("g_User") 'Trim(strUserID)
        cmd.Parameters.Add(New SqlParameter("@Unit_FinancialYearId", SqlDbType.NVarChar, 10)).Value = strFinancialYearID.Trim
        cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Unit Master"
        cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"
        Try
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            Return KID
        Catch ex As Exception
            con.Close()
            Return "false"
        End Try
        Return True


    End Function

    Protected Sub btnConsumableAddMore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsumableAddMore.Click
        Try




            'If Trim(txtc_code.Text) = "" Then                               'If txtOprMantManual_Code TextField is Null then
            '    CreateMessageAlert(Me, "Consumables Code Cannot be Null!", "StrKeyVal")      'Display the Message 
            '    Exit Sub
            'End If
            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "Consumables_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection

            'cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
            'cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = GenerateConsumableCode().ToString
            'cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID"))) 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it

            If ddlConsumableSameAs.SelectedIndex > 0 Then
                Dim dt As DataTable
                dt = ReturnDataTable("SELECT Consumables.c_cname, Consumables.c_cquantity FROM Consumables INNER JOIN Product_Master ON Consumables.c_productid = Product_Master.Product_Kid  WHERE (Consumables.c_productid = '" & RemoveLiterals(ddlConsumableSameAs.SelectedValue.ToString) & "') AND (Consumables.c_IsDeleted = '0')")
                Dim i As Integer
                For i = 0 To dt.Rows.Count - 1
                    cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
                    cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = GenerateConsumableCode().ToString
                    cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID"))) 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it
                    cmd.Parameters.Add(New SqlParameter("@c_cname", SqlDbType.NVarChar, 150)).Value = dt.Rows(i).Item("c_cname").ToString 'txtc_cname.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                    cmd.Parameters.Add(New SqlParameter("@c_cquantity", SqlDbType.NVarChar, 100)).Value = dt.Rows(i).Item("c_cquantity").ToString 'txtc_cquantity.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                    'cmd.Parameters.Add(New SqlParameter("@c_cunit", SqlDbType.NVarChar, 20)).Value = ddlcunit.SelectedItem.Value.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                    cmd.Parameters.Add(New SqlParameter("@c_companyid", SqlDbType.NVarChar, 20)).Value = Session("g_Company")       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
                    cmd.Parameters.Add(New SqlParameter("@c_userid", SqlDbType.NVarChar, 20)).Value = Session("g_User")             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
                    cmd.Parameters.Add(New SqlParameter("@c_financialyearid", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
                    cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Consumables"                           'Add Parameter FormName and assign the name of form to it
                    cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                    con.Open()                                                                       'Open the Connection
                    cmd.ExecuteNonQuery()                                                           'Execute the Query
                    con.Close()
                    cmd.Parameters.Clear()
                Next


            Else

                cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
                cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = GenerateConsumableCode().ToString
                cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID"))) 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it
                cmd.Parameters.Add(New SqlParameter("@c_cname", SqlDbType.NVarChar, 150)).Value = txtc_cname.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                cmd.Parameters.Add(New SqlParameter("@c_cquantity", SqlDbType.NVarChar, 100)).Value = txtc_cquantity.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                'cmd.Parameters.Add(New SqlParameter("@c_cunit", SqlDbType.NVarChar, 20)).Value = ddlcunit.SelectedItem.Value.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
                cmd.Parameters.Add(New SqlParameter("@c_companyid", SqlDbType.NVarChar, 20)).Value = Session("g_Company")       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
                cmd.Parameters.Add(New SqlParameter("@c_userid", SqlDbType.NVarChar, 20)).Value = Session("g_User")             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
                cmd.Parameters.Add(New SqlParameter("@c_financialyearid", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
                cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Consumables"                           'Add Parameter FormName and assign the name of form to it
                cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                con.Open()                                                                       'Open the Connection
                cmd.ExecuteNonQuery()                                                           'Execute the Query
                con.Close()
            End If

            
            displayone(tblConsumables)
            CreateMessageAlert(Me, "Consumables Saved Successfully.!", "strkeyval")
            getConsumablesExistingData()                                                               'Fill the Grid
            ClearConsumableFields()
            'Call GenerateConsumableCode()

        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try
    End Sub

    Protected Sub gvConsumables_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvConsumables.SelectedIndexChanged
        Try
            txtc_cname.Enabled = True
            txtc_cquantity.Enabled = True
            ddlcunit.Enabled = True

            Dim Kid As String = gvConsumables.DataKeys(gvConsumables.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM Consumables where c_kid = '" & Kid & "' ", "Con")

            txtc_cname.Text = dt.Rows(0).Item("c_cname").ToString
            txtc_cquantity.Text = dt.Rows(0).Item("c_cquantity").ToString
            'ddlcunit.ClearSelection()
            ''Dim ddlVal As String = dt.Rows(0).Item("c_cunit").ToString
            'ddlcunit.Items.FindByValue(dt.Rows(0).Item("c_cunit").ToString).Selected = True
            btnConsumableAddMore.Visible = False
            btnConsumableCancel.Visible = True
            btnConsumableDelete.Visible = True
            btnConsumableUpdate.Visible = True
            displayone(tblConsumables)
        Catch
        End Try
    End Sub

    Protected Sub ClearConsumableFields()
        Try
            'txtc_code.Text = ""                  'Assign Null to the TextField
            txtc_cname.Text = ""
            txtc_cquantity.Text = ""
            ddlcunit.ClearSelection()
            ddlConsumableSameAs.ClearSelection()
            trgvConsumableSameAs.Visible = False
            TrConsumableName.Visible = True
            TrConsumableQuantity.Visible = True
        Catch
        End Try
    End Sub

    Protected Sub EnableControlsCON(ByVal Action As Boolean)
        Try
            txtc_cname.Enabled = Action
            txtc_cquantity.Enabled = Action
            ddlcunit.Enabled = Action
        Catch
        End Try
    End Sub

    Protected Function GenerateConsumableCode() As String
        Try
            'Dim i As String
            'Dim qry As String
            Dim code As String
            'txtc_kid.Text = NewPrimaryKey(Me)
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "CON" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from Consumables where c_code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(c_code) from  Consumables WHERE c_code LIKE" + "'CON" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "CON" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function

    Private Sub getConsumablesExistingData()
        Try
            ' GetExisting()
            Dim dt As DataTable = getTable("SELECT Consumables.c_kid, Consumables.c_code, Consumables.c_cname, Consumables.c_cquantity, Consumables.c_cunit FROM Consumables INNER JOIN Product_Master ON Consumables.c_productid = Product_Master.Product_Kid WHERE (Consumables.c_productid = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (Consumables.c_companyid = '" & Session("g_Company").Trim & "') AND (Consumables.c_IsDeleted = '0')", "Con")
            If dt.Rows.Count > 0 Then
                FillGridConsumables("")
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    gvConsumables.Columns(0).Visible = False
                '' '' ''End If
                'btnConsumableAddMore.Enabled = True
                'btnConsumableCancel.Enabled = False
                'btnConsumableDelete.Visible = False
                'EnableControlsCON(False)

            Else
                gvConsumables.DataSource = Nothing
                gvConsumables.DataBind()
                'GenerateConsumableCode()
                'btnConsumableAddMore.Enabled = True
                'btnConsumableCancel.Enabled = True
                'btnConsumableDelete.Visible = False
                'EnableControlsCON(True)
            End If

            'If Session("AdminID") <> Nothing Then
            '    EnableControlsCON(True)
            '    If dt.Rows.Count > 0 Then
            '        btnConsumableDelete.Visible = True
            '        btnConsumableDelete.Enabled = True
            '        btnConsumableAddMore.Visible = True
            '        btnConsumableAddMore.Enabled = True
            '        btnConsumableCancel.Visible = True
            '        btnConsumableCancel.Enabled = False
            '        btnConsumableUpdate.Visible = True
            '        btnConsumableUpdate.Enabled = True
            '    Else
            '        btnConsumableDelete.Visible = True
            '        btnConsumableDelete.Enabled = False
            '        btnConsumableAddMore.Visible = True
            '        btnConsumableAddMore.Enabled = True
            '        btnConsumableCancel.Visible = True
            '        btnConsumableCancel.Enabled = True
            '        btnConsumableUpdate.Visible = True
            '        btnConsumableUpdate.Enabled = False
            '    End If
            'Else
            '    btnConsumableUpdate.Visible = False
            'End If
            dt.Clear()
        Catch
        End Try
    End Sub

    Protected Sub FillGridConsumables(ByVal PTN As String)
        Try
            'gvConsumables.Visible = True
            gvConsumables.Columns(1).Visible = True
            gvConsumables.DataSource = getTable("SELECT Consumables.c_kid, Consumables.c_code, Consumables.c_cname, Consumables.c_cquantity FROM Consumables INNER JOIN Product_Master ON Consumables.c_productid = Product_Master.Product_Kid  WHERE (Consumables.c_productid = '" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "') AND (Consumables.c_companyid = '" & Session("g_Company").Trim & "') AND (Consumables.c_IsDeleted = '0')", "Con")
            gvConsumables.DataBind()                               'Bind the Data to the Grid
            gvConsumables.Columns(1).Visible = False
            gvConsumables.Dispose()
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Sub

    Protected Sub FillGridConsumablesSameAs(ByVal PTN As String)
        Try
            'gvConsumables.Visible = True
            'gvConsumableSameAs.Columns(1).Visible = True
            gvConsumableSameAs.DataSource = getTable("SELECT Consumables.c_kid, Consumables.c_code, Consumables.c_cname, Consumables.c_cquantity FROM Consumables INNER JOIN Product_Master ON Consumables.c_productid = Product_Master.Product_Kid  WHERE (Consumables.c_productid = '" & RemoveLiterals(PTN) & "') AND (Consumables.c_companyid = '" & Session("g_Company").Trim & "') AND (Consumables.c_IsDeleted = '0')", "Con")
            gvConsumableSameAs.DataBind()                               'Bind the Data to the Grid
            'gvConsumableSameAs.Columns(1).Visible = False
            gvConsumableSameAs.Dispose()
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Sub

    Protected Sub btnConsumableSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsumableCancel.Click
        Try

            btnvisibleConsumables()
            gvConsumables.SelectedIndex = -1
            ClearConsumableFields()
            ''If Trim(txtc_code.Text) = "" Then                               'If txtOprMantManual_Code TextField is Null then
            ''    CreateMessageAlert(Me, "Consumables Code Cannot be Null!", "StrKeyVal")      'Display the Message 
            ''    Exit Sub
            ''End If

            'Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            'con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            'Dim cmd As New SqlCommand
            ''Define command variable to execute the query
            'cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            'cmd.CommandText = "Consumables_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            'cmd.Connection = con                                                            'Assign the connection

            'cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = Trim(NewPrimaryKey(Me))
            'cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = GenerateConsumableCode().ToString
            'cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = Session("ProductId") 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it
            'cmd.Parameters.Add(New SqlParameter("@c_cname", SqlDbType.NVarChar, 150)).Value = Trim(txtc_cname.Text)       'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            'cmd.Parameters.Add(New SqlParameter("@c_cquantity", SqlDbType.NVarChar, 25)).Value = Trim(txtc_cquantity.Text)       'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            'cmd.Parameters.Add(New SqlParameter("@c_cunit", SqlDbType.NVarChar, 20)).Value = Trim(ddlcunit.SelectedItem.Value.ToString)       'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it

            'cmd.Parameters.Add(New SqlParameter("@c_companyid", SqlDbType.NVarChar, 20)).Value = Trim(Session("g_Company"))       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            'cmd.Parameters.Add(New SqlParameter("@c_userid", SqlDbType.NVarChar, 20)).Value = Trim(Session("g_User"))             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            'cmd.Parameters.Add(New SqlParameter("@c_financialyearid", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")
            'cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Consumables"                           'Add Parameter FormName and assign the name of form to it
            'cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)

            'con.Open()                                                                       'Open the Connection
            'cmd.ExecuteNonQuery()                                                           'Execute the Query
            'con.Close()
            'ClearConsumableFields()
            'GenerateConsumableCode()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            'MultiView2.ActiveViewIndex = -1
            displayone(tblConsumables)
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try
    End Sub

    Protected Sub btnConsumableDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Try

            Dim Kid As String = gvConsumables.DataKeys(gvConsumables.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM Consumables where c_kid = '" & Kid & "' and c_IsDeleted = '0'", "Con")


            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            Dim cmd As New SqlCommand
            'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "Consumables_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection

            cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_kid").ToString
            cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("c_code").ToString
            cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_productid").ToString 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it
            cmd.Parameters.Add(New SqlParameter("@c_cname", SqlDbType.NVarChar, 150)).Value = txtc_cname.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            cmd.Parameters.Add(New SqlParameter("@c_cquantity", SqlDbType.NVarChar, 100)).Value = txtc_cquantity.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            ' cmd.Parameters.Add(New SqlParameter("@c_cunit", SqlDbType.NVarChar, 20)).Value = ddlcunit.SelectedItem.Value.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it

            cmd.Parameters.Add(New SqlParameter("@c_companyid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_companyid").ToString       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            cmd.Parameters.Add(New SqlParameter("@c_userid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_userid").ToString             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            cmd.Parameters.Add(New SqlParameter("@c_financialyearid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_financialyearid").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Consumables"                           'Add Parameter FormName and assign the name of form to it
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Delete"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)

            con.Open()                                                                       'Open the Connection
            cmd.ExecuteNonQuery()                                                           'Execute the Query
            con.Close()
            dt.Clear()
            getConsumablesExistingData()
            ClearConsumableFields()
            displayone(tblConsumables)
            CreateMessageAlert(Me, "Consumables deleted successfully.!", "strkeyval")
            gvConsumables.SelectedIndex = -1
            btnvisibleConsumables()
            'GenerateConsumableCode()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            'MultiView2.ActiveViewIndex = -1
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try
    End Sub

    Protected Sub btnConsumableUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsumableUpdate.Click
        Try

            If Val(txtc_cquantity.Text) <= 0 Then
                'lblResult.Visible = True
                'lblResult.Text = "Quantity must be greater than zero"
                Exit Sub
            Else
                'lblResult.Visible = False
            End If

            Dim Kid As String = gvConsumables.DataKeys(gvConsumables.SelectedIndex).Value.ToString
            Dim dt As DataTable = getTable("SELECT * FROM Consumables where c_kid = '" & Kid & "' and c_IsDeleted = '0' ", "Con")


            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            Dim cmd As New SqlCommand
            'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "Consumables_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection

            cmd.Parameters.Add(New SqlParameter("@c_kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_kid").ToString
            cmd.Parameters.Add(New SqlParameter("@c_code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("c_code").ToString
            cmd.Parameters.Add(New SqlParameter("@c_productid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_productid").ToString 'Trim(ddlProdSpecInstr_ProductId.SelectedItem.Value)       'Add Parameter Bank_Name and assign the value of txtBankName TextField to it
            cmd.Parameters.Add(New SqlParameter("@c_cname", SqlDbType.NVarChar, 150)).Value = txtc_cname.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            cmd.Parameters.Add(New SqlParameter("@c_cquantity", SqlDbType.NVarChar, 100)).Value = txtc_cquantity.Text.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it
            'cmd.Parameters.Add(New SqlParameter("@c_cunit", SqlDbType.NVarChar, 20)).Value = ddlcunit.SelectedItem.Value.ToString.Trim        'Add Parameter OprMantManual_Code and assign the value of txtOprMantManual_Code TextField to it

            cmd.Parameters.Add(New SqlParameter("@c_companyid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_companyid").ToString       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            cmd.Parameters.Add(New SqlParameter("@c_userid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_userid").ToString             'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            cmd.Parameters.Add(New SqlParameter("@c_financialyearid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("c_financialyearid").ToString
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50)).Value = "Consumables"                           'Add Parameter FormName and assign the name of form to it
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)

            con.Open()                                                                       'Open the Connection
            cmd.ExecuteNonQuery()                                                           'Execute the Query
            con.Close()
            dt.Clear()
            getConsumablesExistingData()
            ClearConsumableFields()
            displayone(tblConsumables)
            CreateMessageAlert(Me, "Consumables updated successfully.!", "strkeyval")
            gvConsumables.SelectedIndex = -1
            btnvisibleConsumables()
            'GenerateConsumableCode()
            'lblResult.Visible = True
            'lblResult.Text = "Record Saved Successfully."
            'MultiView2.ActiveViewIndex = -1
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try
    End Sub

    Protected Sub ddlConsumableSameAs_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlConsumableSameAs.SelectedIndexChanged
        displayone(tblConsumables)
        If ddlConsumableSameAs.SelectedIndex > 0 Then
            FillGridConsumablesSameAs(ddlConsumableSameAs.SelectedValue.ToString)
            trgvConsumableSameAs.Visible = True
            TrConsumableName.Visible = False
            TrConsumableQuantity.Visible = False
        Else
            trgvConsumableSameAs.Visible = False
            TrConsumableName.Visible = True
            TrConsumableQuantity.Visible = True
        End If
    End Sub

    '******************************************** Catalogue  ******************************************************
    Protected Sub btncatalogue_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btncatalogue.Click
        Try
            'lblResult.Visible = False
            'MultiView2.ActiveViewIndex = 10
            'Tr45.Visible = False
            'TrfuProductCateloge.Style.Add("display", "none")
            'rblProductCataloge.Attributes.Add("onclick", "return rblProductCatalogeClick(this);")
            btnCatalogSubmit.Attributes.Add("onclick", "return checkCataloge();")
            btnCatalogUpdate.Attributes.Add("onclick", "return checkCataloge();")
            'rblProductCataloge.ClearSelection()
            'rblProductCataloge.Focus()
            getCatalogExistingData()
        Catch
        End Try
    End Sub

    Private Sub getCatalogExistingData()
        Try
            ' GetExisting()
            ' Dim strsss As String = Session("ProductId")
            str = "SELECT Catalog_kid, Catalog_code, Catalog_pcatalog, Catalog_upload, Catalog_Adminupload FROM Catalog where Catalog_productid = " & "'" & RemoveLiterals(Convert.ToString(Session("ProductID"))) & "'" & " and Catalog_companyid =" & "'" & Session("g_Company").Trim & "'" & " and Catalog_IsDeleted = '0'"
            Dim dt As DataTable
            dt = getTable(str, "CAT")
            If dt.Rows.Count > 0 Then
                'txtCatalog_Code.Text = dt.Rows(0).Item("Catalog_Code").ToString
                If dt.Rows(0).Item("Catalog_pcatalog").ToString = "Y" Then

                    '' '' ''If Session("AdminID") <> Nothing Then
                    TrfuProductCateloge.Style.Add("display", "auto")
                    '' '' ''End If
                    'rblProductCataloge.SelectedValue = "Yes"
                    TrProductCatalogeFileName.Style.Add("display", "auto")
                    'rblProductMSDS.SelectedValue = "Yes"
                    'lblMSDS_UploadedDataSheetName.Visible = True
                    lblCatalogPath.Text = dt.Rows(0).Item("Catalog_upload").ToString
                    lblCatalogPath.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("Catalog_upload").ToString
                    'FileUploadM

                    'rblProductCataloge.Items.FindByText("Yes").Selected = True
                    'lblCatalogPath.Text = dt.Rows(0).Item("Catalog_upload").ToString
                    'lblCatalogPath.Visible = True
                    'FileUploadCatalog.Visible = False
                    'lblCatalogPath.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & dt.Rows(0).Item("Catalog_upload").ToString
                    ''Dim strpath As String = "~/SupplierImage/Installation_manual/" & lblpath.Text
                    'Label2.Visible = True
                    'lblCatalogFile.Visible = False
                    'rblProductCataloge.Enabled = False

                Else

                    'rblProductCataloge.SelectedValue = "No"
                    TrProductCatalogeFileName.Style.Add("display", "none")

                    'rblProductCataloge.Items.FindByText("No").Selected = True
                    'lblCatalogFile.Visible = False
                    'FileUploadCatalog.Visible = False
                    'lblCatalogPath.Visible = False
                    'rblProductCataloge.Enabled = False

                End If
                '' '' ''If Session("AdminID") = Nothing Then
                '' '' ''    btnCatalogSubmit.Visible = False
                '' '' ''    btnCatalogUpdate.Visible = False
                '' '' ''    EnableControlsCAT(False)
                '' '' ''Else
                btnCatalogSubmit.Visible = False
                btnCatalogUpdate.Visible = True
                EnableControlsCAT(True)
                '' '' ''End If
            Else

                TrProductCatalogeFileName.Style.Add("display", "none")
                btnCatalogSubmit.Visible = True
                btnCatalogUpdate.Visible = False
                EnableControlsCAT(True)

                'Call GenerateCatalogCode()
                'AdminFileUploadCatalog.Visible = True
                'Label104.Visible = True
                'lblAdminCatalogPath.Visible = False
                'CheckFlag = False
                'btnCatalogSubmit.Enabled = True
                'lblCatalogPath.Visible = False
            End If
            'If Session("AdminID") <> Nothing Then
            '    EnableControlsCAT(True)
            '    FileUploadCatalog.Visible = True
            '    If dt.Rows.Count > 0 Then

            '        If dt.Rows(0).Item("Catalog_Adminupload").ToString.Trim.Length > 0 Then
            '            'AdminFileUploadCatalog.Visible = True
            '            'Label104.Visible = True
            '            'lblAdminCatalogPath.Visible = True
            '        Else
            '            'AdminFileUploadCatalog.Visible = True
            '            'Label104.Visible = True
            '            'lblAdminCatalogPath.Visible = False
            '        End If

            '        btnCatalogSubmit.Visible = False
            '        btnCatalogUpdate.Visible = True
            '    Else
            '        btnCatalogSubmit.Visible = True
            '        btnCatalogUpdate.Visible = False
            '    End If

            'Else
            '    'AdminFileUploadCatalog.Visible = False
            '    'Label104.Visible = False
            '    'lblAdminCatalogPath.Visible = False
            '    btnCatalogUpdate.Visible = False
            'End If
            dt = Nothing
        Catch
        End Try
    End Sub

    Protected Sub btnCatalogUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCatalogUpdate.Click
        Try
            str = "SELECT * FROM Catalog where Catalog_productid =  '" & Session.Item("ProductId") & "'  and Catalog_IsDeleted = '0'"
            Dim dt As DataTable
            dt = getTable(str, "CAT")

            Try
                Dim strImageName As String = ""
                'If Trim(txtCatalog_Code.Text) = "" Then                               'If txtMSDS_Code TextField is Null then
                '    CreateMessageAlert(Me, "Catalog Code Cannot be Null!", "StrKeyVal")      'Display the Message 
                '    Exit Sub
                'End If

                '----------------------------------
                'If rblProductCataloge.SelectedValue = "Yes" Then
                If (FileUploadCatalog.HasFile) Then
                    Dim fileType As String = Path.GetExtension(FileUploadCatalog.FileName).ToLower
                    If fileType.ToLower = ".gif" Or fileType = ".jpg" Or fileType = ".docx" Or fileType = ".doc" Or fileType = ".bmp" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                        strImageName = Final_FileUpload(FileUploadCatalog, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\\"))
                    Else
                        'lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
                        strImageName = dt.Rows(0).Item("Catalog_upload").ToString
                    End If
                Else
                    strImageName = ddlProductCatelogeSameAs.SelectedValue.ToString 'dt.Rows(0).Item("Catalog_upload").ToString
                End If
                'ElseIf rblProductCataloge.SelectedValue = "No" Then
                'strImageName = ""
                ''Session("UploadFile") = str
                'Else
                'lblCatError.Visible = True
                'lblCatError.Text = "Please Select Yes Or No..!!"
                'Exit Sub
                'End If

                Dim AdminstrImageName As String = ""
                'If (AdminFileUploadCatalog.HasFile) Then
                '    Dim fileType As String = Path.GetExtension(AdminFileUploadCatalog.FileName).ToLower
                '    If fileType.ToLower = ".gif" Or fileType = ".jpg" Or fileType = ".docx" Or fileType = ".doc" Or fileType = ".bmp" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                '        AdminstrImageName = Final_FileUpload(AdminFileUploadCatalog, Img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                '    Else
                '        lblResult.Visible = True
                '        lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
                '        AdminFileUploadCatalog.Focus()
                '        Exit Sub
                '        'AdminstrImageName = dt.Rows(0).Item("Catalog_Adminupload").ToString
                '    End If
                'ElseIf lblAdminCatalogPath.Text.Trim.Length > 0 Then
                '    AdminstrImageName = dt.Rows(0).Item("Catalog_Adminupload").ToString
                'End If

                Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
                con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File

                Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
                cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
                cmd.CommandText = "Catalog_Proc"                                        'Assign the Name of Stored Procedure, to Execute
                cmd.Connection = con                                                            'Assign the connection

                cmd.Parameters.Add(New SqlParameter("@Catalog_kid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("Catalog_kid").ToString
                cmd.Parameters.Add(New SqlParameter("@Catalog_code", SqlDbType.NVarChar, 25)).Value = dt.Rows(0).Item("Catalog_code").ToString
                'If rblProductCataloge.SelectedValue = "Yes" Then
                cmd.Parameters.Add(New SqlParameter("@Catalog_pcatalog", SqlDbType.NVarChar, 1)).Value = "Y"
                'Else
                'cmd.Parameters.Add(New SqlParameter("@Catalog_pcatalog", SqlDbType.NVarChar, 1)).Value = "N"
                'End If

                cmd.Parameters.Add(New SqlParameter("@Catalog_upload", SqlDbType.NVarChar, 100)).Value = strImageName 'Session("UploadFile")
                cmd.Parameters.Add(New SqlParameter("@Catalog_Adminupload", SqlDbType.NVarChar, 100)).Value = AdminstrImageName 'Session("UploadFile")
                cmd.Parameters.Add(New SqlParameter("@Catalog_productid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("Catalog_productid").ToString
                cmd.Parameters.Add(New SqlParameter("@Catalog_companyid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("Catalog_companyid").ToString
                cmd.Parameters.Add(New SqlParameter("@Catalog_userid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("Catalog_userid").ToString       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
                cmd.Parameters.Add(New SqlParameter("@Catalog_financialyearid", SqlDbType.NVarChar, 20)).Value = dt.Rows(0).Item("Catalog_financialyearid").ToString            'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
                cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Catalog"                           'Add Parameter FormName and assign the name of form to it
                cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
                con.Open()
                cmd.ExecuteNonQuery()                                                           'Execute the Query
                con.Close()
                GenerateCatalogCode()
                displayone(tblCataloge)
                CreateMessageAlert(Me, "Product Cataloge updated successfully.!", "strkeyval")
                getCatalogExistingData()
                ClearCatalogFields()
                'lblResult.Visible = True
                'lblResult.Text = "Record Updated Successfully."
                'MultiView2.ActiveViewIndex = -1
            Catch ex As Exception
                'CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
            End Try
        Catch
        End Try

    End Sub

    Protected Sub btnCatalogSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCatalogSubmit.Click
        'Save Item in Catalog
        '
        Try
            Dim strImageName As String = ""
            Try
                If (FileUploadCatalog.HasFile) Then
                    Dim fileType As String = Path.GetExtension(FileUploadCatalog.FileName).ToLower
                    If fileType.ToLower = ".gif" Or fileType = ".jpg" Or fileType = ".docx" Or fileType = ".doc" Or fileType = ".bmp" Or fileType = ".jpeg" Or fileType = ".pdf" Then
                        strImageName = Final_FileUpload(FileUploadCatalog, img, Server.MapPath("~\Upload Image\Product Image\UploadImages\"))
                        If strImageName = "" Then
                            CreateMessageAlert(Me, "File Does not Saved, Please Try Again!!", "strkeyval")
                            Exit Sub
                        End If
                    Else
                        'lblResult.Visible = True
                        'lblResult.Text = "Please select .pdf, .gif, .jpg file only!"
                        FileUploadCatalog.Focus()
                        Exit Sub
                    End If
                Else
                    strImageName = ddlProductCatelogeSameAs.SelectedValue.ToString
                End If
            Catch ex As Exception
                CreateMessageAlert(Me, "File Does not Saved, Please Try Again!!", "strkeyval")
                Exit Sub
            End Try
            
            Dim AdminStrImageName As String = ""
            Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            Dim cmd As New SqlCommand                                                       'Define command variable to execute the query
            cmd.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
            cmd.CommandText = "Catalog_Proc"                                        'Assign the Name of Stored Procedure, to Execute
            cmd.Connection = con                                                            'Assign the connection
            cmd.Parameters.Add(New SqlParameter("@Catalog_kid", SqlDbType.NVarChar, 20)).Value = NewPrimaryKey(Me)
            cmd.Parameters.Add(New SqlParameter("@Catalog_code", SqlDbType.NVarChar, 25)).Value = GenerateCatalogCode().ToString        'Add Parameter MSDS_Code and assign the value of txtMSDS_Code TextField to it
            'If rblProductCataloge.SelectedValue = "Yes" Then
            cmd.Parameters.Add(New SqlParameter("@Catalog_pcatalog", SqlDbType.NVarChar, 1)).Value = "Y"
            cmd.Parameters.Add(New SqlParameter("@Catalog_upload", SqlDbType.NVarChar, 100)).Value = strImageName 'Session("UploadFile")
            cmd.Parameters.Add(New SqlParameter("@Catalog_Adminupload", SqlDbType.NVarChar, 100)).Value = AdminStrImageName 'Session("UploadFile")
            cmd.Parameters.Add(New SqlParameter("@Catalog_productid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(Convert.ToString(Session("ProductID")))
            cmd.Parameters.Add(New SqlParameter("@Catalog_companyid", SqlDbType.NVarChar, 20)).Value = Session("g_Company")
            cmd.Parameters.Add(New SqlParameter("@Catalog_userid", SqlDbType.NVarChar, 20)).Value = Session("g_User")       'Add Parameter Company_Code and assign the value of Session("Session("g_Company")") to it
            cmd.Parameters.Add(New SqlParameter("@Catalog_financialyearid", SqlDbType.NVarChar, 20)).Value = Session("g_FinYear")            'Add Parameter UserCode and assign the value of Session("Session("g_User")").toString to it
            cmd.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 100)).Value = "Catalog"                           'Add Parameter FormName and assign the name of form to it
            cmd.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10)).Value = "Insert"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
            con.Open()
            cmd.ExecuteNonQuery()                                                           'Execute the Query
            con.Close()
            displayone(tblCataloge)

            '''''''''''''''''''''''''''''''''''''''''' For Code Optimization by Mitesh '''''''''''''''''
            TrfuProductCateloge.Style.Add("display", "auto")
            TrProductCatalogeFileName.Style.Add("display", "auto")
            lblCatalogPath.Text = strImageName.ToString
            lblCatalogPath.NavigateUrl = "~\Upload Image\Product Image\UploadImages\" & strImageName.ToString
            btnCatalogSubmit.Visible = False
            btnCatalogUpdate.Visible = True
            'getCatalogExistingData()   ''''' Commented by Mitesh For Optimization See it...
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

            ClearCatalogFields()
            CreateMessageAlert(Me, "Product Cataloge saved successfully.!", "strkeyval")
        Catch ex As Exception
            CreateMessageAlert(Me, "Product Cataloge Does not saved, Please Try Again.!!", "strkeyval")                            'Display the Error Message
        End Try
    End Sub

    Protected Sub ClearCatalogFields()
        Try
            ddlProductCatelogeSameAs.ClearSelection()
            hypProductCatelogeSameAs.Text = ""
            hypProductCatelogeSameAs.NavigateUrl = ""
        Catch
        End Try
    End Sub

    Protected Sub EnableControlsCAT(ByVal Action As Boolean)
        Try
            'rblProductCataloge.Enabled = Action
        Catch
        End Try
    End Sub

    Protected Function GenerateCatalogCode() As String
        Try
            'Dim i As String

            'Dim qry As String
            Dim code As String
            'txtCatalog_Kid.Text = NewPrimaryKey(Me)
            'i = "1"
            'i = Format(Val(i), "000")
            'While True
            '    code = "CAT" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
            '    qry = "select count(*) from Catalog where Catalog_code='" & code & "'"
            '    If IsAlreadyPresent(qry) Then
            '        i = Val(i) + 1
            '        i = Format(Val(i), "000")
            '        Return code
            '        Exit Function
            '    Else
            '        Return code
            '        Exit Function
            '    End If
            'End While
            Dim Code_App As String = ReturnValue("Declare @Code as nvarchar(50) Select @Code = MAX(Catalog_code) from  Catalog WHERE Catalog_code LIKE" + "'CAT" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/%'" + " Select Substring(@Code,len(@Code)-2,4)")
            code = "CAT" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today).ToString & "/" + IIf(Code_App = "", "0000", (Convert.ToInt32(IIf(Code_App = "", "0000", Code_App)) + 1).ToString.PadLeft(4, "0"))
            Return code
        Catch ex As Exception
            'CreateMessageAlert(Me, ex.Message, "StrKeyVal")     'Display the Error Message
        End Try
    End Function

    Protected Sub UpdateData(ByVal StrMode As String, ByVal txt As TextBox)
        Try
            Dim cmd As New SqlCommand
            Dim sqlcol As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcol.Add("@Unit_Kid", SqlDbType.NVarChar, 10).Value = NewPrimaryKey(Me)
            sqlcol.Add("@Unit_Code", SqlDbType.NVarChar, 25).Value = Generate_Code("select count(*) from Unit_Master where Unit_Code='", "UC")
            sqlcol.Add("@Unit_Name", SqlDbType.NVarChar, 25).Value = txt.Text.Trim.ToString()
            sqlcol.Add("@Unit_Flag", SqlDbType.NVarChar, 50).Value = "Tech"
            sqlcol.Add("@Unit_FinancialYearId", SqlDbType.NVarChar, 10).Value = Session("g_FinYear")
            sqlcol.Add("@Unit_CompanyId", SqlDbType.NVarChar, 10).Value = Session("g_Company")
            sqlcol.Add("@Unit_UserId", SqlDbType.NVarChar, 10).Value = Session("g_User")
            sqlcol.Add("@FormName", SqlDbType.NVarChar, 50).Value = Me.Page.ToString
            sqlcol.Add("@Mode", SqlDbType.NVarChar, 10).Value = StrMode
            If ExecQuery("Unit_Master_Proc", sqlcol).StartsWith("True") Then
                cmd = Nothing
                sqlcol = Nothing
            End If
        Catch
        End Try
    End Sub

    Protected Sub btnSkip_Click(ByVal sender As Object, ByVal e As System.EventArgs)

    End Sub

    '*****************************************Brand Master****************************
    Protected Sub GenerateBrandCode()
        Try
            Dim i As String
            Dim qry As String
            Dim code As String
            brand_kid = NewPrimaryKey(Me)
            i = "1"
            i = Format(Val(i), "000")
            While True
                code = "BND" & "/" & Year(Date.Today) & "/" & Format(Month(Date.Today), "00") & "/" & Day(Date.Today) & "/" & i
                qry = "select count(*) from Brand_Master where Brand_Code='" & code & "'"
                If IsAlreadyPresent(qry) Then
                    i = Val(i) + 1
                    i = Format(Val(i), "000")
                Else
                    brand_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 btnBrandSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBrandSave.Click
        Try

            ' Entry in the Brand_Master Table

            'Dim strImageName As String = ""
            'Dim file_name As String = ""
            'If (brandImageUpload.HasFile) Then
            '    Dim fileType As String = Path.GetExtension(brandImageUpload.FileName)
            '    If fileType = ".gif" Or fileType = ".png" Or fileType = ".jpg" Or fileType = ".jpeg" Or fileType = ".bmp" Then
            '        strImageName = Final_FileUpload(brandImageUpload, img, Server.MapPath("~\Upload Image\Brand_Image\"))
            '    Else
            '        CreateMessageAlert(Me, "Please Select image File Only!", "StrKeyVal")
            '        brandImageUpload.Focus()
            '        Exit Sub
            '    End If
            'End If



            Call GenerateBrandCode()
            InsertBrand()
            ' GetExisting()
            SelectedBrand()


            ''Dim con As New SqlConnection                                                    'Define connection variable for connecting to SQL-Server
            ''con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            ''con.Open()                                                                       'Open the Connection
            ''Dim present As DataTable
            ''Dim dt_brand As DataTable
            ''present = ReturnDataTable("select Brand_Kid,Brand_Code,Brand_Image,Brand_CompanyId from Brand_Master where Brand_companyId like '%" & RemoveLiterals(Session("SupplierID")) & "%' and Brand_Name='" & txtbrandName.Text.Trim & "' and Brand_IsDeleted='0'")
            ''If present.Rows.Count <> 0 Then

            ''    If present.Rows(0).Item("Brand_CompanyId").ToString.Contains(Session("SupplierID")) Then
            ''        CreateMessageAlert(Me, "Brand is Already Added", "strkeyVal")
            ''        lblJJProductBrandValue.Text = ReturnValue("SELECT     Brand_Master.Brand_Name FROM  Brand_Master INNER JOIN    Product_Master ON Brand_Master.Brand_Kid = Product_Master.Product_BrandId WHERE     Product_Master.Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "' and Brand_Master.Brand_IsDeleted='0'")
            ''        lblJJProductBrand.Text = "Edit"
            ''        SelectedBrand()
            ''        'txtbrandName.Text = ""

            ''        Exit Sub
            ''    End If
            ''    Dim res As Integer = MsgBox("Brand Name Already Added by Other Supplier. Still You want to Add ?", MsgBoxStyle.YesNo, "Brand Name")
            ''    If res = MsgBoxResult.Yes Then
            ''        InsertUpdateBrandName("Update", present.Rows(0).Item("Brand_Kid").ToString, present.Rows(0).Item("Brand_CompanyID").ToString, present.Rows(0).Item("Brand_Code").ToString, present.Rows(0).Item("Brand_Image").ToString)
            ''        UpdateProductMaster(present.Rows(0).Item("Brand_Kid").ToString())
            ''        SelectedBrand()
            ''    End If
            ''Else
            ''    dt_brand = ReturnDataTable("select Brand_Kid,Brand_Code,Brand_Image,Brand_CompanyId from Brand_Master where Brand_Name='" & txtbrandName.Text.Trim & "' and Brand_IsDeleted='0'")
            ''    If dt_brand.Rows.Count = 0 Then
            ''        Call GenerateBrandCode()
            ''        Dim brand_image As String = ""
            ''        InsertUpdateBrandName("Insert", brand_kid, Session("SupplierID"), brand_code, brand_image)
            ''        UpdateProductMaster(brand_kid)
            ''        SelectedBrand()
            ''    Else
            ''        If dt_brand.Rows(0).Item("Brand_CompanyId").ToString.Contains(Session("SupplierID")) Then
            ''            CreateMessageAlert(Me, "Brand is Already Added", "strkeyVal")
            ''            lblJJProductBrandValue.Text = ReturnValue("SELECT     Brand_Master.Brand_Name FROM  Brand_Master INNER JOIN    Product_Master ON Brand_Master.Brand_Kid = Product_Master.Product_BrandId WHERE     Product_Master.Product_Kid = '" & RemoveLiterals(hfProduct.Value.ToString) & "' and Brand_Master.Brand_IsDeleted='0'")
            ''            lblJJProductBrand.Text = "Edit"
            ''            SelectedBrand()
            ''            txtbrandName.Text = ""
            ''            Exit Sub
            ''        End If
            ''        Dim res As Integer = MsgBox("Brand Name Already Added by Other Supplier. Still You want to Add ?", MsgBoxStyle.YesNo, "Brand Name")
            ''        If res = MsgBoxResult.Yes Then
            ''            InsertUpdateBrandName("Update", dt_brand.Rows(0).Item("Brand_Kid").ToString, dt_brand.Rows(0).Item("Brand_CompanyID").ToString, dt_brand.Rows(0).Item("Brand_Code").ToString, dt_brand.Rows(0).Item("Brand_Image").ToString)
            ''            UpdateProductMaster(dt_brand.Rows(0).Item("Brand_Kid").ToString())
            ''            SelectedBrand()
            ''        End If
            ''    End If

            ''End If


            'If IsAlreadyPresent("select count(*) from Brand_Master where Brand_Name='" & txtbrandName.Text.Trim & "'and Brand_isdeleted='0' and Brand_companyId='" & Session("SupplierID") & "'") Then  ' To Check Existance of Engineer Code
            '    CreateMessageAlert(Me, " Brand Name Already Present !", "StrKeyVal")      'Display the Message
            '    txtbrandName.Text = "" : txtbrandName.Focus()
            '    Exit Sub
            'End If

        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "StrKeyVal")                                 'Display the Error Message
        End Try

    End Sub

    Protected Sub SelectedBrand()
        Fill_Combo("Select Brand_Kid, Brand_Name From Brand_Master where Brand_IsDeleted = '0' and Brand_CompanyId like '%" & Session("SupplierID").ToString() & "%' order by Brand_Name", ddlJJProductBrand)
        ddlJJProductBrand.Items.Insert(ddlJJProductBrand.Items.Count, "Add Your Brand")

        lblJJProductBrandValue.Text = newbrandname
        ddlJJProductBrand.Items.FindByText(newbrandname).Selected = True

    End Sub

    Protected Sub UpdateProductMaster(ByVal b_kid As String)

        Dim cmd1 As New SqlCommand                                                       'Define command variable to execute the query
        cmd1.CommandType = CommandType.StoredProcedure                                   'Set the Command Type to Stored procedure
        cmd1.CommandText = "JJProduct_Master_Proc"                                        'Assign the Name of Stored Procedure, to Execute
        cmd1.Connection = con                                                            'Assign the connection
        cmd1.Parameters.Add(New SqlParameter("@Product_Kid", SqlDbType.NVarChar, 20)).Value = RemoveLiterals(hfProduct.Value.ToString) 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
        cmd1.Parameters.Add(New SqlParameter("@Product_ClientIp", SqlDbType.NVarChar, 50)).Value = ClientIP.ToString 'Product_KId.ToString 'Trim(txtCategoryId.Text)       'Add Parameter Category_Kid and assign the value of txtCategoryId TextField  to it
        cmd1.Parameters.Add(New SqlParameter("@Product_Field1", SqlDbType.NVarChar, 100)).Value = "Product_BrandId" 'Trim(txtCategoryCode.Text)       'Add Parameter Category_Code and assign the value of txtCategoryCode TextField to it
        cmd1.Parameters.Add(New SqlParameter("@Product_Value1", SqlDbType.NVarChar)).Value = RemoveLiterals(b_kid) 'RemoveLiterals(Product_MarketPriceTypeValue.ToString).ToString.Trim   'Trim(txtCategoryName.Text)       'Add Parameter Category_Name and assign the value of txtCategoryName TextField to it

        cmd1.Parameters.Add(New SqlParameter("@mode", SqlDbType.VarChar, 50)).Value = "update"                                   'Add Parameter Mode and assign the DML Operation to Execute (Insert)
        If (con.State = ConnectionState.Closed) Then
            con.Open()
        End If
        cmd1.ExecuteNonQuery()
        lblJJProductBrandValue.Text = txtbrandName.Text
        lblJJProductBrand.Text = "Edit"
        txtbrandName.Text = ""

        CreateMessageAlert(Me, "Brand Saved Successfully...", "StrKeyVal")             'Display the Message


    End Sub

    Protected Sub InsertUpdateBrandName(ByVal mode As String, ByVal BrName As String, ByVal kid As String, ByVal supid As String, ByVal bcode As String, ByVal b_img As String)

        Try

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            If mode = "Insert" Then

                sqlcoll.Add("@Brand_Kid", Data.SqlDbType.NVarChar, 20).Value = RemoveLiterals(kid)
                sqlcoll.Add("@Brand_Code", Data.SqlDbType.NVarChar, 25).Value = bcode
                sqlcoll.Add("@Brand_Name", Data.SqlDbType.NVarChar, 100).Value = BrName.Trim
                sqlcoll.Add("@Brand_Image", Data.SqlDbType.NVarChar, 100).Value = b_img
                sqlcoll.Add("@Brand_FinancialYearID", Data.SqlDbType.NVarChar, 20).Value = Session("g_FinYear")
                sqlcoll.Add("@Brand_CompanyId", Data.SqlDbType.NVarChar).Value = Session("SupplierID")
                sqlcoll.Add("@Brand_UserId", Data.SqlDbType.NVarChar, 20).Value = Session("g_User")
                sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = "AddNewProduct"
                sqlcoll.Add("@Mode", Data.SqlDbType.Char, 50).Value = "Insert"
                ExecQuery("Brand_Master_Proc", sqlcoll)
                CreateMessageAlert(Me, "Record Saved Successfully...", "StrKeyVal")             'Display the Message
            Else
                sqlcoll.Add("@Brand_Kid", Data.SqlDbType.NVarChar, 20).Value = RemoveLiterals(kid)
                sqlcoll.Add("@Brand_Code", Data.SqlDbType.NVarChar, 25).Value = bcode
                sqlcoll.Add("@Brand_Name", Data.SqlDbType.NVarChar, 100).Value = BrName.Trim
                sqlcoll.Add("@Brand_Image", Data.SqlDbType.NVarChar, 100).Value = b_img
                sqlcoll.Add("@Brand_FinancialYearID", Data.SqlDbType.NVarChar, 20).Value = Session("g_FinYear")
                sqlcoll.Add("@Brand_CompanyId", Data.SqlDbType.NVarChar, 500).Value = supid
                sqlcoll.Add("@Brand_UserId", Data.SqlDbType.NVarChar, 20).Value = Session("g_User")
                sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = "AddNewProduct"
                sqlcoll.Add("@Mode", Data.SqlDbType.Char, 50).Value = "Update"
                ExecQuery("Brand_Master_Proc", sqlcoll)
                CreateMessageAlert(Me, "Record Modified Successfully...", "StrKeyVal")         'Display the Message
            End If
        Catch ex As Exception

        End Try
    End Sub

    <Ajax.AjaxMethod()> _
            Public Function CheckExistingSupplier(ByVal btext As String, ByVal supid As String) As Boolean
        If IsAlreadyPresent("Select count(*) from Brand_Master where Brand_Name='" & btext & "'and Brand_CompanyId like '%" & RemoveLiterals(supid) & "%' and Brand_IsDeleted='0'") Then
            Return False
        End If
        Return True
    End Function

    <Ajax.AjaxMethod()> _
        Public Function CheckNotExistingSupplier(ByVal txtnm As String) As Boolean

        Dim dt_brand As DataTable = ReturnDataTable("Select Brand_Kid,Brand_Code,Brand_CompanyId from Brand_Master where Brand_IsDeleted='0' and Brand_Name='" & txtnm.ToString & "'")
        If dt_brand.Rows.Count <> 0 Then
            Dim supid1 As String = dt_brand.Rows(0).Item("Brand_CompanyID").ToString

            Dim arr = supid1.Split("-")

            If arr.Length >= 1 Then
                Return False
            Else
                Return True
            End If
        Else
            Return True
        End If

    End Function

    <Ajax.AjaxMethod()> _
   Public Function CheckExistingBrand(ByVal btext As String, ByVal ProdID As String) As Boolean
        If IsAlreadyPresent("Select count(*) from Brand_Master where Brand_companyId like '%" & RemoveLiterals(ProdID) & "%' and Brand_Name='" & btext.Trim & "' and Brand_IsDeleted='0'") Then
            Return False
        End If
        Return True
    End Function

    Protected Sub InsertBrand()
        Dim s_nm As DataTable = ReturnDataTable("Select Brand_Name,Brand_Kid,Brand_CompanyId,Brand_Code,Brand_Image from Brand_Master where Brand_Name='" & txtbrandName.Text.Trim & "' and Brand_IsDeleted='0' and Brand_Kid <> '" & RemoveLiterals(brand_kid) & "'")
        newbrandname = txtbrandName.Text.Trim
        If s_nm.Rows.Count <> 0 Then
            InsertUpdateBrandName("Update", s_nm.Rows(0).Item("Brand_Name").ToString, s_nm.Rows(0).Item("Brand_Kid").ToString, s_nm.Rows(0).Item("Brand_CompanyId").ToString & "-" & RemoveLiterals(Session("SupplierID")), s_nm.Rows(0).Item("Brand_Code").ToString, s_nm.Rows(0).Item("Brand_Image").ToString)
            UpdateProductMaster(s_nm.Rows(0).Item("Brand_Kid").ToString)
        Else
            InsertUpdateBrandName("Insert", txtbrandName.Text.Trim, brand_kid, RemoveLiterals(Session("SupplierID")), brand_code, "")
            UpdateProductMaster(brand_kid)
        End If

    End Sub

    Protected Sub chkCategory_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkCategory.DataBound

        Dim chk As CheckBoxList = sender
        'Dim strCategoryID As String
        Dim i As Integer
        For i = 0 To chk.Items.Count - 1
            'strCategoryID = chk.Items(i).Value
            chk.Items(i).Text = fillcategory(chk.Items(i).Value.ToString)


        Next


    End Sub

    Public Function fillcategory(ByVal strCatID As String) As String

        Dim dtCat As New DataTable
        Dim strValue As String = ""
        dtCat = ReturnDataTable("WITH CategoryList(Category_Kid,Category_Name,Category_ParentId) AS (SELECT Category_Master1.Category_Kid, Category_Master1.Category_Name, Category_Master1.Category_ParentId FROM Category_Master AS Category_Master1 WHERE Category_Master1.Category_Kid = '" & RemoveLiterals(strCatID.ToString) & "' UNION ALL SELECT Category_Master2.Category_Kid, Category_Master2.Category_Name, Category_Master2.Category_ParentId FROM Category_Master AS Category_Master2,CategoryList AS CategoryList WHERE Category_Master2.Category_Kid = CategoryList.Category_ParentId ) Select * From CategoryList")
        ' Dim str As String
        If dtCat.Rows.Count > 0 Then
            i = dtCat.Rows.Count
            While i > 0
                strValue = strValue + dtCat.Rows(i - 1).Item("Category_Name").ToString + " > "
                i = i - 1
            End While
        End If
        'Dim strV(10) As String
        'Dim count As Integer = 0
        'str = strCatID
        'While str <> "Root Category"
        '    strV(count) = ReturnValue("Select Category_Name from Category_Master where Category_KID='" & RemoveLiterals(str.ToString) & "' and Category_Isdeleted = '0'") 'CType(Session("dtCategory"), DataTable).Select("Category_KID='" & str & "'")(0).Item("Category_Name").ToString
        '    count = count + 1
        '    'strValue += "<b>" & str & "<b>  >  "
        '    str = ReturnValue("Select Category_ParentID from Category_Master where Category_KID='" & RemoveLiterals(str.ToString) & "' and Category_Isdeleted = '0'") 'CType(Session("dtCategory"), DataTable).Select("Category_KID='" & str & "'")(0).Item("Category_ParentID")
        'End While

        'Dim i As Integer
        'Array.Reverse(strV)
        'For i = 0 To strV.Length - 1
        '    If IsNothing(strV(i)) Then
        '    Else
        '        strValue += " " & strV(i).ToString & " >  "
        '    End If

        'Next
        Return strValue


    End Function

End Class
