コード例 #1
0
        public ActionResult Create()
        {
            JobCardApp obj = new JobCardApp();

            MultipleDayJobCardHelper(obj);
            return(View(obj));
        }
コード例 #2
0
        private void SingleDayJobCardHelper(JobCardApp obj)
        {
            VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser;

            ViewBag.EmpNo         = LoggedInUser.OEmpID;
            ViewBag.JobCardTypeID = new SelectList(DDService.GetJobCardType().ToList().Where(aa => aa.PJobCardTypeID != 1 && aa.PJobCardTypeID != 3 && aa.PJobCardTypeID != 4).ToList(), "PJobCardTypeID", "JobCardName", obj.JobCardTypeID);
        }
コード例 #3
0
        //SINGLE DAY CREATE
        public ActionResult SingleDay()
        {
            JobCardApp obj = new JobCardApp();

            SingleDayJobCardHelper(obj);
            return(View(obj));
        }
コード例 #4
0
 public void PostCreate(JobCardApp obj, VMLoggedUser LoggedInUser)
 {
     try
     {
         //Save the value provided in the Get of Jobcard and save them in the Jobcard app Table.
         obj.DateCreated    = DateTime.Now;
         obj.JobCardStageID = "P";
         obj.LineManagerID  = LoggedInUser.LineManagerID;
         obj.Remarks        = obj.Remarks;
         obj.JobCardTypeID  = obj.JobCardTypeID;
         obj.DateStarted    = obj.DateStarted;
         obj.DateEnded      = obj.DateEnded;
         JobCardAppRepository.Add(obj);
         JobCardAppRepository.Save();
         // Add Notification to Line Manager that he has a Pending Job card request
         DDService.SaveNotification((int)obj.LineManagerID, "/ESSP/ESSPJobCard/PendingJobCardIndex",
                                    Convert.ToInt32(NotificationTypeJCEnum.JCPending), true, obj.EmployeeID, obj.PJobCardAppID);
         SaveJobCardFlow((int)obj.LineManagerID, (int)LoggedInUser.PUserID, obj.JobCardStageID, obj.PJobCardAppID, obj.Remarks, "");
         // Save entry in  Notification email about the Submission of leave application that is sent to LIne manager through the Service
         VHR_UserEmployee LMUser  = DDService.GetEmployeeUser(obj.LineManagerID, null);
         VHR_UserEmployee EmpUser = DDService.GetEmployeeUser(null, obj.EmployeeID);
         Expression <Func <VAT_JobCardApplication, bool> > SpecificEntries = c => (c.PJobCardAppID == obj.PJobCardAppID);
         VAT_JobCardApplication dbVAT_JobCardApplication = VATJobCardApplicationReporsitory.FindBy(SpecificEntries).First();
         DDService.GenerateEmail(LMUser.OfficialEmailID, "", "Job Card Application # " + obj.PJobCardAppID.ToString(),
                                 ESSPText.GetPendingJCText(dbVAT_JobCardApplication, LMUser.UserEmployeeName), LoggedInUser.PUserID, Convert.ToInt32(NotificationTypeJCEnum.JCPending));
     }
     catch (Exception ex)
     {
     }
 }
コード例 #5
0
        public void RejectJobCard(VMESSPCommon vmESSPCommon, VMLoggedUser LoggedInUser)
        {
            //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 "R"(Rejected).
            jobCardApp.JobCardStageID = "R";
            JobCardAppRepository.Edit(jobCardApp);
            UnitOfWork.Commit();
            // Add notifcation to Employee end about the Rejection of the Job Card
            VHR_UserEmployee LMUser  = DDService.GetEmployeeUser(jobCardApp.LineManagerID, null);
            VHR_UserEmployee EmpUser = DDService.GetEmployeeUser(null, jobCardApp.EmployeeID);

            DDService.SaveNotification((int)EmpUser.PUserID, "/ESSP/ESSPJobCard/Index",
                                       Convert.ToInt32(NotificationTypeJCEnum.JCRejected), true, jobCardApp.EmployeeID, jobCardApp.PJobCardAppID);
            // Create Entry in the Job card flow.
            SaveJobCardFlow(EmpUser.PUserID, LMUser.PUserID, jobCardApp.JobCardStageID, jobCardApp.PJobCardAppID, "", vmESSPCommon.Comment);
            // Save Email in notification email about the Rejection 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.GetRejectJCText(dbVAT_JobCardApplication, EmpUser.UserEmployeeName, LMUser.UserEmployeeName, LMUser.DesignationName), LoggedInUser.PUserID, Convert.ToInt32(NotificationTypeJCEnum.JCRejected));
            // 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);
        }
