public List <EmployeeWorkWeek> GetHours(int week, Year y)
        {
            List <DateTime> wholeWeek = y.GetWeekStartFinish(week);

            DateTime startWeek  = wholeWeek[0];
            DateTime finishWeek = wholeWeek[1];

            List <EmployeeWorkWeek> workHours = new List <EmployeeWorkWeek>();

            DateTime enStartWeek = startWeek;

            while (enStartWeek <= finishWeek)
            {
                workHours.Add(new EmployeeWorkWeek {
                    StoreId = mStoreId, Date = enStartWeek, Day = enStartWeek.DayOfWeek.ToString(), StartTime = "00:00:00", FinishTime = "00:00:00", RotaStartTime = "00:00:00", RotaFinishTime = "00:00:00", LunchTime = "00:00:00"
                });
                enStartWeek = enStartWeek.AddDays(1);
            }

            workHours = mDBConnection.GetEmployeeWorkWeek(workHours, mId, mStoreId, startWeek, finishWeek);

            foreach (EmployeeWorkWeek workDay in workHours)
            {
                foreach (EmployeeHoliday holiday in mHolidayDays)
                {
                    if (workDay.Date.Equals(holiday.Date) && holiday.State == "Approved")
                    {
                        workDay.StoreId = "Holiday";
                    }
                }
            }

            return(workHours);
        }
        public PayrollData GetEmployeePayroll(int week, Year year)
        {
            List <DateTime> wholeWeek = year.GetWeekStartFinish(week);

            DateTime startWeek  = wholeWeek[0];
            DateTime finishWeek = wholeWeek[1];

            string fullName = mFirstName + " " + mLastName;

            PayrollData payrollData = mDBConnection.GetEmployeePayroll(mId, mStoreId, startWeek, finishWeek, fullName);

            payrollData.EmployeeName  = fullName;
            payrollData.ContractHours = mContractHours;
            if (payrollData.HoursWorked < payrollData.ContractHours)
            {
                payrollData.HolidayHours = Math.Round(payrollData.ContractHours - payrollData.HoursWorked, 2);
            }
            else
            {
                payrollData.HolidayHours = 0;
            }
            return(payrollData);
        }
Exemple #3
0
        public void ExportWorkRota(int weekNo, Year year)
        {
            Excel.Application excelApplication = new Excel.Application();
            if (excelApplication != null)
            {
                Excel.Workbook  excelFileBook;
                Excel.Worksheet excelFileSheet;
                object          misValue = System.Reflection.Missing.Value;

                excelFileBook  = excelApplication.Workbooks.Add(misValue);
                excelFileSheet = (Excel.Worksheet)excelFileBook.Worksheets.get_Item(1);

                List <DateTime> weekStartFinish = year.GetWeekStartFinish(weekNo);
                DateTime        startDate       = weekStartFinish[0];
                DateTime        finishDate      = weekStartFinish[1];

                int      loopIndex     = 2;
                DateTime tempStartDate = startDate;
                while (tempStartDate <= finishDate)
                {
                    //input date at top of screen
                    excelFileSheet.Cells[1, loopIndex] = "'" + tempStartDate.ToShortDateString();
                    tempStartDate = tempStartDate.AddDays(1);
                    loopIndex++;
                }

                int xLoop = 2;
                int yLoop = 2;
                List <EmployeeWorkWeek> employeeRota;
                foreach (Employee emp in mEmployees)
                {
                    excelFileSheet.Cells[yLoop, 1] = emp.Name;

                    employeeRota = emp.GetHours(weekNo, year);

                    tempStartDate = startDate;
                    foreach (EmployeeWorkWeek workWeek in employeeRota)
                    {
                        if (workWeek.StoreId == mStoreId)
                        {
                            string displayData = workWeek.RotaStartTime + " - " + workWeek.RotaFinishTime;
                            excelFileSheet.Cells[yLoop, xLoop] = displayData;
                            xLoop++;
                        }
                        else if (workWeek.StoreId == "Holiday")
                        {
                            string displayData = "Holiday";
                            excelFileSheet.Cells[yLoop, xLoop] = displayData;
                            xLoop++;
                        }
                        else
                        {
                            string displayData = "00:00:00 - 00:00:00";
                            excelFileSheet.Cells[yLoop, xLoop] = displayData;
                            xLoop++;
                        }
                    }

                    xLoop = 2;
                    yLoop++;
                }

                excelFileSheet.Columns.AutoFit();

                try
                {
                    excelFileBook.SaveAs(mExcelDirectory + "\\WorkWeek.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                    mSavedExcelSuccess = true;
                }
                catch (Exception e)
                {
                    //open window to save
                }

                if (!excelFileBook.Saved)
                {
                    mSavedExcelSuccess = false;
                }

                excelFileBook.Close(0);
                excelApplication.Quit();

                Marshal.ReleaseComObject(excelFileSheet);
                Marshal.ReleaseComObject(excelFileBook);
                Marshal.ReleaseComObject(excelApplication);
            }
            else
            {
                mSavedExcelSuccess = false;
                //EXCEL not installed on system
            }

            notifyExcelObservers();
        }