private void dgrResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataGrid     dataGrid;
            DataGridRow  selectedRow;
            DataGridCell WorkTask;
            DataGridCell TransactionDate;
            string       strWorkTask;
            string       strTransactionDate;
            DateTime     datTransactionDate;
            int          intCounter;
            int          intNumberOfRecords;

            try
            {
                if (dgrResults.SelectedIndex > -1)
                {
                    //setting local variable
                    dataGrid           = dgrResults;
                    selectedRow        = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(dataGrid.SelectedIndex);
                    WorkTask           = (DataGridCell)dataGrid.Columns[3].GetCellContent(selectedRow).Parent;
                    TransactionDate    = (DataGridCell)dataGrid.Columns[1].GetCellContent(selectedRow).Parent;
                    strWorkTask        = ((TextBlock)WorkTask.Content).Text;
                    strTransactionDate = ((TextBlock)TransactionDate.Content).Text;
                    datTransactionDate = Convert.ToDateTime(strTransactionDate);
                    datTransactionDate = TheDataSearchClass.RemoveTime(datTransactionDate);

                    TheFindWorkTaskByWorkTaskDataSet = TheWorkTaskClass.FindWorkTaskByWorkTask(strWorkTask);

                    MainWindow.gintWorkTaskID = TheFindWorkTaskByWorkTaskDataSet.FindWorkTaskByWorkTask[0].WorkTaskID;

                    TheFindCrewProductivityForATaskDataSet = TheEmployeeCrewAssignmentClass.FindCrewProductivityForATask(MainWindow.gintProjectID, MainWindow.gintWorkTaskID, datTransactionDate, datTransactionDate);

                    intNumberOfRecords = TheFindCrewProductivityForATaskDataSet.FindCrewProductivtyForATask.Rows.Count - 1;

                    TheProjectEmployeeHoursDataSet.employees.Rows.Clear();

                    for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                    {
                        MainWindow.gintWorkTaskID = TheFindCrewProductivityForATaskDataSet.FindCrewProductivtyForATask[intCounter].TaskID;
                        MainWindow.gintEmployeeID = TheFindCrewProductivityForATaskDataSet.FindCrewProductivtyForATask[intCounter].EmployeeID;

                        TheFindEmployeeByEmployeeIDDataSet = TheEmployeeClass.FindEmployeeByEmployeeID(MainWindow.gintEmployeeID);

                        TheFindWorkTaskByTaskIDDataSet = TheWorkTaskClass.FindWorkTaskByWorkTaskID(MainWindow.gintWorkTaskID);

                        ProjectEmployeeHoursDataSet.employeesRow NewEmployeeRow = TheProjectEmployeeHoursDataSet.employees.NewemployeesRow();

                        NewEmployeeRow.FirstName       = TheFindEmployeeByEmployeeIDDataSet.FindEmployeeByEmployeeID[0].FirstName;
                        NewEmployeeRow.LastName        = TheFindEmployeeByEmployeeIDDataSet.FindEmployeeByEmployeeID[0].LastName;
                        NewEmployeeRow.TotalHours      = TheFindCrewProductivityForATaskDataSet.FindCrewProductivtyForATask[intCounter].EmployeeTotalHours;
                        NewEmployeeRow.TransactionDate = TheFindCrewProductivityForATaskDataSet.FindCrewProductivtyForATask[intCounter].TransactionDate;
                        NewEmployeeRow.WorkTask        = TheFindWorkTaskByTaskIDDataSet.FindWorkTaskByWorkTaskID[0].WorkTask;

                        TheProjectEmployeeHoursDataSet.employees.Rows.Add(NewEmployeeRow);
                    }

                    dgrEmployees.ItemsSource = TheProjectEmployeeHoursDataSet.employees;
                }
            }
            catch (Exception Ex)
            {
                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "Blue Jay ERP // Send Vehicle To Shop // Grid Selection " + Ex.Message);

                TheMessagesClass.ErrorMessage(Ex.ToString());
            }
        }
        private void mitGenerateReport_Click(object sender, RoutedEventArgs e)
        {
            string   strProjectID;
            int      intRecordsReturned;
            int      intCounter;
            int      intNumberOfRecords;
            string   strFirstName;
            string   strLastName;
            DateTime datTransactionDate;
            string   strWorkTask;
            int      intSecondCounter;
            int      intSecondNumberOfRecords;
            bool     blnItemFound;
            int      intTaskCounter;
            DateTime datStartDate = DateTime.Now;

            PleaseWait PleaseWait = new PleaseWait();

            PleaseWait.Show();

            try
            {
                TheProjectDailyTaskDataSet.projecttask.Rows.Clear();
                TheProjectEmployeeHoursDataSet.employees.Rows.Clear();
                strProjectID = txtEnterProjectID.Text;
                if (strProjectID == "")
                {
                    TheMessagesClass.ErrorMessage("Project ID Was Not Entered");
                    PleaseWait.Close();
                    return;
                }

                gdecTotalHours = 0;
                TheEmployeeCrewDataSet.employeework.Rows.Clear();

                TheFindProjectByAssignedProjectIDDataSet = TheProjectClass.FindProjectByAssignedProjectID(strProjectID);

                intRecordsReturned = TheFindProjectByAssignedProjectIDDataSet.FindProjectByAssignedProjectID.Rows.Count;

                if (intRecordsReturned == 0)
                {
                    TheMessagesClass.InformationMessage("Project Was Not Found");
                    PleaseWait.Close();
                    return;
                }

                MainWindow.gintProjectID = TheFindProjectByAssignedProjectIDDataSet.FindProjectByAssignedProjectID[0].ProjectID;

                TheFindProjectTaskHoursByAssignedProjectIDDataSet = TheProjectTaskClass.FindProjectTaskHoursByAssignedProjectID(strProjectID);

                datStartDate = TheDataSearchClass.SubtractingDays(datStartDate, 1200);

                TheFindProjectHoursDataSet = TheEmployeeProjectAssignmentClass.FindProjectHours(MainWindow.gintProjectID, datStartDate);

                intNumberOfRecords = TheFindProjectHoursDataSet.FindProjectHours.Rows.Count - 1;

                intSecondNumberOfRecords = 0;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    strFirstName       = TheFindProjectHoursDataSet.FindProjectHours[intCounter].FirstName;
                    strLastName        = TheFindProjectHoursDataSet.FindProjectHours[intCounter].LastName;
                    strWorkTask        = TheFindProjectHoursDataSet.FindProjectHours[intCounter].WorkTask;
                    datTransactionDate = TheFindProjectHoursDataSet.FindProjectHours[intCounter].TransactionDate;
                    blnItemFound       = false;

                    gdecTotalHours += TheFindProjectHoursDataSet.FindProjectHours[intCounter].TotalHours;

                    if (intSecondNumberOfRecords > 0)
                    {
                        for (intSecondCounter = 0; intSecondCounter < intSecondNumberOfRecords; intSecondCounter++)
                        {
                            if (datTransactionDate == TheEmployeeCrewDataSet.employeework[intSecondCounter].TransactionDate)
                            {
                                if (strFirstName == TheEmployeeCrewDataSet.employeework[intSecondCounter].FirstName)
                                {
                                    if (strLastName == TheEmployeeCrewDataSet.employeework[intSecondCounter].LastName)
                                    {
                                        if (strWorkTask == TheEmployeeCrewDataSet.employeework[intSecondCounter].WorkTask)
                                        {
                                            blnItemFound = true;
                                            TheEmployeeCrewDataSet.employeework[intSecondCounter].Hours += TheFindProjectHoursDataSet.FindProjectHours[intCounter].TotalHours;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (blnItemFound == false)
                    {
                        EmployeeCrewDataSet.employeeworkRow NewEmployeeRow = TheEmployeeCrewDataSet.employeework.NewemployeeworkRow();

                        NewEmployeeRow.AssignedProjectID = TheFindProjectByAssignedProjectIDDataSet.FindProjectByAssignedProjectID[0].AssignedProjectID;
                        NewEmployeeRow.Crew            = "";
                        NewEmployeeRow.FirstName       = strFirstName;
                        NewEmployeeRow.FootagePieces   = 0;
                        NewEmployeeRow.Hours           = TheFindProjectHoursDataSet.FindProjectHours[intCounter].TotalHours;
                        NewEmployeeRow.LastName        = strLastName;
                        NewEmployeeRow.ProjectName     = TheFindProjectByAssignedProjectIDDataSet.FindProjectByAssignedProjectID[0].ProjectName;
                        NewEmployeeRow.TransactionDate = datTransactionDate;
                        NewEmployeeRow.WorkTask        = strWorkTask;

                        TheEmployeeCrewDataSet.employeework.Rows.Add(NewEmployeeRow);
                        intSecondNumberOfRecords++;
                    }
                }

                intNumberOfRecords = intSecondNumberOfRecords - 1;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    strFirstName       = TheEmployeeCrewDataSet.employeework[intCounter].FirstName;
                    strLastName        = TheEmployeeCrewDataSet.employeework[intCounter].LastName;
                    strWorkTask        = TheEmployeeCrewDataSet.employeework[intCounter].WorkTask;
                    datTransactionDate = TheEmployeeCrewDataSet.employeework[intCounter].TransactionDate;

                    TheFindWorkTaskByWorkTaskDataSet = TheWorkTaskClass.FindWorkTaskByWorkTask(strWorkTask);

                    MainWindow.gintWorkTaskID = TheFindWorkTaskByWorkTaskDataSet.FindWorkTaskByWorkTask[0].WorkTaskID;

                    MainWindow.gintEmployeeID = FindEmployeeID(strFirstName, strLastName);

                    if (MainWindow.gintEmployeeID == -1)
                    {
                        throw new Exception();
                    }

                    TheFindProjectWorkTaskDataSet = TheProjectTaskClass.FindProjectWorkTask(MainWindow.gintProjectID, MainWindow.gintEmployeeID, MainWindow.gintWorkTaskID, datTransactionDate, datTransactionDate);

                    intSecondNumberOfRecords = TheFindProjectWorkTaskDataSet.FindProjectWorkTask.Rows.Count - 1;

                    for (intSecondCounter = 0; intSecondCounter <= intSecondNumberOfRecords; intSecondCounter++)
                    {
                        TheEmployeeCrewDataSet.employeework[intCounter].FootagePieces += TheFindProjectWorkTaskDataSet.FindProjectWorkTask[intSecondCounter].FootagePieces;
                    }

                    TheFindEmployeeCrewAssignmentByDateRange = TheEmployeeCrewAssignmentClass.FindEmployeeCrewAssignmentByDateRange(MainWindow.gintEmployeeID, datTransactionDate, datTransactionDate);

                    intSecondNumberOfRecords = TheFindEmployeeCrewAssignmentByDateRange.FindEmployeeCrewAssignmentByDateRange.Rows.Count - 1;

                    for (intSecondCounter = 0; intSecondCounter <= intSecondNumberOfRecords; intSecondCounter++)
                    {
                        if (strProjectID == TheFindEmployeeCrewAssignmentByDateRange.FindEmployeeCrewAssignmentByDateRange[intSecondCounter].AssignedProjectID)
                        {
                            TheEmployeeCrewDataSet.employeework[intCounter].Crew = TheFindEmployeeCrewAssignmentByDateRange.FindEmployeeCrewAssignmentByDateRange[intSecondCounter].CrewID;
                        }
                    }
                }


                intNumberOfRecords  = TheEmployeeCrewDataSet.employeework.Rows.Count - 1;
                gintTaskCounter     = 0;
                gintTaskUIpperLimit = 0;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    blnItemFound       = false;
                    strWorkTask        = TheEmployeeCrewDataSet.employeework[intCounter].WorkTask;
                    datTransactionDate = TheEmployeeCrewDataSet.employeework[intCounter].TransactionDate;

                    if (gintTaskCounter > 0)
                    {
                        for (intTaskCounter = 0; intTaskCounter <= gintTaskUIpperLimit; intTaskCounter++)
                        {
                            if (datTransactionDate == TheProjectDailyTaskDataSet.projecttask[intTaskCounter].TransactionDate)
                            {
                                if (strWorkTask == TheProjectDailyTaskDataSet.projecttask[intTaskCounter].WorkTask)
                                {
                                    TheProjectDailyTaskDataSet.projecttask[intTaskCounter].Hours += TheEmployeeCrewDataSet.employeework[intCounter].Hours;
                                    blnItemFound = true;

                                    if (TheProjectDailyTaskDataSet.projecttask[intTaskCounter].Footage == 0)
                                    {
                                        TheProjectDailyTaskDataSet.projecttask[intTaskCounter].Footage = TheEmployeeCrewDataSet.employeework[intCounter].FootagePieces;
                                    }
                                }
                            }
                        }
                    }

                    if (blnItemFound == false)
                    {
                        ProjectDailyTaskDataSet.projecttaskRow NewTaskRow = TheProjectDailyTaskDataSet.projecttask.NewprojecttaskRow();

                        NewTaskRow.Crew            = TheEmployeeCrewDataSet.employeework[intCounter].Crew;
                        NewTaskRow.Footage         = TheEmployeeCrewDataSet.employeework[intCounter].FootagePieces;
                        NewTaskRow.Hours           = TheEmployeeCrewDataSet.employeework[intCounter].Hours;
                        NewTaskRow.TransactionDate = TheEmployeeCrewDataSet.employeework[intCounter].TransactionDate;
                        NewTaskRow.WorkTask        = TheEmployeeCrewDataSet.employeework[intCounter].WorkTask;

                        TheProjectDailyTaskDataSet.projecttask.Rows.Add(NewTaskRow);
                        gintTaskUIpperLimit = gintTaskCounter;
                        gintTaskCounter++;
                    }
                }

                txtTotalHours.Text = Convert.ToString(gdecTotalHours);

                intNumberOfRecords = TheFindProjectTaskHoursByAssignedProjectIDDataSet.FindProjectTaskHoursByAssignedProjectID.Rows.Count - 1;

                for (intCounter = 0; intCounter <= intNumberOfRecords; intCounter++)
                {
                    MainWindow.gintWorkTaskID = TheFindProjectTaskHoursByAssignedProjectIDDataSet.FindProjectTaskHoursByAssignedProjectID[intCounter].TaskID;
                    MainWindow.gintEmployeeID = TheFindProjectTaskHoursByAssignedProjectIDDataSet.FindProjectTaskHoursByAssignedProjectID[intCounter].EmployeeID;

                    TheFindEmployeeByEmployeeIDDataSet = TheEmployeeClass.FindEmployeeByEmployeeID(MainWindow.gintEmployeeID);

                    TheFindWorkTaskByTaskIDDataSet = TheWorkTaskClass.FindWorkTaskByWorkTaskID(MainWindow.gintWorkTaskID);

                    ProjectEmployeeHoursDataSet.employeesRow NewEmployeeRow = TheProjectEmployeeHoursDataSet.employees.NewemployeesRow();

                    NewEmployeeRow.FirstName       = TheFindEmployeeByEmployeeIDDataSet.FindEmployeeByEmployeeID[0].FirstName;
                    NewEmployeeRow.LastName        = TheFindEmployeeByEmployeeIDDataSet.FindEmployeeByEmployeeID[0].LastName;
                    NewEmployeeRow.TotalHours      = TheFindProjectTaskHoursByAssignedProjectIDDataSet.FindProjectTaskHoursByAssignedProjectID[intCounter].EmployeeTotalHours;
                    NewEmployeeRow.TransactionDate = TheFindProjectTaskHoursByAssignedProjectIDDataSet.FindProjectTaskHoursByAssignedProjectID[intCounter].TransactionDate;
                    NewEmployeeRow.WorkTask        = TheFindWorkTaskByTaskIDDataSet.FindWorkTaskByWorkTaskID[0].WorkTask;

                    TheProjectEmployeeHoursDataSet.employees.Rows.Add(NewEmployeeRow);
                }

                dgrResults.ItemsSource   = TheProjectDailyTaskDataSet.projecttask;
                dgrEmployees.ItemsSource = TheProjectEmployeeHoursDataSet.employees;
                bool blnFatalError = TheEmployeeDateEntryClass.InsertIntoEmployeeDateEntry(MainWindow.TheVerifyLogonDataSet.VerifyLogon[0].EmployeeID, "Blue Jay ERP // Find Project Employee Hours // Generate Report Menu Item ");
            }
            catch (Exception Ex)
            {
                PleaseWait.Close();

                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "Blue Jay ERP // Find Project Employee Hours // Generate Report Menu Item " + Ex.Message);

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

            PleaseWait.Close();
        }