コード例 #6
0
        private void AddJobCardData(Emp _selEmp, JobCardApp jcApp)
        {
            int      _empID   = _selEmp.EmpID;
            string   _empDate = "";
            int      _userID  = (int)jcApp.UserID;
            DateTime _Date    = (DateTime)jcApp.DateStarted;

            while (_Date <= jcApp.DateEnded)
            {
                _empDate = _selEmp.EmpID + _Date.ToString("yyMMdd");
                AddJobCardDataToDatabase(_empDate, _empID, _Date, _userID, jcApp);
                if (db.AttProcesses.Where(aa => aa.ProcessDate == _Date).Count() > 0)
                {
                    switch (jcApp.CardType)
                    {
                    case 8:    // Training
                        AddJCTrainingToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 9:    // Tour
                        AddJCTourToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 10:    // Visit
                        AddJCVisitToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;
                    }
                }
                _Date = _Date.AddDays(1);
            }
        }
コード例 #7
0
        public ActionResult DeleteJC(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            JobCardApp jobcardapp = db.JobCardApps.Find(id);

            if (jobcardapp != null)
            {
                List <JobCardDetail> jcEmps = new List <JobCardDetail>();
                jcEmps = db.JobCardDetails.Where(aa => aa.JCAppID == id).ToList();
                if (jcEmps.Count > 0)
                {
                    foreach (var item in jcEmps)
                    {
                        db.JobCardDetails.Remove(item);
                        db.SaveChanges();
                        RemoveFromAttData(item);
                    }
                }
                db.JobCardApps.Remove(jobcardapp);
                db.SaveChanges();
                //return HttpNotFound();
            }
            return(RedirectToAction("JobCardList"));
        }
コード例 #8
0
        private bool ValidateJobCard(JobCardApp jobCardApp)
        {
            List <JobCardApp> _Lc      = new List <JobCardApp>();
            DateTime          _DTime   = new DateTime();
            DateTime          _DTimeLV = new DateTime();

            _Lc = db.JobCardApps.Where(aa => aa.CriteriaDate == jobCardApp.CriteriaDate).ToList();
            foreach (var item in _Lc)
            {
                _DTime   = (DateTime)item.DateStarted;
                _DTimeLV = (DateTime)jobCardApp.DateStarted;
                while (_DTime <= item.DateEnded)
                {
                    while (_DTimeLV <= jobCardApp.DateEnded)
                    {
                        if (_DTime == _DTimeLV)
                        {
                            return(false);
                        }
                        _DTimeLV = _DTimeLV.AddDays(1);
                    }
                    _DTime = _DTime.AddDays(1);
                }
            }
            return(true);
        }
コード例 #9
0
        public ActionResult MultipleDay()
        {
            JobCardApp obj = new JobCardApp();

            obj = JobCardService.GetMultipleDay();
            CreateHelper(obj);
            return(View(obj));
        }
