Imports System
Imports System.Data
Imports System.Data.SqlClient


Partial Class Admin_AdminBillProcess
    Inherits System.Web.UI.Page
    Dim obj As New AdminSupplier()
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("AdminID") Is Nothing Then
            Response.Redirect("AdminLogin.aspx?sesn=expire")
            Exit Sub
        End If
        If Not IsPostBack Then
            If Session("AdminID") = Nothing Then
                Response.Redirect("AdminLogin.aspx")
            End If


        End If
    End Sub
    Public Sub ShowBillDetails(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            Dim i As New LinkButton()
            i = CType(sender, LinkButton)
            Dim dpt As String = i.CommandArgument
            obj.BillDetails(dpt.Trim, dgBillDetails)
            showcontrols("BD")
            lblDisplay.Text = "bill details"
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Public Sub ShowPaymentDetails(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            Dim i As New LinkButton()
            i = CType(sender, LinkButton)
            Dim dpt As String = i.CommandArgument
            lblDisplay.Text = "PAYMENT DETAILS"
            obj.getPayments(dpt.Trim, "@#$", "P", dgPayDetails)
            showcontrols("DP")
            If i.Text.Trim = "Cheque" Then
                dgPayDetails.Columns(5).Visible = True
                dgPayDetails.Columns(6).Visible = True
                dgPayDetails.Columns(7).Visible = True
                dgPayDetails.Columns(8).Visible = False
                dgPayDetails.Columns(9).Visible = False
                dgPayDetails.Columns(10).Visible = False
            Else
                dgPayDetails.Columns(5).Visible = False
                dgPayDetails.Columns(6).Visible = False
                dgPayDetails.Columns(7).Visible = False
                dgPayDetails.Columns(8).Visible = True
                dgPayDetails.Columns(9).Visible = True
                dgPayDetails.Columns(10).Visible = True
            End If
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Private Sub lbtnPend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbtnpend.Click
        Try
            dgPDetails.Columns(0).Visible = True
            obj.getPayments("@#$", "PD", "A", dgPDetails)
            showcontrols("PD")
            If dgPDetails.Items.Count = 0 Then
                Label1.Text = "No Pending orders"
                Label1.Visible = True
                btnChange.Visible = False
                dgPDetails.Visible = False
            End If
            btnChange.Text = "Change Status"
            btnprocess.Text = "Process Order"
            dgPDetails.Columns(0).Visible = False
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Private Sub lbtnCredit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbtnCredit.Click
        Try
            dgPDetails.Columns(0).Visible = True
            showcontrols("CD")
            Label1.Visible = False
            obj.getPayments("@#$", "CR", "A", dgPDetails)
            If dgPDetails.Items.Count = 0 Then
                Label1.Text = "No Pending orders"
                Label1.Visible = True
                btnChange.Visible = False
                dgPDetails.Visible = False
            End If
            btnChange.Text = "Change Status"
            btnprocess.Text = "Process Order"
            dgPDetails.Columns(0).Visible = False
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Private Sub lbtnprocess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbtnprocess.Click
        Try
            dgPDetails.Columns(0).Visible = True
            showcontrols("PR")
            Label1.Visible = False
            obj.getPayments("@#$", "PR", "A", dgPDetails)
            btnChange.Text = "Change Status"
            btnprocess.Text = "Process Order"
            dgPDetails.Columns(0).Visible = False
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Private Sub btnChange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChange.Click
        dgSupplier.Visible = True
        If btnChange.Text = "Change Status" Then
            Dim hash As New SortedList()
            hash.Add(0, "Pending")
            hash.Add(1, "Credited")
            obj.getStatus(dgPDetails, hash)
            btnChange.Visible = True
            btnChange.Text = "Update Status"
        ElseIf btnChange.Text = "Update Status" Then
            obj.updateData(dgPDetails)
            dgPDetails.Visible = False
            btnChange.Visible = False
            btnChange.Text = "Change Status"
            obj.getPayments("@#$", "PD", "A", dgPDetails)
            If dgPDetails.Items.Count > 0 Then
                dgPDetails.Visible = True
                btnChange.Text = "Change Status"
                btnChange.Visible = True
            Else
                dgPDetails.Visible = False
                Label1.Visible = True
                Label1.Text = "No Pending Orders"

            End If
        End If
        dgBillDetails.Visible = False
        dgPayDetails.Visible = False
        dgAddress.Visible = False
        lblDisplay.Visible = False
        'btnChange.Visible = False

    End Sub

    Private Sub btnprocess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprocess.Click
        Dim lbl As New Label()
        Try
            If btnprocess.Text.Trim = "Process Order" Then
                dgPayDetails.Visible = False
                lblDisplay.Visible = False
                lbl.Text = obj.BillNo(dgpDetails, "chkprocess")
                If lbl.Text.StartsWith("<script") = True Then
                    Page.Controls.Add(lbl)
                Else
                    viewstate.Add("BNO", lbl.Text.Trim)
                    obj.getSupplier(viewstate.Item("BNO"), dgSupplier)
                    btnprocess.Text = "Process"
                    dgpDetails.Visible = False
                    dgSupplier.Visible = True
                    lblAddress.Visible = True
                    ddBillExemp.Visible = True
                    lblSelectExemp.Visible = True
                    AtcoAdd()

                End If
            ElseIf btnprocess.Text.Trim = "Process" Then
                insertOrder()
                dgAddress.Visible = False
                lblAddress.Visible = False
                lblSelectExemp.Visible = False
                ddBillExemp.Visible = False
                dgSupplier.Visible = False
                dgpDetails.Visible = False
                btnprocess.Text = "Process Order"
                btnprocess.Visible = False

                'lbl.Text = obj.BillNo(dgSupplier, "rdbSID")
                'If lbl.Text.StartsWith("<script") = True Then
                '    Page.Controls.Add(lbl)
                'Else
                '    viewstate.Add("DG", lbl.Text.Trim)
                '    obj.getDespAdd(viewstate.Item("BNO"), dgSupplier.Items(viewstate.Item("DG")).Cells(8).Text, _
                '                   dgAddress, ddBillExemp, lblAddress)
                '    btnprocess.Text = "Processed"
                '    dgSupplier.Visible = False
                '    lblAddress.Visible = True
                '    ddBillExemp.Visible = True
                '    lblSelectExemp.Visible = True
                '    dgAddress.Visible = True
                'End If
                ' ElseIf btnprocess.Text.Trim = "Processed" Then

                'obj.InsertSOrder(dgAddress, dgSupplier.Items(viewstate.Item("DG")), ddBillExemp.SelectedItem.Value.Trim)
                'If dgSupplier.Items.Count - 1 = viewstate.Item("DG") Then
                '    dgAddress.Visible = False
                '    lblAddress.Visible = False
                '    lblSelectExemp.Visible = False
                '    ddBillExemp.Visible = False
                '    btnprocess.Visible = False
                '    dgSupplier.Visible = True
                '    btnprocess.Text = "Process Order"
                '    obj.getPayments("@#$", "CR", "A", dgPDetails)
                '    If dgPDetails.Items.Count > 0 Then
                '        dgPDetails.Visible = True
                '        btnprocess.Text = "Process Order"
                '        btnprocess.Visible = True
                '        dgSupplier.Visible = False
                '    Else
                '        dgPDetails.Visible = False
                '        dgSupplier.Visible = False
                '        Label1.Visible = True
                '        Label1.Text = "No Credited Orders"
                '    End If
                'Else
                '    dgAddress.Visible = False
                '    lblAddress.Visible = False
                '    lblSelectExemp.Visible = False
                '    ddBillExemp.Visible = False
                '    dgSupplier.Visible = True
                '    btnprocess.Text = "Process"
                'End If
            End If
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Public Sub test(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            obj.getChk(dgPDetails, sender.ID)
            sender.checked = True
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End Try
    End Sub

    Private Sub showcontrols(ByVal str As String)
        If str.Trim = "PD" Then
            dgAddress.Visible = False
            dgBillDetails.Visible = False
            dgPayDetails.Visible = False
            dgSupplier.Visible = False
            lblAddress.Visible = False
            lblDisplay.Visible = False
            lblSelectExemp.Visible = False
            ddBillExemp.Visible = False
            btnprocess.Visible = False
            btnChange.Visible = True
            dgPDetails.Visible = True
            lblHeader.Text = "payments details"
        ElseIf str.Trim = "CD" Then
            dgAddress.Visible = False
            dgBillDetails.Visible = False
            dgPayDetails.Visible = False
            dgSupplier.Visible = False
            lblAddress.Visible = False
            lblDisplay.Visible = False
            lblSelectExemp.Visible = False
            ddBillExemp.Visible = False
            btnChange.Visible = False
            btnprocess.Visible = True
            dgPDetails.Visible = True
            lblHeader.Text = "payments details"
        ElseIf str.Trim = "BD" Then
            dgAddress.Visible = False
            dgPayDetails.Visible = False
            dgSupplier.Visible = False
            lblAddress.Visible = False
            lblSelectExemp.Visible = False
            ddBillExemp.Visible = False
            dgPDetails.Visible = True
            lblDisplay.Visible = True
            dgBillDetails.Visible = True
        ElseIf str.Trim = "DP" Then
            dgAddress.Visible = False
            dgSupplier.Visible = False
            lblAddress.Visible = False
            lblSelectExemp.Visible = False
            ddBillExemp.Visible = False
            dgBillDetails.Visible = False
            dgPDetails.Visible = True
            lblDisplay.Visible = True
            dgPayDetails.Visible = True
        ElseIf str.Trim = "PR" Then
            dgAddress.Visible = False
            dgBillDetails.Visible = False
            dgPayDetails.Visible = False
            dgSupplier.Visible = False
            lblAddress.Visible = False
            lblDisplay.Visible = False
            lblSelectExemp.Visible = False
            ddBillExemp.Visible = False
            btnChange.Visible = False
            btnprocess.Visible = False
            dgPDetails.Visible = True
            lblHeader.Text = "payments details"
        End If
    End Sub
    Private Sub AtcoAdd()
        Dim strAdd As New StringBuilder()
        strAdd.Append("<b>Billing Address : " & "</b>" & "<br><br>")
        strAdd.Append("ATCOMAART LIMITED" & "," & "<br>")
        strAdd.Append("3-A, Lalwani Industrial Estate" & "," & " " & "<br>")
        strAdd.Append("14-G.D. Ambedkar Road" & "," & " " & "<br>")
        strAdd.Append("Wadala (West)" & "," & " " & "<br>")
        strAdd.Append("Mumbai - 400 0531." & "<br>")
        strAdd.Append("India." & "<br><br>")
        strAdd.Append("<b>TelePhone No. : " & "</b> " & "91 22 24192400" & "<br>")
        strAdd.Append("<b>Email ID: " & "</b>")
        strAdd.Append("<a href=mailto:" & "webmaster@atcomart.com" & " > " & "webmaster@atcomart.com" & "</a>")
        lblAddress.Text = strAdd.ToString()
        obj.getexemp(ddBillExemp)
    End Sub
    Private Sub insertOrder()

        Dim strkid As String = NewPrimaryKey(Me)
        Dim sqlcon As New Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionString"))
        Dim cmd As New Data.SqlClient.SqlCommand
        cmd.Connection = sqlcon
        cmd.CommandText = "OrderRequestToSupplier_Proc"
        cmd.CommandType = Data.CommandType.StoredProcedure
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_Kid", strkid.Trim)
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_Code", Generate_Code("select count(*) from OrderRequestToSupplier where OrderRequestToSupplier_Code='", "ORS"))
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_Date", DateTime.Now)
        'cmd.Parameters.AddWithValue("@OrderRequestToSupplier_BuyerInvoiceNo ", ReturnValue("select BillingHeader_BillNo from BillingHeader where BillingHeader_kid='" & ViewState.Item("BNO") & "' "))
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_BuyerId", ReturnValue("select BillingHeader_BuyerID from BillingHeader where BillingHeader_kid='" & ViewState.Item("BNO") & "' "))
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_NetAmount", ReturnValue("select convert(nvarchar,BillingHeader_NetAmt) from BillingHeader where BillingHeader_kid='" & ViewState.Item("BNO") & "' "))
        'cmd.Parameters.AddWithValue("@OrderRequestToSupplier_Flag", "S")
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_Status", "pending")
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_CompanyId", Session("companyId"))
        cmd.Parameters.AddWithValue("@OrderRequestToSupplier_UserId", dgSupplier.Items(0).Cells(9).Text)
        cmd.Parameters.AddWithValue("@FormName", Me.Page.ToString)
        cmd.Parameters.AddWithValue("@Mode", "Insert")
        sqlcon.Open()
        cmd.ExecuteNonQuery()
        sqlcon.Close()

        Dim dt As Data.DataTable = getTable("select * from billdetails where billdetails_billno='" & ViewState.Item("BNO") & "'", "BD")
        Dim i As Int32
        For i = 0 To dt.Rows.Count - 1
            cmd.Parameters.Clear()
            cmd.CommandText = "OrderRequestToSupplierProductr_Proc"
            cmd.CommandType = Data.CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_Kid", RemoveLiterals(NewPrimaryKey(Me)))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_Code", Generate_Code("select count(*) from OrderRequestToSupplierProduct where OrderRequestToSupplierProduct_Code='", "ORPD"))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_OrderRequestToSupplierId", strkid.Trim)
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_PONo", ReturnValue("select BillingHeader_BillNo from BillingHeader where BillingHeader_kid='" & ViewState.Item("BNO") & "' "))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_ProductId", RemoveLiterals(dt.Rows(i).Item("BillDetails_prodID")))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_Quantity", dt.Rows(i).Item("BillDetails_prodQty"))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_SupplierId", RemoveLiterals(dt.Rows(i).Item("BillDetails_SupplierId")))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_Address", ReturnValue("select BillingAddress_ShipAddID from BillingAddress where BillingAddress_ProdID='" & dt.Rows(i).Item("BillDetails_prodID") & "' and BillingAddress_BillNo='" & dt.Rows(i).Item("BillDetails_BillNo") & "'"))
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_CiytID", "0")
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_StateID", "0")
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_CountryID", "0")
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_SalesMode", "C")
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_Status", "Pending")
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_FinancialYearId", g_FinYear)
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_CompanyId", g_Company)
            cmd.Parameters.AddWithValue("@OrderRequestToSupplierProduct_UserId", g_User)
            cmd.Parameters.AddWithValue("@FormName", Me.Page.ToString)
            cmd.Parameters.AddWithValue("@Mode", "Insert")
            sqlcon.Open()
            cmd.ExecuteNonQuery()
            sqlcon.Close()
            cmd.Parameters.Clear()
        Next

        cmd.Connection = sqlcon
        cmd.CommandText = "update paymentdetails set PaymentDetails_Status='PR' where PaymentDetails_BillNo='" & ViewState.Item("BNO") & "'"
        cmd.CommandType = Data.CommandType.Text
        sqlcon.Open()
        cmd.ExecuteNonQuery()
        sqlcon.Close()
    End Sub

    Protected Sub dgpDetails_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgpDetails.SelectedIndexChanged

    End Sub
End Class
