public ActionResult GetProfileQuitList([DataSourceRequest] DataSourceRequest request, Hre_ProfileQuitSearchModel model) { var profileServices = new Hre_ProfileServices(); var service = new ActionService(UserLogin); bool isGroup = profileServices.IsGroupByOrgProfileQuit(); if (isGroup == true) { #region Group theo DS phòng ban - DDF var rptServices = new Hre_ReportServices(); string status = string.Empty; var orgServices = new Cat_OrgStructureServices(); var lstObjOrg = new List<object>(); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(1); lstObjOrg.Add(int.MaxValue - 1); var lstOrg = service.GetData<Cat_OrgStructureEntity>(lstObjOrg, ConstantSql.hrm_cat_sp_get_OrgStructure, ref status).ToList(); var orgTypeService = new Cat_OrgStructureTypeServices(); var lstObjOrgType = new List<object>(); lstObjOrgType.Add(null); lstObjOrgType.Add(null); lstObjOrgType.Add(1); lstObjOrgType.Add(int.MaxValue - 1); var lstOrgType = service.GetData<Cat_OrgStructureTypeEntity>(lstObjOrgType, ConstantSql.hrm_cat_sp_get_OrgStructureType, ref status).ToList(); ListQueryModel lstModel = new ListQueryModel { PageIndex = request.Page, PageSize = request.PageSize, Filters = ExtractFilterAttributes(request), Sorts = ExtractSortAttributes(request), AdvanceFilters = ExtractAdvanceFilterAttributes(model) }; var lstEntity = service.GetData<Hre_ProfileEntity>(lstModel, ConstantSql.hrm_hr_sp_get_ProfileQuit, ref status); var lstProfileEntity = new List<Hre_ProfileEntity>(); var lstProfileModel = new List<Hre_ProfileModel>(); if (lstEntity != null) { request.Page = 1; foreach (var item in lstEntity) { var profileEntity = new Hre_ProfileEntity(); var orgName = new List<string>(); if (item.OrgStructureID != null) { orgName = rptServices.GetParentOrgName(lstOrg, lstOrgType, item.OrgStructureID); } // orgName = rptServices.GetParentOrgName(lstOrg, lstOrgType, item.OrgStructureID); if (orgName.Count == 0) continue; if (orgName.Count < 3) { orgName.Insert(0, string.Empty); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); } } profileEntity = item.CopyData<Hre_ProfileEntity>(); profileEntity.Channel = orgName[2]; profileEntity.Region = orgName[1]; profileEntity.Area = orgName[0]; lstProfileEntity.Add(profileEntity); } lstProfileModel = lstProfileEntity.Translate<Hre_ProfileModel>(); var dataSourceResult = lstProfileModel.ToDataSourceResult(request); if (lstProfileModel.FirstOrDefault().GetPropertyValue("TotalRow") != null) { dataSourceResult.Total = lstProfileModel.Count() <= 0 ? 0 : (int)lstProfileModel.FirstOrDefault().GetPropertyValue("TotalRow"); } return Json(dataSourceResult, JsonRequestBehavior.AllowGet); } #endregion } return GetListDataAndReturn<Hre_ProfileModel, Hre_ProfileEntity, Hre_ProfileQuitSearchModel>(request, model, ConstantSql.hrm_hr_sp_get_ProfileQuit); }
public ActionResult ExportProfileListByTemplate([DataSourceRequest] DataSourceRequest request, Hre_ProfileActiveSearchModel model) { //if(model.ExportId == Guid.Empty) //{ // return null; //} var actionService = new ActionService(UserLogin); string status = string.Empty; var profileServices = new Hre_ProfileServices(); bool isGroup = profileServices.IsGroupByOrgProfileQuit(); var isDataTable = false; object obj = new Hre_ProfileModel(); var result = GetListData<Hre_ProfileModel, Hre_ProfileEntity, Hre_ProfileActiveSearchModel>(request, model, ConstantSql.hrm_hr_sp_get_ProfileActive, ref status); if (isGroup == true) { var rptServices = new Hre_ReportServices(); var orgServices = new Cat_OrgStructureServices(); var lstObjOrg = new List<object>(); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(1); lstObjOrg.Add(int.MaxValue - 1); var lstOrg = actionService.GetData<Cat_OrgStructureEntity>(lstObjOrg, ConstantSql.hrm_cat_sp_get_OrgStructure, ref status).ToList(); var orgTypeService = new Cat_OrgStructureTypeServices(); var lstObjOrgType = new List<object>(); lstObjOrgType.Add(null); lstObjOrgType.Add(null); lstObjOrgType.Add(1); lstObjOrgType.Add(int.MaxValue - 1); var lstOrgType = actionService.GetData<Cat_OrgStructureTypeEntity>(lstObjOrgType, ConstantSql.hrm_cat_sp_get_OrgStructureType, ref status).ToList(); result = GetListData<Hre_ProfileModel, Hre_ProfileEntity, Hre_ProfileActiveSearchModel>(request, model, ConstantSql.hrm_hr_sp_get_ProfileActive, ref status); DataTable table = new DataTable("Hre_ProfileModel"); table.Columns.Add("CodeEmp"); table.Columns.Add("ProfileName"); table.Columns.Add("FirstName"); table.Columns.Add("NameFamily"); table.Columns.Add("Channel"); table.Columns.Add("Region"); table.Columns.Add("Area"); table.Columns.Add("IDNo"); table.Columns.Add("IDDateOfIssue", typeof(DateTime)); table.Columns.Add("IDPlaceOfIssue"); table.Columns.Add("DateOfBirth", typeof(DateTime)); table.Columns.Add("PlaceOfBirth"); table.Columns.Add("Gender"); table.Columns.Add("MarriageStatus"); table.Columns.Add("NationalityName"); table.Columns.Add("ReligionName"); table.Columns.Add("EthnicGroupName"); table.Columns.Add("Email"); table.Columns.Add("CellPhone"); table.Columns.Add("CodeTax"); table.Columns.Add("TDistrictName"); table.Columns.Add("PDistrictName"); table.Columns.Add("JobTitleName"); table.Columns.Add("DateHire", typeof(DateTime)); table.Columns.Add("ContractNo"); table.Columns.Add("DateStartContract"); table.Columns.Add("DateEndContract"); table.Columns.Add("ContractTypeName"); table.Columns.Add("TimesOfContract"); table.Columns.Add("Notes"); table.Columns.Add("TAddress"); table.Columns.Add("PAddress"); table.Columns.Add("BasicSalary", typeof(double)); var salaryServices = new Sal_BasicSalaryServices(); var objSalary = new List<object>(); objSalary.AddRange(new object[10]); objSalary[8] = 1; objSalary[9] = int.MaxValue - 1; var lstBasicSalary = actionService.GetData<Sal_BasicSalaryEntity>(objSalary, ConstantSql.hrm_sal_sp_get_BasicPayroll, ref status).ToList(); var unuServices = new Sal_UnusualAllowanceServices(); var objUnu = new List<object>(); objUnu.AddRange(new object[9]); objUnu[7] = 1; objUnu[8] = int.MaxValue - 1; var lstUnu = actionService.GetData<Sal_UnusualAllowanceEntity>(objUnu, ConstantSql.hrm_sal_sp_get_UnusualED, ref status).ToList(); foreach (var item in result) { var basicSalaryEntity = lstBasicSalary.Where(s => s.ProfileID == item.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var lstUnuByProfileID = lstUnu.Where(s => s.ProfileID == item.ID).ToList(); var orgName = new List<string>(); if (item.OrgStructureID != null) { orgName = rptServices.GetParentOrgName(lstOrg, lstOrgType, item.OrgStructureID); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); } } } var lstObjPayroll = new List<object>(); lstObjPayroll.Add(item.ID); lstObjPayroll.Add(null); lstObjPayroll.Add(null); lstObjPayroll.Add(null); lstObjPayroll.Add(1); lstObjPayroll.Add(int.MaxValue - 1); var payrollTableByProfileID = actionService.GetData<Sal_PayrollTableItemEntity>(lstObjPayroll, ConstantSql.hrm_sal_sp_get_PayrollTableItemByProfile, ref status).OrderByDescending(s => s.DateCreate); var lstObjContract = new List<object>(); lstObjContract.Add(item.ID); var lstContract = actionService.GetData<Hre_ContractEntity>(lstObjContract, ConstantSql.hrm_hr_sp_get_ContractsByProfileId, ref status).OrderBy(s => s.DateCreate).ToList(); var lstObjRelative = new List<object>(); lstObjRelative.Add(item.ID); lstObjRelative.Add(1); lstObjRelative.Add(Int32.MaxValue - 1); var lstDependant = actionService.GetData<Hre_DependantEntity>(lstObjRelative, ConstantSql.hrm_hr_sp_get_DependantByProfileId, ref status).ToList(); DataRow dr = table.NewRow(); dr["CodeEmp"] = item.CodeEmp; dr["ProfileName"] = item.ProfileName; dr["FirstName"] = item.FirstName; dr["NameFamily"] = item.NameFamily; if (orgName.Count > 0) { dr["Channel"] = orgName[2]; dr["Region"] = orgName[1]; dr["Area"] = orgName[0]; } dr["IDNo"] = item.IDNo; if (item.IDDateOfIssue != null) { dr["IDDateOfIssue"] = item.IDDateOfIssue.Value; } dr["IDPlaceOfIssue"] = item.IDPlaceOfIssue; if (item.DateOfBirth != null) { dr["DateOfBirth"] = item.DateOfBirth; } dr["Gender"] = item.Gender; if (item.Gender == EnumDropDown.Gender.E_FEMALE.ToString()) { dr["Gender"] = "Nữ"; } if (item.Gender == EnumDropDown.Gender.E_MALE.ToString()) { dr["Gender"] = "Nam"; } dr["MarriageStatus"] = item.MarriageStatus; dr["NationalityName"] = item.NationalityName; dr["ReligionName"] = item.ReligionName; dr["EthnicGroupName"] = item.EthnicGroupName; dr["Email"] = item.Email; dr["CellPhone"] = item.Cellphone; dr["CodeTax"] = item.CodeTax; dr["TDistrictName"] = item.TDistrictName; dr["PDistrictName"] = item.PDistrictName; dr["JobTitleName"] = item.JobTitleName; dr["Notes"] = item.Notes; dr["TAddress"] = item.TAddress; dr["PAddress"] = item.PAddress; if (basicSalaryEntity != null) { dr["BasicSalary"] = double.Parse(basicSalaryEntity.GrossAmount); } if (item.DateHire != null) { dr["DateHire"] = item.DateHire.Value; } //if (payrollTableByProfileID != null) //{ // foreach (var payroll in payrollTableByProfileID) // { // Double value = 0; // if (!table.Columns.Contains(payroll.Code)) // { // table.Columns.Add(payroll.Code, typeof(Double)); // } // if (table.Columns.Contains(payroll.Code)) // { // if (payroll.ValueType == typeof(Double).Name) // { // Double.TryParse(payroll.Value, out value); // } // dr[payroll.Code] = value; // } // } //} if (lstContract != null && lstContract.Count > 0) { var contractEntity = lstContract.FirstOrDefault(); dr["TimesOfContract"] = lstContract.Count; dr["ContractNo"] = contractEntity.ContractNo; dr["ContractTypeName"] = contractEntity.ContractTypeName; dr["DateStartContract"] = contractEntity.DateStart; if (contractEntity.DateEnd != null) { dr["DateStartContract"] = contractEntity.DateEnd.Value; } } if (lstUnuByProfileID.Count > 0 && lstUnuByProfileID != null) { foreach (var unu in lstUnuByProfileID) { var titleName = unu.UnusualEDTypeCode + "|" + unu.UnusualAllowanceCfgName; if (!table.Columns.Contains(titleName)) { table.Columns.Add(titleName); } if (table.Columns.Contains(titleName)) { dr[titleName] = unu.Amount; } } } if (lstDependant.Count > 0 && lstDependant != null) { foreach (var dependant in lstDependant) { var titleName = dependant.DependantName + "|" + dependant.RelativeTypeName; if (!table.Columns.Contains(titleName)) { table.Columns.Add(titleName); } if (table.Columns.Contains(titleName)) { dr[titleName] = dependant.DependantName; } } } table.Rows.Add(dr); } if (model.IsCreateTemplateForDynamicGrid) { obj = result; isDataTable = false; } if (model != null && model.IsCreateTemplate) { var path = Common.GetPath("Templates"); ExportService exportService = new ExportService(); ConfigExport cfgExport = new ConfigExport() { Object = table, FileName = "Hre_ProfileModel", OutPutPath = path, // HeaderInfo = listHeaderInfo, DownloadPath = Hrm_Main_Web + "Templates", IsDataTable = true }; var str = exportService.CreateTemplate(cfgExport); return Json(str); } if (model.ExportId != Guid.Empty) { var fullPath = ExportService.Export(model.ExportId, table, null, model.ExportType); return Json(fullPath); } return Json(result.ToDataSourceResult(request)); } if (model.IsCreateTemplateForDynamicGrid) { obj = result; isDataTable = false; } if (model != null && model.IsCreateTemplate) { var path = Common.GetPath("Templates"); ExportService exportService = new ExportService(); ConfigExport cfgExport = new ConfigExport() { Object = obj, FileName = "Hre_ProfileModel", OutPutPath = path, // HeaderInfo = listHeaderInfo, DownloadPath = Hrm_Main_Web + "Templates", IsDataTable = isDataTable }; var str = exportService.CreateTemplate(cfgExport); return Json(str); } if (model.ExportId != Guid.Empty) { var fullPath = ExportService.Export(model.ExportId, result, null, model.ExportType); return Json(fullPath); } return Json(result.ToDataSourceResult(request)); }
public ActionResult GetReportWorkHistoryDept([DataSourceRequest] DataSourceRequest request, Hre_ReportWorkHistoryDeptModel Model) { #region Validate string message = string.Empty; var checkValidate = ValidatorService.OnValidateData<Hre_ReportWorkHistoryDeptModel>(Model, "Hre_ReportWorkHistoryDept", ref message); if (!checkValidate) { return Json(message); } #endregion var actionServices = new ActionService(UserLogin); var profileServices = new Hre_ProfileServices(); var rptServices = new Hre_ReportServices(); List<object> listObj = new List<object>(); listObj.Add(Model.DateFrom); listObj.Add(Model.DateTo); listObj.Add(Model.ProfileName); listObj.Add(Model.CodeEmp); listObj.Add(Model.JobTitleID); listObj.Add(Model.PositionID); listObj.Add(Model.OrgStructureIDs); listObj.Add(Model.TypeOfTransferID); listObj.Add(Model.SalaryClassID); listObj.Add(Model.WorkPlaceID); listObj.Add(Model.Status); listObj.Add(1); listObj.Add(int.MaxValue - 1); string status = string.Empty; var result = actionServices.GetData<Hre_ReportWorkHistoryDeptEntity>(listObj, ConstantSql.hrm_hr_sp_get_RptWorkHistoryDept, ref status).ToList().Translate<Hre_ReportWorkHistoryDeptModel>(); HeaderInfo headerInfo1 = new HeaderInfo() { Name = "DateFrom", Value = Model.DateFrom != null ? Model.DateFrom : DateTime.Now }; HeaderInfo headerInfo2 = new HeaderInfo() { Name = "DateTo", Value = Model.DateTo != null ? Model.DateTo : DateTime.Now }; HeaderInfo headerInfo3 = new HeaderInfo() { Name = "WorkPlaceName", Value = ((result != null && result.FirstOrDefault() != null) && result.FirstOrDefault().WorkPlaceName != null) ? result.FirstOrDefault().WorkPlaceName : "" }; List<HeaderInfo> listHeaderInfo = new List<HeaderInfo>() { headerInfo1, headerInfo2, headerInfo3 }; if (Model != null && Model.IsCreateTemplate) { var path = Common.GetPath("Templates"); ExportService exportService = new ExportService(); ConfigExport cfgExport = new ConfigExport() { Object = new Hre_ReportWorkHistoryDeptModel(), FileName = "Hre_ReportWorkHistoryDept", OutPutPath = path, HeaderInfo = listHeaderInfo, DownloadPath = Hrm_Main_Web + "Templates", IsDataTable = false }; var str = exportService.CreateTemplate(cfgExport); return Json(str); } bool isgroup = profileServices.IsGroupByOrgProfileQuit(); if (isgroup == true) { List<Hre_ReportWorkHistoryDeptModel> resultNew = new List<Hre_ReportWorkHistoryDeptModel>(); if (result.Count > 0) { var orgServices = new Cat_OrgStructureServices(); var lstObjOrg = new List<object>(); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(null); lstObjOrg.Add(1); lstObjOrg.Add(int.MaxValue - 1); var lstOrg = actionServices.GetData<Cat_OrgStructureEntity>(lstObjOrg, ConstantSql.hrm_cat_sp_get_OrgStructure, ref status).ToList(); var orgTypeService = new Cat_OrgStructureTypeServices(); var lstObjOrgType = new List<object>(); lstObjOrgType.Add(null); lstObjOrgType.Add(null); lstObjOrgType.Add(1); lstObjOrgType.Add(int.MaxValue - 1); var lstOrgType = actionServices.GetData<Cat_OrgStructureTypeEntity>(lstObjOrgType, ConstantSql.hrm_cat_sp_get_OrgStructureType, ref status).ToList(); foreach (var item in result) { var orgName = new List<string>(); if (item.OrgStructureID != null) { orgName = rptServices.GetParentOrgName(lstOrg, lstOrgType, item.OrgStructureID); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); } } } if (orgName.Count > 0) { item.Channel = orgName[2]; item.Region = orgName[1]; item.Area = orgName[0]; } resultNew.Add(item); } } if (Model.ExportID != Guid.Empty) { var fullPath = ExportService.Export(Model.ExportID, resultNew, listHeaderInfo, Model.ExportType); return Json(fullPath); } return Json(resultNew.ToDataSourceResult(request)); } if (Model.ExportID != Guid.Empty) { var fullPath = ExportService.Export(Model.ExportID, result, listHeaderInfo, Model.ExportType); return Json(fullPath); } return Json(result.ToDataSourceResult(request)); }
/// <summary> /// BC bảng lương /// <param name="dateStartCutOffDuration">Ngày bắt đầu của kỳ lương</param> /// <param name="monthYear">Tháng</param> /// <param name="listOrgIDs">Ds phòng ban</param> /// <param name="listPrGroupIDs">Ds nhóm Lương</param> /// <param name="isIncludeQuitEmp">Bao gồm NV nghỉ việc</param> /// </sumary> public DataTable RefreshData(DateTime dateStartCutOffDuration, DateTime dateEndCutOffDuration, DateTime monthYear, List<Hre_ProfileEntity> listProfile, Guid? gradePayrollID, Boolean isIncludeQuitEmp, string codeEmp, string orderNumber, string Transfer, Guid[] workingPlaceID, Guid[] costcenterIds, string UserLogin) { try { using (var context = new VnrHrmDataContext()) { #region " Load dữ liệu" string status = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); //kỳ lương (hiện tại mặc định đầu tháng -> cuối tháng) DateTime from = new DateTime(monthYear.Year, monthYear.Month, 1); DateTime to = new DateTime(monthYear.Year, monthYear.Month, DateTime.DaysInMonth(monthYear.Year, monthYear.Month)); //Ds tất cả phòng ban var orgServices = new Cat_OrgStructureServices(); var lstObjOrg = new List<object>(); // var reposOrgStructure = new CustomBaseRepository<Cat_OrgStructure>(unitOfWork); var listOrgAll = orgServices.GetDataNotParam<Cat_OrgStructure>(ConstantSql.hrm_cat_sp_get_AllOrg, UserLogin, ref status).ToList(); var lstObjOrgNumber = new List<object>(); lstObjOrgNumber.Add(orderNumber); var lstOrgID = orgServices.GetData<Cat_OrgStructureEntity>(lstObjOrgNumber, ConstantSql.hrm_cat_sp_get_OrgStructureByOrderNumber, UserLogin, ref status).Select(s => s.ID).ToList(); //Ds cửa Hàng var shopServices = new Cat_ShopServices(); var lstObjShop = new List<object>(); lstObjShop.Add(null); lstObjShop.Add(null); lstObjShop.Add(null); lstObjShop.Add(1); lstObjShop.Add(int.MaxValue - 1); var lstShop = shopServices.GetData<Cat_ShopEntity>(lstObjShop, ConstantSql.hrm_cat_sp_get_Shop, UserLogin, ref status).ToList(); //Ds tất cả loại PB var orgTypeServices = new Cat_OrgStructureTypeServices(); var lstObjOrgType = new List<object>(); lstObjOrgType.Add(string.Empty); lstObjOrgType.Add(string.Empty); lstObjOrgType.Add(1); lstObjOrgType.Add(int.MaxValue - 1); var listOrgType = orgTypeServices.GetData<Cat_OrgStructureType>(lstObjOrgType, ConstantSql.hrm_cat_sp_get_OrgStructureType, UserLogin, ref status).ToList(); //Ds nhân viên var reposProfile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var profileServices = new Hre_ProfileServices(); var lstObjProfile = new List<object>(); lstObjProfile.AddRange(new object[17]); lstObjProfile[15] = 1; lstObjProfile[16] = int.MaxValue - 1; var lstModel = new List<object>(); lstModel.AddRange(new object[10]); //lstModel[4] = CutOffDuration.DateStart; //lstModel[5] = CutOffDuration.DateEnd; lstModel[8] = 1; lstModel[9] = Int32.MaxValue - 1; List<Sal_HoldSalaryEntity> listHoldSalary = orgTypeServices.GetData<Sal_HoldSalaryEntity>(lstModel, ConstantSql.hrm_sal_sp_get_HoldSalary, UserLogin, ref status).Where(m => m.MonthSalary <= dateEndCutOffDuration && (m.MonthEndSalary == null || m.MonthEndSalary >= dateStartCutOffDuration)).ToList(); //bỏ những nhân viên đang bị hold lương listProfile = listProfile.Where(m => !listHoldSalary.Any(t => t.ProfileID == m.ID)).ToList(); bool isGroup = profileServices.IsGroupByOrgProfileQuit(); //lọc theo nhóm lương List<Guid> listProfileID = listProfile.Select(s => s.ID).Distinct().ToList(); //lọc nhân viên nghỉ việc if (!isIncludeQuitEmp) { listProfile = listProfile.Where(pro => pro.DateQuit == null || pro.DateQuit > from).ToList(); } if (workingPlaceID != null) { listProfile = listProfile.Where(pro => pro.WorkPlaceID != null && workingPlaceID.Contains(pro.WorkPlaceID.Value)).ToList(); } if (costcenterIds != null) { listProfile = listProfile.Where(pro => pro.CostCentreID != null && costcenterIds.Contains(pro.CostCentreID.Value)).ToList(); } //lọc theo tên nhân viên if (!string.IsNullOrEmpty(codeEmp)) { listProfile = listProfile.Where(s => s.CodeEmp != null && s.CodeEmp.Contains(codeEmp)).ToList(); } //ds chế độ lương var saleGradeServices = new Sal_GradeServices(); var lstObjSalGrade = new List<object>(); lstObjSalGrade.Add(string.Empty); lstObjSalGrade.Add(string.Empty); lstObjSalGrade.Add(string.Empty); lstObjSalGrade.Add(string.Empty); lstObjSalGrade.Add(string.Empty); lstObjSalGrade.Add(1); lstObjSalGrade.Add(int.MaxValue - 1); var reposSalGrade = new CustomBaseRepository<Sal_Grade>(unitOfWork); var lstGradeAll = reposSalGrade.FindBy(s => s.IsDelete != true).ToList(); //var lstGradeAll = GetData<Sal_GradeEntity>(lstObjSalGrade, ConstantSql.hrm_sal_sp_get_Sal_Grade, UserLogin,ref status); //ds thông tin lương var salInfoServices = new Sal_SalaryInformationServices(); var lstObjSalInfo = new List<object>(); lstObjSalInfo.Add(null); lstObjSalInfo.Add(null); lstObjSalInfo.Add(null); lstObjSalInfo.Add(null); lstObjSalInfo.Add(null); lstObjSalInfo.Add(null); lstObjSalInfo.Add(1); lstObjSalInfo.Add(int.MaxValue - 1); var salInfoServices1 = new Sal_SalaryInformationServices(); var lstProfileIDs = new List<Guid>(); var lstSalaryInformation = salInfoServices.GetData<Sal_SalaryInformationEntity>(lstObjSalInfo, ConstantSql.hrm_sal_sp_get_Sal_SalaryInformation, UserLogin, ref status).ToList(); if (Transfer == EnumDropDown.Transfer.E_TRANSFER.ToString()) { lstSalaryInformation = lstSalaryInformation.Where(s => s.IsCash == true).ToList(); lstProfileIDs = lstSalaryInformation.Select(s => s.ProfileID).ToList(); } if (Transfer == EnumDropDown.Transfer.E_CASH.ToString()) { lstSalaryInformation = lstSalaryInformation.Where(s => s.IsCash == false).ToList(); lstProfileIDs = lstSalaryInformation.Select(s => s.ProfileID).ToList(); } if (Transfer == EnumDropDown.Transfer.E_OTHER.ToString()) { lstProfileIDs = lstSalaryInformation.Select(s => s.ProfileID).ToList(); } //ds loại mã lương var salaryClassServices = new Cat_SalaryClassServices(); var lstObjSalaryClass = new List<object>(); lstObjSalaryClass.Add(null); lstObjSalaryClass.Add(1); lstObjSalaryClass.Add(int.MaxValue - 1); var lstSalaryClass = salaryClassServices.GetData<Cat_SalaryClassEntity>(lstObjSalaryClass, ConstantSql.hrm_cat_sp_get_SalaryClass, UserLogin, ref status).ToList().Translate<Cat_SalaryClass>(); var revenueProfileServices = new Sal_RevenueForProfileServices(); var lstObjRevenueForProfile = new List<object>(); lstObjRevenueForProfile.Add(null); lstObjRevenueForProfile.Add(1); lstObjRevenueForProfile.Add(int.MaxValue - 1); var lstRevenueForProfile = revenueProfileServices.GetData<Sal_RevenueForProfileEntity>(lstObjRevenueForProfile, ConstantSql.hrm_sal_sp_get_RevenueForProfile, UserLogin, ref status).ToList(); //Ds phần tử lương var elementServices = new Cat_ElementServices(); var methodPayroll = MethodPayroll.E_NORMAL.ToString(); var lstObjElement = new List<object>(); lstObjElement.AddRange(new object[8]); lstObjElement[6] = 1; lstObjElement[7] = int.MaxValue - 1; var reposPayrollElement = new CustomBaseRepository<Cat_Element>(unitOfWork); var listPayrollElement = elementServices.GetData<Cat_ElementEntity>(lstObjElement, ConstantSql.hrm_cat_sp_get_ElementByMethod, UserLogin, ref status).Where(s => s.MethodPayroll == methodPayroll).ToList().Translate<Cat_Element>(); #region Chọn lấy back up bảng lương - Tung.Ly 20150513 var salComputePayrollService = new Sal_ComputePayrollServices(); var lstSalPayrollTb = new List<Sal_PayrollTableEntity>(); var lstSalPayrollTbItem = new List<Sal_PayrollTableItemEntity>(); #region param store bang luong var payrollTableServices = new Sal_PayrollTableServices(); var lstObjPayrollTable = new List<object>(); lstObjPayrollTable.Add(null); lstObjPayrollTable.Add(null); lstObjPayrollTable.Add(from); lstObjPayrollTable.Add(to); lstObjPayrollTable.Add(1); lstObjPayrollTable.Add(int.MaxValue - 1); #endregion #region param store bảng lương chi tiết var payrollTableItemServices = new Sal_PayrollTableItemServices(); var lstObjPayrollTableItem = new List<object>(); lstObjPayrollTableItem.Add(null); lstObjPayrollTableItem.Add(null); lstObjPayrollTableItem.Add(from); lstObjPayrollTableItem.Add(to); lstObjPayrollTableItem.Add(null); lstObjPayrollTableItem.Add(null); lstObjPayrollTableItem.Add(null); lstObjPayrollTableItem.Add(1); lstObjPayrollTableItem.Add(int.MaxValue - 1); #endregion //kiem ra co du lieu backup không theo kỳ lương if (salComputePayrollService.CheckDataIsBackUp(TypeDataBKInScheduleTask.E_PAYROLL_BK.ToString(), dateStartCutOffDuration)) { //Du liệu backup #region ds bảng lương(backcup) lstSalPayrollTb = payrollTableServices.GetData<Sal_PayrollTableEntity>(lstObjPayrollTable, ConstantSql.hrm_sal_sp_get_PayrollTableBK, UserLogin, ref status) .Where(pr => pr.IsDelete == null && pr.MonthYear == monthYear && listProfileID.Contains(pr.ProfileID)).ToList(); List<Guid> listSalPayrollIDs = lstSalPayrollTb.Select(p => p.ID).ToList(); #endregion #region ds bảng lương chi tiết(backup) lstSalPayrollTbItem = payrollTableItemServices.GetData<Sal_PayrollTableItemEntity>(lstObjPayrollTableItem, ConstantSql.hrm_sal_sp_get_PayrollTableItemBK, UserLogin, ref status) .Where(it => it.IsDelete == null && listSalPayrollIDs.Contains(it.PayrollTableID)).ToList(); #endregion } else { #region ds bảng lương // var reposSalPayrollTb = new CustomBaseRepository<Sal_PayrollTable>(unitOfWork); lstSalPayrollTb = payrollTableServices.GetData<Sal_PayrollTableEntity>(lstObjPayrollTable, ConstantSql.hrm_sal_sp_get_PayrollTable, UserLogin, ref status) .Where(pr => pr.IsDelete == null && pr.MonthYear == monthYear && listProfileID.Contains(pr.ProfileID)).ToList(); List<Guid> listSalPayrollIDs = lstSalPayrollTb.Select(p => p.ID).ToList(); #endregion #region ds bảng lương chi tiết // var reposSalPayrollTbItem = new CustomBaseRepository<Sal_PayrollTableItem>(unitOfWork); lstSalPayrollTbItem = payrollTableItemServices.GetData<Sal_PayrollTableItemEntity>(lstObjPayrollTableItem, ConstantSql.hrm_sal_sp_get_PayrollTableItem, UserLogin, ref status) .Where(it => it.IsDelete == null && listSalPayrollIDs.Contains(it.PayrollTableID)).ToList(); #endregion } #endregion // var lstSalPayrollTbItem = reposSalPayrollTbItem.GetAll().Where(it => it.IsDelete == null && listSalPayrollIDs.Contains(it.PayrollTableID)).ToList(); //Tạo cột dữ liệu cho table DataTable tblData = GetSchemaOverallPayroll(); #endregion #region " Không có dữ liệu Sal_PayrollTable" if (lstSalPayrollTb == null || lstSalPayrollTb.Count <= 0) { foreach (Hre_ProfileEntity profile in listProfile) { var lstRankByProfileId = lstShop.Where(s => s.ID == profile.ShopID).FirstOrDefault(); DataRow dr = tblData.NewRow(); dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.MonthYear] = monthYear; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CodeEmp] = profile.CodeEmp; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CodeAttendance] = profile.CodeAttendance; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.ProfileName] = profile.ProfileName; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.LaborType] = profile.LaborType; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.OrgStructureName] = profile.OrgStructureName; dr["ShopGroupName"] = lstRankByProfileId != null ? lstRankByProfileId.ShopGroupName : string.Empty; dr["OrgStructureType"] = profile.E_COMPANY_CODE + "->" + profile.E_BRANCH_CODE + "->" + profile.E_UNIT_CODE + "->" + profile.E_DIVISION_CODE + "->" + profile.E_DEPARTMENT_CODE + "->" + profile.E_TEAM_CODE + "->" + profile.E_SECTION_CODE; //Sal_BasicSalaryEntity BasicSalaryByProfile = listBasicSalary.SingleOrDefault(m => m.ProfileID == profile.ID); //dr["SalaryRankName"] = BasicSalaryByProfile != null ? BasicSalaryByProfile.SalaryRankName : ""; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.EmployeeType] = profile.Cat_EmployeeType != null ? profile.Cat_EmployeeType.EmployeeTypeName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.EmployeeType] = profile.EmployeeTypeName; //dr["CostCenterCodePayrollTable"] = profile.CostCentreNamePayrollTable; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Supervisor] = profile.Supervisor != null ? profile.Supervisor : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Supervisor] = profile.Supervisor; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.HighSupervisor] = profile.HighSupervisor != null ? profile.HighSupervisor : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.HighSupervisor] = profile.HighSupervisor; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.WorkPlace] = profile.Cat_WorkPlace != null ? profile.Cat_WorkPlace.WorkPlaceName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.WorkPlace] = profile.WorkPlaceName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TaxCode] = profile.CodeTax != null ? profile.CodeTax : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TaxCode] = profile.CodeTax; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.IDNo] = profile.IDNo != null ? profile.IDNo : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.IDNo] = profile.IDNo; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenter] = profile.Cat_CostCentre != null ? profile.Cat_CostCentre.CostCentreName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenter] = profile.CostCentreName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenterCode] = profile.Cat_CostCentre != null ? profile.Cat_CostCentre.Code : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenterCode] = profile.CostCentreCode; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PositionName] = profile.Cat_Position != null ? profile.Cat_Position.PositionName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PositionName] = profile.PositionName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.JobtitleName] = profile.Cat_JobTitle != null ? profile.Cat_JobTitle.JobTitleName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.JobtitleName] = profile.JobTitleName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Email] = profile.Email != null ? profile.Email : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Email] = profile.Email; if (profile.DateHire != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateHire] = profile.DateHire.Value; if (profile.DateQuit != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateQuit] = profile.DateQuit; if (profile.DateEndProbation != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateEndProbation] = profile.DateEndProbation.Value; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SocialInsNo] = profile.SocialInsNo != null ? profile.SocialInsNo : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SocialInsNo] = profile.SocialInsNo; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PayrollGroup] = profile.Cat_PayrollGroup != null ? profile.Cat_PayrollGroup.PayrollGroupName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PayrollGroup] = profile.PayrollGroupName; dr["CostSource"] = profile.CostSourceName; if (profile.SalaryClassID != null) { Cat_SalaryClass salClass = lstSalaryClass.Where(s => s.ID == profile.SalaryClassID.Value && s.IsDelete == null).FirstOrDefault(); if (salClass != null) { dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SalaryClassName] = salClass.SalaryClassName; } } if (profile.OrgStructureID != null) { var orgName = GetParentOrg(listOrgAll, listOrgType, profile.OrgStructureID); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); if (orgName.Count < 3) { orgName.Insert(0, string.Empty); } } dr[Hre_ReportHCSalesEntity.FieldNames.Channel] = orgName[2]; dr[Hre_ReportHCSalesEntity.FieldNames.Region] = orgName[1]; dr[Hre_ReportHCSalesEntity.FieldNames.Area] = orgName[0]; } // Hre_Contract hrcontract = lstHreContractAll.Where(hr => hr.ProfileID == profile.ID && hr.IsDelete == null).FirstOrDefault(); //if (hrcontract != null && hrcontract.RankRateID != null) //{ // Cat_SalaryRank salrank = lstSalaryRankAll.Where(rk => rk.ID == hrcontract.RankRateID.Value && rk.IsDelete == null).FirstOrDefault(); // dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SalaryRankName] = salrank != null ? salrank.SalaryRankName : string.Empty; //} #region Insurance, Bank var salaryInformationList = lstSalaryInformation.Where(sal => sal.ProfileID == profile.ID).ToList(); if (salaryInformationList.Count > 0) { Sal_SalaryInformationEntity bankSalary = salaryInformationList[0]; string accountTemp = string.Empty; string accountNo = string.Empty; string accountNo2 = string.Empty; string bankNameTemp = string.Empty; string bankCode = string.Empty; accountTemp = bankSalary.AccountNo == null ? string.Empty : bankSalary.AccountNo; accountNo = bankSalary.AccountNo == null ? string.Empty : bankSalary.AccountNo; accountNo2 = bankSalary.AccountNo2 == null ? string.Empty : bankSalary.AccountNo2; bankNameTemp = bankSalary.BankName == null ? string.Empty : bankSalary.BankName; bankCode = bankSalary.BankCode1 == null ? string.Empty : bankSalary.BankCode1; if (!string.IsNullOrEmpty(accountTemp)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankAccountNo] = accountTemp.Trim(); if (!string.IsNullOrEmpty(accountNo)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.AccountNo] = accountNo.Trim(); if (!string.IsNullOrEmpty(accountNo2)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.AccountNo2] = accountNo2.Trim(); if (!string.IsNullOrEmpty(bankCode)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankCode] = bankCode.Trim(); if (!string.IsNullOrEmpty(bankNameTemp)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankName] = bankNameTemp.Trim(); } #endregion tblData.Rows.Add(dr); } } #endregion #region " Có dữ liệu tính lương Sal_PayrollTable" else { foreach (Sal_PayrollTableEntity payroll in lstSalPayrollTb) { if (Transfer != null) { listProfile = listProfile.Where(s => lstProfileIDs.Contains(s.ID)).ToList(); } Hre_ProfileEntity profile = listProfile.Where(s => s.ID == payroll.ProfileID).FirstOrDefault(); if (profile == null) continue; var lstRevenueByProfileId = lstRevenueForProfile.Where(s => s.ProfileID == payroll.ProfileID).FirstOrDefault(); var lstRankByProfileId = lstShop.Where(s => s.ID == profile.ShopID).FirstOrDefault(); //var unusualByProfileId = lstUnusual.Where(s => s.ProfileID == profile.ID).FirstOrDefault(); List<Sal_PayrollTableItemEntity> listItem = lstSalPayrollTbItem.Where(pi => pi.PayrollTableID == payroll.ID).ToList(); DataRow dr = tblData.NewRow(); dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.ID] = payroll.ID; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.MonthYear] = monthYear; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CodeEmp] = profile.CodeEmp; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CodeAttendance] = profile.CodeAttendance; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.OrgStructureName] = profile.OrgStructureName; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.ProfileName] = profile.ProfileName; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.IsPaid] = payroll.IsPaid == null ? false : payroll.IsPaid.Value; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.LaborType] = profile.LaborType; dr["OrgStructureType"] = profile.E_COMPANY_CODE + "->" + profile.E_BRANCH_CODE + "->" + profile.E_UNIT_CODE + "->" + profile.E_DIVISION_CODE + "->" + profile.E_DEPARTMENT_CODE + "->" + profile.E_TEAM_CODE + "->" + profile.E_SECTION_CODE; dr["ShopGroupName"] = lstRankByProfileId != null ? lstRankByProfileId.ShopGroupName : string.Empty; //Sal_BasicSalaryEntity BasicSalaryByProfile = listBasicSalary.SingleOrDefault(m => m.ProfileID == profile.ID); //dr["SalaryRankName"] = BasicSalaryByProfile != null ? BasicSalaryByProfile.SalaryRankName : ""; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.EmployeeType] = profile.Cat_EmployeeType != null ? profile.Cat_EmployeeType.EmployeeTypeName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.EmployeeType] = profile.EmployeeTypeName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Supervisor] = profile.Supervisor != null ? profile.Supervisor : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Supervisor] = profile.Supervisor; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.HighSupervisor] = profile.HighSupervisor != null ? profile.HighSupervisor : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.HighSupervisor] = profile.HighSupervisor; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.WorkPlace] = profile.Cat_WorkPlace != null ? profile.Cat_WorkPlace.WorkPlaceName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.WorkPlace] = profile.WorkPlaceName; // dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.WorkingPlace] = profile.WorkingPlace != null ? profile.WorkingPlace : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TaxCode] = profile.CodeTax != null ? profile.CodeTax : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TaxCode] = profile.CodeTax; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.IDNo] = profile.IDNo; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.IDNo] = profile.IDNo != null ? profile.IDNo : string.Empty; dr["CostCenterCodePayrollTable"] = payroll.CostCentreNamePayrollTable; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenter] = profile.Cat_CostCentre != null ? profile.Cat_CostCentre.CostCentreName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenter] = profile.CostCentreName; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenterCode] = profile.Cat_CostCentre != null ? profile.Cat_CostCentre.Code : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.CostCenterCode] = profile.CostCentreCode; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PositionName] = profile.Cat_Position != null ? profile.Cat_Position.PositionName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PositionName] = profile.PositionName; //dr["PositionCode"] = profile.Cat_Position != null ? profile.Cat_Position.Code : string.Empty; dr["PositionCode"] = profile.PositionCode; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.JobtitleName] = profile.Cat_JobTitle != null ? profile.Cat_JobTitle.JobTitleName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.JobtitleName] = profile.JobTitleName; //dr["JobtitleCode"] = profile.Cat_JobTitle != null ? profile.Cat_JobTitle.Code : string.Empty; dr["JobtitleCode"] = profile.JobTitleCode; dr["CostSource"] = profile.CostSourceName; //dr["Rank"] = lstRankByProfileId != null ? lstRankByProfileId.Rank : string.Empty; //dr["Target"] = lstRevenueByProfileId != null ? lstRevenueByProfileId.Target : 0; //dr["Actual"] = lstRevenueByProfileId != null ? lstRevenueByProfileId.Actual : 0; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.Email] = profile.Email != null ? profile.Email : string.Empty; if (profile.DateHire != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateHire] = profile.DateHire.Value; if (profile.DateQuit != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateQuit] = profile.DateQuit; if (profile.DateEndProbation != null) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DateEndProbation] = profile.DateEndProbation.Value; //if (unusualByProfileId != null) //{ // if (unusualByProfileId.MonthStart != null) // { // dr["MonthStart"] = unusualByProfileId.MonthStart; // } //} //if (unusualByProfileId != null) //{ // if (unusualByProfileId.MonthEnd != null) // { // dr["MonthEnd"] = unusualByProfileId.MonthEnd; // } //} //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SocialInsNo] = profile.SocialInsNo != null ? profile.SocialInsNo : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SocialInsNo] = profile.SocialInsNo; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PayrollGroup] = profile.Cat_PayrollGroup != null ? profile.Cat_PayrollGroup.PayrollGroupName : string.Empty; dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.PayrollGroup] = profile.PayrollGroupName; if (profile.OrgStructureID != null) { var orgName = new List<string>(); var orgCode = new List<string>(); if (isGroup) { var orgEntity = listOrgAll.Where(s => s.ID == profile.OrgStructureID).FirstOrDefault(); if (orgEntity != null) { orgName = GetParentOrgNameForShiseido(listOrgAll, listOrgType, profile.OrgStructureID); if (orgName.Count < 5) { orgName.Insert(0, string.Empty); if (orgName.Count < 5) { orgName.Insert(0, string.Empty); } if (orgName.Count < 5) { orgName.Insert(0, string.Empty); } if (orgName.Count < 5) { orgName.Insert(0, string.Empty); } if (orgName.Count < 5) { orgName.Insert(0, string.Empty); } } orgCode = GetParentOrgCodeForShiseido(listOrgAll, listOrgType, profile.OrgStructureID); if (orgCode.Count < 5) { orgCode.Insert(0, string.Empty); if (orgCode.Count < 5) { orgCode.Insert(0, string.Empty); } if (orgCode.Count < 5) { orgCode.Insert(0, string.Empty); } if (orgCode.Count < 5) { orgCode.Insert(0, string.Empty); } if (orgCode.Count < 5) { orgCode.Insert(0, string.Empty); } } } dr["Công Ty"] = orgName[4]; dr["Chi Nhánh"] = orgName[3]; dr[Hre_ReportHCSalesEntity.FieldNames.Channel] = orgName[2]; dr[Hre_ReportHCSalesEntity.FieldNames.Region] = orgName[1]; dr[Hre_ReportHCSalesEntity.FieldNames.Area] = orgName[0]; dr["Mã Công Ty"] = orgCode[4]; dr["Mã Chi Nhánh"] = orgCode[3]; dr["Mã Channel"] = orgCode[2]; dr["Mã Region"] = orgCode[1]; dr["Mã Area"] = orgCode[0]; } //var orgBranch = LibraryService.GetNearestParent(profile.OrgStructureID, OrgUnit.E_BRANCH, listOrgAll, listOrgType); //var orgOrg = LibraryService.GetNearestParent(profile.OrgStructureID, OrgUnit.E_DEPARTMENT, listOrgAll, listOrgType); //var orgTeam = LibraryService.GetNearestParent(profile.OrgStructureID, OrgUnit.E_TEAM, listOrgAll, listOrgType); //var orgSection = LibraryService.GetNearestParent(profile.OrgStructureID, OrgUnit.E_SECTION, listOrgAll, listOrgType); //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BranchCode] = orgBranch != null ? orgBranch.Code : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DepartmentCode] = orgOrg != null ? orgOrg.Code : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TeamCode] = orgTeam != null ? orgTeam.Code : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SectionCode] = orgSection != null ? orgSection.Code : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BranchName] = orgBranch != null ? orgBranch.OrgStructureName : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.DepartmentName] = orgOrg != null ? orgOrg.OrgStructureName : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.TeamName] = orgTeam != null ? orgTeam.OrgStructureName : string.Empty; //dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SectionName] = orgSection != null ? orgSection.OrgStructureName : string.Empty; } // Hre_Contract hrcontract = lstHreContractAll.Where(hr => hr.ProfileID == profile.ID && hr.IsDelete == null).FirstOrDefault(); if (profile.SalaryClassID != null) { Cat_SalaryClass salClass = lstSalaryClass.Where(s => s.ID == profile.SalaryClassID.Value && s.IsDelete == null).FirstOrDefault(); if (salClass != null) { dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SalaryClassName] = salClass.SalaryClassName; } } //if (hrcontract != null && hrcontract.RankRateID != null) //{ // if (profile.SalaryClassID != null) // { // Cat_SalaryRank salrank = lstSalaryRankAll.Where(rk => rk.SalaryClassID == profile.SalaryClassID.Value && hrcontract.RankRateID == rk.ID && rk.IsDelete == null).FirstOrDefault(); // if (salrank != null) // dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.SalaryRankName] = salrank.SalaryRankName; // } //} #region Insurance, Bank var salaryInformationList = lstSalaryInformation.Where(sal => sal.ProfileID == profile.ID).ToList(); if (salaryInformationList.Count > 0) { Sal_SalaryInformationEntity bankSalary = salaryInformationList[0]; string accountTemp = string.Empty; string accountNo = string.Empty; string accountNo2 = string.Empty; string bankNameTemp = string.Empty; string bankCode = string.Empty; accountTemp = bankSalary.AccountNo == null ? string.Empty : bankSalary.AccountNo; accountNo = bankSalary.AccountNo == null ? string.Empty : bankSalary.AccountNo; accountNo2 = bankSalary.AccountNo2 == null ? string.Empty : bankSalary.AccountNo2; bankNameTemp = bankSalary.BankName == null ? string.Empty : bankSalary.BankName; bankCode = bankSalary.BankCode1 == null ? string.Empty : bankSalary.BankCode1; if (!string.IsNullOrEmpty(accountTemp)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankAccountNo] = accountTemp.Trim(); if (!string.IsNullOrEmpty(accountNo)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.AccountNo] = accountNo.Trim(); if (!string.IsNullOrEmpty(accountNo2)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.AccountNo2] = accountNo2.Trim(); if (!string.IsNullOrEmpty(bankCode)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankCode] = bankCode.Trim(); if (!string.IsNullOrEmpty(bankNameTemp)) dr[Sal_ReportBasicSalaryMonthlyEntity.FieldNames.BankName] = bankNameTemp.Trim(); } #endregion #region sal grade Sal_Grade grade = new Sal_Grade(); if (gradePayrollID != null) { grade = lstGradeAll.Where(gr => gr.IsDelete == null && gr.ProfileID == profile.ID && gradePayrollID.Value == gr.GradePayrollID && gr.MonthStart < to).OrderByDescending(gr => gr.MonthStart).FirstOrDefault(); } else { grade = lstGradeAll.Where(gr => gr.IsDelete == null && gr.ProfileID == profile.ID && gr.MonthStart < to).OrderByDescending(gr => gr.MonthStart).FirstOrDefault(); } if (grade != null) { Cat_GradePayroll gradepayroll = grade.Cat_GradePayroll; if (gradepayroll != null && gradepayroll.IsFormulaSalary == true) { try { var lstSalPrItem = lstSalPayrollTbItem.Where(sal => sal.PayrollTableID == payroll.ID).ToList(); var lstelement = listPayrollElement.Where(pr => pr.GradePayrollID == gradepayroll.ID).ToList(); if (lstelement != null && lstelement.Count > 0) { foreach (Cat_Element payrollElement in lstelement) { if (payrollElement != null && !String.IsNullOrEmpty(payrollElement.ElementCode)) { if (payrollElement.Type == "Nvarchar") { //Add phần tử vào cột dữ liệu nếu chưa có if (!tblData.Columns.Contains(payrollElement.ElementCode)) { tblData.Columns.Add(payrollElement.ElementCode); } } else { //Add phần tử vào cột dữ liệu nếu chưa có if (!tblData.Columns.Contains(payrollElement.ElementCode)) { tblData.Columns.Add(payrollElement.ElementCode, typeof(Double)); } } //Lấy value của phần tử if (tblData.Columns.Contains(payrollElement.ElementCode)) { Sal_PayrollTableItemEntity item = lstSalPrItem.Where(it => it.Code == payrollElement.ElementCode).FirstOrDefault(); Double value = 0; if (item != null) { if (item.ValueType == typeof(Double).Name) { Double.TryParse(item.Value, out value); dr[payrollElement.ElementCode] = value; } if (item.ValueType == EnumDropDown.DataType.Nvarchar.ToString()) { dr[payrollElement.ElementCode] = item.Value; } } } } } } } catch { } } tblData.Rows.Add(dr); } #endregion } } #endregion var configs = new Dictionary<string, Dictionary<string, object>>(); var config = new Dictionary<string, object>(); config.Add("hidden", true); configs.Add("ID", config); return tblData.ConfigTable(configs, true); } } catch (Exception ex) { return new DataTable(); } }