コード例 #10
0
        public ActionResult DeleteConfirmed(int id)
        {
            JobCardApp jobcardapp = db.JobCardApps.Find(id);

            db.JobCardApps.Remove(jobcardapp);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #11
0
 public ActionResult Edit([Bind(Include = "JobCardID,DateCreated,DateStarted,DateEnded,CardType,UserID,JobCardCriteria,CriteriaData,Status,TimeIn,TimeOut,WorkMin")] JobCardApp jobcardapp)
 {
     if (ModelState.IsValid)
     {
         //db.Entry(jobcardapp).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(jobcardapp));
 }
コード例 #12
0
        private void AddJobCardData(Emp _selEmp, JobCardApp jcApp)
        {
            int      _empID   = _selEmp.EmpID;
            string   _empDate = "";
            int      _userID  = (int)jcApp.UserID;
            DateTime _Date    = (DateTime)jcApp.DateStarted;

            while (_Date <= jcApp.DateEnded)
            {
                _empDate = _selEmp.EmpID + _Date.ToString("yyMMdd");
                AddJobCardDataToDatabase(_empDate, _empID, _Date, _userID, jcApp);
                if (db.AttDatas.Where(aa => aa.EmpDate == _empDate).Count() > 0)
                {
                    //1	Official Duty
                    //2	Present
                    //3	Absent
                    //5	Special Holiday
                    switch (jcApp.CardType)
                    {
                    case 1:    // Official Duty
                        AddJCToAttData(_empDate, _empID, _Date, "O", false, false, false, false, true, "Offical Duty");
                        break;

                    case 2:    // Present
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Present");
                        break;

                    case 3:    // Absent
                        AddJCToAttData(_empDate, _empID, _Date, "D", true, false, false, false, false, "Absent");
                        break;

                    case 5:    // Field Visit
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Field Visit");
                        break;

                    case 6:    // Monitoring Visit
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Monitoring Visit");
                        break;

                    case 7:    // Training
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Training");
                        break;

                    case 8:    // Seminar / Workshop
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Seminar / Workshop");
                        break;

                    case 9:    // Official Meeting
                        AddJCToAttData(_empDate, _empID, _Date, "D", false, false, false, false, true, "Official Meeting");
                        break;
                    }
                }
                _Date = _Date.AddDays(1);
            }
        }
コード例 #13
0
        public ActionResult Create([Bind(Include = "JobCardID,DateCreated,DateStarted,DateEnded,CardType,UserID,JobCardCriteria,CriteriaData,Status,TimeIn,TimeOut,WorkMin")] JobCardApp jobcardapp)
        {
            if (ModelState.IsValid)
            {
                db.JobCardApps.Add(jobcardapp);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(jobcardapp));
        }
コード例 #14
0
 public void PostSingleDay(JobCardApp obj)
 {
     obj.DateCreated = DateTime.Now;
     obj.DateEnded   = obj.DateStarted;
     if (obj.TimeEnd != null && obj.TimeEnd != null)
     {
         obj.Minutes = (short)((obj.TimeEnd.Value - obj.TimeStart.Value).TotalMinutes);
     }
     JobCardAppRepository.Add(obj);
     UnitOfWork.Commit();
 }
コード例 #15
0
        // GET: /JobCard/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            JobCardApp jobcardapp = db.JobCardApps.Find(id);

            if (jobcardapp == null)
            {
                return(HttpNotFound());
            }
            return(View(jobcardapp));
        }
コード例 #16
0
        private void AddJobCardData(Emp _selEmp, JobCardApp jcApp)
        {
            int      _empID   = _selEmp.EmpID;
            string   _empDate = "";
            int      _userID  = (int)jcApp.UserID;
            DateTime _Date    = (DateTime)jcApp.DateStarted;

            while (_Date <= jcApp.DateEnded)
            {
                _empDate = _selEmp.EmpID + _Date.ToString("yyMMdd");
                AddJobCardDataToDatabase(_empDate, _empID, _Date, _userID, jcApp);
                if (db.AttProcesses.Where(aa => aa.ProcessDate == _Date).Count() > 0)
                {
                    switch (jcApp.CardType)
                    {
                    case 1:    //Day Off
                        AddJCDayOffToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 2:    //GZ Holiday
                        AddJCGZDayToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 3:    //Absent
                        AddJCAbsentToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 4:    //official Duty
                        AddJCODDayToAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        break;

                    case 8:    // Double Duty
                        AddDoubleDutyAttData(_empDate, _empID, _Date, _userID, jcApp);
                        break;

                    case 9:    // Badli Duty
                        AddBadliTableData(_empID, _empDate, _Date, (short)jcApp.OtherValue, jcApp.Remarks);
                        AddBadliAttData(_empDate, _empID, _Date, _userID, jcApp);
                        break;
                        //case 10:// Late In Margin
                        //    AddLateInMarginAttData(_empDate, _empID, _Date, _userID, (short)jcApp.CardType);
                        //    break;
                    }
                }
                _Date = _Date.AddDays(1);
            }
            HelperClass.MyHelper.SaveAuditLog(_userID, (byte)MyEnums.FormName.EditAttendance, (byte)MyEnums.Operation.Edit, DateTime.Now);
        }
コード例 #17
0
        public ActionResult Delete(JobCardApp obj)
        {
            Expression <Func <JobCardApp, bool> > SpecificEntries2 = aa => aa.PJobCardAppID == obj.PJobCardAppID;

            JobCardAppService.GetIndexSpecific(SpecificEntries2);
            if (ModelState.IsValid)
            {
                JobCardAppService.PostDelete(obj);
                // Create Reprocess Request
                DDService.ProcessDailyAttendance(obj.DateStarted, obj.DateEnded, (int)obj.EmployeeID, obj.EmployeeID.ToString());
                DDService.ProcessMonthlyAttendance(obj.DateStarted, (int)obj.EmployeeID, obj.EmployeeID.ToString());

                return(Json("OK", JsonRequestBehavior.AllowGet));
            }
            return(PartialView("Delete", obj));
        }
コード例 #18
0
        public ActionResult Delete(JobCardApp obj)
        {
            VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser;
            Expression <Func <VEP_JobCardApplication, bool> > SpecificEntries2 = c => (c.PJobCardAppID == obj.PJobCardAppID);
            VEP_JobCardApplication vpjca = VEPJobCardApplicationService.GetIndexSpecific(SpecificEntries2).First();

            JobCardESSPService.PostDelete(obj);
            // Disable Notifications
            int notiTypeID1 = Convert.ToInt32(NotificationTypeJCEnum.JCPending);
            Expression <Func <Notification, bool> > SpecificEntries = c => (c.EmployeeID == LoggedInUser.UserEmpID && c.Status == true && (c.NotificationTypeID == notiTypeID1) && c.PID == vpjca.PJobCardAppID);

            DDService.DeleteNotification(SpecificEntries);
            ToasterMessages.Add("Job card Deleted successfully !");
            Session["ToasterMessages"] = ToasterMessages;
            return(Json("OK", JsonRequestBehavior.AllowGet));
        }
コード例 #19
0
        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);
        }
