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