Exemple #1
0
        public bool UpdateWorkTaskStatsTable()
        {
            bool     blnFatalError = false;
            DateTime datStartDate  = DateTime.Now;
            DateTime datEndDate    = DateTime.Now;
            int      intCounter;
            int      intNumberOfRecords;
            double   douHours;
            int      intTaskCounter;
            bool     blnItemFound;
            int      intWorkTaskID;
            decimal  decMean;
            decimal  decVariance;
            decimal  dectotalHours;
            int      intItems;
            string   strWorkTask;
            double   douTaskHours;
            decimal  decStandardDeviation;
            int      intRecordsReturned;
            decimal  decLimiter;

            try
            {
                TheWorkStatsDataSet.workstats.Rows.Clear();

                datEndDate = TheDateSearchClass.RemoveTime(datEndDate);

                datStartDate = TheDateSearchClass.SubtractingDays(datEndDate, 900);

                gintCounter        = 0;
                gdecTotal          = 0;
                gdecVariance       = 0;
                gintTaskUpperLimit = 0;

                TheFindLaborHoursByDateRangeDataSet = TheEmployeeProjectAssignmentClass.FindLaborHoursByDateRange(datStartDate, datEndDate);

                intNumberOfRecords = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange.Rows.Count - 1;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    if (TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours > 0)
                    {
                        intWorkTaskID = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].WorkTaskID;
                        blnItemFound  = false;

                        if (gintTaskUpperLimit > 0)
                        {
                            for (intTaskCounter = 0; intTaskCounter < gintTaskUpperLimit; intTaskCounter++)
                            {
                                if (intWorkTaskID == TheWorkStatsDataSet.workstats[intTaskCounter].WorkTaskID)
                                {
                                    blnItemFound = true;
                                    TheWorkStatsDataSet.workstats[intTaskCounter].HoursPerTask += TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours;
                                    TheWorkStatsDataSet.workstats[intTaskCounter].ItemCounter++;
                                }
                            }
                        }

                        gdecTotal += TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours;
                        gintCounter++;

                        if (blnItemFound == false)
                        {
                            WorkStatsDataSet.workstatsRow NewTaskRow = TheWorkStatsDataSet.workstats.NewworkstatsRow();

                            NewTaskRow.HoursPerTask      = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours;
                            NewTaskRow.ItemCounter       = 1;
                            NewTaskRow.Limiter           = 0;
                            NewTaskRow.Mean              = 0;
                            NewTaskRow.StandardDeviation = 0;
                            NewTaskRow.Variance          = 0;
                            NewTaskRow.WorkTask          = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].WorkTask;
                            NewTaskRow.WorkTaskID        = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].WorkTaskID;

                            TheWorkStatsDataSet.workstats.Rows.Add(NewTaskRow);
                            gintTaskUpperLimit++;
                        }
                    }
                }

                decVariance = 0;

                for (intTaskCounter = 0; intTaskCounter < gintTaskUpperLimit; intTaskCounter++)
                {
                    intItems      = TheWorkStatsDataSet.workstats[intTaskCounter].ItemCounter;
                    dectotalHours = TheWorkStatsDataSet.workstats[intTaskCounter].HoursPerTask;
                    intWorkTaskID = TheWorkStatsDataSet.workstats[intTaskCounter].WorkTaskID;
                    strWorkTask   = TheWorkStatsDataSet.workstats[intTaskCounter].WorkTask;

                    decMean = dectotalHours / intItems;

                    decMean = Math.Round(decMean, 4);

                    TheWorkStatsDataSet.workstats[intTaskCounter].Mean = decMean;

                    TheFindWorkTaskHoursDataSet = TheWorkTaskClass.FindWorkTaskHours(strWorkTask, datStartDate, datEndDate);

                    intNumberOfRecords = TheFindWorkTaskHoursDataSet.FindWorkTaskHours.Rows.Count - 1;

                    for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                    {
                        if (TheFindWorkTaskHoursDataSet.FindWorkTaskHours[intCounter].TotalHours > 0)
                        {
                            douTaskHours = Convert.ToDouble(TheFindWorkTaskHoursDataSet.FindWorkTaskHours[intCounter].TotalHours - decMean);

                            decVariance += Convert.ToDecimal(Math.Pow(douTaskHours, 2));
                        }
                    }

                    decVariance = decVariance / intItems;

                    decVariance = Math.Round(decVariance, 4);

                    decStandardDeviation = Math.Round(Convert.ToDecimal(Math.Sqrt(Convert.ToDouble(decVariance))), 4);

                    TheWorkStatsDataSet.workstats[intTaskCounter].Variance = decVariance;

                    TheWorkStatsDataSet.workstats[intTaskCounter].StandardDeviation = decStandardDeviation;

                    TheWorkStatsDataSet.workstats[intTaskCounter].Limiter = decMean + (5 * decStandardDeviation);
                }

                gdecMean = gdecTotal / gintCounter;

                gdecMean = Math.Round(gdecMean, 4);

                intNumberOfRecords = TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange.Rows.Count - 1;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    if (TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours > 0)
                    {
                        douHours = Convert.ToDouble(TheFindLaborHoursByDateRangeDataSet.FindLaborHoursByDateRange[intCounter].TotalHours - gdecMean);

                        gdecVariance += Convert.ToDecimal(Math.Pow(douHours, 2));
                    }
                }

                gdecVariance = gdecVariance / gintCounter;

                gdecStandardDeviation = Convert.ToDecimal(Math.Sqrt(Convert.ToDouble(gdecVariance)));

                gdecStandardDeviation = Math.Round(gdecStandardDeviation, 4);

                gdecLimiter = gdecMean + (gdecStandardDeviation * 5);

                //adding to the table
                intNumberOfRecords = TheWorkStatsDataSet.workstats.Rows.Count - 1;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    intWorkTaskID        = TheWorkStatsDataSet.workstats[intCounter].WorkTaskID;
                    decMean              = TheWorkStatsDataSet.workstats[intCounter].Mean;
                    decVariance          = TheWorkStatsDataSet.workstats[intCounter].Variance;
                    decStandardDeviation = TheWorkStatsDataSet.workstats[intCounter].StandardDeviation;
                    decLimiter           = TheWorkStatsDataSet.workstats[intCounter].Limiter;

                    TheFindWorkTaskStatsByTaskIDDataSet = TheWorkTaskStatsClass.FindWorkTaskStatsByTaskID(intWorkTaskID);

                    intRecordsReturned = TheFindWorkTaskStatsByTaskIDDataSet.FindWorkTaskStatsByWorkTaskID.Rows.Count;

                    if (intRecordsReturned > 0)
                    {
                        blnFatalError = TheWorkTaskStatsClass.UpdatetWorkTaskStats(intWorkTaskID, decMean, decVariance, decStandardDeviation, decLimiter);

                        if (blnFatalError == true)
                        {
                            throw new Exception();
                        }
                    }
                    if (intRecordsReturned == 0)
                    {
                        blnFatalError = TheWorkTaskStatsClass.InsertWorkTaskStats(intWorkTaskID, decMean, decVariance, decStandardDeviation, decLimiter);

                        if (blnFatalError == true)
                        {
                            throw new Exception();
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "Event Log Tracker // Update Work Task Stats Class // Update Work Task Stats Table " + Ex.Message);

                TheMessagesClass.ErrorMessage(Ex.ToString());

                blnFatalError = true;
            }

            return(blnFatalError);
        }
