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); }
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()); } }