Wednesday, April 29, 2020

Simple Employee Payroll Source code in VB6.0





 






Option Explicit
     Dim sglHours As Single
     Dim sglHrsOT As Single
     Dim sglHrlyRate As Single
     Dim sglGrossPay As Single
     Dim sglOTPay As Single
     Dim sglSalTotal As Single
     Dim sglSalNet As Single
     Dim sglTax As Single
     Dim sglTaxRate As Single
     Dim strName As String, strProv As String
          
Private Sub cmdCancel_Click()
     ClearAll
End Sub

Private Sub cmdExit_Click()
    End
End Sub

Private Sub Form_Load()
     ClearAll
    
     'Show current date
     lblDate.Caption = Format(Date, " dddd, dd mmmm yyyy")
    
     lstProv.AddItem "Ontario"
     lstProv.AddItem "Quebec"
     lstProv.AddItem "Manitoba"
     lstProv.AddItem "Nova Scotia"
     ' "Sorted" property of ListBox is set to True
End Sub

Private Sub ClearAll()
    'Initialize strings with ""
    ' and numeric with 0
   
    txtName.Text = ""
    txtHrlyRate.Text = 0
    txtHours.Text = 0
    lblTax.Caption = ""
    lblSalGross.Caption = ""
    lblSalNet.Caption = ""
    lblOTHrs = ""
    lblHrsReg = ""
    lblSalOT = ""
    lblTaxRate = ""
    sglGrossPay = 0
    sglOTPay = 0
    sglSalNet = 0
    sglSalTotal = 0
    sglHrsOT = 0
    lstProv.ListIndex = -1  'means no item in list is selected
End Sub

Private Sub mnuCenter_Click()
    'Me refers to current active form
   
    Me.Width = 6500
    Me.Height = 7000
    Me.Left = (Screen.Width - Me.Width) / 2
    Me.Top = (Screen.Height - Me.Height) / 2
End Sub

Private Sub mnuForm2_Click()
    Load frmPay2
    frmPay2.Show
End Sub

Private Sub mnuPrint_Click()
    Me.PrintForm
End Sub

Private Sub mnuMax_Click()
    Me.WindowState = 2
End Sub

Private Sub mnuRestore_Click()
    Me.WindowState = 0
End Sub

Private Sub txtName_Change()
    strName = txtName.Text
End Sub

Private Sub txtName_GotFocus()
    FocusIn
End Sub

Private Sub txtHours_Change()
    If Not IsNumeric(txtHours.Text) Then
        MsgBox ("Must be numeric!")
    End If
End Sub

Private Sub txtHours_GotFocus()
    FocusIn
End Sub

Private Sub txtHrlyRate_Change()
    If Not IsNumeric(txtHrlyRate.Text) Then
        MsgBox ("Must be numeric!")
    End If
End Sub
   
Private Sub txtHrlyRate_GotFocus()
    FocusIn
End Sub

Private Sub txtHrlyRate_Validate(Cancel As Boolean)
    If txtHrlyRate < 1 Or txtHrlyRate > 50 Then
        MsgBox ("Hourly rate must be between 1 and 50")
        Cancel = True
        'cancel = true keeps cursor in textbox
        'until valid value is input
    End If
End Sub

Private Sub txtHours_Validate(Cancel As Boolean)
    If txtHours < 1 Or txtHours > 100 Then
        MsgBox ("Hours must be between 1 and 100")
        Cancel = True
    End If
End Sub

Private Sub lstProv_Click()
    strProv = lstProv.Text
   
    'Whenever possible, use Select Case instead of If...Then...Else
    Select Case strProv
        Case "Ontario"
            sglTaxRate = 0.3
        Case "Quebec"
            sglTaxRate = 0.28
        Case Else
            sglTaxRate = 0.33
    End Select
   
End Sub

Private Sub cmdCalc_Click()
    If txtName.Text = "" Then
        MsgBox ("You must enter an employee name")
        txtName.SetFocus   'put cursor in textbox
        Exit Sub
    End If
   
    If txtHours.Text = 0 Then
        MsgBox ("Enter the hours, between 1 and 100")
        txtHours.SetFocus
        Exit Sub
    End If
   
    If txtHrlyRate.Text = 0 Then
        MsgBox ("Enter the hourly rate, between 1 and 50")
        txtHrlyRate.SetFocus
        Exit Sub
    End If
   
    sglHrlyRate = txtHrlyRate.Text
    sglHours = txtHours.Text
   
    sglGrossPay = sglHours * sglHrlyRate
   
    'Overtime pay is calculated at 1.5 * hourly rate
    'for all hours over 40
   
    If sglHours > 40 Then
        sglGrossPay = 40 * sglHrlyRate
        sglHrsOT = sglHours - 40
        sglHours = 40
        sglOTPay = sglHrsOT * sglHrlyRate * 1.5
    End If
   
    sglSalTotal = sglGrossPay + sglOTPay
    sglTax = sglSalTotal * sglTaxRate
    sglSalNet = sglSalTotal - sglTax
   
    lblHrsReg.Caption = Format(sglHours, "#0.00")
    lblSalGross.Caption = Format(sglGrossPay, "currency")
    lblSalOT.Caption = Format(sglOTPay, "currency")
    lblOTHrs.Caption = Format(sglHrsOT, "#0.00")
    lblTax.Caption = Format(sglTax, "currency")
    lblSalNet.Caption = Format(sglSalNet, "currency")
    lblTaxRate.Caption = Format(sglTaxRate, "percent")
       
End Sub

Private Sub FocusIn()
    ActiveControl.SelStart = 0
    ActiveControl.SelLength = Len(ActiveControl.Text)
End Sub










Private Sub Command1_Click()
    Unload Me
End Sub

Private Sub Form_Load()
    Me.WindowState = 0
End Sub




No comments:

Post a Comment