Imports System
Imports System.Data
Imports System.Data.SqlClient
Partial Class supplier_pending_order
    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='" & Session("g_Company") & "'", ddlCourierID)
            FillGrid()
            rowdispatch.Visible = False
            ControlsVisible(False)
        End If
    End Sub

    Protected Sub gvOrderDetails_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvOrderDetails.PageIndexChanging
        gvOrderDetails.PageIndex = e.NewPageIndex
        FillGrid()
    End Sub
    Protected Sub gvOrderDetails_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvOrderDetails.SelectedIndexChanged

        getExistingData()
        ControlsVisible(True)
    End Sub

    Protected Sub BtnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
        UpdateData()
        ControlsVisible(False)
        txtCourierDate.Text = ""
        txtCourierNumber.Text = ""
        ddlCourierID.ClearSelection()
        ddlCourierID.SelectedIndex = 0
        FillGrid()
    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 & "'")
        rowdispatch.Visible = True
        Dim shipid As String = gvOrderDetails.SelectedRow.Cells(6).Text

        Dim str As String = "SELECT     BillingAddress.BillingAddress_AddID, AddressBook.AddressBook_UserName, AddressBook.AddressBook_Add1, AddressBook.AddressBook_Zipcode, " & _
                     " AddressBook.AddressBook_TelNumber, AddressBook.AddressBook_TelExtn, AddressBook.AddressBook_MobNumber, " & _
        " AddressBook.AddressBook_Email, City_Master.City_Name, State_Master.State_Name, Country_Master.Country_Name" & _
        " FROM BillingAddress INNER JOIN  AddressBook ON BillingAddress.BillingAddress_ShipAddid = AddressBook.AddressBook_Kid INNER JOIN" & _
                      " City_Master ON AddressBook.AddressBook_CityID = City_Master.City_Kid INNER JOIN" & _
                      " State_Master ON AddressBook.AddressBook_StateID = State_Master.State_Kid INNER JOIN" & _
                      " Country_Master ON AddressBook.AddressBook_CountryID = Country_Master.Country_Kid where   BillingAddress.BillingAddress_ShipAddID='" & shipid & "'"

        '= OrderRequestToSupplierProduct.OrderRequestToSupplierProduct_Address"
        Dim dt As DataTable = getTable(str.Trim, "ShippingDetails")
        lblshipaddress.Text = "<b>Name:</b> " & dt.Rows(0).Item(1).ToString & "<br><b>Address:</b>" & dt.Rows(0).Item(2).ToString & "<br><b>PinCode:</b>" & dt.Rows(0).Item(3).ToString & "<br>" & dt.Rows(0).Item(8).ToString & "<br>" & dt.Rows(0).Item(9).ToString & "," & dt.Rows(0).Item(10).ToString & "<br><b>Telephone:</b>" & dt.Rows(0).Item(4).ToString & ",<b>Ext No:</b> " & dt.Rows(0).Item(5).ToString & "<br><b>Mobile:</b>" & dt.Rows(0).Item(6).ToString & "<br><b>EmailId:</b>" & dt.Rows(0).Item(7).ToString

        ddlCourierID.ClearSelection()
        ddlCourierID.SelectedIndex = 0
        txtCourierDate.Text = ""
        txtCourierNumber.Text = ""

      
    End Sub
    Private Sub FillGrid()
        Dim strQuery As String = "SELECT Product_Master.Product_Name as PName,Product_Master.Product_Kid as ProductID,Product_Master.Product_TransferPrice as price, 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_Status='Pending'"


        gvOrderDetails.Columns(1).Visible = True
        gvOrderDetails.Columns(2).Visible = True
        gvOrderDetails.Columns(3).Visible = True

        gvOrderDetails.Columns(6).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

        gvOrderDetails.Columns(6).Visible = False
        strQuery = Nothing
    End Sub
    Private Sub UpdateData()
        Try

     
            Dim strKid As String
            Dim invoiceno As String = ""
            invoiceno = Generate_Code("select count(*) from SupplierDispatchDetails where SupplierDispatchDetails_InvoiceNo='", "INV")
            Dim invoicedate As DateTime = Format(Convert.ToDateTime(Now.Date).Date, "MM/dd/yyyy")
            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 = RemoveLiterals(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 = invoiceno
                sqlcoll.Add("@SupplierDispatchDetails_Date", Data.SqlDbType.DateTime).Value = invoicedate
                sqlcoll.Add("@SupplierDispatchDetails_OrderRequestToSupplierId", Data.SqlDbType.NVarChar, 10).Value = gvOrderDetails.SelectedRow.Cells(2).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 = "Dispatched"
                sqlcoll.Add("@SupplierDispatchDetails_CompanyId", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company")
                sqlcoll.Add("@SupplierDispatchDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = Session("g_User")
                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 = RemoveLiterals(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 = gvOrderDetails.SelectedRow.Cells(6).Text.Trim
                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).Date, "MM/dd/yyyy")
                sqlcoll.Add("@SupplierDispatchProductDetails_Status", Data.SqlDbType.NVarChar, 25).Value = "Dispatched"
                sqlcoll.Add("@SupplierDispatchProductDetails_InvoiceFlag", SqlDbType.NVarChar, 1).Value = "N"
                sqlcoll.Add("@SupplierDispatchProductDetails_CompanyId", Data.SqlDbType.NVarChar, 2).Value = Session("g_Company")
                sqlcoll.Add("@SupplierDispatchProductDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = Session("g_User")
                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 = gvOrderDetails.SelectedRow.Cells(6).Text.Trim
                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), "MM/dd/yyyy")
                sqlcoll.Add("@SupplierDispatchProductDetails_Status", Data.SqlDbType.NVarChar, 25).Value = "Dispatched"
                sqlcoll.Add("@SupplierDispatchProductDetails_InvoiceFlag", SqlDbType.NVarChar, 1).Value = "N"
                sqlcoll.Add("@SupplierDispatchProductDetails_CompanyId", Data.SqlDbType.NVarChar, 10).Value = Session("g_Company")
                sqlcoll.Add("@SupplierDispatchProductDetails_UserId", Data.SqlDbType.NVarChar, 10).Value = Session("g_User")
                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
            sqlcoll.Clear()
            rowdispatch.Visible = False

            cmd = Nothing
            sqlcoll = Nothing
            strKid = Nothing
            UpdateOrderRequestTable()
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, 1)
        End Try
      
    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
        btnSave.Visible = bool
        Image1.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
