public IHttpActionResult Puttimesheet(int id, timesheet timesheet) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != timesheet.id) { return(BadRequest()); } db.Entry(timesheet).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!timesheetExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public timesheet CreateTimeSheet(int User_id, string StartDate, string StartTime, int Project_id, int Activity_id, string EndTime = "", string Rate = "", string Description = "") { //var fullDateFormat = "yyyy-MM-dd HH:mm:ss"; //string fullStringDate = StartDate + " " + StartTime; //DateTime fullDate = new DateTime(); float rate = float.Parse(Rate); //fullDate = DateTime.ParseExact(fullStringDate, fullDateFormat, CultureInfo.InvariantCulture); DateTime fullDate = getCurrentDate(); DateTime endDate = getDateFormated(EndTime); timesheet sheet = new timesheet() { user_id = User_id, activity_id = Activity_id, project_id = Project_id, start_time = Convert.ToDateTime(fullDate), end_time = Convert.ToDateTime(endDate), rate = rate, description = Description }; return(sheet); }
public IHttpActionResult Gettimesheet(int id) { timesheet timesheet = db.timesheet.Find(id); if (timesheet == null) { return(NotFound()); } return(Ok(timesheet)); }
public ActionResult Create([Bind(Include = "id,conges,heure,jour,poste,employer_id_userId")] timesheet timesheetModel) { if (ModelState.IsValid) { var timesheet = db.timesheet; timesheet.Add(timesheetModel); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(timesheetModel)); }
public IHttpActionResult Deletetimesheet(int id) { timesheet timesheet = db.timesheet.Find(id); if (timesheet == null) { return(NotFound()); } db.timesheet.Remove(timesheet); db.SaveChanges(); return(Ok(timesheet)); }
public ActionResult Create(timesheet domain) { { HttpClient Client = new HttpClient(); HttpResponseMessage response = Client.PostAsJsonAsync <timesheet>(" http://localhost:9080/piConsom-web/activator/timesheet", domain) .ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode()).Result; if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } } // catch { return(View()); } }
public ActionResult Deny(int?tid) { Entities dc = new Entities(); timesheet ts = dc.timesheets.Find(tid); if (ts.TimeSheetStatus != "Pending") { TempData["message"] = "Action already taken."; return(RedirectToAction("PendingApprovals")); } ts.TimeSheetStatus = "Denied"; ts.TimeSheetApproveTime = System.DateTime.Now; //maybe change this column? dc.Entry(ts).State = System.Data.Entity.EntityState.Modified; try { dc.SaveChanges(); TempData["message"] = "Timesheet denied successfully."; return(Redirect("PendingApprovals")); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { //more descriptive error for validation problems Exception exception = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message1 = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); //create a new exception inserting the current one as the InnerException exception = new InvalidOperationException(message1, exception); } } //error for UI ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); throw exception; } }
public ActionResult AddUser(AddUser newUser) { using (mmpEntities mP = new mmpEntities()) { ViewBag.roles = mP.roles.ToList <role>(); ViewBag.regions = mP.regions.ToList <region>(); ViewBag.supervisors = mP.users.Where(a => a.role_id == mP.roles.FirstOrDefault(x => x.role_name == "supervisor").role_id).ToList <user>(); ViewBag.departments = mP.category_type_details.Where(x => x.category_id == (mP.categories.FirstOrDefault(z => z.category_name == "departments").category_id)).ToList <category_type_details>(); ViewBag.projects = mP.category_type_details.Where(x => x.category_id == (mP.categories.FirstOrDefault(z => z.category_name == "projects").category_id)).ToList <category_type_details>(); ViewBag.supervisorsl = mP.users.Where(a => a.role_id == mP.roles.FirstOrDefault(x => x.role_name == "supervisor").role_id&& a.user_status == "active").Select(p => new SelectListItem() { Text = p.employee_id + " " + p.user_name, Value = p.user_id.ToString() }).ToList(); #region Employee ID Already Exists var isEmployeeIDExists = isEmployeeIDExist(newUser.employee_id); if (isEmployeeIDExists) { ModelState.AddModelError("EmployeeExist", "Employee already exists"); return(View(newUser)); } #endregion /*#region User Already Exists * var isUserExists = isUserExist(newUser.user_name); * if (isUserExists) * { * ModelState.AddModelError("UserExist", "User already exists"); * return View(newUser); * } #endregion*/ #region Email Already exists var isEmailExists = IsEmailExist(newUser.user_email); if (isEmailExists) { ModelState.AddModelError("EmailExist", "Email already exists"); newUser.user_name = "Enter New Name"; return(View(newUser)); } #endregion if (ModelState.IsValid) { ModelState.AddModelError("UserExist", "User already exists"); #region Password Hashing newUser.user_password = Crypto.Hash(newUser.user_password); newUser.confirmPassword = Crypto.Hash(newUser.confirmPassword); #endregion user user = new user() { role_id = newUser.role_id, employee_id = newUser.employee_id, user_name = newUser.user_name, user_email = newUser.user_email, designation = newUser.designation, user_password = newUser.user_password, created_at = DateTime.Now, supervisor = newUser.supervisor, region_id = newUser.region_id, user_primary_department = newUser.user_primary_department, user_primary_project = newUser.user_primary_project, user_status = "active", join_date = newUser.joining_date }; mP.users.Add(user); //var timesheet = mP.timesheet_mr.Where(x => x.tsmr_valid_till > DateTime.Now && x.tsmr_start_date < DateTime.Now).FirstOrDefault<timesheet_mr>(); var timesheets = mP.timesheet_mr.Where(x => x.tsmr_valid_till > user.join_date).ToList <timesheet_mr>(); foreach (timesheet_mr timesheet in timesheets) { string body; if (timesheet != null) { timesheet ts = new timesheet() { timesheet_user = user.user_id, time_my = DateTime.Now, timesheet_status = "saved", timesheet_caller = timesheet.tsmr_id, tsmr_extension = timesheet.tsmr_valid_till > DateTime.Now ? timesheet.tsmr_valid_till : DateTime.Now.AddDays(-1) }; mP.timesheets.Add(ts); foreach (DateTime day in EachDay(timesheet.tsmr_start_date, timesheet.tsmr_valid_till)) { presence ps = new presence() { p_date = day, total_hours = 0, leave_status = "", user_id = user.user_id }; mP.presences.Add(ps); } body = "<br></br>" + user.user_name + ", New TimeSheet is assigned to you. TimeSheet is valid Till " + timesheet.tsmr_valid_till + ". Visit the following website to access timeSheet<br></br>" + "<a href='http://magcom-001-site3.etempurl.com'>http://magcom-001-site3.etempurl.com</a>"; Task.Run(() => EmailAlert.SendEmail(user.user_email, body)); } } #region Save to Database mP.SaveChanges(); #endregion return(Json(new { success = true, message = "Saved Successfully" })); } else { return(Json(new { success = true, message = "Invalid Request" })); } } }
public ActionResult WorkEntry(int?tid, int?wid, WorkEntry thisDay) { if (Request.Cookies["UserID"].Value == null) { //Redirect to login if it can't find user id TempData["message"] = "Please log in."; System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n"); return(RedirectToAction("LandingPage", "Home")); } string message; ViewBag.IsExist = false; ViewBag.TimeSheetID = (int)tid; ViewBag.UserID = Int32.Parse(Request.Cookies["UserID"].Value); using (Entities dc = new Entities()) { if (tid == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } timesheet ts = dc.timesheets.Find(tid); GrizzTime.Models.workentry we = dc.workentries.FirstOrDefault(p => p.WorkEntryID == wid); if (we == null) //create new { workentry w = new workentry() { EmpID = Int32.Parse(Request.Cookies["UserID"].Value), ProjID = thisDay.ProjID, TaskID = thisDay.TaskID, WorkDate = thisDay.WorkDate, WorkHours = thisDay.WorkHours, TimeSheetID = (int)tid, }; dc.workentries.Add(w); WorkEntry thisWE = new WorkEntry() { EmpID = w.EmpID, possibleProjects = Employee.GetProjects(w.EmpID), possibleTasks = Project.GetTasks(w.ProjID), WorkDate = w.WorkDate, WorkHours = w.WorkHours, TimeSheetID = w.TimeSheetID, WorkEntryID = w.WorkEntryID, ProjID = w.ProjID, TaskID = w.TaskID, }; if (ts.TimeSheetStatus == "Denied") { ts.TimeSheetStatus = "In Progress"; } //add try catch dc.SaveChanges(); TempData["message"] = "Successfully saved."; //return View(thisWE); return(Redirect("Week/" + tid)); } else //edit existing { ViewBag.IsExist = true; ViewBag.IsChangeable = true; if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied")) { bool changeable = false; ViewBag.IsChangeable = changeable; } if (ts.TimeSheetStatus == "Denied") { ts.TimeSheetStatus = "In Progress"; } we.WorkHours = thisDay.WorkHours; we.ProjID = thisDay.ProjID; we.TaskID = thisDay.TaskID; WorkEntry thisWE = new WorkEntry() { EmpID = we.EmpID, possibleProjects = Employee.GetProjects(we.EmpID), possibleTasks = Project.GetTasks(we.ProjID), WorkDate = we.WorkDate, WorkHours = we.WorkHours, TimeSheetID = we.TimeSheetID, WorkEntryID = we.WorkEntryID, ProjID = we.ProjID, TaskID = we.TaskID, }; //dc.Entry(ts).State = System.Data.Entity.EntityState.Modified; dc.Entry(we).State = System.Data.Entity.EntityState.Modified; try { dc.SaveChanges(); message = "Time updated successfully."; TempData["message"] = message; //return View(thisWE); return(Redirect("Week/" + tid)); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { //more descriptive error for validation problems Exception exception = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message1 = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); //create a new exception inserting the current one //as the InnerException exception = new InvalidOperationException(message1, exception); } } //error for UI ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); throw exception; } } } }
public ActionResult WorkEntry(int?tid, int?wid, string DOW) { if (Request.Cookies["UserID"].Value == null) { //Redirect to login if it can't find user id TempData["message"] = "Please log in."; System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n"); return(RedirectToAction("LandingPage", "Home")); } ViewBag.IsExist = false; ViewBag.TimeSheetID = (int)tid; ViewBag.UserID = Int32.Parse(Request.Cookies["UserID"].Value); Entities dc = new Entities(); if (tid == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (wid == null) { if (DOW != null) { ViewBag.DayOfWeek = DOW; ViewBag.IsChangeable = true; return(View()); } else { TempData["message"] = "Date of week not captured."; return(HttpNotFound()); } } else //wid is not null { ViewBag.IsExist = true; ViewBag.IsChangeable = true; timesheet ts = dc.timesheets.Find(tid); if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied")) { bool changeable = false; ViewBag.IsChangeable = changeable; } var w = dc.workentries.FirstOrDefault(p => p.WorkEntryID == wid); WorkEntry thisWE = new WorkEntry() { EmpID = w.EmpID, possibleProjects = Employee.GetProjects(w.EmpID), possibleTasks = Project.GetTasks(w.ProjID), WorkDate = w.WorkDate, WorkHours = w.WorkHours, TimeSheetID = w.TimeSheetID, WorkEntryID = w.WorkEntryID, ProjID = w.ProjID, TaskID = w.TaskID }; ViewBag.DayOfWeek = thisWE.WorkDate; return(View(thisWE)); } }
// View week entry (edit) public ActionResult Week(int?id) { ViewBag.IsChangeable = true; //if (!Response.Cookies.AllKeys.Contains("UserID")) //{ // //Redirect to login if it can't find user id // TempData["message"] = "Please log in."; // System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n"); // return RedirectToAction("LandingPage", "Home"); //} ViewBag.UserID = Request.Cookies["UserID"].Value; if (id == null) { return(HttpNotFound()); } ViewBag.TimeSheetID = (int)id; Entities dc = new Entities(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } timesheet ts = dc.timesheets.Find(id); //disable edit buttons if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied")) { bool changeable = false; ViewBag.IsChangeable = changeable; } List <WorkEntry> thisWeekEntries = new List <WorkEntry>(); foreach (var item in ts.workentries) { thisWeekEntries.Add( new WorkEntry() { WorkDate = item.WorkDate, WorkHours = item.WorkHours, WorkEntryID = item.WorkEntryID, WorkTSDate = item.timesheet.payrollcycle.PayrollCycleStart, ProjName = item.project1.ProjName, TaskName = item.task.TaskName, } ); } Timesheet thisTimesheet = new Timesheet() { PayrollCycleStart = ts.payrollcycle.PayrollCycleStart, TimesheetWorkEntries = thisWeekEntries, }; if (ts == null) { return(HttpNotFound()); } return(View(thisTimesheet)); }