/// <summary> /// [HieuVan] - Chuyển đổi trạng thái của một đối tượng Status /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="id"></param> /// <returns></returns> public string UpdateStatus <TEntity>(Guid ID, string type) where TEntity : class { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <TEntity>(unitOfWork); try { List <object> listParamater = new List <object>(); string tableName = typeof(TEntity).Name; tableName = tableName.Substring(0, tableName.Length - 6); Type dbEntityType = LibraryService.GetEntityType(tableName); object dbEntity = unitOfWork.CreateQueryable(Guid.Empty, dbEntityType, Constant.ID + " = @0", ID).FirstOrDefault(); dbEntity.SetPropertyValue("Status", type); var status = unitOfWork.SaveChanges(Guid.Empty); if (status == DataErrorCode.Locked) { return(NotificationType.Locked.ToString()); } else { return(NotificationType.Success.ToString()); } } catch (Exception ex) { return(NotificationType.Error + "," + ex.Message); } } }
/// <summary> /// [Hieu.Van] - Tạo mới một đối tượng return model /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="entity"></param> /// <returns></returns> public TEntity Add <TEntity>(TEntity entity, ref string status) where TEntity : class { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <TEntity>(unitOfWork); try { entity.SetPropertyValue(Constant.DateCreate, DateTime.Now); repo.Add(entity); var saveStatus = repo.SaveChanges(); if (saveStatus == DataErrorCode.Locked) { status = NotificationType.Locked.ToString(); } else { status = NotificationType.Success.ToString(); } return(entity); } catch (Exception ex) { status = NotificationType.Error + "," + ex.Message; return(null); } } }
public bool SetApproveKaiZenData(List <Guid> SelectIds) { using (var context = new VnrHrmDataContext()) { try { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoKai_KaizenData = new CustomBaseRepository <Kai_KaizenData>(unitOfWork); List <Kai_KaizenData> ListKaiZendData = repoKai_KaizenData.FindBy(m => m.IsDelete != true).ToList(); foreach (var i in ListKaiZendData) { if (SelectIds.Any(m => m == i.ID)) { i.Status = EnumDropDown.Kai_KaizenDataStatus.E_APPROVED.ToString(); } } unitOfWork.SaveChanges(); return(true); } catch { return(false); } } }
public static List <Att_Grade> getAllGrade2(List <Guid> listProfileId, DateTime monthYear) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_Grade = new CustomBaseRepository <Att_Grade>(unitOfWork); List <Att_Grade> lst = new List <Att_Grade>(); string[] strInclude = new string[] { "Cat_GradeAttendance" }; lst = repoAtt_Grade.FindBy(gd => listProfileId.Contains(gd.ProfileID.Value) && gd.MonthStart <= monthYear).OrderByDescending(prop => prop.MonthStart).ToList(); List <Att_Grade> lstGrade = new List <Att_Grade>(); foreach (Att_Grade grade in lst) { Att_Grade grade1 = lstGrade.FirstOrDefault(prop => prop.ProfileID == grade.ProfileID); if (grade1 == null) { lstGrade.Add(grade); } } return(lstGrade); } }
public Guid ComputeAnnualLeaveAllowance(Sal_UnusualAllowanceEntity model) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoSys_AsynTask = new CustomBaseRepository <Sys_AsynTask>(unitOfWork); var repoCat_Element = new CustomBaseRepository <Cat_Element>(unitOfWork); //tạo asynTask Sys_AsynTask asynTask = new Sys_AsynTask() { ID = Guid.NewGuid(), Summary = "Tính phép năm : " + model.MonthStart.Value.ToString("dd/MM/yyyy"), Type = AsynTask.Payroll_Compute_AnnualLeaveAllowance.ToString(), Status = AsynTaskStatus.Doing.ToString(), TimeStart = DateTime.Now, PercentComplete = 0.01, }; repoSys_AsynTask.Add(asynTask); unitOfWork.SaveChanges(); Thread threadCompute = new Thread(() => ComputeBonusUnusualAllowance_Progress(asynTask.ID, model, true)); threadCompute.Start(); return(asynTask.ID); } }
public Guid ComputeAnnualLeaveAllowance(Sal_UnusualAllowanceEntity model) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoSys_AsynTask = new CustomBaseRepository<Sys_AsynTask>(unitOfWork); var repoCat_Element = new CustomBaseRepository<Cat_Element>(unitOfWork); //tạo asynTask Sys_AsynTask asynTask = new Sys_AsynTask() { ID = Guid.NewGuid(), Summary = "Tính phép năm : " + model.MonthStart.Value.ToString("dd/MM/yyyy"), Type = AsynTask.Payroll_Compute_AnnualLeaveAllowance.ToString(), Status = AsynTaskStatus.Doing.ToString(), TimeStart = DateTime.Now, PercentComplete = 0.01, }; repoSys_AsynTask.Add(asynTask); unitOfWork.SaveChanges(); Thread threadCompute = new Thread(() => ComputeBonusUnusualAllowance_Progress(asynTask.ID, model, true)); threadCompute.Start(); return asynTask.ID; } }
public static Att_Grade GetGrade(Hre_Profile profile, DateTime effectMonth) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_Grade = new CustomBaseRepository<Att_Grade>(unitOfWork); //NOTE: can modify lai cau truy van de gioi han data lay len List<Att_Grade> lst = repoAtt_Grade .FindBy(alw => alw.IsDelete == null && alw.ProfileID == profile.ID && alw.MonthStart <= effectMonth) .OrderByDescending(alw => alw.MonthStart).ToList(); if (lst != null && lst.Count > 0) { // Lấy grade có ngày đến hạn, nếu không có ngày đến hạn xem như Ok không hết hạn, nếu có ngày đến hạn DateTime temp = new DateTime(effectMonth.Year, effectMonth.Month, 1); if (!lst[0].MonthEnd.HasValue || (lst[0].MonthEnd.HasValue && lst[0].MonthEnd.Value >= temp)) { return lst[0]; } } return null; } }
public string SaveEvalutionData(int year, Guid?TimesGetDataID, string orgStructureID, DateTime?_dateStart, DateTime?_dateEnd, string userLogin) { using (var context = new VnrHrmDataContext()) { var evaServices = new Eva_ReportServices(); List <Eva_EvalutionDataEntity> lstEvalutionDataEntity = new List <Eva_EvalutionDataEntity>(); lstEvalutionDataEntity = evaServices.SummaryEvalutionData(year, TimesGetDataID, orgStructureID, _dateStart, _dateEnd, userLogin); var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoEva_EvalutionData = new CustomBaseRepository <Eva_EvalutionData>(unitOfWork); List <Eva_EvalutionData> lstEvalutionData = new List <Eva_EvalutionData>(); lstEvalutionData = lstEvalutionDataEntity.Translate <Eva_EvalutionData>(); if (lstEvalutionData != null) { int _total = lstEvalutionData.Count; int _totalPage = _total / 200 + 1; int _pageSize = 200; for (int _page = 1; _page <= _totalPage; _page++) { int _skip = _pageSize * (_page - 1); var _listCurrenPage = lstEvalutionData.Skip(_skip).Take(_pageSize).ToList(); foreach (var item in _listCurrenPage) { repoEva_EvalutionData.Add(item); } unitOfWork.SaveChanges(); } } return("SaveSuccess"); // #endregion } }
public static List<Att_Grade> getAllGrade2(List<Guid> listProfileId, DateTime monthYear) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_Grade = new CustomBaseRepository<Att_Grade>(unitOfWork); List<Att_Grade> lst = new List<Att_Grade>(); string[] strInclude = new string[] { "Cat_GradeAttendance" }; lst = repoAtt_Grade.FindBy(gd => listProfileId.Contains(gd.ProfileID.Value) && gd.MonthStart <= monthYear).OrderByDescending(prop => prop.MonthStart).ToList(); List<Att_Grade> lstGrade = new List<Att_Grade>(); foreach (Att_Grade grade in lst) { Att_Grade grade1 = lstGrade.FirstOrDefault(prop => prop.ProfileID == grade.ProfileID); if (grade1 == null) { lstGrade.Add(grade); } } return lstGrade; } }
public static Att_Grade GetGrade(Hre_Profile profile, DateTime effectMonth) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_Grade = new CustomBaseRepository <Att_Grade>(unitOfWork); //NOTE: can modify lai cau truy van de gioi han data lay len List <Att_Grade> lst = repoAtt_Grade .FindBy(alw => alw.IsDelete == null && alw.ProfileID == profile.ID && alw.MonthStart <= effectMonth) .OrderByDescending(alw => alw.MonthStart).ToList(); if (lst != null && lst.Count > 0) { // Lấy grade có ngày đến hạn, nếu không có ngày đến hạn xem như Ok không hết hạn, nếu có ngày đến hạn DateTime temp = new DateTime(effectMonth.Year, effectMonth.Month, 1); if (!lst[0].MonthEnd.HasValue || (lst[0].MonthEnd.HasValue && lst[0].MonthEnd.Value >= temp)) { return(lst[0]); } } return(null); } }
public string SaveList(List<Att_RosterEntity> lstModel) { using (var context = new VnrHrmDataContext()) { List<Att_Roster> lstSave = new List<Att_Roster>(); lstSave = lstModel.Translate<Att_Roster>(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository<Att_Roster>(unitOfWork); //int count = 0; foreach (var item in lstSave) { //count += 1; item.ID = Guid.NewGuid(); repo.Add(item); } try { repo.SaveChanges(); return "Success"; } catch (Exception) { return "Error"; } } }
public List<FIN_ClaimEntity> GetClaimApprovedList(Guid UserLogin) { List<FIN_ClaimEntity> lstReturn = new List<FIN_ClaimEntity>(); string appType = ApproveType.E_FIN_ClaimRequest.ToString(); string status = string.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoFIN_Claim = new CustomBaseRepository<FIN_Claim>(unitOfWork); List<Sys_ConditionApproved> lstCondition = new List<Sys_ConditionApproved>(); List<Hre_ProfileEntity> lstProfile = new List<Hre_ProfileEntity>(); GetProfileWithPermissionLogin(UserLogin, appType, out lstCondition, out lstProfile); var lstExpensesCondition = lstCondition.Select(s => s.ExpensesType).Distinct().ToList(); var dataClaim = repoFIN_Claim .FindBy(s => s.IsDelete == null && lstExpensesCondition.Contains(s.ExpensesType)) .ToList().Translate<FIN_ClaimEntity>(); foreach (var condition in lstCondition) { List<Guid> lstGuidOrg = GetOrgInCondition(condition); var profileInOrg = lstProfile.Where(s => lstGuidOrg.Contains(s.OrgStructureID.Value)).Select(a => a.ID).ToList(); var resultCondition = dataClaim.Where(s => profileInOrg.Contains(s.ProfileID.Value)).ToList(); lstReturn.AddRange(resultCondition); } } return lstReturn; }
public string SaveEvalutionData(int year, Guid? TimesGetDataID, string orgStructureID, DateTime? _dateStart, DateTime? _dateEnd,string userLogin) { using (var context = new VnrHrmDataContext()) { var evaServices = new Eva_ReportServices(); List<Eva_EvalutionDataEntity> lstEvalutionDataEntity = new List<Eva_EvalutionDataEntity>(); lstEvalutionDataEntity = evaServices.SummaryEvalutionData(year, TimesGetDataID, orgStructureID, _dateStart, _dateEnd,userLogin); var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoEva_EvalutionData = new CustomBaseRepository<Eva_EvalutionData>(unitOfWork); List<Eva_EvalutionData> lstEvalutionData = new List<Eva_EvalutionData>(); lstEvalutionData = lstEvalutionDataEntity.Translate<Eva_EvalutionData>(); if (lstEvalutionData != null) { int _total = lstEvalutionData.Count; int _totalPage = _total / 200 + 1; int _pageSize = 200; for (int _page = 1; _page <= _totalPage; _page++) { int _skip = _pageSize * (_page - 1); var _listCurrenPage = lstEvalutionData.Skip(_skip).Take(_pageSize).ToList(); foreach (var item in _listCurrenPage) { repoEva_EvalutionData.Add(item); } unitOfWork.SaveChanges(); } } return "SaveSuccess"; // #endregion } }
/// <summary> /// [Hieu.Van] /// Xử lý Gửi yêu cầu phê duyệt /// </summary> /// <param name="LoginID"></param> /// <param name="userApprovedID"></param> /// <param name="recordID"></param> /// <param name="type"></param> /// <returns></returns> public string ProcessSendRequest(string host, Guid LoginID, Guid userApprovedID, Guid recordID, string type) { DataErrorCode status = DataErrorCode.Success; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoFIN_PurchaseRequest = new CustomBaseRepository <FIN_PurchaseRequest>(unitOfWork); var repoSys_UserApprove = new CustomBaseRepository <Sys_UserApprove>(unitOfWork); var record = repoFIN_PurchaseRequest.FindBy(s => s.ID == recordID).FirstOrDefault(); if (record.UserCreateID != LoginID) { return(DataErrorCode.NoPermission.ToString()); } if (record.Status == EnumDropDown.Status.E_REJECTED.ToString()) { return(DataErrorCode.Error_Reject.ToString()); } if (record.Status != null) { return(DataErrorCode.Error_SendRequest.ToString()); } var userApproved = repoSys_UserApprove.FindBy(s => s.ID == userApprovedID).FirstOrDefault(); // Lấy status hiện tại của bản ghi string currentStatus = record.Status; // truyền từ Dropdownlist chọn người duyệt, lấy ra giá trị Status tiếp theo string nextStatus = userApproved.CurrentStatus; record.Status = nextStatus; record.UserApproveID = userApprovedID; repoFIN_PurchaseRequest.Edit(record); status = repoFIN_PurchaseRequest.SaveChanges(); if (status == DataErrorCode.Success) { if (nextStatus != "Approved") { status = SendMail_ToNextApproved(host, recordID, userApprovedID, nextStatus, type); } var repoSys_ConfigProcessApprove = new CustomBaseRepository <Sys_ConfigProcessApprove>(unitOfWork); var configProcess = repoSys_ConfigProcessApprove.FindBy(s => s.IsDelete == null && s.Function == type && s.CurrentStatus == record.Status).FirstOrDefault(); if (configProcess == null) { return(DataErrorCode.Success.ToString()); } else { return(DataErrorCode.Success_Forward.ToString()); } } return(status.ToString()); } }
/// <summary> /// [Hieu.Van] /// Xử lý Gửi yêu cầu phê duyệt /// </summary> /// <param name="LoginID"></param> /// <param name="userApprovedID"></param> /// <param name="recordID"></param> /// <param name="type"></param> /// <returns></returns> public string ProcessSendRequest(string host, Guid LoginID, Guid userApprovedID, Guid recordID, string type) { DataErrorCode status = DataErrorCode.Success; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoFIN_PurchaseRequest = new CustomBaseRepository<FIN_PurchaseRequest>(unitOfWork); var repoSys_UserApprove = new CustomBaseRepository<Sys_UserApprove>(unitOfWork); var record = repoFIN_PurchaseRequest.FindBy(s => s.ID == recordID).FirstOrDefault(); if (record.UserCreateID != LoginID) { return DataErrorCode.NoPermission.ToString(); } if (record.Status == EnumDropDown.Status.E_REJECTED.ToString()) { return DataErrorCode.Error_Reject.ToString(); } if (record.Status != null) { return DataErrorCode.Error_SendRequest.ToString(); } var userApproved = repoSys_UserApprove.FindBy(s => s.ID == userApprovedID).FirstOrDefault(); // Lấy status hiện tại của bản ghi string currentStatus = record.Status; // truyền từ Dropdownlist chọn người duyệt, lấy ra giá trị Status tiếp theo string nextStatus = userApproved.CurrentStatus; record.Status = nextStatus; record.UserApproveID = userApprovedID; repoFIN_PurchaseRequest.Edit(record); status = repoFIN_PurchaseRequest.SaveChanges(); if (status == DataErrorCode.Success) { if (nextStatus != "Approved") { status = SendMail_ToNextApproved(host, recordID, userApprovedID, nextStatus, type); } var repoSys_ConfigProcessApprove = new CustomBaseRepository<Sys_ConfigProcessApprove>(unitOfWork); var configProcess = repoSys_ConfigProcessApprove.FindBy(s => s.IsDelete == null && s.Function == type && s.CurrentStatus == record.Status).FirstOrDefault(); if (configProcess == null) { return DataErrorCode.Success.ToString(); } else { return DataErrorCode.Success_Forward.ToString(); } } return status.ToString(); } }
public bool AddList(List <Att_AnnualLeaveDetailEntity> models) { bool isSuccess = false; var leaveType = string.Empty; var status = string.Empty; var year = 2013; if (models != null && models.FirstOrDefault() != null && models.FirstOrDefault().Year != null) { year = Convert.ToInt32(models.FirstOrDefault().Year); leaveType = models.FirstOrDefault().Type; } using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <Att_AnnualLeaveDetail>(unitOfWork); try { var annualLeaveDetails = GetAllUseEntity <Att_AnnualLeaveDetail>(ref status).Where(p => p.Type == leaveType && p.Year == year).ToList().AsQueryable(); foreach (var attAnnualLeaveDetail in models) { var addSuccess = false; var existAnnualDetail = annualLeaveDetails.Where(p => p.ProfileID == attAnnualLeaveDetail.ProfileID).FirstOrDefault(); if (existAnnualDetail != null) { existAnnualDetail.Month1 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month2 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month3 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month4 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month5 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month6 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month7 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month8 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month9 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month10 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month11 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month12 = attAnnualLeaveDetail.Month1; repo.Edit(existAnnualDetail); } else { Att_AnnualLeaveDetail temp = new Att_AnnualLeaveDetail(); temp = attAnnualLeaveDetail.CopyData <Att_AnnualLeaveDetail>(); repo.Add(temp); } } repo.SaveChanges(); return(true); } catch { return(false); } } }
public bool AddList(List<Att_AnnualLeaveDetailEntity> models) { bool isSuccess = false; var leaveType = string.Empty; var status = string.Empty; var year = 2013; if (models != null && models.FirstOrDefault() != null && models.FirstOrDefault().Year != null) { year = Convert.ToInt32(models.FirstOrDefault().Year); leaveType = models.FirstOrDefault().Type; } using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository<Att_AnnualLeaveDetail>(unitOfWork); try { var annualLeaveDetails = GetAllUseEntity<Att_AnnualLeaveDetail>(ref status).Where(p => p.Type == leaveType && p.Year == year).ToList().AsQueryable(); foreach (var attAnnualLeaveDetail in models) { var addSuccess = false; var existAnnualDetail = annualLeaveDetails.Where(p => p.ProfileID == attAnnualLeaveDetail.ProfileID ).FirstOrDefault(); if (existAnnualDetail != null) { existAnnualDetail.Month1 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month2 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month3 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month4 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month5 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month6 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month7 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month8 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month9 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month10 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month11 = attAnnualLeaveDetail.Month1; existAnnualDetail.Month12 = attAnnualLeaveDetail.Month1; repo.Edit(existAnnualDetail); } else { Att_AnnualLeaveDetail temp = new Att_AnnualLeaveDetail(); temp = attAnnualLeaveDetail.CopyData<Att_AnnualLeaveDetail>(); repo.Add(temp); } } repo.SaveChanges(); return true; } catch { return false; } } }
public void ComputeCommission(List <Hre_ProfileEntity> listProfile, Att_CutOffDurationEntity CutOffDuration, Guid asynTaskID, string HeaderTemplateLog, string methodPayroll, Guid CutOffDuration2ID, string UserLogin) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoSys_AsynTask = new CustomBaseRepository <Sys_AsynTask>(unitOfWork); var repoPayrollTable = new CustomBaseRepository <Sal_PayrollTable>(unitOfWork); var Sys_Model = repoSys_AsynTask.FindBy(m => m.ID == asynTaskID).FirstOrDefault(); if (!DeletePayrollTable(listProfile.Select(d => d.ID).ToList(), CutOffDuration.ID)) { Sys_Model.Status = AsynTaskStatus.Error.ToString(); Sys_Model.Description = "Không thể xóa bảng lương cũ"; Sys_Model.PercentComplete = 1; unitOfWork.SaveChanges(); } else { #region Get All Data DateTime DatetimeStart = DateTime.Now; ComputePayrollDataModel TotalData = PayrollServices.GetDataForComputeSalary(CutOffDuration, UserLogin); //FileLog.WriteLog("", "Get Data", Common.ComputeTime(DatetimeStart, DateTime.Now)); #endregion //Kiểm tra xem có lỗi store hay không if (TotalData.Status != null && TotalData.Status != string.Empty) { Sys_Model.Status = AsynTaskStatus.Error.ToString(); Sys_Model.Description = TotalData.Status; Sys_Model.PercentComplete = 1; unitOfWork.SaveChanges(); } else { #region Ghi Log //Lấy đường dẫn thư mục ghi log //set lại thư mục ghi log //WriteLog.SettingPath = Common.GetPath("Log"); //WriteLog.DynamicDirectory = "ComputePayroll" + DateTime.Now.ToString("dd-MM-yyyy_HH-mm-ss"); //WriteLog.FileName = "LogFile"; //WriteLog.WriteLog(HeaderTemplateLog, "", ""); #endregion int pageSize = 100; //mỗi lần tính cho 100 nhân viên int totalProfile = listProfile.Count; //Tổng số nhâ viên foreach (var listProfileBySize in listProfile.Chunk(pageSize)) { ComputeCommission_Progress(TotalData, listProfileBySize.ToList(), CutOffDuration, Sys_Model.ID, totalProfile, methodPayroll, CutOffDuration2ID); } } } } }
public void ActionApprovedAll(List <Guid> lstId, string status, Guid userId) { var statusMes = string.Empty; var objTravelRequest = new List <object>(); string UserLogin = string.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoClaimItem = new CustomBaseRepository <FIN_ClaimItem>(unitOfWork); var repoClaim = new CustomBaseRepository <FIN_Claim>(unitOfWork); var lstClaimId = repoClaim.GetAll().Where(s => s.IsDelete == null && lstId.Contains(s.ID)).Select(s => s.ID).ToList(); var lstClaimItem = repoClaimItem.GetAll().Where(s => s.IsDelete == null).ToList(); var objApprovedClaim = new List <object>(); objApprovedClaim.AddRange(new object[6]); objApprovedClaim[4] = 1; objApprovedClaim[5] = int.MaxValue - 1; var lstApprovedClaim = GetData <FIN_ApproverECLAIMEntity>(objApprovedClaim, ConstantSql.hrm_fin_sp_get_ApproverECLAIM, UserLogin, ref statusMes).ToList(); var approvedType1 = FinApproverType.FIN_Claim_Profile.ToString(); var approvedType2 = FinApproverType.FIN_Claim_Manufacture.ToString(); var approvedEntity = lstApprovedClaim.Where(s => s.ApprovedID != null && s.ApprovedID.Value == userId && (s.ApprovedType == approvedType1 || s.ApprovedType == approvedType2)).FirstOrDefault(); if (status == "E_REQUEST") { if (lstClaimId.Count > 0) { lstClaimItem = lstClaimItem.Where(s => s.ClaimID != null && lstClaimId.Contains(s.ClaimID.Value)).ToList(); foreach (var item in lstClaimItem) { item.Description2 = status; } repoClaimItem.SaveChanges(); } } if (status == "E_APPROVED") { if (lstClaimId.Count > 0) { if (approvedEntity != null) { lstClaimItem = lstClaimItem.Where(s => s.ClaimID != null && lstClaimId.Contains(s.ClaimID.Value)).ToList(); foreach (var item in lstClaimItem) { item.Description2 = status + "_" + approvedEntity.OrderNo.ToString(); } repoClaimItem.SaveChanges(); } } } } }
public List<Att_WorkdayEntity> GetWorkDaysByDate(DateTime DateFrom, DateTime DateTo) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new Att_WorkDayRepository(unitOfWork); var repoAtt_Workday = new CustomBaseRepository<Att_Workday>(unitOfWork); return repoAtt_Workday.FindBy(m => m.IsDelete == null && m.WorkDate >= DateFrom && m.WorkDate <= DateTo).Select(s => new Att_WorkdayEntity { ID = s.ID, ProfileID = s.ProfileID, InTimeRoot = s.InTimeRoot, OutTimeRoot = s.OutTimeRoot, LateEarlyDuration = s.LateEarlyDuration, ShiftID = s.ShiftID, MissInOutReason = s.MissInOutReason }).ToList<Att_WorkdayEntity>(); } }
public void ActionApproved(List<Guid> lstId, string status, Guid userId) { var statusMes = string.Empty; var objTravelRequest = new List<object>(); string UserLogin = string.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTravelRequestItem = new CustomBaseRepository<FIN_ClaimItem>(unitOfWork); var lstTravelRequestItem = repoTravelRequestItem.GetAll().Where(s => s.IsDelete == null).ToList(); if(status == "E_APPROVED") { var objApprovedClaim = new List<object>(); objApprovedClaim.AddRange(new object[6]); objApprovedClaim[4] = 1; objApprovedClaim[5] = int.MaxValue - 1; var lstApprovedClaim = GetData<FIN_ApproverECLAIMEntity>(objApprovedClaim, ConstantSql.hrm_fin_sp_get_ApproverECLAIM, UserLogin, ref statusMes).ToList(); var approvedType1 = FinApproverType.FIN_Claim_Profile.ToString(); var approvedType2 = FinApproverType.FIN_Claim_Manufacture.ToString(); var approvedEntity = lstApprovedClaim.Where(s => s.ApprovedID != null && s.ApprovedID.Value == userId && (s.ApprovedType == approvedType1 || s.ApprovedType == approvedType2)).FirstOrDefault(); if (lstId.Count > 0) { if (approvedEntity != null) { lstTravelRequestItem = lstTravelRequestItem.Where(s => lstId.Contains(s.ID)).ToList(); foreach (var item in lstTravelRequestItem) { item.Description2 = status; } repoTravelRequestItem.SaveChanges(); } } } if(status == "E_REJECTED") { if (lstId.Count > 0) { lstTravelRequestItem = lstTravelRequestItem.Where(s => lstId.Contains(s.ID)).ToList(); foreach (var item in lstTravelRequestItem) { item.Description2 = status; } repoTravelRequestItem.SaveChanges(); } } } }
public void SaveUnusualAllowance(List <Sal_UnusualAllowanceEntity> model) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoUnusualAllowance = new CustomBaseRepository <Sal_UnusualAllowance>(unitOfWork); repoUnusualAllowance.Add(model.Translate <Sal_UnusualAllowance>()); unitOfWork.SaveChanges(); } }
public void CreateFormulaTemplate(List<Cat_FormulaTemplateEntity> listFormulaTemplate,Guid GradeID) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoCat_FormulaTemplate = new CustomBaseRepository<Cat_FormulaTemplate>(unitOfWork); var repoCat_Element = new CustomBaseRepository<Cat_Element>(unitOfWork); #region Xử lý bảng template //lấy các phần tử template trong grade List<Cat_FormulaTemplate> listFormulaTemplateByGrade = repoCat_FormulaTemplate.FindBy(m => m.IsDelete != true && m.GradeID != null && m.GradeID == GradeID).ToList(); //xóa các phần tử đó repoCat_FormulaTemplate.Delete(listFormulaTemplateByGrade); //insert lại các phần tử mới List<Cat_FormulaTemplate> listFormulaTemplateModel = listFormulaTemplate.Translate<Cat_FormulaTemplate>(); listFormulaTemplateModel.ForEach(m => m.GradeID = GradeID); repoCat_FormulaTemplate.Add(listFormulaTemplateModel); #endregion #region Xử lý bảng cat_element //lấy các phần tử có cùng mã code với template List<Cat_Element> listElement = repoCat_Element.FindBy(m => m.IsDelete != true && m.GradePayrollID == GradeID).ToList(); listElement = listElement.Where(m => listFormulaTemplate.Any(t => t.ElementCode.ReplaceSpace() == m.ElementCode.ReplaceSpace())).ToList(); //xóa các phần tử đó đi repoCat_Element.Delete(listElement); //tạo ra các element List<Cat_Element> listElementModel = new List<Cat_Element>(); Cat_Element item = new Cat_Element(); foreach (var template in listFormulaTemplate) { item = new Cat_Element(); item.GradePayrollID = GradeID; item.ElementCode = template.ElementCode.ReplaceSpace(); item.ElementName = template.ElementName; item.Formula = template.Formula; item.IsBold = template.IsBold; item.Invisible = template.Invisible; item.Description = template.Description; item.TabType = CatElementType.Payroll.ToString(); item.MethodPayroll = MethodPayroll.E_NORMAL.ToString(); item.ElementType = CatElementType.Payroll.ToString(); item.Type = EnumDropDown.ElementDataType.Double.ToString(); listElementModel.Add(item); } repoCat_Element.Add(listElementModel); unitOfWork.SaveChanges(); #endregion } }
public Guid GetProfileIDByTravelRequests(Guid TravelRequestID) { Guid rs = Guid.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTravelRequest = new CustomBaseRepository<FIN_TravelRequest>(unitOfWork); var TravelRequest = repoTravelRequest.GetById(TravelRequestID); rs = TravelRequest.ProfileID.Value; } return rs; }
public void AddDataForBasicSalary(string ProfileIDs, string BasicSalary, DateTime DateHire, Guid SalaryRankID,string UserLogin) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoBasicSalary = new CustomBaseRepository<Sal_BasicSalary>(unitOfWork); List<Guid> lstProfileIDs = ProfileIDs.Split(',').Select(x => Guid.Parse(x)).ToList(); List<Sal_BasicSalary> lstBasicSalary = new List<Sal_BasicSalary>(); //chua co cach giai quyet nen hard code lay mac dinh la VND var repoCurrency = new CustomBaseRepository<Cat_Currency>(unitOfWork); var currency = repoCurrency.FindBy(s => s.IsDelete == null && s.CurrencyName == "VND").FirstOrDefault(); //var repoSalaryRank = new CustomBaseRepository<Cat_SalaryRank>(unitOfWork); //var repoSalaryClass = new CustomBaseRepository<Cat_SalaryClass>(unitOfWork); //var salaryRank = repoSalaryRank.FindBy(s => s.IsDelete == null && s.ID == SalaryRankID).FirstOrDefault(); //var salaryClass = repoSalaryClass.FindBy(s => s.IsDelete == null && s.ID == salaryRank.SalaryClassID).FirstOrDefault(); var salaryRankServices = new Cat_SalaryRankServices(); var lstObjRank = new List<object>(); lstObjRank.Add(null); lstObjRank.Add(null); lstObjRank.Add(1); lstObjRank.Add(int.MaxValue -1); var lstRank = salaryRankServices.GetData<Cat_SalaryRankEntity>(lstObjRank, ConstantSql.hrm_cat_sp_get_SalaryRank, UserLogin, ref status).ToList().Translate<Cat_SalaryRank>(); var rankEntity = lstRank.Where(s => s.ID == SalaryRankID).FirstOrDefault(); var salaryClassServices = new Cat_SalaryClassServices(); var lstObjClass = new List<object>(); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue -1); var salaryClass = salaryClassServices.GetData<Cat_SalaryClassEntity>(lstObjClass, ConstantSql.hrm_cat_sp_get_SalaryClass, UserLogin, ref status).ToList().Translate<Cat_SalaryClass>(); var salaryClassEntity = salaryClass.Where(s => rankEntity.SalaryClassID == s.ID).FirstOrDefault(); foreach (var item in lstProfileIDs) { Sal_BasicSalary objBasicSalary = new Sal_BasicSalary(); objBasicSalary.ProfileID = item; objBasicSalary.GrossAmount = BasicSalary; objBasicSalary.Amount = BasicSalary.Encrypt(); objBasicSalary.DateOfEffect = DateHire; objBasicSalary.RankRateID = SalaryRankID; objBasicSalary.CurrencyID = currency.ID; objBasicSalary.ClassRateID = salaryClassEntity == null ? Guid.Empty : salaryClassEntity.ID; lstBasicSalary.Add(objBasicSalary); } repoBasicSalary.Add(lstBasicSalary); repoBasicSalary.SaveChanges(); } }
public void SaveUnusualAllowance(List<Sal_UnusualAllowanceEntity> model) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoUnusualAllowance = new CustomBaseRepository<Sal_UnusualAllowance>(unitOfWork); repoUnusualAllowance.Add(model.Translate<Sal_UnusualAllowance>()); unitOfWork.SaveChanges(); } }
public List <Sal_PayrollEstimateDetailEntity> GetTemplatePayrollEstimate(Sal_PayrollEstimateEntity model) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoOrgStructure = new CustomBaseRepository <Cat_OrgStructure>(unitOfWork); var repoPayrollEstimateDetail = new CustomBaseRepository <Sal_PayrollEstimateDetail>(unitOfWork); List <Cat_OrgStructure> listOrg = repoOrgStructure.FindBy(m => m.IsDelete != true).ToList(); if (model.OrgStructureIDs != null) { string[] listOrdernumber = model.OrgStructureIDs.Split(','); listOrg = listOrg.Where(m => listOrdernumber.Contains(m.OrderNumber.ToString())).ToList(); } List <Sal_PayrollEstimateDetail> ListPayrollEstimateDetail = new List <Sal_PayrollEstimateDetail>(); ListPayrollEstimateDetail = repoPayrollEstimateDetail.FindBy(m => m.IsDelete != true && m.PayrollEstimateID == null).ToList(); List <Sal_PayrollEstimateDetailEntity> Result = new List <Sal_PayrollEstimateDetailEntity>(); foreach (var i in listOrg) { Sal_PayrollEstimateDetailEntity item = new Sal_PayrollEstimateDetailEntity(); item.ID = Guid.NewGuid(); item.OrgStructureName = i.OrgStructureName; item.OrgStructureCode = i.Code; item.OrgStructureID = i.ID; var _tmp = ListPayrollEstimateDetail.FirstOrDefault(m => m.OrgStructureID == i.ID); if (_tmp != null) { item.LeaveUnpaid = _tmp.LeaveUnpaid != null ? _tmp.LeaveUnpaid : 0; item.OvertimeHoliday = _tmp.OvertimeHoliday != null ? _tmp.OvertimeHoliday : 0; item.OvertimeNightHoliday = _tmp.OvertimeNightHoliday != null ? _tmp.OvertimeNightHoliday : 0; item.OvertimeNightNormal = _tmp.OvertimeNightNormal != null ? _tmp.OvertimeNightNormal : 0; item.OvertimeNightWeekend = _tmp.OvertimeNightWeekend != null ? _tmp.OvertimeNightWeekend : 0; item.OvertimeNormal = _tmp.OvertimeNormal != null ? _tmp.OvertimeNormal : 0; item.OvertimeWeekend = _tmp.OvertimeWeekend != null ? _tmp.OvertimeWeekend : 0; } else { item.LeaveUnpaid = 0; item.OvertimeHoliday = 0; item.OvertimeNightHoliday = 0; item.OvertimeNightNormal = 0; item.OvertimeNightWeekend = 0; item.OvertimeNormal = 0; item.OvertimeWeekend = 0; } Result.Add(item); } return(Result); } }
public void CreateFormulaTemplate(List <Cat_FormulaTemplateEntity> listFormulaTemplate, Guid GradeID) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoCat_FormulaTemplate = new CustomBaseRepository <Cat_FormulaTemplate>(unitOfWork); var repoCat_Element = new CustomBaseRepository <Cat_Element>(unitOfWork); #region Xử lý bảng template //lấy các phần tử template trong grade List <Cat_FormulaTemplate> listFormulaTemplateByGrade = repoCat_FormulaTemplate.FindBy(m => m.IsDelete != true && m.GradeID != null && m.GradeID == GradeID).ToList(); //xóa các phần tử đó repoCat_FormulaTemplate.Delete(listFormulaTemplateByGrade); //insert lại các phần tử mới List <Cat_FormulaTemplate> listFormulaTemplateModel = listFormulaTemplate.Translate <Cat_FormulaTemplate>(); listFormulaTemplateModel.ForEach(m => m.GradeID = GradeID); repoCat_FormulaTemplate.Add(listFormulaTemplateModel); #endregion #region Xử lý bảng cat_element //lấy các phần tử có cùng mã code với template List <Cat_Element> listElement = repoCat_Element.FindBy(m => m.IsDelete != true && m.GradePayrollID == GradeID).ToList(); listElement = listElement.Where(m => listFormulaTemplate.Any(t => t.ElementCode.ReplaceSpace() == m.ElementCode.ReplaceSpace())).ToList(); //xóa các phần tử đó đi repoCat_Element.Delete(listElement); //tạo ra các element List <Cat_Element> listElementModel = new List <Cat_Element>(); Cat_Element item = new Cat_Element(); foreach (var template in listFormulaTemplate) { item = new Cat_Element(); item.GradePayrollID = GradeID; item.ElementCode = template.ElementCode.ReplaceSpace(); item.ElementName = template.ElementName; item.Formula = template.Formula; item.IsBold = template.IsBold; item.Invisible = template.Invisible; item.Description = template.Description; item.TabType = CatElementType.Payroll.ToString(); item.MethodPayroll = MethodPayroll.E_NORMAL.ToString(); item.ElementType = CatElementType.Payroll.ToString(); item.Type = EnumDropDown.ElementDataType.Double.ToString(); listElementModel.Add(item); } repoCat_Element.Add(listElementModel); unitOfWork.SaveChanges(); #endregion } }
public void SetCompensationLeaveBeginYear(List <Guid> lstProfileIDs, double?limitMaximum, int Year, int?MonthResetANL, Guid?AllowanceTypeID, Guid?CuttOffDurationID) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_CompensationConfig = new CustomBaseRepository <Att_CompensationConfig>(unitOfWork); DateTime EndLastYear = new DateTime(Year - 1, 12, 1); List <Att_CompensationDetail> lstCompensationDetail = unitOfWork.CreateQueryable <Att_CompensationDetail>(m => m.MonthYear == EndLastYear && m.ProfileID != null && lstProfileIDs.Contains(m.ProfileID.Value)).ToList(); var lstCompensationLeaveInDB = unitOfWork.CreateQueryable <Att_CompensationConfig>(m => m.Year == Year && m.ProfileID != null && lstProfileIDs.Contains(m.ProfileID.Value)).ToList(); List <Att_CompensationConfig> lstNewData = new List <Att_CompensationConfig>(); List <Att_CompensationConfig> lstEditData = new List <Att_CompensationConfig>(); foreach (var ProfileID in lstProfileIDs) { Att_CompensationConfig CompensationLeaveConfigByProfile = lstCompensationLeaveInDB.Where(m => m.ProfileID == ProfileID).FirstOrDefault(); bool IsNew = false; if (CompensationLeaveConfigByProfile == null) { IsNew = true; CompensationLeaveConfigByProfile = new Att_CompensationConfig(); CompensationLeaveConfigByProfile.ID = Guid.NewGuid(); CompensationLeaveConfigByProfile.ProfileID = ProfileID; CompensationLeaveConfigByProfile.Year = Year; } CompensationLeaveConfigByProfile.MonthResetInitAvailable = MonthResetANL; double RemainLastYear = lstCompensationDetail.Where(m => m.ProfileID == ProfileID).Select(m => m.Remain ?? 0).FirstOrDefault(); if (limitMaximum != null) { CompensationLeaveConfigByProfile.InitAvailable = RemainLastYear > limitMaximum.Value ? limitMaximum.Value : RemainLastYear; } else { CompensationLeaveConfigByProfile.InitAvailable = RemainLastYear; } if (IsNew) { lstNewData.Add(CompensationLeaveConfigByProfile); } else { lstEditData.Add(CompensationLeaveConfigByProfile); } //Sửa lại theo phần tử mới mà Sơn build } repoAtt_CompensationConfig.Add(lstNewData); repoAtt_CompensationConfig.Edit(lstEditData); unitOfWork.SaveChanges(); } }
public void SetCompensationLeaveBeginYear(List<Guid> lstProfileIDs, double? limitMaximum, int Year, int? MonthResetANL, Guid? AllowanceTypeID, Guid? CuttOffDurationID) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoAtt_CompensationConfig = new CustomBaseRepository<Att_CompensationConfig>(unitOfWork); DateTime EndLastYear = new DateTime(Year - 1, 12, 1); List<Att_CompensationDetail> lstCompensationDetail = unitOfWork.CreateQueryable<Att_CompensationDetail>(m => m.MonthYear == EndLastYear && m.ProfileID != null && lstProfileIDs.Contains(m.ProfileID.Value)).ToList(); var lstCompensationLeaveInDB = unitOfWork.CreateQueryable<Att_CompensationConfig>(m => m.Year == Year && m.ProfileID != null && lstProfileIDs.Contains(m.ProfileID.Value)).ToList(); List<Att_CompensationConfig> lstNewData = new List<Att_CompensationConfig>(); List<Att_CompensationConfig> lstEditData = new List<Att_CompensationConfig>(); foreach (var ProfileID in lstProfileIDs) { Att_CompensationConfig CompensationLeaveConfigByProfile = lstCompensationLeaveInDB.Where(m => m.ProfileID == ProfileID).FirstOrDefault(); bool IsNew = false; if (CompensationLeaveConfigByProfile == null) { IsNew = true; CompensationLeaveConfigByProfile = new Att_CompensationConfig(); CompensationLeaveConfigByProfile.ID = Guid.NewGuid(); CompensationLeaveConfigByProfile.ProfileID = ProfileID; CompensationLeaveConfigByProfile.Year = Year; } CompensationLeaveConfigByProfile.MonthResetInitAvailable = MonthResetANL; double RemainLastYear = lstCompensationDetail.Where(m => m.ProfileID == ProfileID).Select(m => m.Remain ?? 0).FirstOrDefault(); if (limitMaximum != null) { CompensationLeaveConfigByProfile.InitAvailable = RemainLastYear > limitMaximum.Value ? limitMaximum.Value : RemainLastYear; } else { CompensationLeaveConfigByProfile.InitAvailable = RemainLastYear; } if (IsNew) { lstNewData.Add(CompensationLeaveConfigByProfile); } else { lstEditData.Add(CompensationLeaveConfigByProfile); } //Sửa lại theo phần tử mới mà Sơn build } repoAtt_CompensationConfig.Add(lstNewData); repoAtt_CompensationConfig.Edit(lstEditData); unitOfWork.SaveChanges(); } }
public void AddDataForBasicSalary(string ProfileIDs, string BasicSalary, DateTime DateHire, Guid SalaryRankID, string UserLogin) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoBasicSalary = new CustomBaseRepository <Sal_BasicSalary>(unitOfWork); List <Guid> lstProfileIDs = ProfileIDs.Split(',').Select(x => Guid.Parse(x)).ToList(); List <Sal_BasicSalary> lstBasicSalary = new List <Sal_BasicSalary>(); //chua co cach giai quyet nen hard code lay mac dinh la VND var repoCurrency = new CustomBaseRepository <Cat_Currency>(unitOfWork); var currency = repoCurrency.FindBy(s => s.IsDelete == null && s.CurrencyName == "VND").FirstOrDefault(); //var repoSalaryRank = new CustomBaseRepository<Cat_SalaryRank>(unitOfWork); //var repoSalaryClass = new CustomBaseRepository<Cat_SalaryClass>(unitOfWork); //var salaryRank = repoSalaryRank.FindBy(s => s.IsDelete == null && s.ID == SalaryRankID).FirstOrDefault(); //var salaryClass = repoSalaryClass.FindBy(s => s.IsDelete == null && s.ID == salaryRank.SalaryClassID).FirstOrDefault(); var salaryRankServices = new Cat_SalaryRankServices(); var lstObjRank = new List <object>(); lstObjRank.Add(null); lstObjRank.Add(null); lstObjRank.Add(1); lstObjRank.Add(int.MaxValue - 1); var lstRank = salaryRankServices.GetData <Cat_SalaryRankEntity>(lstObjRank, ConstantSql.hrm_cat_sp_get_SalaryRank, UserLogin, ref status).ToList().Translate <Cat_SalaryRank>(); var rankEntity = lstRank.Where(s => s.ID == SalaryRankID).FirstOrDefault(); var salaryClassServices = new Cat_SalaryClassServices(); var lstObjClass = new List <object>(); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue - 1); var salaryClass = salaryClassServices.GetData <Cat_SalaryClassEntity>(lstObjClass, ConstantSql.hrm_cat_sp_get_SalaryClass, UserLogin, ref status).ToList().Translate <Cat_SalaryClass>(); var salaryClassEntity = salaryClass.Where(s => rankEntity.SalaryClassID == s.ID).FirstOrDefault(); foreach (var item in lstProfileIDs) { Sal_BasicSalary objBasicSalary = new Sal_BasicSalary(); objBasicSalary.ProfileID = item; objBasicSalary.GrossAmount = BasicSalary; objBasicSalary.Amount = BasicSalary.Encrypt(); objBasicSalary.DateOfEffect = DateHire; objBasicSalary.RankRateID = SalaryRankID; objBasicSalary.CurrencyID = currency.ID; objBasicSalary.ClassRateID = salaryClassEntity == null ? Guid.Empty : salaryClassEntity.ID; lstBasicSalary.Add(objBasicSalary); } repoBasicSalary.Add(lstBasicSalary); repoBasicSalary.SaveChanges(); } }
public bool CheckLeader(Guid LeaderID, Guid ProfileID) { bool rs = false; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoProfile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var Profile = repoProfile.GetById(ProfileID); if (Profile.SupervisorID == LeaderID || Profile.HighSupervisorID == LeaderID) rs = true; } return rs; }
public ResultsObject UpdateStatus(string Ids,string Status) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoHDTJobGroup = new CustomBaseRepository<Cat_HDTJobGroup>(unitOfWork); List<Cat_HDTJobGroup> listHDTJob = repoHDTJobGroup.FindBy(m => m.IsDelete != true).ToList(); string[] ListIds = Ids.Split(','); listHDTJob = listHDTJob.Where(m => ListIds.Contains(m.ID.ToString())).ToList(); listHDTJob.ForEach(m => m.Status = Status); unitOfWork.SaveChanges(); return new ResultsObject(); } }
public ResultsObject UpdateStatus(string Ids, string Status) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoHDTJobGroup = new CustomBaseRepository <Cat_HDTJobGroup>(unitOfWork); List <Cat_HDTJobGroup> listHDTJob = repoHDTJobGroup.FindBy(m => m.IsDelete != true).ToList(); string[] ListIds = Ids.Split(','); listHDTJob = listHDTJob.Where(m => ListIds.Contains(m.ID.ToString())).ToList(); listHDTJob.ForEach(m => m.Status = Status); unitOfWork.SaveChanges(); return(new ResultsObject()); } }
public ResultsObject UpdateSatus(List <Guid> listIds, string status) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoUnusualAllowance = new CustomBaseRepository <Sal_UnusualAllowance>(unitOfWork); List <Sal_UnusualAllowance> listResult = repoUnusualAllowance.FindBy(m => m.IsDelete != true).ToList(); listResult = listResult.Where(m => listIds.Contains(m.ID)).ToList(); listResult.ForEach(m => m.Status = status); unitOfWork.SaveChanges(); return(new ResultsObject()); } }
public ResultsObject SaveChangeHoldSalary(List <Sal_HoldSalaryEntity> ListEntity) { try { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoSal_HoldSalary = new CustomBaseRepository <Sal_HoldSalary>(unitOfWork); List <Sal_HoldSalary> TotalHoldSalary = repoSal_HoldSalary.FindBy(m => m.IsDelete != true).ToList(); foreach (var i in ListEntity) { #region Kiểm tra nhân viên đã có dữ liệu giữ lương hay chưa Sal_HoldSalary HoldSalaryByProfile = TotalHoldSalary.FirstOrDefault(m => m.ProfileID == i.ProfileID && m.MonthSalary != null && m.MonthSalary.Value.Day == i.MonthSalary.Value.Day && m.TimeAnalyzeID != null && m.TimeAnalyzeID == i.TimeAnalyzeID); if (HoldSalaryByProfile != null) { if (HoldSalaryByProfile.Status == EnumDropDown.HoldSalaryStatus.E_APPROVED.ToString()) { continue; } else { HoldSalaryByProfile.AmountSalary = i.AmountSalary; HoldSalaryByProfile.IsLeaveContinuous = i.IsLeaveContinuous; HoldSalaryByProfile.IsLeaveM = i.IsLeaveM; HoldSalaryByProfile.Terminate = i.Terminate; HoldSalaryByProfile.TimeAnalyzeID = i.TimeAnalyzeID; } } else { Sal_HoldSalary HoldSalary = i.Copy <Sal_HoldSalary>(); repoSal_HoldSalary.Add(HoldSalary); } #endregion } unitOfWork.SaveChanges(); return(new ResultsObject()); } } catch (Exception ex) { return(new ResultsObject() { Success = false, Messenger = ex.Message }); } }
/// <summary> /// [Chuc.Nguyen] - Xóa dữ liệu theo điều kiện sử dụng Store /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="condition"></param> /// <param name="storeName"></param> /// <returns></returns> public string DeleteData <TEntity>(ListQueryModel condition, string storeName) where TEntity : class { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <TEntity>(unitOfWork); try { return(repo.DeleteData(condition, storeName)); } catch (Exception ex) { return(NotificationType.Error + "," + ex.Message); } } }
public List<Sys_UserInfoEntity> ResourceUserApproved(Guid orgEmp, string type) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoSys_UserApprove = new CustomBaseRepository<Sys_UserApprove>(unitOfWork); var repoCat_OrgStructure = new CustomBaseRepository<Cat_OrgStructure>(unitOfWork); var repoSys_UserInfo = new CustomBaseRepository<Sys_UserInfo>(unitOfWork); List<object> listObj = new List<object>(); listObj.Add(null); listObj.Add(string.Empty); listObj.Add(string.Empty); string status = string.Empty; //var dataProfile = GetData<Hre_Profile>(listObj, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, ref status).ToList(); var dataUA = repoSys_UserApprove.FindBy(s => s.IsDelete == null && s.Type == type).ToList(); // lấy UserInfo của Người Duyệt var lstUserInfo = dataUA.Select(s => s.UserApproveID).Distinct().ToList(); // Lấy guid Nhân Viên từ UserInfo var lstUser = repoSys_UserInfo.FindBy(s => lstUserInfo.Contains(s.ID)).ToList(); //var lstProGuid = lstUser.Select(s => s.ProfileID).Distinct().ToList(); var dataCat_OrgStructure = repoCat_OrgStructure.FindBy(s => s.OrderNumber != null).ToList(); List<Sys_UserInfoEntity> lstReturn = new List<Sys_UserInfoEntity>(); foreach (var item in dataUA) { var user = lstUser.Where(d => d.ID == item.UserApproveID).FirstOrDefault(); //var idUser = lstUserInfo.Where(s => s == item.UserApproveID).FirstOrDefault(); //var idOrg = lstUser.Where(s => s.ID == idUser).Select(s => s.OrgStructureID).FirstOrDefault(); if (item.OrgStructureID != null && IsParentOrgStructure(orgEmp, item.OrgStructureID.Value, dataCat_OrgStructure)) { Sys_UserInfoEntity entity = new Sys_UserInfoEntity() { ID = item.UserApproveID, UserInfoName = user.UserInfoName, UserLogin = user.UserLogin }; lstReturn.Add(entity); } } return lstReturn; } }
public Eva_PerformanceExtendEntity GetPerformanceExtendByPerID(string ID,string userLogin) { Guid perID = Guid.Empty; Guid.TryParse( ID, out perID); BaseService service = new BaseService(); string status = string.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoEva_Performance = new CustomBaseRepository<Eva_Performance>(unitOfWork); var repoEva_PerformanceExtend = new CustomBaseRepository<Eva_PerformanceExtend>(unitOfWork); var performance = repoEva_Performance.GetAll().Where(s => s.ID == perID).FirstOrDefault(); var extend = repoEva_PerformanceExtend.GetAll().Where(s => s.ID == performance.PerformanceExtendID).FirstOrDefault(); var result = extend.Copy<Eva_PerformanceExtendEntity>(); string proID = Common.DotNetToOracle(performance.ProfileID.Value.ToString()); var profile = service.GetData<Hre_ProfileEntity>(proID, ConstantSql.hrm_hr_sp_get_ProfileById,userLogin, ref status).FirstOrDefault(); if (profile != null && result == null) { result = new Eva_PerformanceExtendEntity(); } result.ProfileName = profile.ProfileName ?? string.Empty; result.CodeEmp = profile.CodeEmp ?? string.Empty; result.PositionName = profile.PositionName ?? string.Empty; result.JobTitleName = profile.JobTitleName ?? string.Empty; result.DateOfBirth = profile.DateOfBirth; result.DateHire = profile.DateHire; result.PayrollGroupName = profile.PayrollGroupName ?? string.Empty; result.SupervisorName = profile.SupervisorName ?? string.Empty; result.HighSupervisorName = profile.HighSupervisorName ?? string.Empty; result.WorkPlaceName = profile.WorkPlaceName ?? string.Empty; result.TCountryName = profile.TCountryName ?? string.Empty; result.TProvinceName = profile.TProvinceName ?? string.Empty; result.Channel = profile.Channel ?? string.Empty; result.Region = profile.Region ?? string.Empty; result.Area = profile.Area ?? string.Empty; result.DateOfEffect = profile.DateOfEffect; return result; } }
public Eva_PerformanceExtendEntity GetPerformanceExtendByPerID(string ID, string userLogin) { Guid perID = Guid.Empty; Guid.TryParse(ID, out perID); BaseService service = new BaseService(); string status = string.Empty; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoEva_Performance = new CustomBaseRepository <Eva_Performance>(unitOfWork); var repoEva_PerformanceExtend = new CustomBaseRepository <Eva_PerformanceExtend>(unitOfWork); var performance = repoEva_Performance.GetAll().Where(s => s.ID == perID).FirstOrDefault(); var extend = repoEva_PerformanceExtend.GetAll().Where(s => s.ID == performance.PerformanceExtendID).FirstOrDefault(); var result = extend.Copy <Eva_PerformanceExtendEntity>(); string proID = Common.DotNetToOracle(performance.ProfileID.Value.ToString()); var profile = service.GetData <Hre_ProfileEntity>(proID, ConstantSql.hrm_hr_sp_get_ProfileById, userLogin, ref status).FirstOrDefault(); if (profile != null && result == null) { result = new Eva_PerformanceExtendEntity(); } result.ProfileName = profile.ProfileName ?? string.Empty; result.CodeEmp = profile.CodeEmp ?? string.Empty; result.PositionName = profile.PositionName ?? string.Empty; result.JobTitleName = profile.JobTitleName ?? string.Empty; result.DateOfBirth = profile.DateOfBirth; result.DateHire = profile.DateHire; result.PayrollGroupName = profile.PayrollGroupName ?? string.Empty; result.SupervisorName = profile.SupervisorName ?? string.Empty; result.HighSupervisorName = profile.HighSupervisorName ?? string.Empty; result.WorkPlaceName = profile.WorkPlaceName ?? string.Empty; result.TCountryName = profile.TCountryName ?? string.Empty; result.TProvinceName = profile.TProvinceName ?? string.Empty; result.Channel = profile.Channel ?? string.Empty; result.Region = profile.Region ?? string.Empty; result.Area = profile.Area ?? string.Empty; result.DateOfEffect = profile.DateOfEffect; return(result); } }
public string[] SetWaitApproveKaiZenData(List <Guid> SelectIds) { using (var context = new VnrHrmDataContext()) { try { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoKai_KaizenData = new CustomBaseRepository <Kai_KaizenData>(unitOfWork); var repoKai_RankMark = new CustomBaseRepository <Kai_RankMark>(unitOfWork); List <Kai_KaizenData> ListKaiZendData = repoKai_KaizenData.FindBy(m => m.IsDelete != true).ToList(); List <Kai_RankMark> ListKaiRank = repoKai_RankMark.FindBy(m => m.IsDelete != true).ToList(); int Pass = 0; int Fail = 0; string FailCode = string.Empty; foreach (var i in ListKaiZendData) { if (SelectIds.Any(m => m == i.ID)) { #region Kiểm tra hợp lệ vùng điểm List <Kai_RankMark> ListKaiRankByRankMark = ListKaiRank.Where(m => m.MarkIdea == i.MarkIdea).ToList(); if (ListKaiRankByRankMark.Any(m => m.MarkPerform == i.MarkPerform)) { i.Status = EnumDropDown.Kai_KaizenDataStatus.E_WATTING_APPROVED.ToString(); Pass++; } else { Fail++; FailCode += i.Hre_Profile.CodeEmp + ","; } #endregion } } unitOfWork.SaveChanges(); return(new string[] { Pass.ToString(), Fail.ToString(), FailCode }); } catch { return(new string[] { "0", "0", string.Empty }); } } }
public string ActionRejectTraineeRegister(List <Guid> selectedIds, Guid UserId, string Reason) { using (var context = new VnrHrmDataContext()) { var message = string.Empty; var status = string.Empty; var UserLogin = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var objTraineeRegister = new List <object>(); objTraineeRegister.AddRange(new object[12]); objTraineeRegister[10] = 1; objTraineeRegister[11] = int.MaxValue - 1; var lstTraineeRegister = GetData <Tra_TraineeRegisterEntity>(objTraineeRegister, ConstantSql.hrm_tra_sp_get_TraineeRegister, UserLogin, ref status).ToList(); var repo_UserApproved = new CustomBaseRepository <Sys_UserApprove>(unitOfWork); var lstUserApproved = repo_UserApproved.GetAll().Where(s => s.IsDelete != null).ToList(); if (selectedIds.Count > 0) { lstTraineeRegister = lstTraineeRegister.Where(s => selectedIds.Contains(s.ID)).ToList(); } foreach (var item in lstTraineeRegister) { #region Check Loại Người Duyệt if (item.UserApproveID1 != null && item.UserApproveID1.Value == UserId) { item.Status = EnumDropDown.TraineeRegisterStatus.E_REJECTED.ToString(); item.Reason1 = Reason; message = Edit(item); } #endregion #region Người duyệt cuối if (item.UserApproveID2 != null && item.UserApproveID2.Value == UserId) { item.Status = EnumDropDown.TraineeRegisterStatus.E_REJECTED.ToString(); item.Reason2 = Reason; message = Edit(item); } #endregion } return(message); } }
public int[] ApprevedKaiZenData(List <Guid> selectedIds, DateTime MonthYear, Guid UnusualEDTypeID, Guid Currency) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoKai_KaizenData = new CustomBaseRepository <Kai_KaizenData>(unitOfWork); var repoSal_UnusualAllowance = new CustomBaseRepository <Sal_UnusualAllowance>(unitOfWork); List <Sal_UnusualAllowance> listUnusualAllowance = new List <Sal_UnusualAllowance>(); //lọc ra các kaizen được chọn List <Kai_KaizenData> listKaiZendata = repoKai_KaizenData.FindBy(m => m.IsDelete != true).ToList(); listKaiZendata = listKaiZendata.Where(m => m.Status == EnumDropDown.Kai_KaizenDataStatus.E_APPROVED.ToString() && selectedIds.Any(t => t == m.ID)).ToList(); int Pass = 0; int Fail = 0; Sal_UnusualAllowance item = new Sal_UnusualAllowance(); foreach (var KaiZenItem in listKaiZendata) { if (KaiZenItem.DateTransferPayment == null && (KaiZenItem.IsPaymentOut == null || KaiZenItem.IsPaymentOut == false)) { item = new Sal_UnusualAllowance(); item.ProfileID = KaiZenItem.ProfileID != null ? (Guid)KaiZenItem.ProfileID : Guid.NewGuid(); item.MonthStart = new DateTime(MonthYear.Year, MonthYear.Month, 1); item.MonthEnd = new DateTime(MonthYear.Year, MonthYear.Month, 1).AddMonths(1).AddDays(-1); item.Type = EnumDropDown.EDType.E_EARNING.ToString(); item.UnusualEDTypeID = UnusualEDTypeID; item.CurrencyID = Currency; item.Amount = KaiZenItem.SumAmount != null ? KaiZenItem.SumAmount : 0; listUnusualAllowance.Add(item); KaiZenItem.DateTransferPayment = MonthYear; Pass++; } else { Fail++; } } repoSal_UnusualAllowance.Add(listUnusualAllowance); unitOfWork.SaveChanges(); return(new int[] { Pass, Fail }); } }
/// <summary> /// [Chuc.Nguyen] - Lấy dữ liệu theo keyword sử dụng Store /// </summary> /// <param name="keyword">Từ khóa lấy dữ liệu: có thể là ListId, Id, có thể là Text...</param> /// <param name="storeName">Tên store lấy dữ liệu</param> /// <param name="status">Trạng thái lấy thành công hoặc lỗi</param> /// <returns></returns> public List <TEntity> GetData <TEntity>(object keyword, string storeName, string userLogin, ref string status) where TEntity : class { using (var context = new VnrHrmDataContext()) { List <TEntity> listEntity = new List <TEntity>(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <TEntity>(unitOfWork); try { listEntity = repo.GetData(keyword, storeName, userLogin, ref status).ToList(); } catch (Exception ex) { listEntity = null; status = NotificationType.Error + "," + ex.Message; } return(listEntity); } }
public bool SaveTemplatePayrollEstimate(List <Sal_PayrollEstimateDetailEntity> listEntity) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) new UnitOfWork(context); var repoOrgStructure = new CustomBaseRepository <Cat_OrgStructure>(unitOfWork); var repoPayrollEstimateDetail = new CustomBaseRepository <Sal_PayrollEstimateDetail>(unitOfWork); List <Sal_PayrollEstimateDetail> ListPayrollEstimateDetail = new List <Sal_PayrollEstimateDetail>(); ListPayrollEstimateDetail = repoPayrollEstimateDetail.FindBy(m => m.IsDelete != true && m.PayrollEstimateID == null).ToList(); foreach (var i in listEntity) { var _tmp = ListPayrollEstimateDetail.FirstOrDefault(m => m.OrgStructureID == i.OrgStructureID); if (_tmp != null) { _tmp.LeaveUnpaid = i.LeaveUnpaid; _tmp.OvertimeHoliday = i.OvertimeHoliday; _tmp.OvertimeNightHoliday = i.OvertimeNightHoliday; _tmp.OvertimeNightNormal = i.OvertimeNightNormal; _tmp.OvertimeNightWeekend = i.OvertimeNightWeekend; _tmp.OvertimeNormal = i.OvertimeNormal; _tmp.OvertimeWeekend = i.OvertimeWeekend; } else { Sal_PayrollEstimateDetail item = new Sal_PayrollEstimateDetail(); item.ID = Guid.NewGuid(); item.OrgStructureID = i.OrgStructureID; item.LeaveUnpaid = i.LeaveUnpaid; item.OvertimeHoliday = i.OvertimeHoliday; item.OvertimeNightHoliday = i.OvertimeNightHoliday; item.OvertimeNightNormal = i.OvertimeNightNormal; item.OvertimeNightWeekend = i.OvertimeNightWeekend; item.OvertimeNormal = i.OvertimeNormal; item.OvertimeWeekend = i.OvertimeWeekend; repoPayrollEstimateDetail.Add(item); } } unitOfWork.SaveChanges(); return(true); } }
public string DeleteColumMode(Guid id, string gridName) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); try { var repo = new CustomBaseRepository <Sys_ColumnMode>(unitOfWork); var entity = repo.FindBy(d => d.UserInfoID == id && d.GridControlName == gridName).FirstOrDefault(); unitOfWork.RemoveObject(typeof(Sys_ColumnMode), entity); unitOfWork.SaveChanges(Guid.Empty); return(NotificationType.Success.ToString()); } catch (Exception ex) { return(NotificationType.Error + "," + ex.Message); } } }
public bool HasConfigAnnualLeaveAtTotalConfig() { var isConfig = false; using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoSys_AppConfig = new CustomBaseRepository<Sys_AppConfig>(unitOfWork); string E_STANDARD_WORKDAY = AppConfig.E_STANDARD_WORKDAY.ToString(); var appconfig = repoSys_AppConfig.FindBy(p => p.Info == E_STANDARD_WORKDAY).FirstOrDefault(); if (appconfig == null || string.IsNullOrEmpty(appconfig.Value78) || string.IsNullOrEmpty(appconfig.Value79)) { //xuat thong bao : Vui lòng cấu hình tham số và công thức tính phép năm ở "Cấu hình chung" (PleaseConfigAnnualLeaveAtTotalConfig) return false; } } return isConfig; }
/// <summary> /// [Chuc.Nguyen] - Chỉnh sửa một danh sách đối tượng /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="listEntity"></param> /// <returns></returns> public string Edit <TEntity>(List <TEntity> listEntity) where TEntity : class { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new CustomBaseRepository <TEntity>(unitOfWork); try { repo.Edit(listEntity); var status = repo.SaveChanges(); if (status == DataErrorCode.Locked) { return(NotificationType.Locked.ToString()); } else { return(NotificationType.Success.ToString()); } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); // Throw a new DbEntityValidationException with the improved exception message. return(NotificationType.Error + "," + exceptionMessage); } catch (Exception ex) { return(NotificationType.Error + "," + ex.Message); } } }
public List <Sys_UserApproveEntity> GetUserApprovedForMulti_E_FIN_ClaimRequest(Guid recordID, string userLogin) { List <Sys_UserApproveEntity> lstReturn = new List <Sys_UserApproveEntity>(); using (var context = new VnrHrmDataContext()) { var type = ApproveType.E_FIN_ClaimRequest.ToString(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoSys_ConfigProcessApprove = new CustomBaseRepository <Sys_ConfigProcessApprove>(unitOfWork); var repoSys_UserApprove = new CustomBaseRepository <Sys_UserApprove>(unitOfWork); var repoSys_UserInfo = new CustomBaseRepository <Sys_UserInfo>(unitOfWork); var lstUserInfo = repoSys_UserInfo.FindBy(s => s.IsDelete == null).ToList(); var record = GetData <FIN_ClaimEntity>(recordID, ConstantSql.hrm_hr_sp_get_ClaimById, userLogin, ref status).FirstOrDefault(); string currentStatus = record.Status; var configProcess = repoSys_ConfigProcessApprove.FindBy(s => s.IsDelete == null && s.Function == type && s.CurrentStatus == currentStatus).FirstOrDefault(); List <ElementFormula> listFomula = new List <ElementFormula>(); ElementFormula FomulaItem = new ElementFormula("Total", record.Total, 0); ElementFormula statusItem = new ElementFormula(configProcess.NextStatusFormular, configProcess.NextStatusFormular, 1); listFomula.Add(FomulaItem); listFomula.Add(statusItem); string nextStatus = GetObjectValue(new List <Cat_ElementEntity>(), listFomula, configProcess.NextStatusFormular).ToString(); var lstUserApprove = repoSys_UserApprove.FindBy(s => s.IsDelete == null && s.Type == type && s.CurrentStatus == nextStatus).ToList(); Sys_UserApproveEntity model = new Sys_UserApproveEntity(); foreach (var item in lstUserApprove) { if (item.UserRequestID != null && item.UserRequestID == record.UserCreateID) { model = new Sys_UserApproveEntity(); var temp = lstUserInfo.Where(s => s.ID == item.UserApproveID).FirstOrDefault(); model.ID = item.ID; model.UserApproveName = temp.UserInfoName; model.UserApproveID = item.UserApproveID; lstReturn.Add(model); } } } return(lstReturn); }
public void AddDataForGrade(string ProfileIDs, Guid GradePayrollID, DateTime DateHire) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoGrade = new CustomBaseRepository<Sal_Grade>(unitOfWork); List<Guid> lstProfileIDs = ProfileIDs.Split(',').Select(x => Guid.Parse(x)).ToList(); List<Sal_Grade> lstGrade = new List<Sal_Grade>(); foreach (var item in lstProfileIDs) { Sal_Grade Grade = new Sal_Grade(); Grade.ProfileID = item; Grade.GradePayrollID = GradePayrollID; Grade.MonthStart = DateHire; lstGrade.Add(Grade); } repoGrade.Add(lstGrade); repoGrade.SaveChanges(); } }
public List<Sys_UserApproveEntity> GetUserApprovedForMulti_E_FIN_ClaimRequest(Guid recordID, string userLogin) { List<Sys_UserApproveEntity> lstReturn = new List<Sys_UserApproveEntity>(); using (var context = new VnrHrmDataContext()) { var type = ApproveType.E_FIN_ClaimRequest.ToString(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoSys_ConfigProcessApprove = new CustomBaseRepository<Sys_ConfigProcessApprove>(unitOfWork); var repoSys_UserApprove = new CustomBaseRepository<Sys_UserApprove>(unitOfWork); var repoSys_UserInfo = new CustomBaseRepository<Sys_UserInfo>(unitOfWork); var lstUserInfo = repoSys_UserInfo.FindBy(s => s.IsDelete == null).ToList(); var record = GetData<FIN_ClaimEntity>(recordID, ConstantSql.hrm_hr_sp_get_ClaimById, userLogin, ref status).FirstOrDefault(); string currentStatus = record.Status; var configProcess = repoSys_ConfigProcessApprove.FindBy(s => s.IsDelete == null && s.Function == type && s.CurrentStatus == currentStatus).FirstOrDefault(); List<ElementFormula> listFomula = new List<ElementFormula>(); ElementFormula FomulaItem = new ElementFormula("Total", record.Total, 0); ElementFormula statusItem = new ElementFormula(configProcess.NextStatusFormular, configProcess.NextStatusFormular, 1); listFomula.Add(FomulaItem); listFomula.Add(statusItem); string nextStatus = GetObjectValue(new List<Cat_ElementEntity>(), listFomula, configProcess.NextStatusFormular).ToString(); var lstUserApprove = repoSys_UserApprove.FindBy(s => s.IsDelete == null && s.Type == type && s.CurrentStatus == nextStatus).ToList(); Sys_UserApproveEntity model = new Sys_UserApproveEntity(); foreach (var item in lstUserApprove) { if (item.UserRequestID != null && item.UserRequestID == record.UserCreateID) { model = new Sys_UserApproveEntity(); var temp = lstUserInfo.Where(s => s.ID == item.UserApproveID).FirstOrDefault(); model.ID = item.ID; model.UserApproveName = temp.UserInfoName; model.UserApproveID = item.UserApproveID; lstReturn.Add(model); } } } return lstReturn; }
public bool SaveAmountKaiZen(List<Guid> SelectIds) { using (var context = new VnrHrmDataContext()) { try { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoKai_KaizenData = new CustomBaseRepository<Kai_KaizenData>(unitOfWork); List<Kai_KaizenData> listKai_KaizenData = repoKai_KaizenData.FindBy(m => m.IsDelete != true && SelectIds.Any(t => t == m.ID)).ToList(); listKai_KaizenData.ForEach(m => m.AmountTransfered = m.SumAmount); unitOfWork.SaveChanges(); return true; } catch { return false; } } }
public string GetNextStatusOfRecord(Guid recordID) { using (var context = new VnrHrmDataContext()) { string type = ApproveType.E_FIN_PurchaseRequest.ToString(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoSys_ConfigProcessApprove = new CustomBaseRepository<Sys_ConfigProcessApprove>(unitOfWork); var UserLogin = string.Empty; string stt = string.Empty; var record = GetData<FIN_PurchaseRequestEntity>(recordID, ConstantSql.hrm_hr_sp_get_PurchaseRequestById, UserLogin, ref stt).FirstOrDefault(); var configProcess = repoSys_ConfigProcessApprove.FindBy(s => s.IsDelete == null && s.Function == type && s.CurrentStatus == record.Status).FirstOrDefault(); double total = record.Total != null ? record.Total.Value : 0.0; List<ElementFormula> listFomula = new List<ElementFormula>(); ElementFormula FomulaItem = new ElementFormula("Total", total, 0); ElementFormula statusItem = new ElementFormula(configProcess.NextStatusFormular, configProcess.NextStatusFormular, 1); listFomula.Add(FomulaItem); listFomula.Add(statusItem); string nextStatus = GetObjectValue(new List<Cat_ElementEntity>(), listFomula, configProcess.NextStatusFormular).ToString(); return nextStatus; } }
public Guid ComputeCommission(List<Hre_ProfileEntity> listProfile, Att_CutOffDurationEntity CutOffDuration, string HeaderTemplateLog, string methodPayroll, Guid CutOffDuration2ID, string UserLogin) { Sys_AsynTask asynTask = new Sys_AsynTask() { ID = Guid.NewGuid(), Summary = "Tính Hoa Hồng Cho Tháng " + CutOffDuration.CutOffDurationName, Type = AsynTask.Payroll_Computing.ToString(), Status = AsynTaskStatus.Doing.ToString(), TimeStart = DateTime.Now, PercentComplete = 0.01, }; Task.Run(() => { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoSys_AsynTask = new CustomBaseRepository<Sys_AsynTask>(unitOfWork); if (listProfile.Count == 0) { asynTask.TimeEnd = DateTime.Now; asynTask.Description = "Không tồn tại nhân viên nào !"; asynTask.PercentComplete = 1D; } repoSys_AsynTask.Add(asynTask); unitOfWork.SaveChanges(); } if (listProfile.Count > 0) { ComputeCommission(listProfile, CutOffDuration, asynTask.ID, HeaderTemplateLog, methodPayroll, CutOffDuration2ID, UserLogin); } }); return asynTask.ID; }
public string ActionApproved(string selectedIds) { using (var context = new VnrHrmDataContext()) { string message = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); //var repo = new Hre_WorkHistoryRepository(unitOfWork); var repoWorkHistory = new CustomBaseRepository<Hre_WorkHistory>(unitOfWork); var repoProfile = new CustomBaseRepository<Hre_Profile>(unitOfWork); List<Guid> lstIds = selectedIds.Split(',').Select(x => Guid.Parse(x)).ToList(); var lstWorkHistorys = repoWorkHistory.FindBy(m => lstIds.Contains(m.ID)).ToList(); foreach (var WorkHistory in lstWorkHistorys) { WorkHistory.Status = WorkHistoryStatus.E_APPROVED.ToString(); if (WorkHistory.DateEffective != null && WorkHistory.DateEffective <= DateTime.Now.Date) { string status = string.Empty; Hre_Profile profile = repoProfile.FindBy(m => m.IsDelete != true && m.ID == WorkHistory.ProfileID).FirstOrDefault(); if (profile != null) { profile.OrgStructureID = WorkHistory.OrganizationStructureID; profile.JobTitleID = WorkHistory.JobTitleID; profile.PositionID = WorkHistory.PositionID; profile.DateOfEffect = WorkHistory.DateEffective; profile.LaborType = WorkHistory.LaborType; profile.CostCentreID = WorkHistory.CostCentreID; profile.FormType = WorkHistory.FormType; profile.EmpTypeID = WorkHistory.EmployeeTypeID; profile.WorkingPlace = WorkHistory.WorkLocation; //profileServices.Edit(profile); } } } unitOfWork.SaveChanges(); message = NotificationType.Success.ToString(); return message; } }
/// <summary> /// Button Tìm Kiếm Trong Phân Tích BHXH /// </summary> /// <param name="Year"></param> /// <param name="orgStructure"></param> /// <param name="LstProfileStatus"></param> /// <returns></returns> public List<Att_AnnualLeaveDetailEntity> SearchAnnualInsuranceLeaveDetail(int Year, string orgStructure, string LstProfileStatus,string UserLogin) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoAtt_AnnualLeaveDetail = new CustomBaseRepository<Att_AnnualLeaveDetail>(unitOfWork); List<object> lstObj = new List<object>(); lstObj.Add(orgStructure); lstObj.Add(null); lstObj.Add(null); var lstProfileQuery = GetData<Hre_ProfileEntity>(lstObj, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, UserLogin, ref status).ToList(); string E_INSURANCE_LEAVE = AnnualLeaveDetailType.E_INSURANCE_LEAVE.ToString(); List<Guid> lstProfileID = lstProfileQuery.Select(m => m.ID).ToList<Guid>(); List<Att_AnnualLeaveDetailEntity> lstAnnDetail = repoAtt_AnnualLeaveDetail .FindBy(m => m.IsDelete == null && m.Type == E_INSURANCE_LEAVE && m.Year == Year && m.ProfileID != null && lstProfileID.Contains(m.ProfileID.Value)).ToList().Translate<Att_AnnualLeaveDetailEntity>(); return lstAnnDetail; } }
public int[] SetPayrmentOut(List<Guid> SelectIds, DateTime MonthYear) { using (var context = new VnrHrmDataContext()) { try { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string status = string.Empty; var repoKai_KaizenData = new CustomBaseRepository<Kai_KaizenData>(unitOfWork); List<Kai_KaizenData> ListKaiZendData = repoKai_KaizenData.FindBy(m => m.IsDelete != true && m.Status == EnumDropDown.Kai_KaizenDataStatus.E_APPROVED.ToString()).ToList(); ListKaiZendData = ListKaiZendData.Where(m => SelectIds.Any(t => t == m.ID)).ToList(); int Pass = 0; int Fail = 0; foreach (var i in ListKaiZendData) { if (i.IsPaymentOut == null && i.DateTransferPayment == null) { i.IsPaymentOut = true; i.DateTransferPayment = MonthYear; Pass++; } else { Fail++; } } unitOfWork.SaveChanges(); return new int[] { Pass, Fail }; } catch { return new int[] { 0, 0 }; } } }
public void ComputeDepartment(Guid departmentID) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (UnitOfWork)(new UnitOfWork(context)); var repoSal_SalaryDepartment = new CustomBaseRepository<Sal_SalaryDepartment>(unitOfWork); var repoSal_SalaryDepartmentItem = new CustomBaseRepository<Sal_SalaryDepartmentItem>(unitOfWork); var repoAtt_CutOffDuration = new CustomBaseRepository<Att_CutOffDurationEntity>(unitOfWork); Sal_SalaryDepartment item = new Sal_SalaryDepartment(); item = repoSal_SalaryDepartment.GetById(departmentID); //xóa các item nếu đã tính trước đó List<Sal_SalaryDepartmentItem> listDepartmentItem = new List<Sal_SalaryDepartmentItem>(); listDepartmentItem = repoSal_SalaryDepartmentItem.GetAll().Where(m => m.SalaryDepartmentID == departmentID).ToList(); repoSal_SalaryDepartmentItem.Delete(listDepartmentItem); unitOfWork.SaveChanges(); //nếu chọn theo cutoff thì lấy datefrom dateto của cutoff if (item.CutOffDurationID != null) { var cutoff= repoAtt_CutOffDuration.GetById((Guid)item.CutOffDurationID); item.MonthYear = cutoff.MonthYear; item.DateFrom = cutoff.DateStart; item.DateTo = cutoff.DateEnd; } Hashtable hasTable = new Hashtable(); List<Sal_SalaryDepartment> listSalaryDepartment = new List<Sal_SalaryDepartment>(); listSalaryDepartment.Add(item); ComputeSalaryDepartment(item.MonthYear, (DateTime)item.DateFrom, (DateTime)item.DateTo, listSalaryDepartment, ref hasTable); } }
/// <summary> /// Button Tính Phép Bệnh (Cơ Chế Mới) /// Lưu vào Att_AnnualDetail /// </summary> /// <param name="Year"></param> /// <param name="orgStructure"></param> /// <param name="LstProfileStatus"></param> /// <returns></returns> public bool ComputeAnnualSick(int Year, string orgStructure, string LstProfileStatus, bool isFullEmp, string UserLogin) { var result = false; using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoCat_GradeAttendance = new CustomBaseRepository<Cat_GradeAttendance>(unitOfWork); var repoCat_DayOff = new CustomBaseRepository<Cat_DayOff>(unitOfWork); var repoCat_Shift = new CustomBaseRepository<Cat_Shift>(unitOfWork); var repoAtt_AnnualDetail = new CustomBaseRepository<Att_AnnualDetail>(unitOfWork); var repoAtt_RosterGroup = new CustomBaseRepository<Att_RosterGroup>(unitOfWork); var repoAtt_AnnualLeave = new CustomBaseRepository<Att_AnnualLeave>(unitOfWork); var repoAtt_Grade = new CustomBaseRepository<Att_Grade>(unitOfWork); var repoSys_AllSetting = new CustomBaseRepository<Sys_AllSetting>(unitOfWork); List<Guid> lstLeaveDayApproveIDs = new List<Guid>(); List<Guid> lstLeaveDayRejectIDs = new List<Guid>(); var shifts = repoCat_Shift.FindBy(s => s.IsDelete == null).ToList(); List<object> lstObj = new List<object>(); lstObj.Add(orgStructure); lstObj.Add(null); lstObj.Add(null); var lstProfile = GetData<Hre_ProfileEntity>(lstObj, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, UserLogin, ref status); List<Att_AnnualDetail> lstResult = new List<Att_AnnualDetail>(); List<Guid> lstProfileID = lstProfile.Select(m => m.ID).ToList(); int BeginMonth = MonthStartAnl; DateTime BeginYear = new DateTime(Year, BeginMonth, 1); DateTime EndYear = BeginYear.AddYears(1).AddMinutes(-1); DateTime BeginYearToGetData = BeginYear.AddMonths(-1); //trừ một tháng để lấy data (bao những data thuộc những ngày trước tháng dành cho chế độ lương ko phải từ ngày 1) var lstGradeCgf = repoCat_GradeAttendance.FindBy(s => s.ID != null).ToList(); string E_APPROVED = LeaveDayStatus.E_APPROVED.ToString(); var lstAnnualDetailInDB = new List<Att_AnnualDetail>(); var lstLeaveDaySick = new List<Att_LeaveDay>(); var lstAttGrade = new List<Att_Grade>(); var lstAnualLeaveCfg = new List<Att_AnnualLeave>(); var lstWorkingHistory = new List<Hre_WorkHistory>(); var lstRoster = new List<Att_Roster>(); #region Lấy Dữ Liệu List<object> lst2Param = new List<object>(); lst2Param.Add(null); lst2Param.Add(EndYear); List<object> lst3Param = new List<object>(); lst3Param.Add(null); lst3Param.Add(null); lst3Param.Add(null); List<object> lst4Param = new List<object>(); lst4Param.Add(null); lst4Param.Add(BeginYearToGetData); lst4Param.Add(EndYear); lst4Param.Add(E_APPROVED); var dataAtt_LeaveDay = GetData<Att_LeaveDay>(lst3Param, ConstantSql.hrm_att_getdata_LeaveDay_Inner, UserLogin, ref status).ToList(); var dataHre_WorkHistory = GetData<Hre_WorkHistory>(lst2Param, ConstantSql.hrm_hre_getdata_WorkHistory, UserLogin, ref status).ToList(); var dataAtt_Roster_Inner = GetData<Att_Roster>(lst4Param, ConstantSql.hrm_att_getdata_Roster_Inner, UserLogin, ref status).ToList(); #endregion if (isFullEmp != null && isFullEmp == true) { lstAnnualDetailInDB = repoAtt_AnnualDetail.FindBy(m => m.IsDelete == null && m.ProfileID != null && m.Year == Year).ToList<Att_AnnualDetail>(); lstLeaveDaySick = dataAtt_LeaveDay .Where(m => m.Status == E_APPROVED && m.DateStart <= EndYear && m.DateEnd >= BeginYearToGetData && m.Cat_LeaveDayType != null && m.Cat_LeaveDayType.Code == LeavedayTypeCode.SICK.ToString() && lstProfileID.Contains(m.ProfileID)).ToList<Att_LeaveDay>(); lstAttGrade = repoAtt_Grade.FindBy(m => m.IsDelete == null).ToList(); lstAnualLeaveCfg = repoAtt_AnnualLeave.FindBy(m => m.IsDelete == null && m.Year == Year).ToList<Att_AnnualLeave>(); lstWorkingHistory = dataHre_WorkHistory.Where(m => m.DateEffective <= EndYear).OrderByDescending(m => m.DateEffective).ToList(); lstRoster = dataAtt_Roster_Inner.Where(m => m.Status == E_APPROVED && m.DateStart <= EndYear && m.DateEnd >= BeginYearToGetData).ToList<Att_Roster>(); } else { lstAnnualDetailInDB = repoAtt_AnnualDetail.FindBy(m => m.IsDelete == null && m.ProfileID != null && lstProfileID.Contains(m.ProfileID.Value) && m.Year == Year).ToList<Att_AnnualDetail>(); lstLeaveDaySick = dataAtt_LeaveDay .Where(m => m.Status == E_APPROVED && m.DateStart <= EndYear && m.DateEnd >= BeginYearToGetData && m.Cat_LeaveDayType != null && m.Cat_LeaveDayType.Code == LeavedayTypeCode.SICK.ToString() && lstProfileID.Contains(m.ProfileID)).ToList<Att_LeaveDay>(); lstAttGrade = repoAtt_Grade.FindBy(m => m.IsDelete == null && lstProfileID.Contains(m.ProfileID.Value)).ToList<Att_Grade>(); lstAnualLeaveCfg = repoAtt_AnnualLeave.FindBy(m => m.IsDelete == null && m.Year == Year && lstProfileID.Contains(m.ProfileID)).ToList<Att_AnnualLeave>(); lstWorkingHistory = dataHre_WorkHistory.Where(m => m.DateEffective <= EndYear && lstProfileID.Contains(m.ProfileID)).OrderByDescending(m => m.DateEffective).ToList<Hre_WorkHistory>(); lstRoster = dataAtt_Roster_Inner.Where(m => m.Status == E_APPROVED && m.DateStart <= EndYear && m.DateEnd >= BeginYearToGetData && lstProfileID.Contains(m.ProfileID)).ToList<Att_Roster>(); } if (lstLeaveDayApproveIDs != null && lstLeaveDayApproveIDs.Count > 0) { lstLeaveDaySick.AddRange(dataAtt_LeaveDay.Where(m => lstLeaveDayApproveIDs.Contains(m.ID)).ToList<Att_LeaveDay>()); lstLeaveDaySick = lstLeaveDaySick.Distinct().ToList(); } if (lstLeaveDayRejectIDs != null && lstLeaveDayRejectIDs.Count > 0) { lstLeaveDaySick = lstLeaveDaySick.Where(m => !lstLeaveDayRejectIDs.Contains(m.ID)).ToList(); } var lstRosterGroup = repoAtt_RosterGroup.FindBy(m => m.IsDelete == null && m.DateStart <= EndYear && m.DateEnd >= BeginYearToGetData).ToList<Att_RosterGroup>(); var lstDayOff = repoCat_DayOff.FindBy(m => m.IsDelete == null && m.DateOff >= BeginYearToGetData && m.DateOff <= EndYear).ToList<Cat_DayOff>(); // Phép Năm chốt Từ Ngày 1 -> 31 Hàng Tháng bool IsFrom1To31 = false; string type2 = AppConfig.HRM_ATT_ANNUALLEAVE_ANNUALBEGINMONTHTOENDMONTH.ToString(); Sys_AllSetting sys_ANNUAL_BEGINMONTHTO_ENDMONTH = repoSys_AllSetting.FindBy(sy => sy.IsDelete == null && sy.Name == type2).FirstOrDefault(); if (sys_ANNUAL_BEGINMONTHTO_ENDMONTH != null && sys_ANNUAL_BEGINMONTHTO_ENDMONTH.Value1 == bool.TrueString) { IsFrom1To31 = true; } foreach (var profile in lstProfile) { var lstGradeByProfile = lstAttGrade.Where(m => m.ProfileID == profile.ID).OrderByDescending(m => m.MonthStart).ToList(); var lstLeaveDaySickByprofile = lstLeaveDaySick.Where(m => m.ProfileID == profile.ID).ToList(); var AnualLeaveCfg = lstAnualLeaveCfg.Where(m => m.ProfileID == profile.ID).FirstOrDefault(); var lstRosterByProfile = lstRoster.Where(m => m.ProfileID == profile.ID).ToList(); var lstWorkHistoryByProfile = lstWorkingHistory.Where(m => m.ProfileID == profile.ID).ToList(); List<Att_AnnualDetail> lstAnnualDetailByProfile = AnalyzeAnnualSickPerProfile(profile, lstGradeCgf, lstGradeByProfile, BeginYear, EndYear, lstLeaveDaySickByprofile, lstAnnualDetailInDB, AnualLeaveCfg, lstRosterByProfile, lstRosterGroup, lstWorkHistoryByProfile, lstDayOff, IsFrom1To31, shifts); //lstResult.AddRange(lstAnnualDetailByProfile); repoAtt_AnnualDetail.Add(lstAnnualDetailByProfile); } repoAtt_AnnualDetail.SaveChanges(); //DataErrorCode DataErr = DataErrorCode.Unknown; //if (lstAnnualDetail.Count > 0) //{ // #region lấy dữ liệu dưới DB xóa đi // List<Guid> lstProfileID_InDB = lstAnnualDetail.Where(m => m.ProfileID != null).Select(m => m.ProfileID.Value).ToList(); // List<Att_AnnualDetail> lstAnnualLeaveDetail_InDB = repoAtt_AnnualDetail // .FindBy(m => m.IsDelete == null && m.Year == Year && m.Type == E_SICK_LEAVE && m.ProfileID != null && lstProfileID_InDB.Contains(m.ProfileID.Value)).ToList<Att_AnnualDetail>(); // foreach (var item in lstAnnualLeaveDetail_InDB) // { // item.IsDelete = true; // } // #endregion // repoAtt_AnnualDetail.Add(lstAnnualDetail); // try // { // repoAtt_AnnualDetail.SaveChanges(); // } // catch (Exception) // { // return false; // } //} result = true; } return result; }
/// <summary> /// Button Tìm Kiếm Phép Bệnh /// </summary> /// <param name="Year"></param> /// <param name="orgStructure"></param> /// <param name="LstProfileStatus"></param> /// <returns></returns> public List<Att_AnnualLeaveDetailEntity> SearchAnnualSickLeaveDetail(int Year, string orgStructure, string LstProfileStatus, string UserLogin) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork)new UnitOfWork(context); var repoAtt_AnnualLeaveDetail = new CustomBaseRepository<Att_AnnualLeaveDetail>(unitOfWork); var repoHre_Profile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var repoHre_HDTJob = new CustomBaseRepository<Hre_HDTJob>(unitOfWork); string E_SICK_LEAVE = AnnualLeaveDetailType.E_SICK_LEAVE.ToString(); Att_AnnualLeaveDetail AnnualLeaveDetailTop = AnnualLeaveDetailTop = repoAtt_AnnualLeaveDetail .FindBy(m => m.IsDelete == null && m.Type == E_SICK_LEAVE && m.Year == Year).FirstOrDefault(); if (AnnualLeaveDetailTop == null) { return new List<Att_AnnualLeaveDetailEntity>(); } DateTime beginyear = (AnnualLeaveDetailTop == null || AnnualLeaveDetailTop.MonthStart == null) ? new DateTime(Year, 1, 1) : AnnualLeaveDetailTop.MonthStart.Value; DateTime endYear = beginyear.AddYears(1).AddMinutes(-1); List<object> lstObj = new List<object>(); lstObj.Add(orgStructure); lstObj.Add(null); lstObj.Add(null); var lstProfileQuery = GetData<Hre_ProfileEntity>(lstObj, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, UserLogin, ref status).ToList(); if (LstProfileStatus != null) { if (LstProfileStatus == StatusEmpLeaveDetail.E_NEWEMPINYEAR.ToString()) { lstProfileQuery = lstProfileQuery.Where(m => m.DateHire != null && m.DateHire >= beginyear && m.DateHire <= endYear).ToList(); } if (LstProfileStatus == StatusEmpLeaveDetail.E_RESIGNEMPINYEAR.ToString()) { lstProfileQuery = lstProfileQuery.Where(m => m.DateQuit != null && m.DateQuit >= beginyear && m.DateQuit <= endYear).ToList(); } if (LstProfileStatus == StatusEmpLeaveDetail.E_EMPOFHDT4.ToString()) { string Job4 = HDTJobType.E_Four.ToString(); List<Guid> lstprofileHDT4 = repoHre_HDTJob .FindBy(m => m.IsDelete == null && m.Type == Job4 && m.DateFrom <= endYear && m.DateTo >= beginyear && m.ProfileID != null) .Select(m => m.ProfileID.Value).ToList<Guid>(); lstProfileQuery = lstProfileQuery.Where(m => lstprofileHDT4.Contains(m.ID)).ToList(); } if (LstProfileStatus == StatusEmpLeaveDetail.E_EMPOFHDT5.ToString()) { string Job5 = HDTJobType.E_Five.ToString(); List<Guid> lstprofileHDT5 = repoHre_HDTJob .FindBy(m => m.IsDelete == null && m.Type == Job5 && m.DateFrom <= endYear && m.DateTo >= beginyear && m.ProfileID != null) .Select(m => m.ProfileID.Value).ToList<Guid>(); lstProfileQuery = lstProfileQuery.Where(m => lstprofileHDT5.Contains(m.ID)).ToList(); } } List<Guid> lstProfileID = lstProfileQuery.Select(m => m.ID).Distinct().ToList<Guid>(); List<Att_AnnualLeaveDetailEntity> lstAnnDetail = repoAtt_AnnualLeaveDetail .FindBy(m => m.IsDelete == null && m.Type == E_SICK_LEAVE && m.Year == Year && m.ProfileID != null && lstProfileID.Contains(m.ProfileID.Value)).ToList().Translate<Att_AnnualLeaveDetailEntity>(); foreach (var ann in lstAnnDetail) { var pro = lstProfileQuery.Where(s => s.ID == ann.ProfileID).FirstOrDefault(); ann.ProfileName = pro.ProfileName ?? string.Empty; ann.CodeEmp = pro.CodeEmp ?? string.Empty; ann.OrgStructureName = pro.OrgStructureName ?? string.Empty; ann.DateHire = pro.DateHire ?? null; } return lstAnnDetail; } }