/// <summary> /// Create payroll /// </summary> /// <param name="model"></param> /// <returns></returns> public static SalaryBoardInfoModel Create(SalaryBoardInfoModel model) { // init new entity var entity = new hr_SalaryBoardInfo(); // set entity props model.FillEntity(ref entity); // insert return(new SalaryBoardInfoModel(hr_SalaryBoardInfoServices.Create(entity))); }
/// <summary> /// /// </summary> /// <param name="boardList"></param> /// <param name="salaryInfo"></param> /// <param name="symbolArr"></param> /// <param name="columnCode"></param> /// <param name="dynamic"></param> private void GetValueDynamicColumn(sal_Payroll boardList, hr_SalaryBoardInfo salaryInfo, string[] symbolArr, string columnCode, hr_SalaryBoardDynamicColumn dynamic) { //get all event var listAllEvent = GetAllEvents(boardList, salaryInfo.RecordId); //get event by symbol var events = listAllEvent.Where(rc => symbolArr.Contains(rc.SymbolId.ToString())).ToList(); //set value dynamic.SalaryBoardId = boardList.Id; dynamic.ColumnCode = columnCode; dynamic.Value = events.Count.ToString(); }
/// <summary> /// Sửa salary info /// </summary> /// <param name="recordId"></param> /// <param name="salaryInfo"></param> private static void EditDataSalary(int recordId, hr_SalaryBoardInfo salaryInfo) { var salary = sal_SalaryDecisionServices.GetSalaryByRecordId(recordId); if (salary != null) { salaryInfo.SalaryFactor = (double)salary.Factor; salaryInfo.SalaryBasic = (double)CatalogBasicSalaryController.GetCurrent().Value; salaryInfo.SalaryNet = (double)salary.NetSalary; salaryInfo.SalaryGross = (double)salary.GrossSalary; salaryInfo.SalaryContract = (double)salary.ContractSalary; salaryInfo.SalaryInsurance = (double)salary.InsuranceSalary; } }
/// <summary> /// lay du lieu luong co dinh /// </summary> /// <param name="item"></param> /// <param name="salaryInfo"></param> private static void GetDataFromSalary(TimeSheetCodeModel item, hr_SalaryBoardInfo salaryInfo) { //Edit data salary EditDataSalary(item.RecordId, salaryInfo); }
/// <summary> /// Lay du lieu tu cham cong /// </summary> /// <param name="boardList"></param> /// <param name="salaryInfo"></param> private void GetDataFromTimeSheet(hr_SalaryBoardList boardList, hr_SalaryBoardInfo salaryInfo) { ////Lay ID bang cham cong //var timeSheetReport = hr_TimeSheetReportServices.GetTimeSheetReport(boardList.DepartmentId, // boardList.Month, boardList.Year, TimeSheetHandlerType); //if(timeSheetReport != null) //{ // salaryInfo.WorkStandardDay = timeSheetReport.WorkInMonth; // //Lay tong cong thuc te // var timeSheetList = hr_TimeSheetServices.GetByTimeSheetReportIdAndRecordId(salaryInfo.RecordId, timeSheetReport.Id); // double? totalWork = 0.0; // double? totalNormal = 0.0; // double? totalWorkLeaveDay = 0.0; // double? totalOverTime = 0.0; // double? totalOverTimeDay = 0.0; // double? totalOverTimeNight = 0.0; // double? totalOverTimeHoliday = 0.0; // double? totalOverTimeWeekend = 0.0; // foreach(var itemTimeSheet in timeSheetList) // { // var timeSheetEvent = JSON.Deserialize<List<TimeSheetItemModel>>(itemTimeSheet.Detail); // if(timeSheetEvent.Count > 0) // { // var symbol = hr_TimeSheetSymbolServices.GetSymbolFullDay(ConstPaySalary, null); // if(symbol != null) // { // var listTimeFullDay = // timeSheetEvent.Where(d => d.TypeGroup == ConstPaySalary && d.Symbol == symbol.Code); // foreach(var itemNormal in listTimeFullDay) // { // totalNormal += itemNormal.WorkConvert; // } // } // var listOverTime = // timeSheetEvent.Where(d => d.TypeGroup == ConstOverTime); // var listOverTimeDay = // timeSheetEvent.Where(d => d.TypeGroup == ConstOverTimeDay); // var listOverTimeNight = // timeSheetEvent.Where(d => d.TypeGroup == ConstOverTimeNight); // var listOverTimeHoliday = // timeSheetEvent.Where(d => d.TypeGroup == ConstOverTimeHoliday); // var listOverTimeWeekend = // timeSheetEvent.Where(d => d.TypeGroup == ConstOverTimeWeekend); // var listWorkLeaveDay = // timeSheetEvent.Where(d => d.TypeGroup == ConstLeave); // foreach(var itemEvent in timeSheetEvent) // { // totalWork += itemEvent.WorkConvert; // } // foreach(var item in listWorkLeaveDay) // { // if(item.WorkConvert != null) // { // totalWorkLeaveDay += item.WorkConvert; // } // } // foreach(var item in listOverTime) // { // if(item.TimeConvert != null) // { // totalOverTime += item.TimeConvert; // } // } // foreach(var item in listOverTimeDay) // { // if(item.TimeConvert != null) // { // totalOverTimeDay += item.TimeConvert; // } // } // foreach(var item in listOverTimeNight) // { // if(item.TimeConvert != null) // { // totalOverTimeNight += item.TimeConvert; // } // } // foreach(var item in listOverTimeHoliday) // { // if(item.TimeConvert != null) // { // totalOverTimeHoliday += item.TimeConvert; // } // } // foreach(var item in listOverTimeWeekend) // { // if(item.TimeConvert != null) // { // totalOverTimeWeekend += item.TimeConvert; // } // } // } // } // salaryInfo.WorkActualDay = Math.Round(totalWork.Value, 2); // salaryInfo.WorkNormalDay = Math.Round(totalNormal.Value, 2); // salaryInfo.WorkPaidLeave = Math.Round(totalWorkLeaveDay.Value, 2); // salaryInfo.OverTime = Math.Round(totalOverTime.Value, 2); // salaryInfo.OverTimeDay = Math.Round(totalOverTimeDay.Value, 2); // salaryInfo.OverTimeNight = Math.Round(totalOverTimeNight.Value, 2); // salaryInfo.OverTimeHoliday = Math.Round(totalOverTimeHoliday.Value, 2); // salaryInfo.OverTimeWeekend = Math.Round(totalOverTimeWeekend.Value, 2); //} }
public void SelectSalaryBoard() { if (!string.IsNullOrEmpty(hdfSalaryBoardListId.Text)) { //Lay danh sach bang luong var boardList = hr_SalaryBoardListServices.GetById(Convert.ToInt32(hdfSalaryBoardListId.Text)); if (boardList != null) { //TH chua ton tai bang luong thi di tao moi bang luong var salaryBoard = SalaryBoardInfoController.GetAllBoardInfo(hdfSalaryBoardListId.Text); if (salaryBoard != null && salaryBoard.Count <= 0) { //Lay danh sach nhan vien cua don vi can tinh bang luong var listRecordId = TimeSheetCodeController.GetAll(null, null, boardList.DepartmentId, null, null, true, null, null, null, null); foreach (var item in listRecordId) { //Tao moi bang tinh luong var salaryInfo = new hr_SalaryBoardInfo() { SalaryBoardId = boardList.Id, RecordId = item.RecordId, CreatedDate = DateTime.Now, }; //Lay tu timeSheet GetDataFromTimeSheet(boardList, salaryInfo); //Lay tu sal_SalaryDecision GetDataFromSalary(item, salaryInfo); hr_SalaryBoardInfoServices.Create(salaryInfo); } } else { if (chk_IsUpdateTimeSheet.Checked) { //Truong hop da co bang luong, thi cap nhat lai du lieu tu cham cong cho moi recordId foreach (var salary in salaryBoard) { var salaryInfo = hr_SalaryBoardInfoServices.GetById(salary.Id); //Lay tu timeSheet GetDataFromTimeSheet(boardList, salaryInfo); //Update hr_SalaryBoardInfoServices.Update(salaryInfo); } } if (chk_IsUpdateSalary.Checked) { //Truong hop da co bang luong, thi cap nhat lai du lieu tu luong cho moi recordId foreach (var salary in salaryBoard) { var salaryInfo = hr_SalaryBoardInfoServices.GetById(salary.Id); //Lay tu sal_SalaryDecision EditDataSalary(salary.RecordId, salaryInfo); //Update hr_SalaryBoardInfoServices.Update(salaryInfo); } } } } Response.Redirect("~/Modules/Salary/SalaryBoardInfo.aspx?id=" + hdfSalaryBoardListId.Text); } }
/// <summary> /// Lay du lieu tu cham cong /// </summary> /// <param name="boardList"></param> /// <param name="salaryInfo"></param> private void GetDataFromTimeSheet(sal_Payroll boardList, hr_SalaryBoardInfo salaryInfo) { //Lay ID bang cham cong //var timeSheetReport = hr_TimeSheetReportServices.GetTimeSheetReport(boardList.DepartmentId, // boardList.Month, boardList.Year, TimeSheetHandlerType); //if (timeSheetReport != null) //{ // salaryInfo.WorkStandardDay = timeSheetReport.WorkInMonth; // //Lay tong cong thuc te // var timeSheetList = hr_TimeSheetServices.GetByTimeSheetReportIdAndRecordId(salaryInfo.RecordId, timeSheetReport.Id); // double? totalWork = 0.0; // double? totalNormal = 0.0; // double? totalWorkPaidLeave = 0.0; // double? totalOverTime = 0.0; // double? totalOverTimeDay = 0.0; // double? totalOverTimeNight = 0.0; // double? totalOverTimeHoliday = 0.0; // double? totalOverTimeWeekend = 0.0; // double? totalGoWorkC = 0.0; // double? totalHolidayL = 0.0; // double? totalLateM = 0.0; // double? totalUnleaveK = 0.0; // double? totalUnpaidLeaveP = 0.0; // foreach (var itemTimeSheet in timeSheetList) // { // var timeSheetEvent = JSON.Deserialize<List<TimeSheetItemModel>>(itemTimeSheet.Detail); // if (timeSheetEvent.Count > 0) // { // var symbol = hr_TimeSheetSymbolServices.GetSymbolFullDay(Constant.TimesheetPaySalary, null); // if (symbol != null) // { // var listTimeFullDay = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetPaySalary && d.Symbol == symbol.Code); // foreach (var itemNormal in listTimeFullDay) // { // totalNormal += itemNormal.WorkConvert; // } // } // // over time // var listOverTime = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetOverTime); // // over time day // var listOverTimeDay = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetOverTimeDay); // // over time night // var listOverTimeNight = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetOverTimeNight); // // over time holiday // var listOverTimeHoliday = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetOverTimeHoliday); // // over time weekend // var listOverTimeWeekend = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetOverTimeWeekend); // // paid leaveday // var listWorkLeaveDay = // timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetLeave); // // go work // var listGoWork = timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetGoWork); // // holiday // var listHoliday = timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetHoliday); // // late // var listLate = timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetLate); // //unleave // var listUnLeave = timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetUnLeave); // //UnpaidLeave // var listUnpaidLeave = timeSheetEvent.Where(d => d.TypeGroup == Constant.TimesheetNotPaySalary); // foreach (var itemEvent in timeSheetEvent) // { // totalWork += itemEvent.WorkConvert; // } // totalWorkPaidLeave = listWorkLeaveDay.Where(item => item.WorkConvert != null).Aggregate(totalWorkPaidLeave, (current, item) => current + item.WorkConvert); // totalOverTime = listOverTime.Where(item => item.TimeConvert != null).Aggregate(totalOverTime, (current, item) => current + item.TimeConvert); // totalOverTimeDay = listOverTimeDay.Where(item => item.TimeConvert != null).Aggregate(totalOverTimeDay, (current, item) => current + item.TimeConvert); // totalOverTimeNight = listOverTimeNight.Where(item => item.TimeConvert != null).Aggregate(totalOverTimeNight, (current, item) => current + item.TimeConvert); // totalOverTimeHoliday = listOverTimeHoliday.Where(item => item.TimeConvert != null).Aggregate(totalOverTimeHoliday, (current, item) => current + item.TimeConvert); // totalOverTimeWeekend = listOverTimeWeekend.Where(item => item.TimeConvert != null).Aggregate(totalOverTimeWeekend, (current, item) => current + item.TimeConvert); // totalGoWorkC = listGoWork.Where(item => item.WorkConvert != null).Aggregate(totalGoWorkC, (current, item) => current + item.WorkConvert); // totalLateM = listLate.Where(item => item.WorkConvert != null).Aggregate(totalLateM, (current, item) => current + item.WorkConvert); // totalUnleaveK = listUnLeave.Where(item => item.WorkConvert != null).Aggregate(totalUnleaveK, (current, item) => current + item.WorkConvert); // totalHolidayL = listHoliday.Where(item => item.WorkConvert != null).Aggregate(totalHolidayL, (current, item) => current + item.WorkConvert); // totalUnpaidLeaveP = listUnpaidLeave.Where(item => item.WorkConvert != null).Aggregate(totalUnpaidLeaveP, (current, item) => current + item.WorkConvert); // } // } // //Tổng ngày công thực tế // salaryInfo.WorkActualDay = Math.Round(totalWork.Value, 2); // //Tổng ngày công thường // salaryInfo.WorkNormalDay = Math.Round(totalNormal.Value, 2); // //Tổng công nghỉ phép hưởng lương // salaryInfo.WorkPaidLeave = Math.Round(totalWorkPaidLeave.Value, 2); // //Tổng công thêm giờ // salaryInfo.OverTime = Math.Round(totalOverTime.Value, 2); // //Tổng tăng ca ngày // salaryInfo.OverTimeDay = Math.Round(totalOverTimeDay.Value, 2); // //Tổng tăng ca đêm // salaryInfo.OverTimeNight = Math.Round(totalOverTimeNight.Value, 2); // //Tổng tăng ca ngày lễ // salaryInfo.OverTimeHoliday = Math.Round(totalOverTimeHoliday.Value, 2); // //Tổng tăng ca cuối tuần // salaryInfo.OverTimeWeekend = Math.Round(totalOverTimeWeekend.Value, 2); // //Tổng công không phép // salaryInfo.WorkUnLeave = Math.Round(totalUnleaveK.Value, 2); // //Tổng công công tác // salaryInfo.WorkGoWork = Math.Round(totalGoWorkC.Value, 2); // //Tổng công trễ // salaryInfo.WorkLate = Math.Round(totalLateM.Value, 2); // //Tổng công nghỉ phép không hưởng lương // salaryInfo.WorkUnpaidLeave = Math.Round(totalUnpaidLeaveP.Value, 2); // //Tổng nghỉ lễ // salaryInfo.WorkHoliday = Math.Round(totalHolidayL.Value, 2); //} }