コード例 #1
0
        public ActionResult create()
        {
            try
            {
                ViewBag.Employee_Profile = dbcontext.Employee_Profile.Where(a => a.Active == true).ToList().Select(m => new { Code = m.Code + "-[" + m.Full_Name + ']', ID = m.ID });
                ViewBag.Vacations_Setup  = dbcontext.Vacations_Setup.ToList().Select(m => new { Code = "" + m.LeaveTypeCode + "-----[" + m.LeaveTypeNameEnglish + ']', ID = m.ID }).ToList();
                //DateTime Statis = DateTime.Now;
                var new_record = new LeavesRequestMaster {
                    DateFrom = DateTime.Now, DateTo = DateTime.Now, ActualToDate = DateTime.Now, CurrentDate = DateTime.Now, Created_Date = DateTime.Now, Created_By = User.Identity.Name, RemainDays = 0, TotalDays = 0
                };
                var stru   = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Personnel).Structure_Code;
                var model_ = dbcontext.LeavesRequestMaster.ToList();
                if (model_.Count() == 0)
                {
                    new_record.SerialNo = stru + "1";
                }
                else
                {
                    new_record.SerialNo = stru + (model_.LastOrDefault().ID + 1).ToString();
                }

                var model = new Headers {
                    LeavesRequestMaster = new_record, check_status = check_status.Pending
                };

                return(View(model));
            }
            catch (Exception)
            {
                return(RedirectToAction("index"));
            }
        }