コード例 #20
0
        public void PostCreate3(VMJobCardCreate es, int?[] employeeIds, VMLoggedUser LoggedInUser)
        {
            string Message = "";

            foreach (var empid in employeeIds)
            {
                VHR_EmployeeProfile employee = DDService.GetEmployeeInfo(LoggedInUser).Where(aa => aa.PEmployeeID == empid).First();
                Expression <Func <Shift, bool> > SpecificEntries97 = c => c.PShiftID == employee.ShiftID;
                Shift shifts = ShiftService.GetIndexSpecific(SpecificEntries97).First();
                if (shifts.GZDays == true)
                {
                    List <Holiday> holiday = DDService.GetHolidays().Where(aa => aa.HolidayDate == es.JobDateFrom).ToList();
                    if (holiday.Count > 0)
                    {
                        Message = "Cannot apply job card of the Gazetted Holiday";
                    }
                }
                Expression <Func <PayrollPeriod, bool> > SpecificEntries96 = c => es.JobDateFrom >= c.PRStartDate && es.JobDateFrom <= c.PREndDate && c.PeriodStageID == "C";
                List <PayrollPeriod> dbPayrollPeriods = PayrollPeriodService.GetIndexSpecific(SpecificEntries96).ToList();
                if (dbPayrollPeriods.Count() > 0)
                {
                    Message = "Cannot enter Job card in Closed Payroll Period";
                }
                if (Message == "")
                {
                    JobCardApp jcApp = new JobCardApp();
                    jcApp.DateCreated   = DateTime.Now;
                    jcApp.DateEnded     = es.JobDateTo;
                    jcApp.DateStarted   = es.JobDateFrom;
                    jcApp.EmployeeID    = empid;
                    jcApp.Minutes       = es.TotalMinutes;
                    jcApp.Remarks       = es.Remarks;
                    jcApp.JobCardTypeID = es.JobCardTypeID;
                    jcApp.UserID        = LoggedInUser.PUserID;
                    JobCardAppRepository.Add(jcApp);
                    JobCardAppRepository.Save();
                    DDService.ProcessDailyAttendance(jcApp.DateStarted, jcApp.DateEnded, (int)jcApp.EmployeeID, jcApp.EmployeeID.ToString());
                    DDService.ProcessMonthlyAttendance(jcApp.DateStarted, (int)jcApp.EmployeeID, jcApp.EmployeeID.ToString());
                }
                else
                {
                }
            }
        }
コード例 #21
0
        private void AddJobCardsIntoDatabse(string empDate, VMLeaveEditor datas, string Name, string date)
        {
            User       LoggedInUser = Session["LoggedUser"] as User;
            int        empid        = db.Emps.First(aa => aa.EmpNo == datas.EmpNo).EmpID;
            int        cardtypeid   = db.JobCards.First(aa => aa.WorkCardName == Name).WorkCardID;
            JobCardApp jc           = new JobCardApp();

            jc.DateStarted     = Convert.ToDateTime(date);
            jc.DateEnded       = Convert.ToDateTime(date);
            jc.CardType        = (short)cardtypeid;
            jc.JobCardCriteria = "E";
            jc.CriteriaDate    = empid;
            jc.Status          = false;
            jc.UserID          = LoggedInUser.UserID;
            List <Emp> emptemp = db.Emps.Where(aa => aa.EmpNo == datas.EmpNo && aa.Deleted == false).ToList();

            if (emptemp.Count > 0)
            {
                if (ValidateJobCard(jc))
                {
                    db.JobCardApps.Add(jc);
                    if (db.SaveChanges() > 0)
                    {
                        AddJobCardAppToJobCardData(datas);
                    }
                }
                else
                {
                    ViewBag.validtonmessageforJC = "Job Card Validation failed";
                }
            }
            else
            {
                ViewBag.validtonmessageforJC = "There is no employee found";
            }
        }
