Esempio n. 1
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 10
0
        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();
        }