public async Task <bool> ClockInAsync(Guid id) { // try and find a time where the user is already clocked in but has // not clocked out. var alreadyClockedIn = await _context.TimeSheets .Where(x => x.Exit == null && x.EmployeeId.Equals(id)) .SingleOrDefaultAsync(); // if there is a date without an exit value return false if (alreadyClockedIn != null) { return(false); } // otherwise create a new timesheet entry else { var newTime = new TimeSheetModel(); newTime.Approved = 0; newTime.Id = new Guid(); newTime.EmployeeId = id; newTime.statusMessage = ""; newTime.Enter = DateTime.Now; _context.TimeSheets.Add(newTime); var saveResult = await _context.SaveChangesAsync(); return(saveResult != 0); } }
public ActionResult GetTimeSheet(int id) { var timeSheet = _timeSheetRepository.Get(id); var lineItems = _timeSheetLineItemRepository.GetAllBy(l => l.TimeSheetId == timeSheet.Id).ToList(); if (timeSheet != null) { var model = new TimeSheetModel { Title = timeSheet.Title, Date = timeSheet.Date.ToString("MM/dd/yyyy"), Comments = timeSheet.Comments }; var lineItemModels = lineItems.Select(l => new TimeSheetLineItemModel { Comments = l.Comments, Effort = l.Effort, ProjectId = l.ProjectId, TaskSummary = l.TaskSummary, WorkType = l.WorkType }).ToList(); model.Rows = lineItemModels; return(Json(model, JsonRequestBehavior.AllowGet)); } return(Json(false, JsonRequestBehavior.AllowGet)); }
public ActionResult PostSheet(TimeSheetModel timeSheet) { var date = DateTime.ParseExact(timeSheet.Date, "MM/dd/yyyy", CultureInfo.CurrentCulture); var newTimeSheet = new TimeSheet { State = TimeSheetState.PendingApproval, Title = $"{WebUser.Name}\'s TimeSheet for {date.Date.ToShortDateString()}", Date = date, TotalHours = timeSheet.Rows.Sum(r => r.Effort), Comments = timeSheet.Comments, CreatedByUserId = WebUser.Id }; _timeSheetRepository.Create(newTimeSheet); foreach (var lineItem in timeSheet.Rows) { var newTimeSheetLineItem = new TimeSheetLineItem { TimeSheetId = newTimeSheet.Id, ProjectId = lineItem.ProjectId, TaskSummary = lineItem.TaskSummary, Effort = lineItem.Effort, Comments = lineItem.Comments, WorkType = lineItem.WorkType }; _timeSheetLineItemRepository.Create(newTimeSheetLineItem); } _unitOfWork.Commit(); return(Json(true)); }
public IActionResult GenerateTimesheet(JobDetailsModel model) { if (!ModelState.IsValid) { return(View("Index", model)); } var timeSheetModel = new TimeSheetModel() { Client = model.Client, FullName = model.FirstName + " " + model.LastName, JobTitle = model.JobTitle }; ITimeSheetGenerator timeSheetGenerator; if (model.TimeSheetFrequency == "Weekly") { timeSheetGenerator = new WeeklyTimesheetGenerator(); } else { timeSheetGenerator = new MonthlyTimesheetGenerator(); } timeSheetModel.TimeSheets = timeSheetGenerator.Generate(model.StartDate, model.EndDate); return(View("TimeSheetView", timeSheetModel)); }
public HttpResponseMessage GetSheetById(int timesheetid)//timesheet id { HttpResponseMessage response = null; try { if (timesheetid != 0) { TimeSheetModel record = TimeSheetRepo.GetSheetById(timesheetid); if (record != null) { response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_001", "Success", record)); } else { response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_901", "Invalid", "TimeSheet doesnot exists!")); } } else { response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_102", "Invalid Input", "Please check input Json")); } } catch (Exception exception) { Debug.WriteLine(exception.Message); Debug.WriteLine(exception.GetBaseException()); response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_101", "Application Error", exception.Message)); } return(response); }
public void loadDocument() { string json = JsonHelper.loadDocument(Settings.Default.ProjectID, "TimeSheet"); List <string[]> documentInfo = new List <string[]>(); newTimeSheetModel = new TimeSheetModel(); currentTimeSheetModel = new TimeSheetModel(); if (json != "") { versionControl = JsonConvert.DeserializeObject <VersionControl <TimeSheetModel> >(json); newTimeSheetModel = JsonConvert.DeserializeObject <TimeSheetModel>(versionControl.getLatest(versionControl.DocumentModels)); currentTimeSheetModel = JsonConvert.DeserializeObject <TimeSheetModel>(versionControl.getLatest(versionControl.DocumentModels)); txtTimesheetFormProjectName.Text = newTimeSheetModel.timeSheetForm.projectName; txtTimesheetFormProjectManager.Text = newTimeSheetModel.timeSheetForm.projectManager; txtTimesheetFormTeamMember.Text = newTimeSheetModel.timeSheetForm.teamMember; txtName.Text = newTimeSheetModel.timeSheetForm.submittedName; txtProjectRole.Text = newTimeSheetModel.timeSheetForm.submittedRole; txtSignature.Text = newTimeSheetModel.timeSheetForm.submittedSignature; dateTimePickerSubmittedBy.Text = newTimeSheetModel.timeSheetForm.submittedDate; txtApprovedByName.Text = newTimeSheetModel.timeSheetForm.approvedName; txtApprovedByProjectRole.Text = newTimeSheetModel.timeSheetForm.approvedRole; txtApprovedBySignature.Text = newTimeSheetModel.timeSheetForm.approvedSignature; dateTimePickerApprovedBy.Text = newTimeSheetModel.timeSheetForm.approvedDate; for (int i = 0; i < currentTimeSheetModel.timeSheetForm.timeSpents.Count; i++) { var timeSpent = currentTimeSheetModel.timeSheetForm.timeSpents[i]; var taskCompleted = currentTimeSheetModel.timeSheetForm.tasksCompleted[i]; var deliverables = currentTimeSheetModel.timeSheetForm.deliverablesProduced[i]; dataGridViewTimesheetForm.Rows.Add(new String[] { timeSpent.date, timeSpent.startTime, timeSpent.endTime, timeSpent.duration, taskCompleted.activity, taskCompleted.task, deliverables.startPercentComplete, deliverables.endPercentComplete, deliverables.result }); } } else { versionControl = new VersionControl <TimeSheetModel>(); versionControl.DocumentModels = new List <VersionControl <TimeSheetModel> .DocumentModel>(); newTimeSheetModel = new TimeSheetModel(); newTimeSheetModel.timeSheetForm = new TimeSheetModel.TimeSheetForm(); } }
public ActionResult GetTimeSheetByStatus(UpdateTimeSheetStatusModels data) { TimeSheetModel TS = null; List <TimeSheetModel> timeSheets = null; try { using (var con = db.Gdb()) { timeSheets = new List <TimeSheetModel>(); SqlCommand cmd = new SqlCommand("dbo.spGetTimeSheetByStatus", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", data.userId); cmd.Parameters.AddWithValue("@status", data.status); con.Open(); SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { TS = new TimeSheetModel(); TS.id = Convert.ToInt32(rd["id"]); TS.timeSheetKey = Convert.ToString(rd["timeSheetKey"]); TS.type = Convert.ToString(rd["type"]); TS.startTime = Convert.ToString(rd["start_time"]); TS.endTime = Convert.ToString(rd["end_time"]); TS.breaks = Convert.ToString(rd["breaks"]); TS.workTime = Convert.ToString(rd["work_time"]); TS.notes = Convert.ToString(rd["notes"]); TS.entryDate = Convert.ToDateTime(rd["entryDate"]); TS.timeSheetStatus = Convert.ToString(rd["timeSheetStatus"]); TS.m3 = Convert.ToInt32(rd["m3"]); TS.kmStand = Convert.ToInt32(rd["km_stand"]); TS.privat = Convert.ToInt32(rd["privat"]); TS.fuel = Convert.ToInt32(rd["fuel"]); TS.adblue = Convert.ToInt32(rd["adblue"]); TS.UserId = Convert.ToInt32(rd["employeeId"]); timeSheets.Add(TS); } con.Close(); } } catch (Exception) { throw; } return(Ok(timeSheets)); }
private int ProjectSelectCount(TimeSheetModel timesheetmodel) { try { int count = 0; if (timesheetmodel.ProjectID1 != null && (timesheetmodel.texttotal_p1 != null && timesheetmodel.texttotal_p1 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID2 != null && (timesheetmodel.texttotal_p2 != null && timesheetmodel.texttotal_p2 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID3 != null && (timesheetmodel.texttotal_p3 != null && timesheetmodel.texttotal_p3 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID3 != null && (timesheetmodel.texttotal_p3 != null && timesheetmodel.texttotal_p3 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID4 != null && (timesheetmodel.texttotal_p4 != null && timesheetmodel.texttotal_p4 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID5 != null && (timesheetmodel.texttotal_p5 != null && timesheetmodel.texttotal_p5 != 0)) { count = count + 1; } if (timesheetmodel.ProjectID6 != null && (timesheetmodel.texttotal_p6 != null && timesheetmodel.texttotal_p6 != 0)) { count = count + 1; } return(count); } catch (Exception) { throw; } }
public ActionResult TimeSheets(TimeSheetModel objTimeSheetModel) { TimeSheetsDetail tmDetails = new TimeSheetsDetail(); tmDetails.EmpId = objTimeSheetModel.EmpId; tmDetails.TaskId = objTimeSheetModel.TaskId; tmDetails.ActualStartDate = objTimeSheetModel.ActualStartDate; tmDetails.ActualEndDate = objTimeSheetModel.ActualEndDate; tmDetails.Efforts = objTimeSheetModel.Efforts; tmDetails.ProductiveHrs = objTimeSheetModel.ProductiveHrs; tmDetails.ActivityComment = objTimeSheetModel.ActivityComment; tmDetails.ActId = objTimeSheetModel.ActId; objTMS.TimeSheetsDetails.Add(tmDetails); objTMS.SaveChanges(); return(RedirectToAction("TimeSheets")); }
public void Post([FromBody] TimeSheetModel timesheet) { //Server-side validation if (ModelState.IsValid) { //Create Entity from validated data var toAdd = new TimeSheet { EmployeeName = timesheet.EmployeeName, Date = timesheet.Date, HoursWorked = timesheet.HoursWorked }; //Add to EntityFramework here _context.TimeSheets.Add(toAdd); _context.SaveChanges(); } }
private int?CalculateTotalHours(TimeSheetModel TimeSheetModel) { try { int?Total = 0; var val1 = TimeSheetModel.texttotal_p1 == null ? 0 : TimeSheetModel.texttotal_p1; var val2 = TimeSheetModel.texttotal_p2 == null ? 0 : TimeSheetModel.texttotal_p2; var val3 = TimeSheetModel.texttotal_p3 == null ? 0 : TimeSheetModel.texttotal_p3; var val4 = TimeSheetModel.texttotal_p4 == null ? 0 : TimeSheetModel.texttotal_p4; var val5 = TimeSheetModel.texttotal_p5 == null ? 0 : TimeSheetModel.texttotal_p5; var val6 = TimeSheetModel.texttotal_p6 == null ? 0 : TimeSheetModel.texttotal_p6; Total = val1 + val2 + val3 + val4 + val5 + val6; return(Total); } catch (Exception) { throw; } }
public ActionResult EditTimeSheetByUser(TimeSheetModel model) { try { if (model.endTime != "-1" && model.startTime != "-1") { DateTime StartTime = Convert.ToDateTime(model.startTime); DateTime EndTime = Convert.ToDateTime(model.endTime); var WorkTime = EndTime.Subtract(StartTime); var conv = WorkTime.ToString(@"h\:mm"); model.workTime = conv; } using (var con = db.Gdb()) { SqlCommand cmd = new SqlCommand("dbo.spEditTimeSheetByUser", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", model.id); cmd.Parameters.AddWithValue("@type", model.type); cmd.Parameters.AddWithValue("@start_time", model.startTime); cmd.Parameters.AddWithValue("@end_time", model.endTime); cmd.Parameters.AddWithValue("@breaks", model.breaks); cmd.Parameters.AddWithValue("@work_time", model.workTime); cmd.Parameters.AddWithValue("@m3", model.m3); cmd.Parameters.AddWithValue("@km_stand", model.kmStand); cmd.Parameters.AddWithValue("@privat", model.privat); cmd.Parameters.AddWithValue("@fuel", model.fuel); cmd.Parameters.AddWithValue("@adblue", model.adblue); cmd.Parameters.AddWithValue("@notes", model.notes); cmd.Parameters.AddWithValue("@employeeId", model.UserId); cmd.Parameters.AddWithValue("@entryDate", model.entryDate); cmd.Parameters.AddWithValue("@timeSheetKey", model.timeSheetKey); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } catch (Exception e) { throw e; } return(Ok()); }
private int?CalculateTotalHours(TimeSheetModel TimeSheetModel) { try { int?Total = 0; var val1 = TimeSheetModel.texttotal_p1 ?? 0; var val2 = TimeSheetModel.texttotal_p2 ?? 0; var val3 = TimeSheetModel.texttotal_p3 ?? 0; var val4 = TimeSheetModel.texttotal_p4 ?? 0; var val5 = TimeSheetModel.texttotal_p5 ?? 0; var val6 = TimeSheetModel.texttotal_p6 ?? 0; Total = val1 + val2 + val3 + val4 + val5 + val6; return(Total); } catch (Exception) { throw; } }
public async Task <bool> DenyTime(TimeSheetModel time) { // get timesheet by id var update = await _context.TimeSheets .Where(x => x.Id.ToString().Equals(time.Id.ToString())) .SingleOrDefaultAsync(); // if cannot be found return false if (update == null) { return(false); } // change approved to "denied" update.Approved = 2; // save entry var saveResult = await _context.SaveChangesAsync(); return(saveResult == 1); }
public bool IsOneDayTimeMaintained(TimeSheetModel timesheet) { if (timesheet.HolidayStatus == "Week Off") { return(true); } TimeSpan calculatedWorkTime = CalculateTimeForADay(timesheet); int minHours = (int.Parse)(minDailyTime.Split(':')[0]); int minMins = (int.Parse)(minDailyTime.Split(':')[1]); TimeSpan expectedDailyTime = new TimeSpan(minHours, minMins, 00); if (calculatedWorkTime.Ticks >= expectedDailyTime.Ticks) { return(true); } else { return(false); } }
public ActionResult Add(TimeSheetModel timesheetmodel) { try { if (timesheetmodel == null) { ModelState.AddModelError(string.Empty, "Values Posted Are Not Accurate"); return(View()); } TimeSheetMaster objtimesheetmaster = new TimeSheetMaster { TimeSheetMasterID = 0, UserID = Convert.ToInt32(Session["UserID"]), CreatedOn = DateTime.Now, FromDate = timesheetmodel.hdtext1, ToDate = timesheetmodel.hdtext7, TotalHours = CalculateTotalHours(timesheetmodel), TimeSheetStatus = 1 }; int TimeSheetMasterID = _ITimeSheet.AddTimeSheetMaster(objtimesheetmaster); var count = ProjectSelectCount(timesheetmodel); if (TimeSheetMasterID > 0) { Save(timesheetmodel, TimeSheetMasterID); SaveDescription(timesheetmodel, TimeSheetMasterID); _ITimeSheet.InsertTimeSheetAuditLog(InsertTimeSheetAudit(TimeSheetMasterID, 1)); } TempData["TimeCardMessage"] = "Data Saved Successfully"; return(RedirectToAction("Add", "TimeSheet")); } catch (Exception) { throw; } }
public TimeSpan CalculateTimeForADay(TimeSheetModel timesheet) { TimeSpan calculatedWorkTime = TimeSpan.Zero; calculatedWorkTime = timesheet.WorkingHours; if (timesheet.HolidayStatus == "Holiday") { calculatedWorkTime += new TimeSpan(9, 00, 00); } if ((double)timesheet.LeaveDayQty == 0.5) { calculatedWorkTime += new TimeSpan(4, 00, 00); } if (timesheet.LeaveDayQty == 1) { calculatedWorkTime += new TimeSpan(9, 00, 00); } if ((double)(timesheet.WorkFromHomeDayQty) == 0.5) { calculatedWorkTime += new TimeSpan(4, 00, 00); } else if ((double)(timesheet.WorkFromHomeDayQty) == 1) { calculatedWorkTime += new TimeSpan(9, 00, 00); } //Permission Hours if (timesheet.permissionCountPersonal > 0) { int minutes = (int)((timesheet.permissionCountPersonal) * 60); calculatedWorkTime += TimeSpan.FromMinutes(minutes); } if (timesheet.permissionCountOfficial > 0) { int minutes = (int)((timesheet.permissionCountOfficial) * 60); calculatedWorkTime += TimeSpan.FromMinutes(minutes); } return(calculatedWorkTime); }
public void SaveDescription(TimeSheetModel timesheetmodel, int TimeSheetMasterID) { try { if (timesheetmodel.ProjectID1 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID1, TimeSheetMasterID, timesheetmodel.Description_p1); } if (timesheetmodel.ProjectID2 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID2, TimeSheetMasterID, timesheetmodel.Description_p2); } if (timesheetmodel.ProjectID3 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID3, TimeSheetMasterID, timesheetmodel.Description_p3); } if (timesheetmodel.ProjectID4 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID4, TimeSheetMasterID, timesheetmodel.Description_p4); } if (timesheetmodel.ProjectID5 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID5, TimeSheetMasterID, timesheetmodel.Description_p5); } if (timesheetmodel.ProjectID6 != null) { InsertDescriptionDetail(timesheetmodel.ProjectID6, TimeSheetMasterID, timesheetmodel.Description_p6); } } catch (Exception) { throw; } }
public ActionResult Add(TimeSheetModel timesheetmodel) { try { if (timesheetmodel == null) { ModelState.AddModelError("", "Values Posted Are Not Accurate"); return(View()); } TimeSheetMaster objtimesheetmaster = new TimeSheetMaster(); objtimesheetmaster.TimeSheetMasterID = 0; objtimesheetmaster.UserID = Convert.ToInt32(Session["UserID"]); objtimesheetmaster.CreatedOn = DateTime.Now; objtimesheetmaster.FromDate = timesheetmodel.hdtext1; objtimesheetmaster.ToDate = timesheetmodel.hdtext7; objtimesheetmaster.TotalHours = CalculateTotalHours(timesheetmodel); objtimesheetmaster.TimeSheetStatus = 1; int TimeSheetMasterID = _ITimeSheet.AddTimeSheetMaster(objtimesheetmaster); var count = ProjectSelectCount(timesheetmodel); if (TimeSheetMasterID > 0) { Save(timesheetmodel, TimeSheetMasterID); //used to call the code which update time sheet details table SaveDescription(timesheetmodel, TimeSheetMasterID); _ITimeSheet.InsertTimeSheetAuditLog(InsertTimeSheetAudit(TimeSheetMasterID, 1)); } TempData["TimeCardMessage"] = "Data Saved Successfully"; return(RedirectToAction("Add", "TimeSheet")); } catch (Exception) { throw; } }
public ActionResult CreateSheet(TimeSheetModel timeSheet) { var date = timeSheet.Date.DateFromUsFormat(); var exists = _timeSheetRepository.Any(t => t.CreatedByUserId == WebUser.Id && t.Date == date.Date); if (!exists) { var newTimeSheet = new TimeSheet { State = TimeSheetState.PendingApproval, Title = $"{WebUser.Name}'s {"TimeSheet for "} {timeSheet.Date}", Date = date.Date, TotalHours = timeSheet.Rows.Sum(r => r.Effort), Comments = timeSheet.Comments, CreatedByUserId = WebUser.Id }; _timeSheetRepository.Create(newTimeSheet); foreach (var lineItem in timeSheet.Rows) { var newTimeSheetLineItem = new TimeSheetLineItem { TimeSheetId = newTimeSheet.Id, ProjectId = lineItem.ProjectId, TaskId = lineItem.TaskId, TaskSummary = lineItem.TaskSummary, Effort = lineItem.Effort, Comments = lineItem.Comments, WorkType = lineItem.WorkType }; _timeSheetLineItemRepository.Create(newTimeSheetLineItem); } _unitOfWork.Commit(); // Log Activity var activity = new TimeSheetActivity { TimeSheetId = newTimeSheet.Id, Title = "Created", Comment = $"{WebUser.Name} created the TimeSheet at {DateTime.UtcNow.ToString("G")} with state {newTimeSheet.State} & hours {newTimeSheet.TotalHours}", CreatedByUserId = WebUser.Id }; _timeSheetActivityRepository.Create(activity); _unitOfWork.Commit(); //Update if there is a missing timesheet entry var missedList = _missedTimeSheetRepository.GetAllBy(m => m.UserId == newTimeSheet.CreatedByUserId && m.Date == newTimeSheet.Date && m.FilledOn == null); foreach (var missedTimeSheet in missedList) { missedTimeSheet.FilledOn = DateTime.UtcNow; _missedTimeSheetRepository.Update(missedTimeSheet); } _unitOfWork.Commit(); // Notify the reporting manager online var loginEmployee = _employeeRepository.GetBy(r => r.UserId == WebUser.Id, "ReportingPerson"); if (loginEmployee?.ReportingPerson != null) { var message = $"{WebUser.Name} has submitted the timesheet with {newTimeSheet.TotalHours} hours"; _notificationService.NotifyUser("Timesheet Submitted", message, loginEmployee.ReportingPerson.Code); } // Send Email, Email Template name is hard corded - Need to change later // Replace the hard coded emails with settings or a team. #if !DEBUG _emailComposerService.TimeSheetSubmitted(newTimeSheet.Id); #endif return(Json(true)); } return(Json(false)); }
//Back-End public void SaveDocument() { newTimeSheetModel = new TimeSheetModel(); newTimeSheetModel.timeSheetForm = new TimeSheetModel.TimeSheetForm(); newTimeSheetModel.timeSheetForm.projectName = txtTimesheetFormProjectName.Text; newTimeSheetModel.timeSheetForm.projectManager = txtTimesheetFormProjectManager.Text; newTimeSheetModel.timeSheetForm.teamMember = txtTimesheetFormTeamMember.Text; newTimeSheetModel.timeSheetForm.submittedName = txtName.Text; newTimeSheetModel.timeSheetForm.submittedRole = txtProjectRole.Text; newTimeSheetModel.timeSheetForm.submittedSignature = txtSignature.Text; newTimeSheetModel.timeSheetForm.submittedDate = dateTimePickerSubmittedBy.Text; newTimeSheetModel.timeSheetForm.approvedName = txtApprovedByName.Text; newTimeSheetModel.timeSheetForm.approvedRole = txtApprovedByProjectRole.Text; newTimeSheetModel.timeSheetForm.approvedSignature = txtApprovedBySignature.Text; newTimeSheetModel.timeSheetForm.approvedDate = dateTimePickerApprovedBy.Text; List <TimeSheetModel.TimeSheetForm.TimeSpent> timeSpents = new List <TimeSheetModel.TimeSheetForm.TimeSpent>(); List <TimeSheetModel.TimeSheetForm.TasksCompleted> tasksCompleteds = new List <TimeSheetModel.TimeSheetForm.TasksCompleted>(); List <TimeSheetModel.TimeSheetForm.DeliverablesProduced> deliverablesProduceds = new List <TimeSheetModel.TimeSheetForm.DeliverablesProduced>(); int gridViewCounter = dataGridViewTimesheetForm.Rows.Count; for (int i = 0; i < gridViewCounter; i++) { TimeSheetModel.TimeSheetForm.TimeSpent timeSpent = new TimeSheetModel.TimeSheetForm.TimeSpent(); TimeSheetModel.TimeSheetForm.TasksCompleted tasksCompleted = new TimeSheetModel.TimeSheetForm.TasksCompleted(); TimeSheetModel.TimeSheetForm.DeliverablesProduced deliverablesProduced = new TimeSheetModel.TimeSheetForm.DeliverablesProduced(); var tempDate = dataGridViewTimesheetForm.Rows[i].Cells[0].Value?.ToString() ?? ""; var tempStartTime = dataGridViewTimesheetForm.Rows[i].Cells[1].Value?.ToString() ?? ""; var tempEndTime = dataGridViewTimesheetForm.Rows[i].Cells[2].Value?.ToString() ?? ""; var tempDuration = dataGridViewTimesheetForm.Rows[i].Cells[3].Value?.ToString() ?? ""; var tempActivity = dataGridViewTimesheetForm.Rows[i].Cells[4].Value?.ToString() ?? ""; var tempTask = dataGridViewTimesheetForm.Rows[i].Cells[5].Value?.ToString() ?? ""; var tempStartPercentage = dataGridViewTimesheetForm.Rows[i].Cells[6].Value?.ToString() ?? ""; var tempEndPercentage = dataGridViewTimesheetForm.Rows[i].Cells[7].Value?.ToString() ?? ""; var tempResult = dataGridViewTimesheetForm.Rows[i].Cells[8].Value?.ToString() ?? ""; timeSpent.date = tempDate; timeSpent.startTime = tempStartTime; timeSpent.endTime = tempEndTime; timeSpent.duration = tempDuration; tasksCompleted.activity = tempActivity; tasksCompleted.task = tempTask; deliverablesProduced.startPercentComplete = tempStartPercentage; deliverablesProduced.endPercentComplete = tempEndPercentage; deliverablesProduced.result = tempResult; timeSpents.Add(timeSpent); tasksCompleteds.Add(tasksCompleted); deliverablesProduceds.Add(deliverablesProduced); } newTimeSheetModel.timeSheetForm.timeSpents = timeSpents; newTimeSheetModel.timeSheetForm.tasksCompleted = tasksCompleteds; newTimeSheetModel.timeSheetForm.deliverablesProduced = deliverablesProduceds; List <VersionControl <TimeSheetModel> .DocumentModel> documentModels = versionControl.DocumentModels; if (!versionControl.isEqual(currentTimeSheetModel, newTimeSheetModel)) { VersionControl <TimeSheetModel> .DocumentModel documentModel = new VersionControl <TimeSheetModel> .DocumentModel(newTimeSheetModel, DateTime.Now, VersionControl <ProjectModel> .generateID()); documentModels.Add(documentModel); versionControl.DocumentModels = documentModels; string json = JsonConvert.SerializeObject(versionControl); currentTimeSheetModel = JsonConvert.DeserializeObject <TimeSheetModel>(JsonConvert.SerializeObject(newTimeSheetModel)); JsonHelper.saveDocument(json, Settings.Default.ProjectID, "TimeSheet"); MessageBox.Show("Time sheet saved successfully", "save", MessageBoxButtons.OK); } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { if (string.IsNullOrEmpty(txtProjectId.Text)) { showAlertError("alertProjectId", "กรุณากรอก Project Id"); return; } if (string.IsNullOrEmpty(txtUsername.Text)) { showAlertError("alertUsernameErr", "กรุณากรอก Username"); return; } if (string.IsNullOrEmpty(txtDes.Text)) { showAlertError("alertDesErr", "กรุณากรอก Description"); return; } if (string.IsNullOrWhiteSpace(ddlHours.SelectedValue)) { showAlertError("alertHoursErr", "กรุณาเลือก Hours"); return; } DateTime timestamp = DateTime.Now; string timenow = timestamp.ToString("yyyy-MM-dd HH:mm:ss"); string textProjectId = txtProjectId.Text; string textUsername = txtUsername.Text; string textDescription = txtDes.Text; float textHours = float.Parse(ddlHours.SelectedItem.Value); string textCreatedDate = timenow; string path = @"D:\Cshap\Web-Sudarat\TimeSheet\TimeSheet\View\Sheet\NewSheet.txt"; List <TimeSheetModel> TcModel = new List <TimeSheetModel>(); List <string> lines = File.ReadAllLines(path).ToList(); foreach (var line in lines) { string[] list = line.Split('|'); TimeSheetModel tc = new TimeSheetModel(); tc.Id = Convert.ToInt32(list[0]); tc.ProjectId = list[1]; tc.Username = list[2]; tc.Description = list[3]; tc.Hours = (float)Convert.ToDouble(list[4]); tc.CreatedDate = list[5]; TcModel.Add(tc); } var row = lines.Count + 1; TcModel.Add(new TimeSheetModel { Id = row, ProjectId = textProjectId, Username = textUsername, Description = textDescription, Hours = textHours, CreatedDate = textCreatedDate }); List <string> txtfile = new List <string>(); foreach (var sheets in TcModel) { txtfile.Add($"{sheets.Id}|{sheets.ProjectId}|{sheets.Username}|{sheets.Description}|{sheets.Hours}|{sheets.CreatedDate}"); } File.WriteAllLines(path, txtfile); showAlertSuccess("alertSuccess", "Insert Success"); } catch (SqlException sqlEx) { showAlertError("alertSqlErr", sqlEx.Message); } catch (Exception ex) { showAlertError("alertErr", ex.Message); } }
public List <TimeSheetModel> GetMyTimeSheet(Int64 UserID, DateTime FromDate, DateTime ToDate) { List <TimeSheetModel> timeSheetModelList = new List <TimeSheetModel>(); List <ShiftQueryModel> ShiftQueryModelList = GetShiftDetails(UserID, FromDate, ToDate); string PersonalPermisionLabel = ConfigurationManager.AppSettings["PersonalPermission"].ToString(); string officialPermisionLabel = ConfigurationManager.AppSettings["OfficialPermission"].ToString(); var toDateShift = (from m in ShiftQueryModelList where m.ShiftDate == ToDate select new { fromTime = m.ShiftFromtime, toTime = m.ShiftTotime }).FirstOrDefault(); if (toDateShift != null) { TimeSpan fromTime = toDateShift.fromTime; TimeSpan toTime = toDateShift.toTime; if (fromTime > toTime) { ToDate = ToDate.AddDays(1).Add(toTime.Add(new TimeSpan(AfterShiftBuffer, 0, 0))); } else { ToDate = ToDate.Add(toTime.Add(new TimeSpan(AfterShiftBuffer, 0, 0))); } } IEmployeeAttendanceHelper EmployeeAttendanceDacObj = new EmployeeAttendanceDac(); //To Retrieve the Employee Attendance for the given date. List <EmployeeAttendanceModel> EmployeeAttendanceList = EmployeeAttendanceDacObj.GetAttendanceForRange(UserID, FromDate, ToDate, "My", true, false); // To Get the Employee name EmployeeProfile EmployeeProfileObj = new EmployeeDac().GetEmployeeProfile(UserID); string name = string.Empty; string reportingManager = string.Empty; DateTime? employeeDOJ = null; if (EmployeeProfileObj != null) { name = EmployeeProfileObj.FirstName + ' ' + EmployeeProfileObj.LastName; reportingManager = EmployeeProfileObj.ReportedToName; employeeDOJ = EmployeeProfileObj.DOJ; } // To get the employee week off Days OfficeWeekOffDac officeWeekOffDacObj = new OfficeWeekOffDac(); List <string> officeWeekOffDayList = officeWeekOffDacObj.GetEmployeeWeekOffDay(UserID); // To get the employee Holiday List OfficeHolidayDac officeHolidayDacObj = new OfficeHolidayDac(); List <OfficeHoliday> officeHolidayList = officeHolidayDacObj.GetOfficeHoliday(UserID); // To get the employee Leave Details LeaveTransactionHistoryDac leaveTransactionHistoryDacObj = new LeaveTransactionHistoryDac(); List <EmployeeLeave> employeeLeaveList = leaveTransactionHistoryDacObj.GetLeaveForEmployee(UserID, FromDate, ToDate); for (int i = 0; i < ShiftQueryModelList.Count(); i++) { decimal permissionCountOfficial = 0, permissionCountPersonal = 0, LeaveDayQty = 0, WorkFromHomeDayQty = 0; TimeSheetModel TimeSheetModelObj = new TimeSheetModel(); DateTime shiftFromDateTime = ShiftQueryModelList[i].ShiftDate.Add(ShiftQueryModelList[i].ShiftFromtime.Add(new TimeSpan(-BeforeShiftBuffer, 0, 0))); DateTime shiftEndDateTime = ShiftQueryModelList[i].ShiftDate.Add(ShiftQueryModelList[i].ShiftTotime.Add(new TimeSpan(AfterShiftBuffer, 0, 0))); if (shiftEndDateTime < shiftFromDateTime) { shiftEndDateTime = shiftEndDateTime.AddDays(1); } // To add the employee basic details TimeSheetModelObj.Shift = ShiftQueryModelList[i].ShiftFromtime.ToString(@"hh\:mm") + '-' + ShiftQueryModelList[i].ShiftTotime.ToString(@"hh\:mm"); TimeSheetModelObj.userID = UserID; TimeSheetModelObj.Name = name; TimeSheetModelObj.ReportingManager = reportingManager; TimeSheetModelObj.WorkingDate = ShiftQueryModelList[i].ShiftDate; // Linq query to find the min and max for the given date var maxmin = from s in EmployeeAttendanceList where s.InOutDate >= shiftFromDateTime && s.InOutDate <= shiftEndDateTime group s by true into r select new { min = r.Min(z => z.InOutDate), max = r.Max(z => z.InOutDate) }; if (maxmin != null && maxmin.Count() > 0) { TimeSheetModelObj.InTime = maxmin.ToList()[0].min; TimeSheetModelObj.OutTime = maxmin.ToList()[0].max; if (employeeLeaveList.Select(e => e.LeaveType == officialPermisionLabel).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveType == officialPermisionLabel) { permissionCountOfficial += permissionTime.PermissionCount; } } } if (employeeLeaveList.Select(e => e.LeaveType == PersonalPermisionLabel).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveType == PersonalPermisionLabel) { permissionCountPersonal += permissionTime.PermissionCount; } } } if (employeeLeaveList.Select(e => e.LeaveTypeId = 0).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveDayQty != 0 && permissionTime.IsLeave == true) { LeaveDayQty += permissionTime.LeaveDayQty; } } } if (employeeLeaveList.Select(e => e.LeaveTypeId = 0).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.WorkFromHomeDayQty != 0 && permissionTime.IsLeave == false) { WorkFromHomeDayQty += permissionTime.WorkFromHomeDayQty; } } } TimeSheetModelObj.WorkingHours = TimeSheetModelObj.OutTime - TimeSheetModelObj.InTime; if (TimeSheetModelObj.WorkingDate < employeeDOJ) { TimeSheetModelObj.Status = "Non-Employee (DOJ: " + String.Format("{0:dd-MM-yyyy}", employeeDOJ) + ")"; } else { string holidayStatus = GetAbsentStatus(ShiftQueryModelList[i].ShiftDate, officeWeekOffDayList, officeHolidayList); if (holidayStatus == "") { TimeSheetModelObj.Status = "Present"; } else { TimeSheetModelObj.Status = "Present (" + holidayStatus + ")"; TimeSheetModelObj.HolidayStatus = holidayStatus; } } if (TimeSheetModelObj.InTime.TimeOfDay > ShiftQueryModelList[i].ShiftFromtime) { TimeSheetModelObj.LateIn = TimeSheetModelObj.InTime.TimeOfDay - ShiftQueryModelList[i].ShiftFromtime; } DateTime shiftToTime = ShiftQueryModelList[i].ShiftDate.Add(ShiftQueryModelList[i].ShiftTotime); DateTime shiftFromTime = ShiftQueryModelList[i].ShiftDate.Add(ShiftQueryModelList[i].ShiftFromtime); if (shiftToTime < shiftFromTime) { shiftToTime = shiftToTime.AddDays(1); } if (shiftToTime > TimeSheetModelObj.OutTime) { TimeSheetModelObj.EarlyOut = ShiftQueryModelList[i].ShiftTotime - TimeSheetModelObj.OutTime.TimeOfDay; } } else// If no record found in the employee for the given date { if (TimeSheetModelObj.WorkingDate < employeeDOJ) { TimeSheetModelObj.Status = "Non-Employee (DOJ: " + String.Format("{0:dd-MM-yyyy}", employeeDOJ) + ")"; } else { // Get Absent Details string holidayStatus = GetAbsentStatus(ShiftQueryModelList[i].ShiftDate, officeWeekOffDayList, officeHolidayList); TimeSheetModelObj.Status = holidayStatus; TimeSheetModelObj.HolidayStatus = holidayStatus; } if (employeeLeaveList.Select(e => e.LeaveType == officialPermisionLabel).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveType == officialPermisionLabel) { permissionCountOfficial += permissionTime.PermissionCount; } } } if (employeeLeaveList.Select(e => e.LeaveType == PersonalPermisionLabel).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveType == PersonalPermisionLabel) { permissionCountPersonal += permissionTime.PermissionCount; } } } if (employeeLeaveList.Select(e => e.LeaveTypeId = 0).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.LeaveDayQty != 0 && permissionTime.IsLeave == true) { LeaveDayQty += permissionTime.LeaveDayQty; } } } if (employeeLeaveList.Select(e => e.LeaveTypeId = 0).Count() > 0) { foreach (var permissionTime in employeeLeaveList) { if (permissionTime.StartDate == TimeSheetModelObj.WorkingDate && permissionTime.WorkFromHomeDayQty != 0 && permissionTime.IsLeave == false) { WorkFromHomeDayQty += permissionTime.WorkFromHomeDayQty; } } } } // To get the employee Leave Details TimeSheetModelObj.Requests = GetLMSStatus(employeeLeaveList, ShiftQueryModelList[i].ShiftDate); TimeSheetModelObj.StartDateType = GetHalfDayLMSType(employeeLeaveList, ShiftQueryModelList[i].ShiftDate, out string StartDateType); TimeSheetModelObj.EndDateType = GetHalfDayLMSType(employeeLeaveList, ShiftQueryModelList[i].ShiftDate, out string EndDateType); TimeSheetModelObj.LeaveDayQty = LeaveDayQty; TimeSheetModelObj.WorkFromHomeDayQty = WorkFromHomeDayQty; TimeSheetModelObj.PermissionCount = permissionCountPersonal; TimeSheetModelObj.permissionCountOfficial = permissionCountOfficial; TimeSheetModelObj.permissionCountPersonal = permissionCountPersonal; timeSheetModelList.Add(TimeSheetModelObj); } return(timeSheetModelList.OrderByDescending(m => m.WorkingDate).ToList()); }
public JsonResult getTimeSheet(string dateSelected) { string str = " to "; string[] dates = dateSelected.Split(str.ToCharArray()); var day1 = DateTime.Parse(dates[0]); var timesheets = es.getTimeSheet(DateTime.Parse(dates[0]), User.Identity.Name); List <TimeInOut> timeinouts = new List <TimeInOut>(); if (timesheets != null && timesheets.TimeInOuts != null) { timeinouts = timesheets.TimeInOuts.ToList(); } ModelStack mdl = new ModelStack(); TimeSheetModel tsm = new TimeSheetModel(); TimeSheetItem tItem = new TimeSheetItem(); List <TimeSheetItem> timeItems = new List <TimeSheetItem>(); var svc = Session["svc"] == null?es.getServiceCodes() : (List <serviceCode>)Session["svc"]; var plans = Session["plans"] == null?es.getPlans() : (List <planSection>)Session["plans"]; Session["svc"] = svc; Session["plans"] = plans; tsm.empName = Session["username"] == null?es.getUsername(User.Identity.Name) : Session["username"].ToString(); Session["username"] = tsm.empName; svc srv = new Models.svc(); tsm.serviceCodes = new List <Models.svc>(); tsm.PlanSections = new List <plan>(); foreach (var item in svc) { srv.Id = item.Id; srv.Name = item.Name; tsm.serviceCodes.Add(srv); srv = new Models.svc(); } plan pln = new Models.plan(); foreach (var item in plans) { pln.Id = item.Id; pln.Name = item.Name; tsm.PlanSections.Add(pln); pln = new Models.plan(); } if (timesheets == null) { tsm.Id = 0; tsm.isViewOnly = false; tsm.isBackup = null; tsm.isLiveIn = null; tsm.startDate = day1; tsm.items = new List <TimeSheetItem>(); for (int i = 0; i < 7; i++) { tItem.Id = 0; tItem.dayDate = day1.ToShortDateString(); tItem.dayName = day1.ToString("dddd"); day1 = day1.AddDays(1); tItem.dates = dates; tItem.times = new List <times>(); tItem.times.Add(new times()); tsm.items.Add(tItem); tItem = new TimeSheetItem(); } } else { tsm.Id = timesheets.Id; if (timesheets.isDraft != null && timesheets.isDraft.Value == true) { tsm.isViewOnly = false; tsm.isDraft = true; } else { tsm.isViewOnly = true; tsm.isDraft = false; } if (timesheets.isBackup != null) { tsm.isBackup = timesheets.isBackup.Value; } if (timesheets.isLiveIn != null) { tsm.isLiveIn = timesheets.isLiveIn.Value; } if (timesheets.DayDate != null) { tsm.startDate = timesheets.DayDate.Value; } tsm.items = new List <TimeSheetItem>(); if (timesheets.fk_statusid == 3) { tsm.isViewOnly = false; for (int i = 0; i < 7; i++) { var items = timeinouts.Where(x => x.dayDate.Value.Date.ToShortDateString() == day1.ToShortDateString()).ToList(); var dateditems = items.GroupBy(x => x.dayDate); if (items.Count > 0) { foreach (var itemsvals in dateditems) { var itemvals = itemsvals.ToList(); var time2 = false; foreach (var item in itemvals) { if (time2 == false) { time2 = item.TimeIn2H1 != null; } tItem.Id = item.Id; tItem.dayDate = item.dayDate.Value.Date.ToShortDateString();; tItem.dayName = item.dayDate.Value.ToString("dddd"); //config if (tsm.HasTime2 != true) { tsm.HasTime2 = item.TimeIn2H1 != null; } times timesitem = new times(); if (item.fk_plansection != null) { timesitem.plansectionId = item.fk_plansection.Value; } if (item.isInAM != null) { timesitem.isAmIn = item.isInAM.Value.ToString().ToLower(); } if (item.isOutAM != null) { timesitem.isAmOut = item.isOutAM.Value.ToString().ToLower(); } if (item.fk_serviceCode != null) { timesitem.serviceCodeId = item.fk_serviceCode.Value; } //time.serviceCodes = svc; if (item.TimeInH1 != null) { timesitem.TimeInH1 = item.TimeInH1.ToString(); } if (item.TimeInM1 != null) { timesitem.TimeInM1 = item.TimeInM1.ToString(); } if (item.TimeOutH1 != null) { timesitem.TimeOutH1 = item.TimeOutH1.ToString(); } if (item.TimeOutM1 != null) { timesitem.TimeOutM1 = item.TimeOutM1.ToString(); } if (item.TimeIn2H1 != null) { if (item.TimeIn2H1 != null) { timesitem.TimeIn2H1 = item.TimeIn2H1.ToString(); } if (item.TimeIn2M1 != null) { timesitem.TimeIn2M1 = item.TimeIn2M1.ToString(); } if (item.TimeOut2H1 != null) { timesitem.TimeOut2H1 = item.TimeOut2H1.ToString(); } if (item.TimeOut2M1 != null) { timesitem.TimeOut2M1 = item.TimeOut2M1.ToString(); } if (item.isInAM2 != null) { timesitem.isAmIn2 = item.isInAM2.Value.ToString().ToLower(); } if (item.isOutAM2 != null) { timesitem.isAmOut2 = item.isOutAM2.Value.ToString().ToLower(); } timesitem.Time2 = true; tsm.HasTime2 = true; } else { timesitem.Time2 = time2; } tItem.dates = dates; if (tItem.times == null) { tItem.times = new List <times>(); } tItem.times.Add(timesitem); // tItem.serviceCodeId = item.serviceCode.Id; } tsm.items.Add(tItem); tItem = new TimeSheetItem(); } } else { tItem.Id = 0; tItem.dayDate = day1.ToShortDateString(); tItem.dayName = day1.ToString("dddd"); tItem.dates = dates; tItem.times = new List <times>(); tItem.times.Add(new times()); tsm.items.Add(tItem); } day1 = day1.AddDays(1); tItem = new TimeSheetItem(); } } else { var items = timeinouts; var dateditems = items.GroupBy(x => x.dayDate); foreach (var itemsvals in dateditems) { var itemvals = itemsvals.ToList(); var time2 = false; foreach (var item in itemvals) { if (time2 == false) { time2 = item.TimeIn2H1 != null; } tItem.Id = item.Id; tItem.dayDate = item.dayDate.Value.Date.ToShortDateString();; tItem.dayName = item.dayDate.Value.ToString("dddd"); //config if (tsm.HasTime2 != true) { tsm.HasTime2 = item.TimeIn2H1 != null; } times timesitem = new times(); if (item.fk_plansection != null) { timesitem.plansectionId = item.fk_plansection.Value; } if (item.isInAM != null) { timesitem.isAmIn = item.isInAM.Value.ToString().ToLower(); } if (item.isOutAM != null) { timesitem.isAmOut = item.isOutAM.Value.ToString().ToLower(); } if (item.fk_serviceCode != null) { timesitem.serviceCodeId = item.fk_serviceCode.Value; } //time.serviceCodes = svc; if (item.TimeInH1 != null) { timesitem.TimeInH1 = item.TimeInH1.ToString(); } if (item.TimeInM1 != null) { timesitem.TimeInM1 = item.TimeInM1.ToString(); } if (item.TimeOutH1 != null) { timesitem.TimeOutH1 = item.TimeOutH1.ToString(); } if (item.TimeOutM1 != null) { timesitem.TimeOutM1 = item.TimeOutM1.ToString(); } if (item.TimeIn2H1 != null) { if (item.TimeIn2H1 != null) { timesitem.TimeIn2H1 = item.TimeIn2H1.ToString(); } if (item.TimeIn2M1 != null) { timesitem.TimeIn2M1 = item.TimeIn2M1.ToString(); } if (item.TimeOut2H1 != null) { timesitem.TimeOut2H1 = item.TimeOut2H1.ToString(); } if (item.TimeOut2M1 != null) { timesitem.TimeOut2M1 = item.TimeOut2M1.ToString(); } if (item.isInAM2 != null) { timesitem.isAmIn2 = item.isInAM2.Value.ToString().ToLower(); } if (item.isOutAM2 != null) { timesitem.isAmOut2 = item.isOutAM2.Value.ToString().ToLower(); } timesitem.Time2 = true; tsm.HasTime2 = true; } else { timesitem.Time2 = time2; } tItem.dates = dates; if (tItem.times == null) { tItem.times = new List <times>(); } tItem.times.Add(timesitem); // tItem.serviceCodeId = item.serviceCode.Id; } if (time2 == true) { foreach (var item in tItem.times) { item.Time2 = true; } } timeItems.Add(tItem); tItem = new TimeSheetItem(); } tsm.items = timeItems; } } mdl.model = tsm; mdl.modelstack = new List <TimeSheetModel>(); // mdl.modelstack.Add(tsm); return(Json(mdl)); }
public List <TimeSheetModel> GetTimeSheetsByEmployeeIdAndDate(GetTimeSheetModel data) { string StartDate = "01." + data.month + "." + data.year; string EndDate = ""; if (data.month == "2") { EndDate = "28." + data.month + "." + data.year; } else if ((data.month == "1") || (data.month == "3") || (data.month == "5") || (data.month == "7") || (data.month == "8") || (data.month == "10") || (data.month == "12")) { EndDate = "31." + data.month + "." + data.year; } else { EndDate = "30." + data.month + "." + data.year; } TimeSheetModel TS = null; List <TimeSheetModel> timeSheets = null; try { using (var con = db.Gdb()) { timeSheets = new List <TimeSheetModel>(); SqlCommand cmd = new SqlCommand("dbo.spGetTimeSheetByIdDate", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", data.id); cmd.Parameters.AddWithValue("@monthStart", Convert.ToDateTime(StartDate)); cmd.Parameters.AddWithValue("@monthEnd", Convert.ToDateTime(EndDate)); con.Open(); SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { TS = new TimeSheetModel(); TS.id = Convert.ToInt32(rd["id"]); TS.timeSheetKey = Convert.ToString(rd["timeSheetKey"]); TS.type = Convert.ToString(rd["type"]); TS.startTime = Convert.ToString(rd["start_time"]); TS.endTime = Convert.ToString(rd["end_time"]); TS.breaks = Convert.ToString(rd["breaks"]); TS.workTime = Convert.ToString(rd["work_time"]); TS.notes = Convert.ToString(rd["notes"]); TS.entryDate = Convert.ToDateTime(rd["entryDate"]); TS.timeSheetStatus = Convert.ToString(rd["timeSheetStatus"]); TS.m3 = Convert.ToInt32(rd["m3"]); TS.kmStand = Convert.ToInt32(rd["km_stand"]); TS.privat = Convert.ToInt32(rd["privat"]); TS.fuel = Convert.ToInt32(rd["fuel"]); TS.adblue = Convert.ToInt32(rd["adblue"]); TS.UserId = Convert.ToInt32(rd["employeeId"]); timeSheets.Add(TS); } con.Close(); } } catch (Exception) { throw; } return(timeSheets); }
//After new User creation this method create time sheet, after employee aproval it creates rest of time sheets public static void CreateTimeSheet(EmployeeModel user) { var arr = 0; if (user.level == "User") { using (var con = db.Gdb()) { SqlCommand cmdd = new SqlCommand($"SELECT * FROM TimeSheets WHERE employeeId = '{user.id}'", con); con.Open(); SqlDataReader rd = cmdd.ExecuteReader(); TimeSheetModel TS = new TimeSheetModel(); List <TimeSheetModel> TSList = new List <TimeSheetModel>(); string month = null; string year = null; string TSKey = null; while (rd.Read()) { TS = new TimeSheetModel(); TS.id = Convert.ToInt32(rd["id"]); TS.timeSheetKey = Convert.ToString(rd["timeSheetKey"]); TS.type = Convert.ToString(rd["type"]); TS.startTime = Convert.ToString(rd["start_time"]); TS.endTime = Convert.ToString(rd["end_time"]); TS.breaks = Convert.ToString(rd["breaks"]); TS.workTime = Convert.ToString(rd["work_time"]); TS.notes = Convert.ToString(rd["notes"]); TS.entryDate = Convert.ToDateTime(rd["entryDate"]); TS.timeSheetStatus = Convert.ToString(rd["timeSheetStatus"]); TS.m3 = Convert.ToInt32(rd["m3"]); TS.kmStand = Convert.ToInt32(rd["km_stand"]); TS.privat = Convert.ToInt32(rd["privat"]); TS.fuel = Convert.ToInt32(rd["fuel"]); TS.adblue = Convert.ToInt32(rd["adblue"]); TS.UserId = Convert.ToInt32(rd["employeeId"]); TSList.Add(TS); } con.Close(); if (TSList.Count == 0) { month = DateTime.Now.Month.ToString(); year = DateTime.Now.Year.ToString(); TSKey = user.userName.ToString() + "-" + month + "-" + year; } else { var lastDateEntry = TSList[TSList.Count - 1].entryDate; var nextMonth = lastDateEntry.AddMonths(1); month = Convert.ToString(nextMonth.Month); year = Convert.ToString(nextMonth.Year); TSKey = user.userName.ToString() + "-" + month + "-" + year; } if (month == "2") { for (int i = 0; i < 28; i++) { string date = (i + 1) + "." + month + "." + year + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute; SqlCommand cmd = new SqlCommand("dbo.spCreateTimeSheetsByEmpId", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", user.id); cmd.Parameters.AddWithValue("@timeSheetKey", TSKey); cmd.Parameters.AddWithValue("@entryDate", Convert.ToDateTime(date)); cmd.Parameters.AddWithValue("@timeSheetStatus", "working progress"); con.Open(); arr = cmd.ExecuteNonQuery(); con.Close(); } } else if ((month == "1") || (month == "3") || (month == "5") || (month == "7") || (month == "8") || (month == "10") || (month == "12")) { for (int i = 0; i < 31; i++) { string date = (i + 1) + "." + month + "." + year + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute; SqlCommand cmd = new SqlCommand("dbo.spCreateTimeSheetsByEmpId", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", user.id); cmd.Parameters.AddWithValue("@timeSheetKey", TSKey); cmd.Parameters.AddWithValue("@entryDate", Convert.ToDateTime(date)); cmd.Parameters.AddWithValue("@timeSheetStatus", "working progress"); con.Open(); arr = cmd.ExecuteNonQuery(); con.Close(); } } else { for (int i = 0; i < 30; i++) { string date = (i + 1) + "." + month + "." + year + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute; SqlCommand cmd = new SqlCommand("dbo.spCreateTimeSheetsByEmpId", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", user.id); cmd.Parameters.AddWithValue("@timeSheetKey", TSKey); cmd.Parameters.AddWithValue("@entryDate", Convert.ToDateTime(date)); cmd.Parameters.AddWithValue("@timeSheetStatus", "working progress"); con.Open(); arr = cmd.ExecuteNonQuery(); con.Close(); } } con.Close(); } } }
public void Save(TimeSheetModel timesheetmodel, int TimeSheetMasterID) { try { if (timesheetmodel.ProjectID1 != null && (timesheetmodel.texttotal_p1 != null && timesheetmodel.texttotal_p1 != 0)) { #region Project 1 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p1; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID1, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p1; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID1, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p1; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID1, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p1; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID1, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p1; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID1, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p1; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID1, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p1; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID1, TimeSheetMasterID); #endregion } if (timesheetmodel.ProjectID2 != null && (timesheetmodel.texttotal_p2 != null && timesheetmodel.texttotal_p2 != 0)) { #region Project 2 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p2; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID2, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p2; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID2, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p2; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID2, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p2; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID2, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p2; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID2, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p2; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID2, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p2; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID2, TimeSheetMasterID); #endregion } if (timesheetmodel.ProjectID3 != null && (timesheetmodel.texttotal_p3 != null && timesheetmodel.texttotal_p3 != 0)) { #region Project 3 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p3; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID3, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p3; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID3, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p3; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID3, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p3; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID3, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p3; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID3, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p3; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID3, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p3; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID3, TimeSheetMasterID); #endregion } if (timesheetmodel.ProjectID4 != null && (timesheetmodel.texttotal_p4 != null && timesheetmodel.texttotal_p4 != 0)) { #region Project 4 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p4; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID4, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p4; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID4, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p4; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID4, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p4; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID4, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p4; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID4, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p4; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID4, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p4; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID4, TimeSheetMasterID); #endregion } if (timesheetmodel.ProjectID5 != null && (timesheetmodel.texttotal_p5 != null && timesheetmodel.texttotal_p5 != 0)) { #region Project 5 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p5; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID5, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p5; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID5, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p5; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID5, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p5; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID5, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p5; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID5, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p5; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID5, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p5; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID5, TimeSheetMasterID); #endregion } if (timesheetmodel.ProjectID6 != null && (timesheetmodel.texttotal_p6 != null && timesheetmodel.texttotal_p6 != 0)) { #region Project 6 var date1 = timesheetmodel.hdtext1; var DaysofWeek1 = timesheetmodel.DaysofWeek1; var value1 = timesheetmodel.text1_p6; SaveTimeSheetDetail(DaysofWeek1, value1, date1, timesheetmodel.ProjectID6, TimeSheetMasterID); var date2 = timesheetmodel.hdtext2; var DaysofWeek2 = timesheetmodel.DaysofWeek2; var value2 = timesheetmodel.text2_p6; SaveTimeSheetDetail(DaysofWeek2, value2, date2, timesheetmodel.ProjectID6, TimeSheetMasterID); var date3 = timesheetmodel.hdtext3; var DaysofWeek3 = timesheetmodel.DaysofWeek3; var value3 = timesheetmodel.text3_p6; SaveTimeSheetDetail(DaysofWeek3, value3, date3, timesheetmodel.ProjectID6, TimeSheetMasterID); var date4 = timesheetmodel.hdtext4; var DaysofWeek4 = timesheetmodel.DaysofWeek4; var value4 = timesheetmodel.text4_p6; SaveTimeSheetDetail(DaysofWeek4, value4, date4, timesheetmodel.ProjectID6, TimeSheetMasterID); var date5 = timesheetmodel.hdtext5; var DaysofWeek5 = timesheetmodel.DaysofWeek5; var value5 = timesheetmodel.text5_p6; SaveTimeSheetDetail(DaysofWeek5, value5, date5, timesheetmodel.ProjectID6, TimeSheetMasterID); var date6 = timesheetmodel.hdtext6; var DaysofWeek6 = timesheetmodel.DaysofWeek6; var value6 = timesheetmodel.text6_p6; SaveTimeSheetDetail(DaysofWeek6, value6, date6, timesheetmodel.ProjectID6, TimeSheetMasterID); var date7 = timesheetmodel.hdtext7; var DaysofWeek7 = timesheetmodel.DaysofWeek7; var value7 = timesheetmodel.text7_p6; SaveTimeSheetDetail(DaysofWeek7, value7, date7, timesheetmodel.ProjectID6, TimeSheetMasterID); #endregion } } catch (Exception) { throw; } }
private static async Task EnsureTestAdminAsync(UserManager <EmployeeModel> userManager, ITimeSheetService timeSheetManager)// passing in the Timesheet interface in order to get access to the method addtimesheet { var testAdmin = await userManager.Users .Where(x => x.UserName == "*****@*****.**") .SingleOrDefaultAsync(); if (testAdmin != null) { return; } testAdmin = new EmployeeModel { UserName = "******", Email = "*****@*****.**", rate = 30.5 }; await userManager.CreateAsync(testAdmin, "NotSecure123!!"); await userManager.AddToRoleAsync(testAdmin, Constants.AdministratorRole); var timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(4), HoursWorked = DateTime.Now.AddHours(4).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); // method created in order to add the timesheetModel to the database context, Method is located in timesheetService timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(3), HoursWorked = DateTime.Now.AddHours(3).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = new DateTime(DateTime.Now.Year, 10, 1), Exit = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3), HoursWorked = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3).Subtract(new DateTime(DateTime.Now.Year, 10, 1)), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = new DateTime(DateTime.Now.Year, 10, 17), Exit = new DateTime(DateTime.Now.Year, 10, 17).AddHours(3), HoursWorked = new DateTime(DateTime.Now.Year, 10, 17).AddHours(3).Subtract(new DateTime(DateTime.Now.Year, 10, 17)), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); testAdmin = new EmployeeModel { UserName = "******", Email = "*****@*****.**", rate = 25.0 }; await userManager.CreateAsync(testAdmin, "Test1!"); await userManager.AddToRoleAsync(testAdmin, Constants.HRManager); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = new DateTime(DateTime.Now.Year, 10, 1), Exit = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3), HoursWorked = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3).Subtract(new DateTime(DateTime.Now.Year, 10, 1)), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); testAdmin = new EmployeeModel { UserName = "******", Email = "*****@*****.**", rate = 23.0 }; await userManager.CreateAsync(testAdmin, "Test1!"); await userManager.AddToRoleAsync(testAdmin, Constants.Manager); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = new DateTime(DateTime.Now.Year, 10, 1), Exit = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3), HoursWorked = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3).Subtract(new DateTime(DateTime.Now.Year, 10, 1)), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(15), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(1), HoursWorked = DateTime.Now.AddHours(1).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); testAdmin = new EmployeeModel { UserName = "******", Email = "*****@*****.**", rate = 20.0 }; await userManager.CreateAsync(testAdmin, "Test1!"); await userManager.AddToRoleAsync(testAdmin, Constants.EmployeeRole); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = new DateTime(DateTime.Now.Year, 10, 1), Exit = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3), HoursWorked = new DateTime(DateTime.Now.Year, 10, 1).AddHours(3).Subtract(new DateTime(DateTime.Now.Year, 10, 1)), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(6), HoursWorked = DateTime.Now.AddHours(6).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(6), HoursWorked = DateTime.Now.AddHours(6).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(7), HoursWorked = DateTime.Now.AddHours(7).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(5), HoursWorked = DateTime.Now.AddHours(5).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(10), HoursWorked = DateTime.Now.AddHours(10).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); timeSheet = new TimeSheetModel { Id = new Guid(), Enter = DateTime.Now, Exit = DateTime.Now.AddHours(8), HoursWorked = DateTime.Now.AddHours(8).Subtract(DateTime.Now), EmployeeId = new Guid(testAdmin.Id) }; await timeSheetManager.AddTimeSheet(timeSheet); }
/// <summary> /// This method is used for adding timesheets into the database context for when we are generating /// seed data from the seed data class @see SeedData.cs /// </summary> /// <param name="timeSheet"></param> /// <returns></returns> public async Task <bool> AddTimeSheet(TimeSheetModel timeSheet) { // add new timesheetmodel to the timesheets _context.TimeSheets.Add(timeSheet); return(await _context.SaveChangesAsync() == 1); }
public ActionResult UpdateSheet(TimeSheetModel timeSheet) { var date = timeSheet.Date.DateFromUsFormat(); // Check for duplicates var exists = _timeSheetRepository.Any(t => t.CreatedByUserId == WebUser.Id && t.Date == date.Date && t.Id != timeSheet.Id); if (exists) { return(Json(false)); } var selectedSheet = _timeSheetRepository.Get(timeSheet.Id); if (selectedSheet != null) { selectedSheet.Title = $"{WebUser.Name}'s {"TimeSheet for "} {timeSheet.Date}"; selectedSheet.Date = date.Date; selectedSheet.State = TimeSheetState.PendingApproval; selectedSheet.TotalHours = timeSheet.Rows.Sum(r => r.Effort); selectedSheet.Comments = timeSheet.Comments; selectedSheet.UpdatedByUserId = WebUser.Id; _timeSheetRepository.Update(selectedSheet); _unitOfWork.Commit(); // Remove Existing var existingRows = _timeSheetLineItemRepository.GetAllBy(t => t.TimeSheetId == timeSheet.Id).ToList(); foreach (var existingRow in existingRows) { _timeSheetLineItemRepository.Delete(existingRow); } _unitOfWork.Commit(); // Add Fresh foreach (var lineItem in timeSheet.Rows) { var newTimeSheetLineItem = new TimeSheetLineItem { TimeSheetId = selectedSheet.Id, ProjectId = lineItem.ProjectId, TaskId = lineItem.TaskId, TaskSummary = lineItem.TaskSummary, Effort = lineItem.Effort, Comments = lineItem.Comments, WorkType = lineItem.WorkType }; _timeSheetLineItemRepository.Create(newTimeSheetLineItem); } _unitOfWork.Commit(); // Log Activity var activity = new TimeSheetActivity { TimeSheetId = selectedSheet.Id, Title = "Updated", Comment = $"{WebUser.Name} updated the TimeSheet at {DateTime.UtcNow.ToString("G")} with state {selectedSheet.State} & hours {selectedSheet.TotalHours}", CreatedByUserId = WebUser.Id }; _timeSheetActivityRepository.Create(activity); _unitOfWork.Commit(); // Notify the reporting manager online var loginEmployee = _employeeRepository.GetBy(r => r.UserId == WebUser.Id, "ReportingPerson"); if (loginEmployee?.ReportingPerson != null) { var message = $"{WebUser.Name} has updated the timesheet with {selectedSheet.TotalHours} hours"; _notificationService.NotifyUser("Timesheet Updated", message, loginEmployee.ReportingPerson.Code); } // Send Email, Email Template name is hard corded - Need to change later // Replace the hard coded emails with settings or a team. #if !DEBUG _emailComposerService.TimeSheetUpdated(selectedSheet.Id); #endif return(Json(true)); } return(Json(false)); }