Steps
1. Sales Order UI[Design]
2. Sales Order UI[Code]
Public Class SalesOrderUI
Private Sub SalesOrderUI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GenerateTransaction()
End Sub
Private Sub txtCustNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCustNo.KeyPress
If e.KeyChar = Chr(Keys.Enter) And Me.txtCustNo.Text <> Nothing Then
txtCustName.Text = CustomersBAL.GetCustomer(CInt(txtCustNo.Text)).Name
Me.txtProdID.Focus()
End If
End Sub
Private Sub txtProdID_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtProdID.KeyPress
If e.KeyChar = Chr(Keys.Enter) And Me.txtProdID.Text <> Nothing Then
DisplayProductDetails(CInt(txtProdID.Text))
Me.txtQtyOrdered.Focus()
End If
End Sub
Private Sub DisplayProductDetails(ByVal id As Integer)
Dim p As Products = ProductsBAL.GetProduct(id)
Me.txtDescription.Text = p.Description
Me.txtUntMsr.Text = p.Untmsr
Me.txtPrice.Text = Format(p.Price, "#,##0.00")
End Sub
Private Sub txtQtyOrdered_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtQtyOrdered.KeyPress
If e.KeyChar = Chr(Keys.Enter) And Me.txtQtyOrdered.Text <> Nothing Then
AddProductToList()
Me.txtTotalAmount.Text = ComputeSubTotal().ToString
AppToolBox.ClearTextBoxes(Me.pnlProduct)
Me.txtProdID.Focus()
End If
End Sub
Private Shared row As Integer
Private Sub AddProductToList()
lvwOrders.Items.Add(Me.txtProdID.Text)
lvwOrders.Items(row).SubItems.Add(txtDescription.Text)
lvwOrders.Items(row).SubItems.Add(txtUntMsr.Text)
Dim price As Decimal = CDec(Me.txtPrice.Text)
Dim qtyOrdered As Decimal = CDec(Me.txtQtyOrdered.Text)
lvwOrders.Items(row).SubItems.Add(Format(price, "#,##0.00"))
lvwOrders.Items(row).SubItems.Add(Format(qtyOrdered, "#,##0.00"))
Dim amount As Decimal = price * qtyOrdered
lvwOrders.Items(row).SubItems.Add(Format(amount, "#,##0.00"))
row = row + 1
End Sub
Private Function ComputeSubTotal() As Decimal
Dim total As Decimal = 0
For ndx As Integer = 0 To lvwOrders.Items.Count - 1
total += CDec(lvwOrders.Items(ndx).SubItems(5).Text)
Next
Return total
End Function
Private Sub txtEmpNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEmpNo.KeyPress
If e.KeyChar = Chr(Keys.Enter) And Me.txtEmpNo.Text <> Nothing Then
txtEmpName.Text = EmployeesBAL.GetEmployee(CInt(txtEmpNo.Text)).Name
Me.btnSave.Focus()
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim transaction As New Transactions
transaction.add(OrderSQL)
For i = 0 To lvwOrders.Items.Count - 1
transaction.add(OrderDetailSQL(i))
transaction.add(ProductUpdateInventory(i))
Next
transaction.add(CustomerUpdateCreditLimit)
transaction.add(GeneratorsBAL.CreateUpdateSQLOrderID)
transaction.ExecuteSQLArray()
AppToolBox.Message("Successfully Save...")
GenerateTransaction()
End Sub
Private Function OrderDetailSQL(ByVal i As Integer) As String
Dim orderdetail As New OrderDetails
With orderdetail
.Orderid = CInt(txtOrderNo.Text)
.Prodid = lvwOrders.Items(i).Text
.Price = lvwOrders.Items(i).SubItems(3).Text
.Qtyordered = lvwOrders.Items(i).SubItems(4).Text
.Amount = lvwOrders.Items(i).SubItems(5).Text
End With
Return OrderDetailsBAL.CreateInsertSQL(orderdetail)
End Function
Private Function OrderSQL() As String
Dim order As New Orders
With order
.ID = CInt(txtOrderNo.Text)
.Custid = CInt(txtCustNo.Text)
.Empid = CInt(txtEmpNo.Text)
.Orderdate = CDate(txtOrderDate.Text)
.Totalamount = CDec(Me.txtTotalAmount.Text)
End With
Return OrdersBAL.CreateInsertSQL(order)
End Function
Private Function ProductUpdateInventory(ByVal i As Integer) As String
Dim pid As Integer = CInt(lvwOrders.Items(i).Text)
Dim qtyordered As Decimal = CDec(lvwOrders.Items(i).SubItems(4).Text)
Return ProductsBAL.CreateUpdateSQLDeductInventory(pid, qtyordered)
End Function
Private Function CustomerUpdateCreditLimit() As String
Dim id As Integer = CInt(txtCustNo.Text)
Dim amt As Decimal = CDec(txtTotalAmount.Text)
Return CustomersBAL.CreateUpdateSQLDeductCreditLimit(id, amt)
End Function
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
GenerateTransaction()
End Sub
Private Sub GenerateTransaction()
AppToolBox.ClearTextBoxes(pnlCustomer)
AppToolBox.ClearTextBoxes(pnlProduct)
AppToolBox.ClearTextBoxes(pnlEmployee)
Me.lvwOrders.Items.Clear()
txtOrderNo.Text = GeneratorsBAL.GetOrderID
txtOrderDate.Text = Date.Now
txtCustNo.Focus()
End Sub
End Class

No comments:
Post a Comment