// GET: LeaveResumptions/Create public ActionResult Create(int?id) { if (id == null) { return(HttpNotFound()); } var application = db.LeaveApplications.Find(id); if (application == null) { return(HttpNotFound()); } var model = new LeaveResumption(); model.ApplyDate = DateTime.Now; model.EmployeeId = application.EmployeeId; model.EmployeeName = application.EmployeeName; model.LeaveAppID = application.LeaveAppID; model.StartDate = application.StartDate; model.LeaveType = application.LeaveType; model.ResumptionDate = DateTime.Now; model.Status = LeaveResumption.LeaveResumptionStatus.Pending; model.Duration = model.ResumptionDate.Day - model.StartDate.Day; return(View(model)); }
public async Task <ActionResult> DeleteConfirmed(int id) { LeaveResumption leaveResumption = await db.LeaveResumptions.FindAsync(id); db.LeaveResumptions.Remove(leaveResumption); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "ID,LeaveAppID,EmployeeId,EmployeeName,StartDate,ResumptionDate,Duration,Status,ApplyDate,LeaveType")] LeaveResumption leaveResumption) { if (ModelState.IsValid) { var employee = _repo.GetEmployee(int.Parse(leaveResumption.EmployeeId)); if (leaveResumption.Status == LeaveResumption.LeaveResumptionStatus.Approved) { LeaveApplication leaveapplication = db.LeaveApplications.Find(leaveResumption.LeaveAppID); if (leaveapplication.LeavePlanID != null) { ManageEmployeeLeave leaveplan = db.ManageEmployeeLeaves.Find(leaveapplication.LeavePlanID); if (leaveplan.TotalLeaveAvailable == null) { leaveplan.TotalLeaveAvailable = leaveplan.LeaveLimit; } if (leaveplan.TotalLeaveTaken == null) { leaveplan.TotalLeaveTaken = 0; } leaveplan.TotalLeaveTaken += leaveResumption.Duration; leaveplan.TotalLeaveAvailable -= leaveResumption.Duration; } if (leaveapplication.TotalLeaveAvailable == null) { leaveapplication.TotalLeaveAvailable = leaveapplication.LeaveLimit; } if (leaveapplication.TotalLeaveTaken == null) { leaveapplication.TotalLeaveTaken = 0; } leaveapplication.TotalLeaveAvailable -= leaveResumption.Duration; leaveapplication.TotalLeaveTaken += leaveResumption.Duration; string FilePath = Server.MapPath("~/Assets/EmailTemplate/LeaveApproved.cshtml"); StreamReader str = new StreamReader(FilePath); string MailText = str.ReadToEnd(); str.Close(); MailText = MailText.Replace("[Date]", DateTime.Now.ToShortDateString()); MailText = MailText.Replace("[StartDate]", leaveResumption.StartDate.ToShortDateString()); MailText = MailText.Replace("[ResumptionDate]", leaveResumption.ResumptionDate.ToShortDateString()); MailText = MailText.Replace("[Name]", employee.FullName); MailText = MailText.Replace("[HRName]", "Bolaji Fashola"); _emailhandler = new LeaveApplicationAcceptedEmail(MailText); _emailhandler.SendEmail("*****@*****.**", ""); } db.Entry(leaveResumption).State = EntityState.Modified; await db.SaveChangesAsync(); //await Task.Delay(50); return(RedirectToAction("Index")); } return(View(leaveResumption)); }
public async Task <ActionResult> Create([Bind(Include = "ID,LeaveAppID,EmployeeId,EmployeeName,StartDate,ResumptionDate,Duration,Status,ApplyDate,LeaveType")] LeaveResumption leaveResumption) { if (ModelState.IsValid) { db.LeaveResumptions.Add(leaveResumption); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(leaveResumption)); }
// GET: LeaveResumptions/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LeaveResumption leaveResumption = await db.LeaveResumptions.FindAsync(id); if (leaveResumption == null) { return(HttpNotFound()); } return(View(leaveResumption)); }