示例#1
0
        /// <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)));
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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;
            }
        }
示例#4
0
 /// <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);
 }
示例#5
0
        /// <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);
            //}
        }
示例#6
0
        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);
            }
        }
示例#7
0
        /// <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);
            //}
        }