Public Class Form1
Dim sngOrdered, sngInStock, sngReadyToShip, sngBackOrdered As Single
Dim sngNewOrdered, sngPassInStock, sngPassReadyToShip, sngPassBackOrdered As Single
Dim decShippingCharges As Decimal
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
ResetSpools()
ResetDelivery()
End Sub
Sub ResetSpools()
txtOrdered.Clear()
chkRush.Checked = False
End Sub
Sub ResetDelivery()
lblShip.Text = ""
lblBO.Text = ""
lblShipping.Text = ""
lblTotalDue.Text = ""
End Sub
Private Sub txtOrdered_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtOrdered.Validating
'Validate the input into the Length textbox
If IsNumeric(txtOrdered.Text) = False Then
'sngOrdered = CSng(txtOrdered.Text)
MessageBox.Show("Entry Must Be a Positive Number", "Error")
txtOrdered.Clear()
txtOrdered.Focus()
ElseIf txtOrdered.Text < 1 Then
MessageBox.Show("Entry Cannot Be less than 1", "Error")
txtOrdered.Clear()
txtOrdered.Focus()
Exit Sub
End If
End Sub
Function GetInStock(ByVal sngInStock As Single) As Single
sngInStock = InputBox("Enter the Number of Spools Currently In Stock", "Spools In Stock")
If IsNumeric(sngInStock) = True Then
'Entry is a number - Check if it is =>0
If sngInStock < 0 Or IsNumeric(sngInStock) = False Then
'Number is Negative or Text
MessageBox.Show("Number Entered is Negative or Text", "Error")
sngInStock = InputBox("Enter the Number of Spools Currently In Stock", "Spools In Stock")
Else
End If
End If
Return sngInStock
End Function
Function ReadyToShip(ByVal sngReadyToShip As Single) As Single
If sngPassInStock >= sngOrdered Then 'All spools ordered are in stock
sngReadyToShip = sngOrdered
Else
sngReadyToShip = sngPassInStock ' Not Enough Spools - Can only ship the number in stock
End If
Return sngReadyToShip
End Function
Function BackOrdered(ByVal sngBackOrdered As Single) As Single
If sngOrdered >= sngPassReadyToShip Then 'There are more ordered than in stock
sngBackOrdered = sngOrdered - sngPassReadyToShip
Return sngBackOrdered
Else
sngBackOrdered = 0 ' There are enough spools in stock
Return sngBackOrdered
End If
End Function
Function ShippingCharges(ByVal decShippingCharges As Decimal) As Decimal
If chkRush.Checked = True Then 'Rush Shipping Charges Apply
decShippingCharges = CDec(txtOrdered.Text) * 15
Else
'Normal Shipping Charges Apply
decShippingCharges = CDec(txtOrdered.Text) * 10
End If
Return decShippingCharges
End Function
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
sngOrdered = CSng(txtOrdered.Text) 'Get spools ordered from form
sngPassInStock = GetInStock(sngInStock)
sngPassReadyToShip = ReadyToShip(sngReadyToShip)
sngPassBackOrdered = BackOrdered(sngBackOrdered)
decShippingCharges = ShippingCharges(decShippingCharges)
lblShip.Text = sngPassReadyToShip
lblBO.Text = sngPassBackOrdered
lblShipping.Text = FormatCurrency(decShippingCharges)
lblTotalDue.Text = FormatCurrency(decShippingCharges + (txtOrdered.Text * 100))
End Sub
End Class