public static int Save(LeaveCredit leaveCredit) { var a = new LeaveCredit { LeaveCreditNo = leaveCredit.LeaveCreditNo, CreditFrom = leaveCredit.CreditFrom, CreditTo = leaveCredit.CreditTo, Particulars = leaveCredit.Particulars, VacationEarned = leaveCredit.VacationEarned, VacationDeduction1 = leaveCredit.VacationDeduction1, VacationDeduction2 = leaveCredit.VacationDeduction2, SickEarned = leaveCredit.SickEarned, SickDeduction1 = leaveCredit.SickDeduction1, SickDeduction2 = leaveCredit.SickDeduction2, PersonnelNo = leaveCredit.PersonnelNo }; using (_d = new DataRepository <LeaveCredit>()) { if (leaveCredit.LeaveCreditNo > 0) { _d.Update(a); } else { _d.Add(a); } _d.SaveChanges(); } return(a.LeaveCreditNo); }
public IActionResult AddCredit(LeaveCredit Credit) { ViewBag.Persons = GetPersonsForLeavePolicy(); ViewBag.ListOfPolicy = GetLeavePolicies(); Credit.CreatedDate = DateTime.Now; Credit.UpdatedDate = DateTime.Now; Credit.Available = Credit.AllotedDays; if (Credit.PersonId == 0) { ModelState.AddModelError("PersonId", "Please select Employee"); } if (Credit.LeaveId == 0) { ModelState.AddModelError("LeaveType", "Please select leave type"); } if (ModelState.IsValid) { Credit.CreatedBy = Convert.ToInt32(GetSession().PersonId); Credit.IsActive = true; HttpResponseMessage response = _services.LeaveCredit.PostResponse(ApiUrl + "/api/LeaveCredit/" + 0, Credit); if (response.IsSuccessStatusCode == true) { return(RedirectToAction("LeaveCredits", "Leave")); } } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; } return(PartialView("AddCredit", Credit)); }
public IActionResult EditCredit(int Id) { ViewBag.Locations = GetLocations(); string stringData = _services.LeaveCredit.GetResponse(ApiUrl + "/api/LeaveCredit/GetCreditById/" + Id + "").Content.ReadAsStringAsync().Result; LeaveCredit credit = JsonConvert.DeserializeObject <LeaveCredit>(stringData); return(PartialView("EditCredit", credit)); }
public IActionResult AddCredit() { ViewBag.Persons = GetPersonsForLeavePolicy(); ViewBag.ListOfPolicy = GetLeavePolicies(); LeaveCredit leaveCredit = new LeaveCredit(); return(PartialView("AddCredit", leaveCredit)); }
public static bool Delete(LeaveCredit leaveCredit) { using (_d = new DataRepository <LeaveCredit>()) { _d.Delete(leaveCredit); _d.SaveChanges(); } return(true); }
public IActionResult Delete([FromRoute] int id) { LeaveCredit credit = _repository.LeaveCredit.FindByCondition(x => x.Id == id); if (credit == null) { return(NotFound()); } credit.IsActive = false; _repository.LeaveCredit.UpdateAndSave(credit); _repository.LeaveCredit.Dispose(); return(Ok(credit)); }
public IActionResult EditCredit(LeaveCredit credit) { ViewBag.Locations = GetLocations(); credit.UpdatedDate = DateTime.Now; credit.UpdatedBy = Convert.ToInt32(GetSession().PersonId); if (ModelState.IsValid) { credit.IsActive = true; HttpResponseMessage response = _services.LeaveCredit.PostResponse(ApiUrl + "/api/LeaveCredit/" + credit.Id, credit); string stringData = response.Content.ReadAsStringAsync().Result; LeaveCredit LeaveRules = JsonConvert.DeserializeObject <LeaveCredit>(stringData); if (response.IsSuccessStatusCode == true) { return(View()); } } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; } return(PartialView("EditCredit", credit)); }
public IActionResult PostLeaveCredit([FromRoute] int Id, [FromBody] LeaveCredit Credit) { if (Id == 0) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Credit.TenantId = TenantId; _repository.LeaveCredit.AddCreditAndSave(Credit); _repository.LeaveCredit.Dispose(); return(Ok()); } else { LeaveCredit leaveCredit = _repository.LeaveCredit.FindByCondition(x => x.Id == Credit.Id); float diff = leaveCredit.AllotedDays - leaveCredit.Available; Credit.TenantId = TenantId; Credit.Available = Credit.AllotedDays - _repository.LeaveRules.GetLeaveCount(Credit.PersonId, Credit.LeaveId); _repository.LeaveCredit.UpdateAndSave(Credit); return(Ok(Credit)); } }
public string UpdateRequestStatus(int RequestId, string Status, int PersonId, float?OldCountForEdit) { string messege = null; var leaveCredit = new LeaveCredit(); LeaveRequest leaveRequest = _dbContext.LeaveRequests.Include(x => x.Person).Where(x => x.Id == RequestId).FirstOrDefault(); leaveRequest.UpdatedDate = DateTime.Now; bool isPaid = _dbContext.LeaveRequests.Include(x => x.TypeOfLeave).Where(x => x.Id == RequestId).FirstOrDefault().TypeOfLeave.IsPaid; if (Status == "Approve") { if ((leaveRequest.FromDate <= DateTime.Now.Date || leaveRequest.ToDate <= DateTime.Now.Date) && leaveRequest.LeaveType.Contains("Past")) { leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); leaveCredit.Available = leaveCredit.Available - leaveRequest.RequestedDays; } leaveRequest.ApprovedBy = PersonId; leaveRequest.UpdatedBy = PersonId; leaveRequest.Status = "Approved"; messege = "Request of " + leaveRequest.Person.FirstName + " is approved for " + leaveRequest.RequestedDays + " days"; //var requests = _dbContext.LeaveRequests.Where(x => x.PersonId == leaveRequest.PersonId); } else if (Status == "Reject") { leaveRequest.UpdatedBy = PersonId; leaveRequest.Status = "Rejected"; if (isPaid == true) { leaveRequest.Available = leaveRequest.Available + leaveRequest.RequestedDays; leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); leaveCredit.Available = leaveCredit.Available + leaveRequest.RequestedDays; } messege = "Request of " + leaveRequest.Person.FirstName + " is rejected for " + leaveRequest.RequestedDays + " days"; } else if (Status == "Pending") { leaveRequest.UpdatedBy = PersonId; if (leaveRequest.Status == null || leaveRequest.Status == "Rejected") { leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); if (isPaid == true) { leaveCredit.Available = leaveCredit.Available - leaveRequest.RequestedDays; } } leaveRequest.Status = "Pending"; messege = "Request of " + leaveRequest.Person.FirstName + " marked as pending"; } else if (Status == "Cancel") { leaveRequest.UpdatedBy = PersonId; if (leaveRequest.Status == "Pending") { if (isPaid == true) { leaveRequest.Status = "Cancelled"; leaveRequest.Available = leaveRequest.Available + leaveRequest.RequestedDays; leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); leaveCredit.Available = leaveCredit.Available + leaveRequest.RequestedDays; } messege = "Your request has been cancelled"; } else if (leaveRequest.Status == "Approved") { leaveRequest.Status = "Requested For Cancel"; messege = "Your request for cancelling submitted successully"; } } else if (Status == "Accept Cancel") { leaveRequest.UpdatedBy = PersonId; leaveRequest.Status = "Cancelled"; if (isPaid == true) { leaveRequest.Available = leaveRequest.Available + leaveRequest.RequestedDays; leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); leaveCredit.Available = leaveCredit.Available + leaveRequest.RequestedDays; } messege = "Request is cancelled"; } else if (Status == "Reject Cancel") { leaveRequest.UpdatedBy = PersonId; leaveRequest.Status = "Approved(Rejected Cancel Request)"; messege = "Request for cancelling rejected successfully"; } else if (Status == null) { leaveRequest.UpdatedBy = PersonId; if (isPaid == true) { leaveCredit = _dbContext.LeaveCredit.Where(c => c.LeaveId == leaveRequest.TypeId && c.PersonId == leaveRequest.PersonId).FirstOrDefault(); leaveCredit.Available = leaveCredit.Available + Convert.ToInt64(OldCountForEdit) - leaveRequest.RequestedDays; //leaveRequest.Available = leaveRequest.Available - leaveRequest.RequestedDays; } } Save(); return(messege); }
public void SendMail(int RequestId, string status, string OldStatus) { LeaveRequest leave = _repository.LeaveRequest.FindByCondition(x => x.Id == RequestId); bool isPaid = _repository.LeaveRequest.FindAll().Include(x => x.TypeOfLeave).Where(x => x.Id == RequestId).FirstOrDefault().TypeOfLeave.IsPaid; Person person = _repository.Employee.FindByCondition(x => x.Id == leave.PersonId); string Role = null; if (person != null) { Role = _repository.Employee.GetDesignationById(person.RoleId).Name; } List <GetAdminHrManager> p = _repository.Employee.getAdminHrManager(); string To = person.EmailAddress; string subject = "EMS Leave Request"; string body = "Hello " + person.FullName + "\n"; string bodyforadmin = null; if (status == "Pending") { if (OldStatus == "Approved") { body += "Your Approved leave request is currently on hold and current status is Pending.\n"; body += "Date From :" + leave.FromDate.ToString("dd/MM/yyyy") + "\n"; body += "Date To :" + leave.ToDate.ToString("dd/MM/yyyy") + "\n"; body += "Requested Days :" + leave.RequestedDays; bodyforadmin = "Approved leave request of " + person.FullName + " is currently on hold and curent status is Pending.\n"; bodyforadmin += "Leave Details : \n"; bodyforadmin += "Date From :" + leave.FromDate.ToString("dd/MM/yyyy") + "\n"; bodyforadmin += "Date To :" + leave.ToDate.ToString("dd/MM/yyyy") + "\n"; bodyforadmin += "Requested Days :" + leave.RequestedDays; } else { body += "Your leave request for " + leave.RequestedDays.ToString() + " days is submitted successfully.\n"; body += "Date From:" + leave.FromDate.ToString("dd/MM/yyyy") + "\n"; body += "Date To:" + leave.ToDate.ToString("dd/MM/yyyy") + "\n"; body += "Requested Days:" + leave.RequestedDays; bodyforadmin = person.FullName + " has send a request for " + leave.LeaveType + " leave from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + "."; } } else if (status == "Reject") { body += "Your leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been rejected"; bodyforadmin = "The leave request of " + person.FullName + " for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been rejected successfully."; } else if (status == "Approve") { int avl = Convert.ToInt32(_repository.LeaveCredit.GetAvailableLeaves(person.Id, 0)); LeaveCredit credit = _repository.LeaveCredit.FindByCondition(x => x.LeaveId == leave.TypeId && x.PersonId == leave.PersonId); if (credit != null && isPaid == true) { body += "Your leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been approved.\n Remaining available leaves are " + avl.ToString() + " days"; } else { body += "Your leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been approved."; } bodyforadmin = "The leave request of " + person.FullName + " for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been approved successfully."; } else if (status == "Cancel") { if (OldStatus == "Pending") { body += "Your leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been cancelled"; } else { body += "Your cancelling request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " is submitted successfully."; bodyforadmin = person.FullName + " has send a request to cancel the leave from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy"); } } else if (status == "Accept Cancel") { body += "Your cancelling leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been approved."; bodyforadmin = "The leave approved for " + person.FullName + " from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been cancelled by his/her request."; } else if (status == "Reject Cancel") { body += "Your cancelling leave request for " + leave.RequestedDays.ToString() + " days from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been rejected."; bodyforadmin = "The request for 'cancelling the leave request' send by " + person.FullName + " from " + leave.FromDate.ToString("dd/MM/yyyy") + " to " + leave.ToDate.ToString("dd/MM/yyyy") + " has been rejected successfully."; } if (bodyforadmin != null) { foreach (var pers in p) { if (pers.Name != Role) { new EmailManager(_configuration, _repository).SendEmail(subject, bodyforadmin, pers.EmailAddress, null); } } } new EmailManager(_configuration, _repository).SendEmail(subject, body, To, null); _repository.LeaveCredit.Dispose(); }