コード例 #22
0
        private void AddJobCardData(VMLeaveEditor datas, JobCardApp jcApp)
        {
            int      _empID   = db.Emps.First(aa => aa.EmpNo == datas.EmpNo).EmpID;
            string   _empDate = "";
            int      _userID  = (int)jcApp.UserID;
            DateTime _Date    = (DateTime)jcApp.DateStarted;

            while (_Date <= jcApp.DateEnded)
            {
                _empDate = _empID + _Date.ToString("yyMMdd");
                AddJobCardDataToDatabase(_empDate, _empID, _Date, _userID, jcApp);
                db.SaveChanges();
                if (db.AttDatas.Where(aa => aa.EmpDate == _empDate).Count() > 0)
                {
                    //1	Official Duty
                    //2	Present
                    //3	Absent
                    //5	Special Holiday
                    switch (jcApp.CardType)
                    {
                    case 1:    // Official Duty
                        AddJCToAttData(_empDate, _empID, _Date, "O", false, false, false, false, true, "Offical Duty");
                        break;

                    case 5:    // Field Visit
                        AddJCToAttData(_empDate, _empID, _Date, "O", false, false, false, false, true, "Field Visit");
                        break;

                    case 7:    // Training
                        AddJCToAttData(_empDate, _empID, _Date, "O", false, false, false, false, true, "Training");
                        break;
                    }
                }
                _Date = _Date.AddDays(1);
            }
        }
コード例 #23
0
        public void PostDelete(JobCardApp obj)
        {
            //Get the Specific id of the jobcard that is to be deleted.
            Expression <Func <JobCardDetail, bool> > SpecificEntries = c => (c.JobCardAppID == obj.PJobCardAppID);
            //delete all the values of the jobcard that are present in the jobcard details.
            List <JobCardDetail> jcd = JobCardDetailReporsitory.FindBy(SpecificEntries);

            foreach (var jcds in jcd)
            {
                JobCardDetailReporsitory.Delete(jcds);
            }
            //Gets the list of Jobcard flows that are created in the database and have same jobcard app id as the job card to be deleted has.
            Expression <Func <JobCardAppFlow, bool> > SpecificEntries2 = c => (c.JobCardAppID == obj.PJobCardAppID);
            List <JobCardAppFlow> jcf = JobCardAppFlowReporsitory.FindBy(SpecificEntries2);

            foreach (var jcfs in jcf)
            {
                JobCardAppFlowReporsitory.Delete(jcfs);
            }

            JobCardAppRepository.Delete(obj);

            UnitOfWork.Commit();
        }
