Ejemplo n.º 1
0
        public List<Att_AnnualDetailEntity> AnalyzeAnnualDetail(int Year, string strOrgStructure, string strPayroll, string proName, string codeEmp,string userLogin)
        {
            using (var context = new VnrHrmDataContext())
            {
                var unitOfWork = (IUnitOfWork)(new UnitOfWork(context));
                var repoAtt_AnnualDetail = new CustomBaseRepository<Att_AnnualDetail>(unitOfWork);

                bool? isFullEmp = true;
                List<Att_AnnualDetailEntity> lstResult = new List<Att_AnnualDetailEntity>();

                var lstProfileQuery = unitOfWork.CreateQueryable<Hre_Profile>(m => m.IsDelete == null);
                if (strOrgStructure != null && strOrgStructure != string.Empty)
                {
                    isFullEmp = false;
                    List<string> lstOrgIDChar = strOrgStructure.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    List<Guid> lstOrgID = new List<Guid>();
                    foreach (var item in lstOrgIDChar)
                    {
                        Guid ID = Guid.Empty;
                        Guid.TryParse(item, out ID);
                        if (ID != Guid.Empty)
                        {
                            lstOrgID.Add(ID);
                        }
                    }
                    lstProfileQuery = lstProfileQuery.Where(m => m.OrgStructureID != null && lstOrgID.Contains(m.OrgStructureID.Value));
                }
                if (proName != null && proName != string.Empty)
                {
                    isFullEmp = false;
                    List<string> lstProName = proName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    if (lstProName.Count > 1)
                    {
                        lstProfileQuery = lstProfileQuery.Where(m => lstProName.Contains(m.ProfileName));
                    }
                    else
                    {
                        string ProfileName = lstProName.FirstOrDefault();
                        lstProfileQuery = lstProfileQuery.Where(m => m.ProfileName.Contains(ProfileName));
                    }
                }
                if (codeEmp != null && codeEmp != string.Empty)
                {
                    isFullEmp = false;
                    List<string> lstCodeEmp = codeEmp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(m => m.ToLower()).ToList();
                    if (lstCodeEmp.Count > 1)
                    {
                        lstProfileQuery = lstProfileQuery.Where(m => lstCodeEmp.Contains(m.CodeEmp.ToLower()));
                    }
                    else
                    {
                        string CodeEmp = lstCodeEmp.FirstOrDefault();
                        lstProfileQuery = lstProfileQuery.Where(m => m.CodeEmp.ToLower().Contains(CodeEmp));
                    }
                }
                if (strPayroll != null)
                {
                    List<Guid> lstPgID = strPayroll.Split(',').Select(s => Guid.Parse(s)).ToList();
                    isFullEmp = false;
                    lstProfileQuery = lstProfileQuery.Where(p => p.PayrollGroupID.HasValue && lstPgID.Contains(p.PayrollGroupID.Value));
                }
                var lstProfile = lstProfileQuery.Select(m => new Hre_ProfileMultiField()
                {
                    ID = m.ID,
                    CodeEmp = m.CodeEmp,
                    OrgStructureID = m.OrgStructureID,
                    PayrollGroupID = m.PayrollGroupID,
                    ProfileName = m.ProfileName,
                    DateHire = m.DateHire,
                    OrgStructureName = m.Cat_OrgStructure.OrgStructureName,
                    PositionID = m.PositionID,
                    DateQuit = m.DateQuit,
                    DateEndProbation = m.DateEndProbation,
                    JobTitleID = m.JobTitleID
                }).ToList();
                var result = AnalyzeAnnualDetail(lstProfile, Year, isFullEmp, userLogin);

                Att_AnnualDetailEntity ann = new Att_AnnualDetailEntity();
                foreach (var item in result)
                {
                    if (item.ProfileID == null)
                        continue;
                    var temp = lstProfile.Where(s => s.ID == item.ProfileID).FirstOrDefault();
                    ann = new Att_AnnualDetailEntity();
                    ann = item.CopyData<Att_AnnualDetailEntity>();
                    ann.DateHire = temp.DateHire;
                    ann.OrgStructureName = temp.OrgStructureName;
                    ann.ProfileName = temp.ProfileName;
                    ann.CodeEmp = temp.CodeEmp;
                    lstResult.Add(ann);
                }
                return lstResult;
            }
        }
