public List <DisplinDLLViewModel> GetDisplinDDl(int desplinId, string culture)
        {
            var Actdisplin = context.DisplinRepeats.Where(a => a.DisplinId == desplinId).Select(a => new DisplinDLLViewModel {
                id = a.Id, name = HrContext.GetLookUpUserCode("DisplinType", a.DisplinType, culture), value = a.DisplinType
            }).ToList();

            return(Actdisplin);
        }
        public DeciplineInfoViewModel GetDesplinInfo(string violdata, int desplinId, string culture)
        {
            DateTime dt             = Convert.ToDateTime(violdata);
            var      repeatObj      = new DisplinRepeat();
            var      SuggestDisplin = new List <DisplinDLLViewModel>();
            var      result1        = (from d in context.Disciplines
                                       join p in context.DisplinPeriods on d.PeriodId equals p.Id
                                       join n in context.DisPeriodNo on p.Id equals n.PeriodId
                                       where n.PeriodSDate <= dt && n.PeriodEDate >= dt && n.Posted == false
                                       select new PeriodIDTypeViewModel
            {
                Id = d.Id,
                PeriodId = n.PeriodId,
                SysType = p.SysType,
                DisPeriodNOId = n.Id
            }).ToList();
            var Actdisplin = context.DisplinRepeats.Where(a => a.DisplinId == desplinId).Select(a => new DisplinDLLViewModel {
                id = a.Id, name = a.Description, value = a.DisplinType
            }).ToList();
            var record      = result1.Where(s => s.SysType == 2 && s.Id == desplinId).FirstOrDefault();
            var recordPoint = result1.Where(s => s.SysType == 1 && s.Id == desplinId).FirstOrDefault();

            if (record != null)
            {
                int?periodId = record.PeriodId;

                var result2 = (from e in context.EmpDisciplines
                               join d in context.Disciplines on e.DiscplinId equals d.Id
                               join p in context.DisplinPeriods on d.PeriodId equals p.Id
                               where p.Id == periodId
                               select new PeriodIDTypeViewModel
                {
                    PeriodId = d.PeriodId
                }).ToList().Count();

                var repNo = result2 + 1;

                var Repnum = context.DisplinRepeats.Max(a => a.RepNo);

                repeatObj      = context.DisplinRepeats.Where(s => s.RepNo == repNo && s.DisplinId == desplinId).FirstOrDefault();
                SuggestDisplin = context.DisplinRepeats.Where(a => a.DisplinId == desplinId && a.RepNo == repNo).Select(a => new DisplinDLLViewModel {
                    id = a.Id, name = HrContext.GetLookUpUserCode("DisplinType", a.DisplinType, culture)
                }).ToList();

                if (repeatObj == null)
                {
                    repeatObj      = context.DisplinRepeats.Where(s => s.RepNo == Repnum && s.DisplinId == desplinId).FirstOrDefault();
                    SuggestDisplin = context.DisplinRepeats.Where(a => a.DisplinId == desplinId && a.RepNo == Repnum).Select(a => new DisplinDLLViewModel {
                        id = a.Id, name = HrContext.GetLookUpUserCode("DisplinType", a.DisplinType, culture)
                    }).ToList();
                }
            }
            DeciplineInfoViewModel disInfo = new DeciplineInfoViewModel {
                periodmodel = record, periodPoint = recordPoint, ReapetObj = repeatObj, ActDisplinDDl = Actdisplin, SuggDisplinDDl = SuggestDisplin
            };

            return(disInfo);
        }
        public IQueryable <TerminationGridViewModel> ReadTermRequests(int companyId, string culture)
        {
            var requests = from tr in context.Terminations
                           where tr.CompanyId == companyId
                           join wft in context.WF_TRANS on new { p1 = "Termination", p2 = tr.CompanyId, p3 = tr.Id } equals new { p1 = wft.Source, p2 = wft.SourceId, p3 = wft.DocumentId } into g
            from wft in g.DefaultIfEmpty()
            join ap in context.People on wft.AuthEmp equals ap.Id into g1
            from ap in g1.DefaultIfEmpty()
            join apos in context.Positions on wft.AuthPosition equals apos.Id into g2
            from apos in g2.DefaultIfEmpty()
            join dep in context.CompanyStructures on wft.AuthDept equals dep.Id into g3
            join role in context.Roles on wft.RoleId equals role.Id into g4
            from role in g4.DefaultIfEmpty()
            from dep in g3.DefaultIfEmpty()
            select new TerminationGridViewModel
            {
                Id                                        = tr.Id,
                EmpId                                     = tr.EmpId,
                CompanyId                                 = tr.CompanyId,
                AssignStatus                              = HrContext.GetLookUpUserCode("Assignment", tr.AssignStatus, culture),
                RequestDate                               = tr.RequestDate,
                Employee                                  = HrContext.TrlsName(tr.Employee.Title + " " + tr.Employee.FirstName + " " + tr.Employee.Familyname, culture),
                JoinedDate                                = tr.ServStartDate,
                PersonType                                = HrContext.GetLookUpUserCode("PersonType", tr.PersonType, culture),
                BonusInMonths                             = tr.BonusInMonths,
                ServYear                                  = tr.ServYear,
                ApprovalStatus                            = tr.ApprovalStatus,
                TermReason                                = HrContext.GetLookUpUserCode("Termination", tr.TermReason, culture),
                RoleId                                    = wft.RoleId.ToString(),
                DeptId                                    = wft.DeptId,
                PositionId                                = wft.PositionId,
                AuthBranch                                = wft.AuthBranch,
                AuthDept                                  = wft.AuthDept,
                AuthDeptName                              = HrContext.TrlsName(dep.Name, culture),
                AuthEmp                                   = wft.AuthEmp,
                AuthEmpName                               = HrContext.TrlsName(ap.Title + " " + ap.FirstName + " " + ap.Familyname, culture),
                AuthPosition                              = wft.AuthPosition,
                AuthPosName                               = role == null?HrContext.TrlsName(apos.Name, culture) : role.Name,
                                                 BranchId = wft.BranchId,
                                                 Image    = HrContext.GetDoc("EmployeePic", tr.Employee.Id),
                                                 Gender   = tr.Employee.Gender
            };

            return(requests);
        }
        public IQueryable <TerminationGridViewModel> ReadTermsApproved(int companyId, string culture)
        {
            var approved = from tr in context.Terminations
                           where tr.CompanyId == companyId && tr.ApprovalStatus == 6 && tr.Terminated == false
                           select new TerminationGridViewModel
            {
                Id            = tr.Id,
                EmpId         = tr.EmpId,
                AssignStatus  = HrContext.GetLookUpUserCode("Assignment", tr.AssignStatus, culture),
                RequestDate   = tr.RequestDate,
                Employee      = HrContext.TrlsName(tr.Employee.Title + " " + tr.Employee.FirstName + " " + tr.Employee.Familyname, culture),
                JoinedDate    = tr.ServStartDate,
                PersonType    = HrContext.GetLookUpUserCode("PersonType", tr.PersonType, culture),
                BonusInMonths = tr.BonusInMonths,
                ServYear      = tr.ServYear,
                TermReason    = HrContext.GetLookUpUserCode("Termination", tr.TermReason, culture),
                Image         = HrContext.GetDoc("EmployeePic", tr.Employee.Id),
                Gender        = tr.Employee.Gender
            };

            return(approved);
        }