コード例 #24
0
        public ActionResult EditAttJobCard()
        {
            User   LoggedInUser   = Session["LoggedUser"] as User;
            string Message        = "";
            string MessageSuccess = "";
            string criteria       = Request.Form["CreateJCCriteria"].ToString();
            short  _WorkCardID    = Convert.ToInt16(Request.Form["JobCardType"].ToString());
            //First Save Job Card Application
            JobCardApp jobCardApp = new JobCardApp();

            jobCardApp.CardType    = _WorkCardID;
            jobCardApp.DateCreated = DateTime.Now;
            jobCardApp.DateStarted = Convert.ToDateTime(Request.Form["JobDateFrom"]);
            jobCardApp.DateEnded   = Convert.ToDateTime(Request.Form["JobDateTo"]);
            jobCardApp.Status      = false;
            string Remakrs = Request.Form["Remakrs"].ToString();

            if (Remakrs != "")
            {
                jobCardApp.Remarks = Remakrs;
            }
            jobCardApp.UserID = LoggedInUser.UserID;
            int NoOfDays = (int)(jobCardApp.DateEnded.Value - jobCardApp.DateStarted.Value).TotalDays;

            if (NoOfDays < 400)
            {
                if (jobCardApp.DateStarted <= jobCardApp.DateEnded)
                {
                    switch (criteria)
                    {
                    case "ByCrew":
                        jobCardApp.CriteriaDate    = Convert.ToInt32(Request.Form["CrewID"].ToString());
                        jobCardApp.JobCardCriteria = "C";
                        if (ValidateJobCard(jobCardApp))
                        {
                            db.JobCardApps.Add(jobCardApp);
                            if (db.SaveChanges() > 0)
                            {
                                AddJobCardAppToJobCardData();
                            }
                        }
                        else
                        {
                            Message = "Job Card Validation failed";
                        }
                        break;

                    case "ByEmployee":
                        string         EmpNo = Request.Form["EmpNo"].ToString();
                        List <EmpView> emps  = new List <EmpView>();
                        emps = db.EmpViews.Where(aa => aa.EmpNo == EmpNo && aa.Status == true).ToList();
                        emps = AssistantQuery.GetFilteredEmps(emps, db.UserSections.Where(aa => aa.UserID == LoggedInUser.UserID).ToList());
                        if (emps.Count > 0)
                        {
                            jobCardApp.CriteriaDate    = emps.FirstOrDefault().EmpID;
                            jobCardApp.JobCardCriteria = "E";
                            if (ValidateJobCard(jobCardApp))
                            {
                                db.JobCardApps.Add(jobCardApp);
                                if (db.SaveChanges() > 0)
                                {
                                    AddJobCardAppToJobCardData();
                                }
                            }
                            else
                            {
                                Message = "Already applied job card on this date";
                            }
                        }
                        else
                        {
                            Message = "There is no employee found";
                        }
                        break;
                    }
                }
                else
                {
                    Message = "Dates format is incorrect, please select correct format";
                }
            }
            else
            {
                Message = "Job card should not be applied more then one year";
            }
            //List<EmpView> emps = new List<EmpView>();
            ViewData["JobDateFrom"] = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
            ViewData["JobDateTo"]   = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
            ViewBag.JobCardType     = new SelectList(db.JobCards, "WorkCardID", "WorkCardName");
            ViewBag.CrewID          = new SelectList(db.Crews, "CrewID", "CrewName");
            if (Message == "")
            {
                MessageSuccess = "Job Card created sucessfully";
            }
            ViewBag.DMessage = MessageSuccess;
            ViewBag.CMessage = Message;
            return(View("JCCreate"));
        }
コード例 #25
0
 public ActionResult SingleDay(JobCardApp obj)
 {
     {
         VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser;
         string       _EmpNo       = Request.Form["EmpNo"].ToString();
         Expression <Func <Employee, bool> > SpecificEntries = c => c.OEmpID == _EmpNo;
         List <VHR_EmployeeProfile>          _emp            = DDService.GetEmployeeInfo(LoggedInUser).Where(aa => aa.OEmpID == _EmpNo).ToList();
         VHR_EmployeeProfile employee = DDService.GetEmployeeInfo(LoggedInUser).Where(aa => aa.OEmpID == _EmpNo).First();
         if (_emp.Count == 0)
         {
             ModelState.AddModelError("StartDate", "Emp No not exist");
         }
         else
         {
             obj.EmployeeID = _emp.First().PEmployeeID;
         }
         if (obj.DateStarted == null)
         {
             ModelState.AddModelError("DateStarted", "Date start cannot be empty");
         }
         if (obj.TimeStart == null || obj.TimeEnd == null)
         {
             ModelState.AddModelError("TimeStart", "Time Start and Time End cannot be empty");
         }
         if (obj.Remarks == null || obj.Remarks == "")
         {
             ModelState.AddModelError("Remarks", "Reason is Mandatory !");
         }
         if (obj.TimeEnd <= obj.TimeStart)
         {
             ModelState.AddModelError("TimeEnd", "Time end cannot be less than or equal to start time .");
         }
         Expression <Func <VEP_JobCardApplication, bool> > SpecificEntries2 = aa => obj.DateStarted == aa.DateStarted && obj.TimeStart <= aa.TimeEnd && aa.TimeStart <= obj.TimeEnd && aa.EmployeeID == obj.EmployeeID && aa.JobCardStageID != "R";
         if (VEPJobCardApplicationService.GetIndexSpecific(SpecificEntries2).Count() > 0)
         {
             ModelState.AddModelError("TimeStart", "Already exists between the time span");
         }
         Expression <Func <VAT_LeaveApplication, bool> > SpecificEntries4 = aa => aa.EmpID == obj.EmployeeID && obj.DateStarted <= aa.ToDate && aa.FromDate <= obj.DateEnded && aa.IsHalf != true;
         if (VATLeaveApplicationService.GetIndexSpecific(SpecificEntries4).Count() > 0)
         {
             ModelState.AddModelError("DateStarted", "Leave already applied for one or more days");
         }
         Expression <Func <PayrollPeriod, bool> > SpecificEntries96 = c => obj.DateStarted >= c.PRStartDate && obj.DateStarted <= c.PREndDate && c.PeriodStageID == "C";
         List <PayrollPeriod> dbPayrollPeriods = PayrollPeriodService.GetIndexSpecific(SpecificEntries96).ToList();
         if (dbPayrollPeriods.Count() > 0)
         {
             ModelState.AddModelError("DateStarted", "Cannot enter Job card in Closed Payroll Period");
         }
         Expression <Func <Shift, bool> > SpecificEntries97 = c => c.PShiftID == employee.ShiftID;
         Shift shifts = ShiftService.GetIndexSpecific(SpecificEntries97).First();
         if (shifts.GZDays == true)
         {
             List <Holiday> holiday = DDService.GetHolidays().Where(aa => aa.HolidayDate == obj.DateStarted).ToList();
             if (holiday.Count > 0)
             {
                 ModelState.AddModelError("DateStarted", "Cannot apply job card of the Gazetted Holiday");
             }
         }
         if (ModelState.IsValid)
         {
             JobCardESSPService.SingleDayPostCreate(obj, LoggedInUser);
             ToasterMessages.Add("Job card applied successfully !");
             Session["ToasterMessages"] = ToasterMessages;
             return(Json("OK", JsonRequestBehavior.AllowGet));
         }
         SingleDayJobCardHelper(obj);
         return(PartialView("SingleDay", obj));
     }
 }
