
Partial Class SupplierPendingOrderproductDetails
    Inherits System.Web.UI.Page
    Shared g_User As String
    Shared g_Company As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = False Then
            g_User = "000037A"
            g_Company = "00006Z4"
            'g_User = Session("g_User").ToString
            'g_Company = Session("g_Company").ToString
            Fill_Combo("Select Courier_kid,Courier_Name from Courier_Master where Courier_IsDeleted='0' and Courier_CompanyID='" & g_Company.Trim & "'", ddlCourierID)
            FillGrid()
            ControlsVisible(False)
        End If
    End Sub
    Protected Sub gvOrderDetails_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        getExistingData()
        ControlsVisible(True)
    End Sub

    Protected Sub BtnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        UpdateData()
        ControlsVisible(False)
        FillGrid()
        txtCourierDate.Text = ""
        txtCourierNumber.Text = ""
        ddlCourierID.ClearSelection()
        ddlCourierID.SelectedIndex = 0
    End Sub
    Private Sub getExistingData()
        Dim strVar, strDispKid As String
        If IsAlreadyPresent("select count(*) from SupplierDispatchDetails where SupplierDispatchDetails_OrderRequestToSupplierId='" & gvOrderDetails.SelectedRow.Cells(1).Text.Trim & "'") Then
            strVar = ReturnValue("select SupplierDispatchDetails_Kid from SupplierDispatchDetails where SupplierDispatchDetails_OrderRequestToSupplierId='" & gvOrderDetails.SelectedRow.Cells(1).Text.Trim & "'")
            strDispKid = ReturnValue("select SupplierDispatchProductDetails_CourierId from SupplierDispatchProductDetails where SupplierDispatchProductDetails_SupplierDispatchDetailsId='" & strVar.Trim & "'")
            ddlCourierID.ClearSelection()
            ddlCourierID.Items.FindByValue(strDispKid.Trim).Selected = True
            txtCourierDate.Text = ReturnValue("select convert(nvarchar,SupplierDispatchProductDetails_CourierDate) from SupplierDispatchProductDetails where SupplierDispatchProductDetails_SupplierDispatchDetailsId='" & strVar.Trim & "'")
            txtCourierDate.Text = Format(Convert.ToDateTime(txtCourierDate.Text.Trim), "dd-MMM-yyyy")
            txtCourierNumber.Text = ReturnValue("select SupplierDispatchProductDetails_CourierNo from SupplierDispatchProductDetails where SupplierDispatchProductDetails_SupplierDispatchDetailsId='" & strVar.Trim & "'")
        Else
            ddlCourierID.ClearSelection()
            ddlCourierID.SelectedIndex = 0
            txtCourierDate.Text = ""
            txtCourierNumber.Text = ""
        End If
        strVar = Nothing
        strDispKid = Nothing
    End Sub
    Private Sub FillGrid()
        Dim strQuery As String = "SELECT Product_Master.Product_Name as PName,Product_Master.Product_Kid as ProductID, OrderRequestToSupplierProduct.* " & _
                                         " FROM OrderRequestToSupplierProduct INNER JOIN Product_Master ON OrderRequestToSupplierProduct.OrderRequestToSupplierProduct_ProductId = Product_Master.Product_Kid where OrderRequestToSupplierProduct_SupplierId='" & Session("SupplierID") & "' and OrderRequestToSupplierProduct_IsDeleted='0' and OrderRequestToSupplierProduct_OrderRequestToSupplierId='" & Request.QueryString("Id") & "' and OrderRequestToSupplierProduct_Status='Pending'"

        gvOrderDetails.Columns(1).Visible = True
        gvOrderDetails.Columns(2).Visible = True
        gvOrderDetails.Columns(3).Visible = True
        gvOrderDetails.DataSource = getTable(strQuery.Trim, "ProdDetails")
        gvOrderDetails.DataBind()
        gvOrderDetails.Columns(1).Visible = False
        gvOrderDetails.Columns(2).Visible = False
        gvOrderDetails.Columns(3).Visible = False
        strQuery = Nothing
    End Sub
    Private Sub UpdateData()
        Dim strKid As String
        Dim cmd As New Data.SqlClient.SqlCommand()
        Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
        sqlcoll.Clear()
        If Not IsAlreadyPresent("select count(*) from SupplierDispatchDetails where SupplierDispatchDetails_OrderRequestToSupplierId='" & gvOrderDetails.SelectedRow.Cells(1).Text.Trim & "'") Then
            strKid = NewPrimaryKey(Me)
            sqlcoll.Add("@SupplierDispatchDetails_Kid", Data.SqlDbType.NVarChar, 10).Value = strKid.Trim
            sqlcoll.Add("@SupplierDispatchDetails_Code", Data.SqlDbType.NVarChar, 25).Value = Generate_Code("select count(*) from SupplierDispatchDetails where SupplierDispatchDetails_Code='", "SDD")
            sqlcoll.Add("@SupplierDispatchDetails_InvoiceNo", Data.SqlDbType.NVarChar, 25).Value = Generate_Code("select count(*) from SupplierDispatchDetails where SupplierDispatchDetails_InvoiceNo='", "INV")
            sqlcoll.Add("@SupplierDispatchDetails_Date", Data.SqlDbType.DateTime).Value = Format(Now.Date, "dd-MMM-yyyy")
            sqlcoll.Add("@SupplierDispatchDetails_OrderRequestToSupplierId", Data.SqlDbType.NVarChar, 10).Value = gvOrderDetails.SelectedRow.Cells(1).Text.Trim
            sqlcoll.Add("@SupplierDispatchDetails_BuyerInvoiceNo", Data.SqlDbType.NVarChar, 25).Value = ReturnValue("select OrderRequestToSupplier_BuyerInvoiceNo from OrderRequestToSupplier where OrderRequestToSupplier_Kid='" & gvOrderDetails.SelectedRow.Cells(1).Text.Trim & "'")
            sqlcoll.Add("@SupplierDispatchDetails_SupplierId", Data.SqlDbType.NVarChar, 10).Value = Session("SupplierID")
            sqlcoll.Add("@SupplierDispatchDetails_Status", Data.SqlDbType.NVarChar, 25).Value = "Pending"
            sqlcoll.Add("@SupplierDispatchDetails_CompanyId", Data.SqlDbType.NVarChar, 10).Value = g_Company.Trim
            sqlcoll.Add("@SupplierDispatchDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = g_User.Trim
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.Char, 15).Value = "Insert"
            ExecQuery("SupplierDispatchDetails_Proc", sqlcoll)
        Else
            strKid = ReturnValue("select SupplierDispatchDetails_Kid from SupplierDispatchDetails where SupplierDispatchDetails_OrderRequestToSupplierId='" & gvOrderDetails.SelectedRow.Cells(1).Text.Trim & "'")
        End If
        sqlcoll.Clear()
        If Not IsAlreadyPresent("select count(*) from SupplierDispatchProductDetails where SupplierDispatchProductDetails_SupplierDispatchDetailsId='" & strKid.Trim & "'") Then
            sqlcoll.Add("@SupplierDispatchProductDetails_Kid", Data.SqlDbType.NVarChar, 10).Value = NewPrimaryKey(Me)
            sqlcoll.Add("@SupplierDispatchProductDetails_Code", Data.SqlDbType.NVarChar, 25).Value = Generate_Code("select count(*) from SupplierDispatchProductDetails where SupplierDispatchProductDetails_Code='", "SDPD")
            sqlcoll.Add("@SupplierDispatchProductDetails_SupplierDispatchDetailsId", Data.SqlDbType.NVarChar, 10).Value = strKid.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_ProductId", Data.SqlDbType.NVarChar, 25).Value = gvOrderDetails.SelectedRow.Cells(3).Text.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_Quantity", Data.SqlDbType.Int, 9).Value = Convert.ToInt32(gvOrderDetails.SelectedRow.Cells(5).Text.Trim)
            sqlcoll.Add("@SupplierDispatchProductDetails_BuyerShippingAddressId", Data.SqlDbType.NVarChar, 25).Value = ""
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierId", Data.SqlDbType.NVarChar, 10).Value = ddlCourierID.SelectedValue.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierNo", Data.SqlDbType.NVarChar, 25).Value = txtCourierNumber.Text.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierDate", Data.SqlDbType.DateTime).Value = Format(Convert.ToDateTime(txtCourierDate.Text.Trim), "dd-MMM-yyyy")
            sqlcoll.Add("@SupplierDispatchProductDetails_Status", Data.SqlDbType.NVarChar, 25).Value = "Pending"
            sqlcoll.Add("@SupplierDispatchProductDetails_CompanyId", Data.SqlDbType.NVarChar, 2).Value = g_Company.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = g_User.Trim
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.Char, 15).Value = "Insert"
            ExecQuery("SupplierDispatchProductDetails_Proc", sqlcoll)
        Else
            sqlcoll.Add("@SupplierDispatchProductDetails_Kid", Data.SqlDbType.NVarChar, 10).Value = ReturnValue("select SupplierDispatchProductDetails_Kid from SupplierDispatchProductDetails where SupplierDispatchProductDetails_SupplierDispatchDetailsId='" & strKid.Trim & "'")
            sqlcoll.Add("@SupplierDispatchProductDetails_Code", Data.SqlDbType.NVarChar, 25).Value = "" 'Generate_Code("select count(*) from SupplierDispatchProductDetails where SupplierDispatchProductDetails_Code='", "SDPD")
            sqlcoll.Add("@SupplierDispatchProductDetails_SupplierDispatchDetailsId", Data.SqlDbType.NVarChar, 10).Value = strKid.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_ProductId", Data.SqlDbType.NVarChar, 25).Value = gvOrderDetails.SelectedRow.Cells(3).Text.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_Quantity", Data.SqlDbType.Int, 9).Value = Convert.ToInt32(gvOrderDetails.SelectedRow.Cells(5).Text.Trim)
            sqlcoll.Add("@SupplierDispatchProductDetails_BuyerShippingAddressId", Data.SqlDbType.NVarChar, 25).Value = ""
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierId", Data.SqlDbType.NVarChar, 10).Value = ddlCourierID.SelectedValue.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierNo", Data.SqlDbType.NVarChar, 25).Value = txtCourierNumber.Text.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_CourierDate", Data.SqlDbType.DateTime).Value = Format(Convert.ToDateTime(txtCourierDate.Text.Trim), "dd-MMM-yyyy")
            sqlcoll.Add("@SupplierDispatchProductDetails_Status", Data.SqlDbType.NVarChar, 25).Value = "Pending"
            sqlcoll.Add("@SupplierDispatchProductDetails_CompanyId", Data.SqlDbType.NVarChar, 2).Value = g_Company.Trim
            sqlcoll.Add("@SupplierDispatchProductDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = g_User.Trim
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.Char, 15).Value = "Update"
            ExecQuery("SupplierDispatchProductDetails_Proc", sqlcoll)
        End If
        cmd = Nothing
        sqlcoll = Nothing
        strKid = Nothing
        UpdateOrderRequestTable()
    End Sub
    Private Sub UpdateOrderRequestTable()
        Dim strQuery As String = "Update OrderRequestToSupplierProduct set OrderRequestToSupplierProduct_Status='Dispatch' where OrderRequestToSupplierProduct_Kid='" & gvOrderDetails.SelectedRow.Cells(2).Text.Trim & "'"
        Dim sqlCon As New Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionString"))
        Dim sqlcmd As New Data.SqlClient.SqlCommand(strQuery.Trim, sqlCon)
        Try
            sqlCon.Open()
            sqlcmd.ExecuteNonQuery()
            sqlCon.Close()
        Catch ex As Exception
            sqlCon.Close()
        End Try
        strQuery = Nothing
        sqlCon = Nothing
        sqlcmd = Nothing
    End Sub
    'Change the Visibility of Controls
    Private Sub ControlsVisible(ByVal bool As Boolean)
        lblCourierName.Visible = bool
        lblCourierDate.Visible = bool
        lblCourierNumber.Visible = bool
        ddlCourierID.Visible = bool
        txtCourierDate.Visible = bool
        txtCourierNumber.Visible = bool

    End Sub

    Sub Node_Populate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs)
        If e.Node.ChildNodes.Count = 0 Then
            Select Case (e.Node.Depth)
                Case 0
                    FillModule(e.Node, "2")
                    Exit Sub
                Case 1
                    FillMenu(e.Node)
                    Exit Sub
                Case 2
                    FillSubMenu(e.Node)
                    Exit Sub
            End Select
        End If
    End Sub
End Class
