Example #1
0
 public void CreateLeave(LeaveApplication lvapplication, LeaveType lvType, VMLoggedUser LoggedInUser)
 {
     try
     {
         //gets the information of leave and saving entries from logged in user to leaveApplication.
         lvapplication.LeaveDate = DateTime.Today;
         int _userID = (int)LoggedInUser.PUserID;
         lvapplication.LineManagerID     = (int)LoggedInUser.LineManagerID;
         lvapplication.CreatedBy         = _userID;
         lvapplication.Active            = true;
         lvapplication.LeaveStageID      = "P";
         lvapplication.SubmittedByUserID = LoggedInUser.PUserID;
         LeaveApplicationRepository.Add(lvapplication);
         LeaveApplicationRepository.Save();
         // Add notification to Line manager's end that he has a pending leave Request.
         DDService.SaveNotification(lvapplication.LineManagerID, "/ESSP/ESSPLeaveApp/PendingLeaveApplicationIndex",
                                    Convert.ToInt32(NTLeaveEnum.LeavePending), true, lvapplication.EmpID, lvapplication.PLeaveAppID);
         SaveLeaveApplicationFlow(lvapplication.LineManagerID, _userID, lvapplication.LeaveStageID, lvapplication.PLeaveAppID, lvapplication.LeaveReason, "");
         // Save entry in Notification Email table for where the email is generated through service.
         VHR_UserEmployee LMUser  = DDService.GetEmployeeUser(lvapplication.LineManagerID, null);
         VHR_UserEmployee EmpUser = DDService.GetEmployeeUser(null, lvapplication.EmpID);
         Expression <Func <VAT_LeaveApplication, bool> > SpecificEntries2 = c => c.PLeaveAppID == lvapplication.PLeaveAppID;
         VAT_LeaveApplication vlvApplication = VEPESSPLeaveApplicationReporsitory.FindBy(SpecificEntries2).First();
         DDService.GenerateEmail(LMUser.OfficialEmailID, "", "Leave Application # " + lvapplication.PLeaveAppID.ToString(),
                                 ESSPText.GetPendingLeaveText(vlvApplication, LMUser.UserEmployeeName), LoggedInUser.PUserID, Convert.ToInt32(NTLeaveEnum.LeavePending));
     }
     catch (Exception ex)
     {
     }
 }
        public string ApproveJobCard(VMESSPCommon vmESSPCommon, VMLoggedUser LoggedInUser, string Message)
        {
            //Gets the First entry and comment box for the approval of the Job Card Application
            JobCardApp jobCardApp = JobCardAppRepository.GetSingle((int)vmESSPCommon.PID);

            //Changes the stage of JobCard to "A"(Approved).
            //if (DDService.IsDateLieBetweenActivePayroll(jobCardApp.DateStarted))
            //{

            Expression <Func <PayrollPeriod, bool> > SpecificEntries96 = c => jobCardApp.DateStarted >= c.PRStartDate && jobCardApp.DateStarted <= c.PREndDate && c.PeriodStageID == "C";
            List <PayrollPeriod> dbPayrollPeriods = PayrollPeriodService.GetIndexSpecific(SpecificEntries96).ToList();

            if (dbPayrollPeriods.Count() > 0)
            {
                Message = "Cannot Approve Job Cards of Closed Payroll Period";
            }
            if (Message == "")
            {
                jobCardApp.JobCardStageID = "A";
                JobCardAppRepository.Edit(jobCardApp);
                UnitOfWork.Commit();
                //Gets the LM and Employee Information
                VHR_UserEmployee LMUser  = DDService.GetEmployeeUser(jobCardApp.LineManagerID, null);
                VHR_UserEmployee EmpUser = DDService.GetEmployeeUser(null, jobCardApp.EmployeeID);
                // Add notifcation to Employee end about the Approval of the Job Card
                DDService.SaveNotification((int)EmpUser.PUserID, "/ESSP/ESSPJobCard/Index",
                                           Convert.ToInt32(NotificationTypeJCEnum.JCApproved), true, jobCardApp.LineManagerID, jobCardApp.PJobCardAppID);
                // Create Entry in the Job card flow.
                SaveJobCardFlow((int)EmpUser.PUserID, (int)jobCardApp.LineManagerID, jobCardApp.JobCardStageID, jobCardApp.PJobCardAppID, "", vmESSPCommon.Comment);
                // Save Email in notification email about the approval of the jobcard that is being sent to the employeee through Service.
                Expression <Func <VAT_JobCardApplication, bool> > SpecificEntries2 = c => (c.PJobCardAppID == jobCardApp.PJobCardAppID);
                VAT_JobCardApplication dbVAT_JobCardApplication = VATJobCardApplicationReporsitory.FindBy(SpecificEntries2).First();
                DDService.GenerateEmail(EmpUser.OfficialEmailID, "", "Job Card Application # " + jobCardApp.PJobCardAppID.ToString(),
                                        ESSPText.GetApprovedJCText(dbVAT_JobCardApplication, EmpUser.UserEmployeeName, LMUser.UserEmployeeName, LMUser.DesignationName), LoggedInUser.PUserID, Convert.ToInt32(NotificationTypeJCEnum.JCApproved));
                // Create Reprocess Request
                DDService.ProcessDailyAttendance(jobCardApp.DateStarted, jobCardApp.DateEnded, (int)jobCardApp.EmployeeID, jobCardApp.EmployeeID.ToString());
                DDService.ProcessMonthlyAttendance(jobCardApp.DateStarted, (int)jobCardApp.EmployeeID, jobCardApp.EmployeeID.ToString());
                // Disable Notifications of Pending Job Card
                int notiTypeID1 = Convert.ToInt32(NotificationTypeJCEnum.JCPending);
                Expression <Func <Notification, bool> > SpecificEntries = c => (c.UserID == LoggedInUser.PUserID && c.Status == true && (c.NotificationTypeID == notiTypeID1) && c.PID == jobCardApp.PJobCardAppID);
                DDService.DeleteNotification(SpecificEntries);
            }

            return(Message);
        }