コード例 #26
0
        private bool AddBadliAttData(string _empDate, int _empID, DateTime _Date, int _userID, JobCardApp jcApp)
        {
            bool check = false;

            try
            {
                //Normal Duty
                using (var context = new TAS2013Entities())
                {
                    AttData _attdata = context.AttDatas.FirstOrDefault(aa => aa.EmpDate == _empDate);
                    JobCard _jcCard  = context.JobCards.FirstOrDefault(aa => aa.WorkCardID == jcApp.CardType);
                    if (_attdata != null)
                    {
                        _attdata.DutyCode    = "D";
                        _attdata.StatusAB    = false;
                        _attdata.StatusLeave = false;
                        _attdata.StatusP     = true;
                        _attdata.Remarks     = _attdata.Remarks + "[Badli][Manual]";
                        _attdata.StatusMN    = true;
                    }
                    context.SaveChanges();
                    if (context.SaveChanges() > 0)
                    {
                        check = true;
                    }
                    context.Dispose();
                }
            }
            catch (Exception ex)
            {
            }
            return(check);
        }
コード例 #27
0
        private bool AddJobCardDataToDatabase(string _empDate, int _empID, DateTime _currentDate, int _userID, JobCardApp jcApp)
        {
            bool check = false;

            try
            {
                JobCardDetail _jobCardEmp = new JobCardDetail();
                _jobCardEmp.EmpDate = _empDate;
                _jobCardEmp.EmpID   = _empID;
                _jobCardEmp.Dated   = _currentDate;
                //_jobCardEmp.SubmittedFrom = _userID;
                _jobCardEmp.WrkCardID = jcApp.CardType;
                //_jobCardEmp.DateCreated = DateTime.Now;
                //_jobCardEmp.WorkMin = jcApp.WorkMin;
                _jobCardEmp.JCAppID = jcApp.JobCardID;
                _jobCardEmp.Remarks = jcApp.Remarks;
                db.JobCardDetails.Add(_jobCardEmp);
                if (db.SaveChanges() > 0)
                {
                    check = true;
                }
            }
            catch (Exception ex)
            {
                check = false;
            }
            return(check);
        }
コード例 #28
0
        public JobCardApp GetMultipleDay()
        {
            JobCardApp obj = new JobCardApp();

            return(obj);
        }
