All pastes #739470 Raw Edit

Stuff

public text v1 · immutable
·published 2007-10-17 05:19 UTC
rendered paste body
'*********************************************************************
'                  pieceWorkCalculator.vb
'                   --------------------
'Folder:        pieceWorkCalculator
'Project:       Assignment 4.6 - Piece Work Calculator
'Programmer:    Adam Reyher (adam@adamreyher.com)
'Date:          Wednesday, October 15, 2007
'Description:   This program will calculate the amount earned for
'               a specified number of pieces completed and keep
'               running totals which can then be summariezed.
'*********************************************************************

Option Strict On
Option Explicit On

Public Class pieceWorkCalculatorForm
    'Declare the summary values we'll need to access later on at the module level
    Dim totalPiecesCompletedDecimal As Decimal = 0
    Dim totalAmountEarnedDecimal As Decimal = 0
    Dim numberOfEmployeesDecimal As Decimal = 0
    Dim averageEarnedDecimal As Decimal = 0

    Private Sub exitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitButton.Click
        'Confirm and exit the program
        Dim exitConfirmDialogResult As DialogResult

        exitConfirmDialogResult = MessageBox.Show("Are you sure you wish to exit?", "Exit Program", _
            MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)

        If exitConfirmDialogResult = Windows.Forms.DialogResult.Yes Then
            Me.Close()
        End If
    End Sub

    Private Sub calculateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calculateButton.Click
        'Declare all of the variables we'll need for this procedure
        Dim errorThrownBoolean As Boolean = False
        Dim errorMessageString As String = ""
        Dim pricePaidPerPieceDecimal As Decimal
        Dim piecesCompletedThisInteger As Integer = 0
        Dim amountEarnedCalculatedDecimal As Decimal

        'Let's do some error checking to be sure data has been entered. If not, toggle the error message to TRUE
        If Me.employeeNameTextBox.Text = "" Then
            errorThrownBoolean = True
            errorMessageString &= "Name is required" & ControlChars.NewLine
        End If
        If Me.piecesCompletedThisTextBox.Text = "" Then
            errorThrownBoolean = True
            errorMessageString &= "Pieces completed is required"
        End If
        'Display the error message(s) if it has been toggled to TRUE
        If errorThrownBoolean = True Then
            MessageBox.Show(errorMessageString, "Error entering data", _
                MessageBoxButtons.OK, MessageBoxIcon.Information)
            'No errors? Let's proceed with the program.
        Else
            Try
                'Convert string to decimal
                piecesCompletedThisInteger = Integer.Parse(Me.piecesCompletedThisTextBox.Text)
                Try
                    'I can't remember what this does. Oh God please let it work!
                    Select Case piecesCompletedThisInteger
                        Case 1I To 199I
                            pricePaidPerPieceDecimal = 0.5D
                        Case 200I To 399I
                            pricePaidPerPieceDecimal = 0.55D
                        Case 400I To 599I
                            pricePaidPerPieceDecimal = 0.6D
                        Case Is >= 600I
                            pricePaidPerPieceDecimal = 0.65D
                    End Select
                    'Oh, heh. Now I remember.

                    'Check for negative values
                    If piecesCompletedThisInteger < 0 Then
                        MessageBox.Show("Pieces completed cannot be less than 0", "Data entry error", _
                            MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Else
                        'Calculate and display the amount earned for this entry
                        amountEarnedCalculatedDecimal = (piecesCompletedThisInteger * pricePaidPerPieceDecimal)
                        Me.amountEarnedTextBox.Text = amountEarnedCalculatedDecimal.ToString("C")

                        'See totals. See totals run. Run totals, run!
                        Me.summaryButton.Enabled = True

                        totalPiecesCompletedDecimal = (totalPiecesCompletedDecimal + piecesCompletedThisInteger)
                        totalAmountEarnedDecimal = (totalAmountEarnedDecimal + amountEarnedCalculatedDecimal)
                        numberOfEmployeesDecimal = (numberOfEmployeesDecimal + 1)
                        averageEarnedDecimal = (totalAmountEarnedDecimal / numberOfEmployeesDecimal)
                    End If

                Catch ex As Exception
                    'I swear! My code is perfect! It can't possibly break ... but it did. I blame Visual Studio.
                    MessageBox.Show("Error when calculating value", "Data calculation error", _
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
            Catch ex As Exception
                'If this catch fires, the data type entered is text or a decimal
                MessageBox.Show("Pieces completed must be an integer", "Data entry error", _
                    MessageBoxButtons.OK, MessageBoxIcon.Information)
                With piecesCompletedThisTextBox
                    .Focus()
                    .Select()
                End With
            End Try
        End If
    End Sub

    Private Sub clearFormButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearFormButton.Click
        'Clear the CURRENT form and focus
        With Me.employeeNameTextBox
            .Text = ""
            .Focus()
        End With

        Me.piecesCompletedThisTextBox.Text = ""
        Me.amountEarnedTextBox.Text = ""
    End Sub

    Private Sub clearAllButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearAllButton.Click
        'Display a message box confirming the clear ALL
        Dim clearAllConfirmDialogResult As DialogResult

        clearAllConfirmDialogResult = MessageBox.Show("Are you sure you wish to clear all summary data?", "Clear Summary Data", _
            MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)

        If clearAllConfirmDialogResult = Windows.Forms.DialogResult.Yes Then
            'Call to the absolutely awesome procedure that Adam created already
            clearFormButton_Click(sender, e)
            'Reset the summary values
            totalPiecesCompletedDecimal = 0D
            totalAmountEarnedDecimal = 0D
            numberOfEmployeesDecimal = 0D
            averageEarnedDecimal = 0D
            Me.summaryButton.Enabled = False
        End If

    End Sub

    Private Sub summaryButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles summaryButton.Click
        'Display the summary box. This is it, folks. The program stops here.
        MessageBox.Show("Total Pieces Completed: " & totalPiecesCompletedDecimal & ControlChars.NewLine _
                        & "Total Amount Earned: " & totalAmountEarnedDecimal.ToString("C") & ControlChars.NewLine _
                        & "Average Amount Earned: " & averageEarnedDecimal.ToString("C"), _
                        "Piece Work Summary Data", _
                        MessageBoxButtons.OK, MessageBoxIcon.Information)


    End Sub

End Class
'EoF