Exemple #2
0
        private void btnAddTask_Click(object sender, RoutedEventArgs e)
        {
            int    intCounter;
            int    intNumberOfRecords;
            string strValueForValidation;
            bool   blnFatalError      = false;
            bool   blnThereIsAProblem = false;
            string strErrorMessage    = "";
            int    intFootagePieces   = 0;
            int    intRecordsReturned = 0;
            double douProbability;
            double douMean;
            double douHoursEntered;
            bool   blnOverHours;

            try
            {
                btnResetEmployees.IsEnabled = false;
                btnResetTask.IsEnabled      = true;

                intNumberOfRecords = TheEmployeeWorkCompleteDataSet.workcompleted.Rows.Count - 1;

                if (intNumberOfRecords == -1)
                {
                    TheMessagesClass.ErrorMessage("There Are No Employees Assigned to this Project");
                    return;
                }
                if (cboSelectTask.SelectedIndex < 1)
                {
                    blnFatalError    = true;
                    strErrorMessage += "The Work Task was not Selected\n";
                }
                strValueForValidation = txtEnterHours.Text;
                blnThereIsAProblem    = TheDataValidationClass.VerifyDoubleData(strValueForValidation);
                if (blnThereIsAProblem == true)
                {
                    strErrorMessage += "Total Hours is not Numeric\n";
                    blnFatalError    = true;
                }
                else
                {
                    gdecHours = gdecTotalProjectHours;
                }
                strValueForValidation = txtEnterFootage.Text;
                blnThereIsAProblem    = TheDataValidationClass.VerifyIntegerData(strValueForValidation);
                if (blnThereIsAProblem == true)
                {
                    strErrorMessage += "The Footage or Pieces is not an Integer\n";
                    blnFatalError    = true;
                }
                else
                {
                    intFootagePieces = Convert.ToInt32(strValueForValidation);
                }
                strValueForValidation = txtEnterDate.Text;
                blnThereIsAProblem    = TheDataValidationClass.VerifyDateData(strValueForValidation);
                if (blnThereIsAProblem == true)
                {
                    blnFatalError    = true;
                    strErrorMessage += "The Date is not a Date\n";
                }
                if (blnFatalError == true)
                {
                    TheMessagesClass.ErrorMessage(strErrorMessage);
                    return;
                }

                if (gblnHoursEntered == true)
                {
                    gdecHours = 0;
                }

                TheFindWorkTaskStatsByTaskIDDataSet = TheWorkTaskStatsClass.FindWorkTaskStatsByTaskID(MainWindow.gintWorkTaskID);

                intRecordsReturned = TheFindWorkTaskStatsByTaskIDDataSet.FindWorkTaskStatsByWorkTaskID.Rows.Count;

                if (intRecordsReturned > 0)
                {
                    douMean         = Convert.ToDouble(TheFindWorkTaskStatsByTaskIDDataSet.FindWorkTaskStatsByWorkTaskID[0].TaskMean);
                    douHoursEntered = Convert.ToDouble(gdecHours);

                    douProbability = CalculatePropability(douMean, douHoursEntered);


                    if (douProbability < .0001)
                    {
                        TheMessagesClass.ErrorMessage("The Hours Entered Are Outside Expected Range\nPlease Return Return Sheet To Manager");
                        return;
                    }
                }



                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    blnOverHours = CheckEmployeeTotalHours(TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].EmployeeID, gdecHours);

                    if (blnOverHours == true)
                    {
                        TheMessagesClass.ErrorMessage(TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].FirstName + " " + TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].LastName + " Has Worked Over 16 Hours\nPlease Return Sheet To Manager");

                        return;
                    }

                    ProjectWorkCompletedDataSet.workcompletedRow NewWorkRow = TheProjectWorkCompletedDataSet.workcompleted.NewworkcompletedRow();

                    NewWorkRow.AssignedProjectID = TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].AssignedProjectID;
                    NewWorkRow.EmployeeID        = TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].EmployeeID;
                    NewWorkRow.FirstName         = TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].FirstName;
                    NewWorkRow.LastName          = TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].LastName;
                    NewWorkRow.ProjectID         = TheEmployeeWorkCompleteDataSet.workcompleted[intCounter].ProjectID;
                    NewWorkRow.TaskID            = MainWindow.gintWorkTaskID;
                    NewWorkRow.WorkTask          = MainWindow.gstrWorkTask;
                    NewWorkRow.Hours             = gdecHours;
                    NewWorkRow.FootagePieces     = intFootagePieces;

                    TheProjectWorkCompletedDataSet.workcompleted.Rows.Add(NewWorkRow);
                    gblnHoursEntered = true;

                    txtEnterFootage.Text = "";
                    txtEnterTask.Text    = "";

                    txtEnterTask.Focus();
                }


                gintTaskCounter++;
                dgrTransactions.ItemsSource = TheProjectWorkCompletedDataSet.workcompleted;
            }
            catch (Exception Ex)
            {
                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "New Blue Jay ERP // Add Project Labor // Add Task Button " + Ex.Message);

                TheSendEmailClass.SendEventLog("New Blue Jay ERP // Add Project Labor // Add Task Button " + Ex.ToString());

                TheMessagesClass.ErrorMessage(Ex.ToString());
            }
        }