コード例 #29
0
        public ActionResult EditAttJobCard()
        {
            User LoggedInUser = Session["LoggedUser"] as User;

            try
            {
                string     _EmpNo      = "";
                int        CompID      = Convert.ToInt16(Request.Form["CompanyID"].ToString());
                List <Emp> _Emp        = new List <Emp>();
                short      _WorkCardID = Convert.ToInt16(Request.Form["JobCardType"].ToString());
                //First Save Job Card Application
                JobCardApp jobCardApp = new JobCardApp();
                jobCardApp.CardType    = _WorkCardID;
                jobCardApp.DateCreated = DateTime.Now;
                jobCardApp.DateStarted = Convert.ToDateTime(Request.Form["JobDateFrom"]);
                jobCardApp.DateEnded   = Convert.ToDateTime(Request.Form["JobDateTo"]);
                jobCardApp.Status      = false;
                switch (Request.Form["cars"].ToString())
                {
                case "shift":
                    jobCardApp.CriteriaData    = Convert.ToInt32(Request.Form["ShiftList"].ToString());
                    jobCardApp.JobCardCriteria = "S";
                    db.JobCardApps.Add(jobCardApp);
                    if (db.SaveChanges() > 0)
                    {
                        AddJobCardAppToJobCardData();
                    }
                    break;

                case "crew":
                    jobCardApp.CriteriaData    = Convert.ToInt32(Request.Form["CrewList"].ToString());
                    jobCardApp.JobCardCriteria = "C";
                    db.JobCardApps.Add(jobCardApp);
                    if (db.SaveChanges() > 0)
                    {
                        AddJobCardAppToJobCardData();
                    }
                    break;

                case "section":
                    jobCardApp.CriteriaData    = Convert.ToInt32(Request.Form["SectionList"].ToString());
                    jobCardApp.JobCardCriteria = "T";
                    db.JobCardApps.Add(jobCardApp);
                    if (db.SaveChanges() > 0)
                    {
                        AddJobCardAppToJobCardData();
                    }
                    break;

                case "employee":
                    if (Request.Form["cars"].ToString() == "employee")
                    {
                        _EmpNo = Request.Form["JobEmpNo"];
                        _Emp   = db.Emps.Where(aa => aa.EmpNo == _EmpNo && aa.CompanyID == CompID).ToList();
                        if (_Emp.Count > 0)
                        {
                            jobCardApp.CriteriaData    = _Emp.FirstOrDefault().EmpID;
                            jobCardApp.JobCardCriteria = "E";
                            db.JobCardApps.Add(jobCardApp);
                            if (db.SaveChanges() > 0)
                            {
                                AddJobCardAppToJobCardData();
                            }
                        }
                    }
                    break;
                }

                //Add Job Card to JobCardData and Mark Legends in Attendance Data if attendance Created
                Session["EditAttendanceDate"] = DateTime.Today.Date.ToString("yyyy-MM-dd");
                ViewBag.JobCardType           = new SelectList(db.JobCards, "WorkCardID", "WorkCardName");
                ViewBag.ShiftList             = new SelectList(db.Shifts, "ShiftID", "ShiftName");
                ViewBag.CrewList        = new SelectList(db.Crews, "CrewID", "CrewName");
                ViewBag.SectionList     = new SelectList(db.Sections, "SectionID", "SectionName");
                ViewBag.CMessage        = "Job Card Created sucessfully";
                ViewData["datef"]       = Session["EditAttendanceDate"].ToString();
                ViewData["JobDateFrom"] = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
                ViewData["JobDateTo"]   = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
                ViewBag.CompanyID       = new SelectList(db.Companies, "CompID", "CompName", LoggedInUser.CompanyID);
                return(View("Index"));
            }
            catch (Exception)
            {
                //ViewData["datef"] = HttpContext.Session["EditAttendanceDate"].ToString();
                ViewData["JobDateFrom"] = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
                ViewData["JobDateTo"]   = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
                ViewBag.JobCardType     = new SelectList(db.JobCards, "WorkCardID", "WorkCardName");
                ViewBag.ShiftList       = new SelectList(db.Shifts, "ShiftID", "ShiftName");
                ViewBag.CrewList        = new SelectList(db.Crews, "CrewID", "CrewName");
                ViewBag.SectionList     = new SelectList(db.Sections, "SectionID", "SectionName");
                ViewBag.CMessage        = "An Error occured while creating Job Card of" + Request.Form["JobCardType"].ToString();
                return(View("Index"));
            }
        }
コード例 #30
0
 public void PostMultipleDay(JobCardApp obj)
 {
     obj.DateCreated = DateTime.Now;
     JobCardAppRepository.Add(obj);
     UnitOfWork.Commit();
 }