Ejemplo n.º 2
0
        public List <Att_AnnualDetailEntity> AnalyzeAnnualDetail(int Year, string strOrgStructure, string strPayroll, string proName, string codeEmp, string userLogin)
        {
            using (var context = new VnrHrmDataContext())
            {
                var unitOfWork           = (IUnitOfWork)(new UnitOfWork(context));
                var repoAtt_AnnualDetail = new CustomBaseRepository <Att_AnnualDetail>(unitOfWork);

                bool?isFullEmp = true;
                List <Att_AnnualDetailEntity> lstResult = new List <Att_AnnualDetailEntity>();

                var lstProfileQuery = unitOfWork.CreateQueryable <Hre_Profile>(m => m.IsDelete == null);
                if (strOrgStructure != null && strOrgStructure != string.Empty)
                {
                    isFullEmp = false;
                    List <string> lstOrgIDChar = strOrgStructure.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    List <Guid>   lstOrgID     = new List <Guid>();
                    foreach (var item in lstOrgIDChar)
                    {
                        Guid ID = Guid.Empty;
                        Guid.TryParse(item, out ID);
                        if (ID != Guid.Empty)
                        {
                            lstOrgID.Add(ID);
                        }
                    }
                    lstProfileQuery = lstProfileQuery.Where(m => m.OrgStructureID != null && lstOrgID.Contains(m.OrgStructureID.Value));
                }
                if (proName != null && proName != string.Empty)
                {
                    isFullEmp = false;
                    List <string> lstProName = proName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    if (lstProName.Count > 1)
                    {
                        lstProfileQuery = lstProfileQuery.Where(m => lstProName.Contains(m.ProfileName));
                    }
                    else
                    {
                        string ProfileName = lstProName.FirstOrDefault();
                        lstProfileQuery = lstProfileQuery.Where(m => m.ProfileName.Contains(ProfileName));
                    }
                }
                if (codeEmp != null && codeEmp != string.Empty)
                {
                    isFullEmp = false;
                    List <string> lstCodeEmp = codeEmp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(m => m.ToLower()).ToList();
                    if (lstCodeEmp.Count > 1)
                    {
                        lstProfileQuery = lstProfileQuery.Where(m => lstCodeEmp.Contains(m.CodeEmp.ToLower()));
                    }
                    else
                    {
                        string CodeEmp = lstCodeEmp.FirstOrDefault();
                        lstProfileQuery = lstProfileQuery.Where(m => m.CodeEmp.ToLower().Contains(CodeEmp));
                    }
                }
                if (strPayroll != null)
                {
                    List <Guid> lstPgID = strPayroll.Split(',').Select(s => Guid.Parse(s)).ToList();
                    isFullEmp       = false;
                    lstProfileQuery = lstProfileQuery.Where(p => p.PayrollGroupID.HasValue && lstPgID.Contains(p.PayrollGroupID.Value));
                }
                var lstProfile = lstProfileQuery.Select(m => new Hre_ProfileMultiField()
                {
                    ID               = m.ID,
                    CodeEmp          = m.CodeEmp,
                    OrgStructureID   = m.OrgStructureID,
                    PayrollGroupID   = m.PayrollGroupID,
                    ProfileName      = m.ProfileName,
                    DateHire         = m.DateHire,
                    OrgStructureName = m.Cat_OrgStructure.OrgStructureName,
                    PositionID       = m.PositionID,
                    DateQuit         = m.DateQuit,
                    DateEndProbation = m.DateEndProbation,
                    JobTitleID       = m.JobTitleID
                }).ToList();
                var result = AnalyzeAnnualDetail(lstProfile, Year, isFullEmp, userLogin);

                Att_AnnualDetailEntity ann = new Att_AnnualDetailEntity();
                foreach (var item in result)
                {
                    if (item.ProfileID == null)
                    {
                        continue;
                    }
                    var temp = lstProfile.Where(s => s.ID == item.ProfileID).FirstOrDefault();
                    ann                  = new Att_AnnualDetailEntity();
                    ann                  = item.CopyData <Att_AnnualDetailEntity>();
                    ann.DateHire         = temp.DateHire;
                    ann.OrgStructureName = temp.OrgStructureName;
                    ann.ProfileName      = temp.ProfileName;
                    ann.CodeEmp          = temp.CodeEmp;
                    lstResult.Add(ann);
                }
                return(lstResult);
            }
        }