コード例 #2
0
        public ActionResult Create(Headers model, FormCollection form)
        {
            try
            {
                var      Bal = dbcontext.Vacations_Setup.FirstOrDefault(a => a.ID == model.LeavesRequestMaster.VacCode);
                var      Employee_Profile = dbcontext.Employee_Profile.FirstOrDefault(a => a.ID == model.LeavesRequestMaster.EmployeeID).Personnel_Information;
                DateTime Hire             = Employee_Profile.Hire_Date;
                var      EmploymentDate   = Hire.AddMonths(Bal.TakenAfterEmploymentDate);
                if (Bal.TakenAfterEmploymentDate > 0)
                {
                    if (DateTime.Compare(DateTime.Now, EmploymentDate) < 0)
                    {
                        TempData["Message"] = "It must be a Taken After Employment Date equal or bigger from '" + Bal.TakenAfterEmploymentDate + "'";
                        return(RedirectToAction("Create"));
                    }
                }
                if (Bal.AcceptNegative == false || Bal.UnlimitedBalance == false)
                {
                    if (model.LeavesRequestMaster.RemainDays <= -1)
                    {
                        TempData["Message"] = "Balance Is Not Enough";
                        return(RedirectToAction("Create"));
                    }
                }


                ViewBag.Employee_Profile = dbcontext.Employee_Profile.Where(a => a.Active == true).ToList().Select(m => new { Code = m.Code + "-[" + m.Full_Name + ']', ID = m.ID });
                ViewBag.Vacations_Setup  = dbcontext.Vacations_Setup.ToList().Select(m => new { Code = "" + m.LeaveTypeCode + "-----[" + m.LeaveTypeNameEnglish + ']', ID = m.ID }).ToList();

                LeavesRequestMaster new_Record = new LeavesRequestMaster();

                new_Record.SerialNo        = model.LeavesRequestMaster.SerialNo;
                new_Record.EmployeeID      = model.LeavesRequestMaster.EmployeeID;
                new_Record.VacCode         = model.LeavesRequestMaster.VacCode;
                new_Record.DateFrom        = model.LeavesRequestMaster.DateFrom;
                new_Record.DateTo          = model.LeavesRequestMaster.DateTo;
                new_Record.CurrentDate     = model.LeavesRequestMaster.CurrentDate;
                new_Record.ActualToDate    = model.LeavesRequestMaster.ActualToDate;
                new_Record.EmpAlternative  = model.LeavesRequestMaster.EmpAlternative;
                new_Record.Reason          = model.LeavesRequestMaster.Reason;
                new_Record.Approved        = check_status.Pending.GetHashCode();
                new_Record.EmpApproved     = model.LeavesRequestMaster.EmpApproved;
                new_Record.RequestTypeCode = model.LeavesRequestMaster.RequestTypeCode;
                new_Record.ReturnVac       = model.LeavesRequestMaster.ReturnVac;
                new_Record.Settled         = model.LeavesRequestMaster.Settled;
                new_Record.CasualLeave     = model.LeavesRequestMaster.CasualLeave;
                new_Record.PointID         = model.LeavesRequestMaster.PointID;
                new_Record.WithTicket      = model.LeavesRequestMaster.WithTicket;
                new_Record.WithExitReEntry = model.LeavesRequestMaster.WithExitReEntry;
                new_Record.AttachedFile    = model.LeavesRequestMaster.AttachedFile;

                DateTime?DateFrom            = model.LeavesRequestMaster.DateFrom;
                var      Year                = DateFrom.Value.Year;
                var      Month               = DateFrom.Value.Month;
                var      LeavesRequest       = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == model.LeavesRequestMaster.EmployeeID && a.VacCode == model.LeavesRequestMaster.VacCode && a.year == Year && a.CasualLeave == true).ToList();
                var      LeavesRequestMaster = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == model.LeavesRequestMaster.EmployeeID && a.VacCode == model.LeavesRequestMaster.VacCode && a.year == Year).ToList();

                if (model.LeavesRequestMaster.CasualLeave == true)
                {
                    if (Bal.MaxContinousDays < model.LeavesRequestMaster.TotalDays)
                    {
                        TempData["Message"] = "It must be a Max Continous Days equal or less from '" + Bal.MaxContinousDays + "' ";
                        return(RedirectToAction("Create"));
                    }
                    var AllDays = new List <double?>();
                    if (LeavesRequest != null)
                    {
                        for (int i = 0; i < LeavesRequest.Count; i++)
                        {
                            var Rem = LeavesRequest[i].TotalDays;
                            var Day = AllDays.LastOrDefault();
                            if (Day == null)
                            {
                                Day = Rem;
                                AllDays.Add(Day);
                            }
                            else
                            {
                                var All = Day + Rem;
                                AllDays.Add(All);
                            }
                        }
                        var RemainDay = Bal.MaxCasualDays - model.LeavesRequestMaster.TotalDays - AllDays.LastOrDefault();
                        if (RemainDay < 0)
                        {
                            TempData["Message"] = "It must be a Max Casual Days equal or less from '" + Bal.MaxCasualDays + "' ";
                            return(RedirectToAction("Create"));
                        }
                    }
                }

                if (Bal.MaximumDaysContinous > 0)
                {
                    if (Bal.MaximumDaysContinous < model.LeavesRequestMaster.TotalDays)
                    {
                        TempData["Message"] = "It must be a Maximum Days Continous equal or less from '" + Bal.MaximumDaysContinous + "' ";
                        return(RedirectToAction("Create"));
                    }
                }
                if (LeavesRequestMaster != null)
                {
                    var AllDays = new List <double?>();
                    for (int i = 0; i < LeavesRequestMaster.Count; i++)
                    {
                        var ActualToDate = LeavesRequestMaster[i].ActualToDate.Value.Month;
                        if (ActualToDate == Month)
                        {
                            var Rem = LeavesRequestMaster[i].TotalDays;
                            var Day = AllDays.LastOrDefault();
                            if (Day == null)
                            {
                                Day = Rem;
                                AllDays.Add(Day);
                            }
                            else
                            {
                                var All = Day + Rem;
                                AllDays.Add(All);
                            }
                        }
                    }
                    var RemainDay = Bal.MaximumDaysPerMonth - model.LeavesRequestMaster.TotalDays - AllDays.LastOrDefault();
                    if (RemainDay < 0)
                    {
                        TempData["Message"] = "It must be a Maximum Days Per Month equal or less from '" + Bal.MaximumDaysPerMonth + "' ";
                        return(RedirectToAction("Create"));
                    }
                }


                var      CurrentBalance = form["CurrentBalance"].Split(',');
                var      FromBalance    = form["FromBalance"].Split(',');
                DateTime?year           = DateTime.Parse(FromBalance[0]);
                int      FBalance       = year.Value.Year;
                new_Record.year = FBalance;

                if (LeavesRequestMaster.Count == 0)
                {
                    double?Balance = Convert.ToDouble(CurrentBalance[0]);
                    new_Record.BalanceDays = Balance;
                }
                else
                {
                    var LeavesRequestMasters = dbcontext.LeavesRequestMaster.Where(a => a.EmployeeID == model.LeavesRequestMaster.EmployeeID && a.VacCode == model.LeavesRequestMaster.VacCode && a.year == Year).ToList();
                    var Leaves = LeavesRequestMasters.LastOrDefault();
                    new_Record.BalanceDays = Leaves.RemainDays;
                }
                new_Record.TotalDays            = model.LeavesRequestMaster.TotalDays;
                new_Record.RemainDays           = model.LeavesRequestMaster.RemainDays;
                new_Record.Serial_LB            = model.LeavesRequestMaster.Serial_LB;
                new_Record.HalfDay              = model.LeavesRequestMaster.HalfDay;
                new_Record.QuarterDay           = model.LeavesRequestMaster.QuarterDay;
                new_Record.QuarterDayCode       = model.LeavesRequestMaster.QuarterDayCode;
                new_Record.ShiftFirstHalf       = model.LeavesRequestMaster.ShiftFirstHalf;
                new_Record.Company_ID           = model.LeavesRequestMaster.Company_ID;
                new_Record.RowIndx              = model.LeavesRequestMaster.RowIndx;
                new_Record.Created_By           = User.Identity.Name;
                new_Record.Created_Date         = DateTime.Now.Date;
                new_Record.Modified_By          = model.LeavesRequestMaster.Modified_By;
                new_Record.Modified_Date        = model.LeavesRequestMaster.Modified_Date;
                new_Record.ReportAsReadyDate    = model.LeavesRequestMaster.ReportAsReadyDate;
                new_Record.ReportAsReadyBy      = model.LeavesRequestMaster.ReportAsReadyBy;
                new_Record.ApprovedBy           = model.LeavesRequestMaster.ApprovedBy;
                new_Record.ApprovedDate         = model.LeavesRequestMaster.ApprovedDate;
                new_Record.RejectedBy           = model.LeavesRequestMaster.RejectedBy;
                new_Record.RejectedDate         = model.LeavesRequestMaster.RejectedDate;
                new_Record.CanceledBy           = model.LeavesRequestMaster.CanceledBy;
                new_Record.CanceledDate         = model.LeavesRequestMaster.CanceledDate;
                new_Record.RejectedBy           = model.LeavesRequestMaster.RejectedBy;
                new_Record.RejectedDate         = model.LeavesRequestMaster.RejectedDate;
                new_Record.ManagerID            = model.LeavesRequestMaster.ManagerID;
                new_Record.AltEmpAgreed         = model.LeavesRequestMaster.AltEmpAgreed;
                new_Record.AltEmpDisagreeReason = model.LeavesRequestMaster.AltEmpDisagreeReason;
                new_Record.ManagerNotes         = model.LeavesRequestMaster.ManagerNotes;
                new_Record.HRNotes              = model.LeavesRequestMaster.HRNotes;
                new_Record.GMNotes              = model.LeavesRequestMaster.GMNotes;

                new_Record.LastOrder = model.LeavesRequestMaster.LastOrder;

                new_Record.check_status = HR.Models.Infra.check_status.Pending;
                new_Record.name_state   = nameof(check_status.Pending);
                var username = User.Identity.GetUserName();
                var Date     = Convert.ToDateTime("1/1/1900");
                var s        = new status {
                    statu = HR.Models.Infra.check_status.created, created_by = username, Type = Models.Infra.Type.LeavesRequestMaster, approved_bydate = Date, cancaled_bydate = Date, created_bydate = DateTime.Now.Date, Rejected_bydate = Date, return_to_reviewdate = Date
                };
                var st = dbcontext.status.Add(s);
                dbcontext.SaveChanges();
                new_Record.statID = s.ID;

                var LeavesTransactionBalance = dbcontext.LeavesTransactionBalance.Where(a => a.VacCode == model.LeavesRequestMaster.VacCode && a.EmployeeID == model.LeavesRequestMaster.EmployeeID && a.Year == year.Value.Year && a.Check == true).ToList();
                var LeavesTransaction        = LeavesTransactionBalance.LastOrDefault();

                var Header = dbcontext.LeavesRequestMaster.Add(new_Record);
                dbcontext.SaveChanges();
                if (LeavesTransaction != null && LeavesTransaction.Check == true)
                {
                    LeavesTransaction.Check = false;
                    dbcontext.SaveChanges();
                }
                return(RedirectToAction("index"));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }
