public IEnumerable <TimeSheetJson> GetPreviousPeriod(WorkHourJson workHourJson) { List <TimeSheetJson> result = new List <TimeSheetJson>(); if (workHourJson == null) { workHourJson = new WorkHourJson(); workHourJson.Date = DateTime.Now; } var startDate = workHourJson.Date; UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); ProjectManager projectManager = new Domain.ProjectManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); //SyncWithPWA(uow); User currUser = new UserHelper().GetCurrent(); DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currUser); var dt = startDate.AddDays(-1); DateTime fromDate = dt.AddDays(-displayPeriod.NumOfDays); DateTime toDate = dt; if (displayPeriod.IsWeekly) { fromDate = dt.StartOfWeek(DayOfWeek.Saturday); toDate = dt.EndOfWeek(DayOfWeek.Friday); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForRegister(presHours, workHours); } else { IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); if (presHours.Count() < displayPeriod.NumOfDays) { fromDate = timeSheetManager.GetFirstPresenceHour().Date; toDate = fromDate.AddDays(displayPeriod.NumOfDays); presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); } result = TimeSheetAssembler.ToJsonsForRegister(presHours, workHours); } return(result); }
public IEnumerable <TimeSheetJson> GetCurrentPeriodConfirm(List <TimeSheetValueJson> workHourJsons) { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); //SyncWithPWA(uow); User currUser = new UserHelper().GetCurrent(); User user = userManager.GetByID(Guid.Parse(workHourJsons[0].UserId)); DateTime fromDate = workHourJsons[0].Date; DateTime toDate = workHourJsons[workHourJsons.Count() - 1].Date;; IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); return(result); }
public IEnumerable <TimeSheetJson> GetTimeSheetsByUserIdForFirstTime(Guid userID) { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); ProjectManager projectManager = new Domain.ProjectManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); User currentUser = new UserHelper().GetCurrent(); User user = userManager.GetByID(userID); DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currentUser); DateTime fromDate = DateTime.Now.AddDays(-7); DateTime toDate = DateTime.Now; if (displayPeriod.IsWeekly) { fromDate = DateTime.Today.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Today.EndOfWeek(DayOfWeek.Friday); } else { toDate = fromDate.AddDays(displayPeriod.NumOfDays); } IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(user, fromDate, toDate); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(user, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); return(result); }
public IEnumerable <WorkHourOnProjecstJson> GetThisPeriodProjectsByUserId(GetThisMonthDataByUserJson json) { List <WorkHourOnProjecstJson> result = new List <WorkHourOnProjecstJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); User currUser = userManager.GetByID(Guid.Parse(json.userid)); DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currUser); DateTime fromDate = json.values[0].Date; DateTime toDate = json.values[json.values.Count() - 1].Date; var all = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); foreach (var item in all.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList()) { var addItem = new WorkHourOnProjecstJson(); addItem.ProjectId = item.ProjectId; addItem.Title = item.Project.Title; var hour = all.Where(a => a.ProjectId == item.ProjectId).Sum(d => d.Hours); addItem.Hour = DateUtility.ConvertToTimeSpan(hour); result.Add(addItem); } return(result); }
public IEnumerable <WorkHourJson> GetWorkHoursByDate(WorkHourJson WorkHourJson) { var result = new List <WorkHourJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); User currUser = new UserHelper().GetCurrent(); result = new WorkHourAssembler().ToJsons(timeSheetManager.GetWorkHoursByUser(currUser, WorkHourJson.Date, WorkHourJson.Date)).ToList(); return(result); }
public IEnumerable <TimeSheetJson> GetCurrentPeriod(List <TimeSheetValueJson> workHourJsons) { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); User currUser = new UserHelper().GetCurrent(); DateTime fromDate = workHourJsons[0].Date; DateTime toDate = workHourJsons[workHourJsons.Count() - 1].Date; IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForRegister(presHours, workHours); return(result); }
public IEnumerable <WorkHourOnProjecstJson> GetThisMonthProjectsByUserID(GetThisMonthDataByUserJson json) { List <WorkHourOnProjecstJson> result = new List <WorkHourOnProjecstJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); //SyncWithPWA(uow); User User = userManager.GetByID(Guid.Parse(json.userid)); var all = timeSheetManager.GetWorkHoursByUser(User.ID, json.value.Date); foreach (var item in all.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList()) { var addItem = new WorkHourOnProjecstJson(); addItem.ProjectId = item.ProjectId; addItem.Title = item.Project.Title; var hour = all.Where(a => a.ProjectId == item.ProjectId).Sum(d => d.Hours); addItem.Hour = DateUtility.ConvertToTimeSpan(hour); result.Add(addItem); } return(result); }
public IEnumerable <TimeSheetJson> GetTimeSheetsByUserId(GetThisMonthDataByUserJson json) { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); ProjectManager projectManager = new Domain.ProjectManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); User currentUser = new UserHelper().GetCurrent(); User user = userManager.GetByID(Guid.Parse(json.userid.ToString())); DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currentUser); DateTime fromDate = DateTime.Now.AddDays(-7); DateTime toDate; if (json.values != null) { if (json.values.Count > 0) { fromDate = json.values[0].Date; toDate = json.values[json.values.Count() - 1].Date; } } if (displayPeriod.IsWeekly) { fromDate = DateTime.Today.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Today.EndOfWeek(DayOfWeek.Friday); } else { toDate = fromDate.AddDays(displayPeriod.NumOfDays); } IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(user, fromDate, toDate); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(user, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); return(result); }
public IEnumerable <TimeSheetJson> GetTimeSheetsByDateAndNumberOfDay(PeriodNumberDateJson period) { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); ProjectManager projectManager = new Domain.ProjectManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); var displayPeriod = DisplayPeriodUtilities.ConvertPeriodNumberDateJsonToDisplayPeriod(period); //SyncWithPWA(uow); User currUser = new UserHelper().GetCurrent(); displayPeriodMnager.Save(displayPeriod); DateTime fromDate = displayPeriod.StartDate; DateTime toDate = fromDate.AddDays(displayPeriod.NumOfDays); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForRegister(presHours, workHours); return(result); }
public IEnumerable <TimeSheetJson> GetTimeSheets() { List <TimeSheetJson> result = new List <TimeSheetJson>(); UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); ProjectManager projectManager = new Domain.ProjectManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); User currUser = new UserHelper().GetCurrent(); DateTime fromDate; DateTime toDate = DateTime.MaxValue; DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currUser); if (displayPeriod != null) { fromDate = displayPeriod.StartDate; if (displayPeriod.IsWeekly) { fromDate = DateTime.Today.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Today.EndOfWeek(DayOfWeek.Friday); } else { toDate = fromDate.AddDays(displayPeriod.NumOfDays); } } else { fromDate = DateTime.Today.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Today.EndOfWeek(DayOfWeek.Friday); } IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForRegister(presHours, workHours); return(result); }
public FinalReport AssembleDailyOnProjects(ReportParametersFromToJson parametres) { var result = new FinalReport(); UnitOfWork uow = new UnitOfWork(); var currentUser = new UserHelper().GetCurrent(); TimeSheetManager TimeSheetManager = new TimeSheetManager(uow); var from = DateUtility.GetMiladiDate(parametres.FromDate); var to = DateUtility.GetMiladiDate(parametres.ToDate); var currentDate = from; var workHours = TimeSheetManager.GetWorkHoursByUser(currentUser, from, to); //سطر ها while (currentDate.Date <= to) { var row = new ReportRow(); row.ID = Guid.NewGuid(); row.Title = DateUtility.GetPersianDate(currentDate); result.Rowes.Add(row); currentDate = currentDate.AddDays(1).Date; } var SumTotal = new ReportRow(); SumTotal.ID = Guid.NewGuid(); SumTotal.Title = "جمع کل"; result.Rowes.Add(SumTotal); //ستون ها foreach (var wh in workHours.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList()) { var field = new Field(); field.ID = wh.ProjectId; field.Title = wh.Project.Title; result.Fields.Add(field); foreach (var row in result.Rowes) { if (row.Title == "جمع کل") { var sumWorkHour = workHours.Where(x => x.ProjectId == wh.ProjectId).Sum(x => x.Hours); var fieldValuesumWorkHour = new FieldValue(); fieldValuesumWorkHour.CalculativeValue = sumWorkHour; fieldValuesumWorkHour.FieldId = field.ID; fieldValuesumWorkHour.RowId = row.ID; fieldValuesumWorkHour.Value = DateUtility.ConvertToTimeSpan(sumWorkHour); row.Values.Add(fieldValuesumWorkHour); } else { var sumWorkHour = workHours.Where(x => x.Date == DateUtility.GetMiladiDate(row.Title) && x.ProjectId == wh.ProjectId).Sum(x => x.Hours); var fieldValuesumWorkHour = new FieldValue(); fieldValuesumWorkHour.CalculativeValue = sumWorkHour; fieldValuesumWorkHour.FieldId = field.ID; fieldValuesumWorkHour.RowId = row.ID; fieldValuesumWorkHour.Value = DateUtility.ConvertToTimeSpan(sumWorkHour); row.Values.Add(fieldValuesumWorkHour); } } } var Aggregation = new Field(); Aggregation.Title = "جمع کارکرد"; Aggregation.ID = Guid.NewGuid(); result.Fields.Add(Aggregation); var PresenceTotal = new Field(); PresenceTotal.Title = "جمع حضور"; PresenceTotal.ID = Guid.NewGuid(); result.Fields.Add(PresenceTotal); var DifferenceTotal = new Field(); DifferenceTotal.Title = "جمع اختلاف"; DifferenceTotal.ID = Guid.NewGuid(); result.Fields.Add(DifferenceTotal); foreach (var row in result.Rowes) { if (row.Title == "جمع کل") { var sumworkHourTotal = workHours.Sum(X => X.Hours); var fildvalueWork = new FieldValue(); fildvalueWork.FieldId = Guid.NewGuid(); fildvalueWork.RowId = row.ID; fildvalueWork.Value = DateUtility.ConvertToTimeSpan(sumworkHourTotal); row.Values.Add(fildvalueWork); double sumPresenceHourTotal = 0; sumPresenceHourTotal = TimeSheetManager.GetPresHoursByUser(currentUser, from, to).Sum(x => x.Hours); var fildvaluePresenceTotal = new FieldValue(); fildvaluePresenceTotal.FieldId = Guid.NewGuid(); fildvaluePresenceTotal.RowId = row.ID; fildvaluePresenceTotal.Value = DateUtility.ConvertToTimeSpan(sumPresenceHourTotal); row.Values.Add(fildvaluePresenceTotal); var fildvalueDifferencTotal = new FieldValue(); fildvalueDifferencTotal.FieldId = Guid.NewGuid(); fildvalueDifferencTotal.RowId = row.ID; fildvalueDifferencTotal.Value = DateUtility.ConvertToTimeSpan(sumPresenceHourTotal - sumworkHourTotal); row.Values.Add(fildvalueDifferencTotal); } else { var sumworkHour = row.Values.Sum(y => y.CalculativeValue); var fildvalueWork = new FieldValue(); fildvalueWork.FieldId = Guid.NewGuid(); fildvalueWork.RowId = row.ID; fildvalueWork.Value = DateUtility.ConvertToTimeSpan(sumworkHour); row.Values.Add(fildvalueWork); double sumPresenceHour = 0; sumPresenceHour = TimeSheetManager.GetPresenceHourByUserIdAndDate(currentUser.ID, DateUtility.GetMiladiDate(row.Title)) != null ? TimeSheetManager.GetPresenceHourByUserIdAndDate(currentUser.ID, DateUtility.GetMiladiDate(row.Title)).Hours : 0; var fildvaluePresence = new FieldValue(); fildvaluePresence.FieldId = Guid.NewGuid(); fildvaluePresence.RowId = row.ID; fildvaluePresence.Value = DateUtility.ConvertToTimeSpan(sumPresenceHour); row.Values.Add(fildvaluePresence); var fildvalueDifferenc = new FieldValue(); fildvalueDifferenc.FieldId = Guid.NewGuid(); fildvalueDifferenc.RowId = row.ID; fildvalueDifferenc.Value = DateUtility.ConvertToTimeSpan(sumPresenceHour - sumworkHour); row.Values.Add(fildvalueDifferenc); } } result.HeaderTitle = "گزارش روزانه پروژه ها"; result.FirstColumnTitle = "تاریخ"; return(result); }
public FinalReport AssembleTotalWorkHoursOnProjects(ReportParametersFromToJson parametres) { var result = new FinalReport(); UnitOfWork uow = new UnitOfWork(); var currentUser = new UserHelper().GetCurrent(); TimeSheetManager TimeSheetManager = new TimeSheetManager(uow); var workHours = TimeSheetManager.GetWorkHoursByUser (currentUser, DateUtility.GetMiladiDate(parametres.FromDate), DateUtility.GetMiladiDate(parametres.ToDate)).ToList(); var from = DateUtility.GetMiladiDate(parametres.FromDate); var to = DateUtility.GetMiladiDate(parametres.ToDate); var currentDate = from; foreach (var group in workHours.GroupBy(x => x.ProjectId)) { var row = new ReportRow(); row.ID = group.First().ProjectId; row.Title = group.First().Project.Title; result.Rowes.Add(row); } var SumTotal = new ReportRow(); SumTotal.ID = Guid.NewGuid(); SumTotal.Title = "جمع کل"; result.Rowes.Add(SumTotal); var field = new Field(); field.ID = Guid.NewGuid(); field.Title = "کارکرد ثبت شده"; result.Fields.Add(field); double workhours = 0; foreach (var row in result.Rowes) { if (row.Title == "جمع کل") { var sumWorkHour = workHours.Sum(x => x.Hours); workhours = sumWorkHour; var fieldValuesumWorkHour = new FieldValue(); fieldValuesumWorkHour.FieldId = field.ID; fieldValuesumWorkHour.RowId = row.ID; fieldValuesumWorkHour.Value = DateUtility.ConvertToTimeSpan(sumWorkHour); row.Values.Add(fieldValuesumWorkHour); } else { var value = workHours.Where(x => x.ProjectId == row.ID).Sum(x => x.Hours); var fieldValue = new FieldValue(); fieldValue.FieldId = field.ID; fieldValue.RowId = row.ID; fieldValue.Value = DateUtility.ConvertToTimeSpan(value); row.Values.Add(fieldValue); } } result.HeaderTitle = "گزارش کلی پروژه ها"; result.FirstColumnTitle = "عنوان پروژه"; return(result); }
//Assemble Bounch of projects public FinalReport AssembleBreakingProjectsByMonth(ReportParametersFromToJson parametres) { var result = new FinalReport(); UnitOfWork uow = new UnitOfWork(); var currentUser = new UserHelper().GetCurrent(); TimeSheetManager TimeSheetManager = new TimeSheetManager(uow); var workHours = TimeSheetManager.GetWorkHoursByUser (currentUser, DateUtility.GetMiladiDate(parametres.FromDate), DateUtility.GetMiladiDate(parametres.ToDate)).ToList(); var from = DateUtility.GetMiladiDate(parametres.FromDate); var to = DateUtility.GetMiladiDate(parametres.ToDate); var currentDate = from; foreach (var group in workHours.GroupBy(x => x.ProjectId)) { var row = new ReportRow(); row.ID = group.First().ProjectId; row.Title = group.First().Project.Title; result.Rowes.Add(row); } var SumTotal = new ReportRow(); SumTotal.ID = Guid.NewGuid(); SumTotal.Title = "جمع کل کارکرد"; result.Rowes.Add(SumTotal); var sumPresenceHours = new ReportRow(); sumPresenceHours.ID = Guid.NewGuid(); sumPresenceHours.Title = "جمع کل حضور"; result.Rowes.Add(sumPresenceHours); var sumDifference = new ReportRow(); sumDifference.ID = Guid.NewGuid(); sumDifference.Title = "اختلاف"; result.Rowes.Add(sumDifference); while (currentDate.Date <= to) { var firstDayOfMonth = DateUtility.GetMiladiDate(DateUtility.GetPersianYear(currentDate) + "/" + DateUtility.GetPersianMonth(currentDate) + "/" + "1"); var day = "30"; if (DateUtility.GetPersianMonth(currentDate) < 7) { day = "31"; } var LastDayOfMonth = DateUtility.GetMiladiDate(DateUtility.GetPersianYear(currentDate) + "/" + DateUtility.GetPersianMonth(currentDate) + "/" + day); var field = new Field(); field.ID = Guid.NewGuid(); field.Title = DateUtility.GetPersianYear(currentDate) + "/" + DateUtility.GetPersianMonth(currentDate); result.Fields.Add(field); double workhours = 0; double presencehours = 0; foreach (var row in result.Rowes) { if (row.Title == "جمع کل کارکرد") { var sumWorkHour = workHours.Where(x => x.Date.Date <= LastDayOfMonth && x.Date.Date >= firstDayOfMonth).Sum(x => x.Hours); workhours = sumWorkHour; var fieldValuesumWorkHour = new FieldValue(); fieldValuesumWorkHour.FieldId = field.ID; fieldValuesumWorkHour.RowId = row.ID; fieldValuesumWorkHour.Value = DateUtility.ConvertToTimeSpan(sumWorkHour); row.Values.Add(fieldValuesumWorkHour); } else if (row.Title == "جمع کل حضور") { var sumPresenceHour = TimeSheetManager.GetPresHoursByUser(currentUser, firstDayOfMonth, LastDayOfMonth).Sum(x => x.Hours); presencehours = sumPresenceHour; var fieldValuesumPresenceHour = new FieldValue(); fieldValuesumPresenceHour.FieldId = field.ID; fieldValuesumPresenceHour.RowId = row.ID; fieldValuesumPresenceHour.Value = DateUtility.ConvertToTimeSpan(sumPresenceHour); row.Values.Add(fieldValuesumPresenceHour); } else if (row.Title == "اختلاف") { var sumdifference = presencehours - workhours;; var fieldValuesumdifference = new FieldValue(); fieldValuesumdifference.FieldId = field.ID; fieldValuesumdifference.RowId = row.ID; fieldValuesumdifference.Value = DateUtility.ConvertToTimeSpan(sumdifference); row.Values.Add(fieldValuesumdifference); } else { var value = workHours.Where(x => x.ProjectId == row.ID && x.Date.Date <= LastDayOfMonth && x.Date.Date >= firstDayOfMonth).Sum(x => x.Hours); var fieldValue = new FieldValue(); fieldValue.FieldId = field.ID; fieldValue.RowId = row.ID; fieldValue.Value = DateUtility.ConvertToTimeSpan(value); row.Values.Add(fieldValue); } } currentDate = LastDayOfMonth.AddDays(1).Date; } var Aggregation = new Field(); Aggregation.Title = "مجموع"; Aggregation.ID = Guid.NewGuid(); result.Fields.Add(Aggregation); foreach (var row in result.Rowes) { var sum = workHours.Where(x => x.ProjectId == row.ID).Sum(y => y.Hours); var fildvalue = new FieldValue(); fildvalue.FieldId = Guid.NewGuid(); fildvalue.RowId = row.ID; fildvalue.Value = DateUtility.ConvertToTimeSpan(sum); row.Values.Add(fildvalue); } result.HeaderTitle = "گزارش پروژه ها به تفکیک ماه"; result.FirstColumnTitle = "عنوان پروژه"; return(result); }
public IEnumerable <TimeSheetJson> GetNextPeriodConfirm(TimeSheetValueJson workHourJson) { List <TimeSheetJson> result = new List <TimeSheetJson>(); if (workHourJson == null) { workHourJson = new TimeSheetValueJson(); workHourJson.Date = DateTime.Now.AddDays(-7); } UnitOfWork uow = new UnitOfWork(); UserManager userManager = new UserManager(uow); TimeSheetManager timeSheetManager = new TimeSheetManager(uow); DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow); //SyncWithPWA(uow); User currUser = new UserHelper().GetCurrent(); User user = userManager.GetByID(Guid.Parse(workHourJson.UserId)); DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currUser); DateTime toDate = workHourJson.Date.AddDays(1); DateTime fromDate; var type = workHourJson.Value.GetType(); if (displayPeriod != null) { fromDate = displayPeriod.StartDate; if (displayPeriod.IsWeekly) { var Condition = workHourJson.Value.Equals(true) || workHourJson.Date.AddDays(7) < DateTime.Now; if (DateTime.Now > workHourJson.Date && Condition) { fromDate = toDate.StartOfWeek(DayOfWeek.Saturday); toDate = toDate.EndOfWeek(DayOfWeek.Friday); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); } else { fromDate = DateTime.Now.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Now.EndOfWeek(DayOfWeek.Friday); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); } } else { toDate = fromDate.AddDays(displayPeriod.NumOfDays); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); if (presHours.Count() < displayPeriod.NumOfDays) { fromDate = DateTime.Now; toDate = fromDate.AddDays(displayPeriod.NumOfDays); presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); } IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); } } else { fromDate = DateTime.Now.StartOfWeek(DayOfWeek.Saturday); toDate = DateTime.Now.EndOfWeek(DayOfWeek.Friday); IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(currUser, fromDate, toDate); IEnumerable <WorkHour> workHours = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate); result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user); } return(result); }