コード例 #3
0
        public ActionResult Create(LeavesMass_Transaction model, FormCollection form, string Command)
        {
            try
            {
                List <SelectListItem> items = new List <SelectListItem>();
                items.Insert(0, (new SelectListItem
                {
                    Text = "All employee",
                    Value = "1",
                }));
                items.Insert(1, (new SelectListItem
                {
                    Text = "unit",
                    Value = "2",
                }));
                items.Insert(2, (new SelectListItem
                {
                    Text = "nationality",
                    Value = "3",
                }));
                items.Insert(3, (new SelectListItem
                {
                    Text = "Work location",
                    Value = "4",
                }));
                items.Insert(4, (new SelectListItem
                {
                    Text = "Cost center",
                    Value = "5",
                }));
                items.Insert(5, (new SelectListItem
                {
                    Text = "Cadre level",
                    Value = "6",
                }));
                ViewBag.Object           = new SelectList(items, "Value", "Text");
                ViewBag.Employee_Profile = dbcontext.Employee_Profile.Where(a => a.Active == true).ToList().Select(m => new { Code = m.Code + "-[" + m.Full_Name + ']', ID = m.ID });
                ViewBag.Vacations_Setup  = dbcontext.Vacations_Setup.ToList().Select(m => new { Code = "" + m.LeaveTypeCode + "-----[" + m.LeaveTypeNameEnglish + ']', ID = m.ID }).ToList();

                var model_          = dbcontext.LeavesMass_Transaction.ToList();
                var TransactionCode = "0";
                if (model_.Count() == 0)
                {
                    TransactionCode = "1";
                }
                else
                {
                    TransactionCode = (model_.LastOrDefault().ID + 1).ToString();
                }

                var ID_emp      = form["ID_emp"].Split(',');
                var CodeEmp     = form["CodeEmp"].Split(',');
                var NameEmp     = form["NameEmp"].Split(',');
                var CodeVac     = form["CodeVac"].Split(',');
                var NameVac     = form["NameVac"].Split(',');
                var BalDay      = form["BalDay"].Split(',');
                var TotalDay    = form["TotalDay"].Split(',');
                var Reason      = form["Reason"].Split(',');
                var FromBalance = form["FromBalance"].Split(',');

                for (var i = 0; i < CodeEmp.Length; i++)
                {
                    if (CodeEmp[i] != "")
                    {
                        LeavesMass_Transaction new_Record = new LeavesMass_Transaction();

                        var LeavesRequestMaster = dbcontext.LeavesRequestMaster.ToList();
                        var stru   = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Personnel).Structure_Code;
                        var model2 = dbcontext.LeavesMass_Transaction.ToList();
                        if (model2.Count() == 0)
                        {
                            new_Record.SerialNo = stru + "1";
                        }
                        else
                        {
                            new_Record.SerialNo = stru + (model2.LastOrDefault().ID + 1).ToString();
                        }
                        new_Record.TransactionCode = TransactionCode;
                        new_Record.TransactionDate = DateTime.Now;
                        new_Record.Created_By      = User.Identity.Name;
                        new_Record.Created_Date    = DateTime.Now.Date;

                        var new_details = new LeavesRequestMaster();
                        if (LeavesRequestMaster.Count() == 0)
                        {
                            new_details.SerialNo = stru + "1";
                        }
                        else
                        {
                            new_details.SerialNo = stru + (LeavesRequestMaster.LastOrDefault().ID + 1).ToString();
                        }
                        var codeva = CodeVac[i];
                        var codeem = CodeEmp[i];

                        var emp       = dbcontext.Employee_Profile.FirstOrDefault(a => a.Code == codeem);
                        var Vacations = dbcontext.Vacations_Setup.FirstOrDefault(a => a.LeaveTypeCode == codeva);

                        var      Balance  = double.Parse(BalDay[i]);
                        var      Total    = double.Parse(TotalDay[i]);
                        DateTime?year     = DateTime.Parse(FromBalance[1]);
                        int      FBalance = year.Value.Year;
                        new_details.year = FBalance;
                        DateTime?dateOrNull = model.TransactionDate;
                        if (dateOrNull != null)
                        {
                            new_details.DateFrom = dateOrNull.Value;
                        }
                        DateTime?dateOrNull2 = model.Created_Date;
                        if (dateOrNull2 != null)
                        {
                            new_details.DateTo = dateOrNull2.Value;
                        }
                        new_details.EmployeeID = emp.ID;
                        new_details.VacCode    = Vacations.ID;
                        //new_details.DateFrom = model.TransactionDate;
                        //new_details.DateTo = model.Created_Date;
                        new_details.CurrentDate  = DateTime.Now.Date;
                        new_details.ActualToDate = model.Created_Date;
                        new_details.Reason       = Reason[i];
                        new_details.Approved     = check_status.Approved.GetHashCode();
                        new_details.BalanceDays  = Balance;
                        new_details.TotalDays    = Total;
                        new_details.RemainDays   = Balance - Total;
                        new_details.Created_By   = User.Identity.Name;
                        new_details.Created_Date = DateTime.Now.Date;
                        new_details.check_status = HR.Models.Infra.check_status.Approved;
                        new_details.name_state   = nameof(check_status.Approved);
                        var username = User.Identity.GetUserName();
                        var Date     = Convert.ToDateTime("1/1/1900");
                        var s        = new status {
                            statu = HR.Models.Infra.check_status.created, created_by = username, Type = Models.Infra.Type.LeavesRequestMaster, approved_bydate = Date, cancaled_bydate = Date, created_bydate = DateTime.Now.Date, Rejected_bydate = Date, return_to_reviewdate = Date
                        };
                        var st = dbcontext.status.Add(s);
                        dbcontext.SaveChanges();
                        new_details.statID = s.ID;

                        var LeavesTransactionBalance = dbcontext.LeavesTransactionBalance.Where(a => a.VacCode == Vacations.ID && a.EmployeeID == emp.ID && a.Year == year.Value.Year && a.Check == true).ToList();
                        var LeavesTransaction        = LeavesTransactionBalance.LastOrDefault();

                        dbcontext.LeavesMass_Transaction.Add(new_Record);
                        dbcontext.SaveChanges();
                        dbcontext.LeavesRequestMaster.Add(new_details);
                        dbcontext.SaveChanges();
                        if (LeavesTransaction != null && LeavesTransaction.Check == true)
                        {
                            LeavesTransaction.Check = false;
                            dbcontext.SaveChanges();
                        }
                    }
                }

                return(RedirectToAction("index", "LeaveRequest"));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }