public IEnumerable<Att_OvertimeModel> Post(Att_ComputeOvertimeModel model) { Att_WorkDayServices serviceWorkDay = new Att_WorkDayServices(); var status = string.Empty; var lstWorkDay = serviceWorkDay.GetWorkDaysByInOut(model.DateFrom, model.DateTo); Cat_ShiftServices serviceShift = new Cat_ShiftServices(); var lstShift = serviceShift.GetDataNotParam<Cat_ShiftEntity>(ConstantSql.hrm_cat_sp_get_Shift, UserLogin, ref status); //Cat_ShiftItemServices serviceShiftItem = new Cat_ShiftItemServices(); //var lstShiftItem = serviceShiftItem.GetCatShiftItem(); var lstShiftItem = new List<Cat_ShiftItemEntity>(); Cat_DayOffServices servicesDayOff = new Cat_DayOffServices(); var lstDayOff = servicesDayOff.GetAllUseEntity<Cat_DayOffEntity>(ref status).ToList(); Cat_OvertimeTypeServices servicesOvertimeType = new Cat_OvertimeTypeServices(); var lstOvertimeType = servicesOvertimeType.GetDataNotParam<Cat_OvertimeTypeEntity>(ConstantSql.hrm_cat_sp_get_OvertimeType, UserLogin, ref status); var Att_OvertimeInfoFillterAnalyze = new Att_OvertimeInfoFillterAnalyze() { isAllowGetAfterShift = model.isAllowGetAfterShift, isAllowGetBeforeShift = model.isAllowGetBeforeShift, isAllowGetInShift = model.isAllowGetInShift, isAllowGetOTOutterShift = model.isAllowGetOTOutterShift, isAllowGetTypeBaseOnActualDate = model.isAllowGetTypeBaseOnActualDate, isAllowGetTypeBaseOnBeginShift = model.isAllowGetTypeBaseOnBeginShift, isAllowGetTypeBaseOnEndShift = model.isAllowGetTypeBaseOnEndShift, MininumOvertimeHour = model.MininumOvertimeHour }; var service = new Att_OvertimeServices(); var result = service.AnalyzeOvertime(lstWorkDay, lstShift, lstShiftItem, lstDayOff, lstOvertimeType, Att_OvertimeInfoFillterAnalyze, UserLogin).ToList().Translate<Att_OvertimeModel>(); return result; }
//[Test] public void NUnit_Overtime_Domain_AnalyzeOvertime() { #region listWorkDay List<Att_WorkDayEntity> listWorkDay = new List<Att_WorkDayEntity>(); Att_WorkDayEntity _workDayEntity = new Att_WorkDayEntity() { ProfileID = 1, WorkDate = DateTime.Parse("01-09-14"), FirstInTime = DateTime.Parse("01-09-14 07:00:00"), LastOutTime = DateTime.Parse("02-09-14 07:00:00"), InTime1 = DateTime.Parse("01-09-14 07:00:00"), OutTime1 = DateTime.Parse("02-09-14 07:00:00"), ShiftID = 1, WorkDuration = (float)14.5 }; listWorkDay.Add(_workDayEntity); #endregion #region listShift List<Cat_ShiftEntity> listShift = new List<Cat_ShiftEntity>(); Cat_ShiftEntity _shiftEntity = new Cat_ShiftEntity() { Id = 1, ShiftName = "Ca Test", InTime = DateTime.Parse("01-09-14 07:00:00"), CoOut = 9.5, CoBreakIn = 4, CoBreakOut = 5.5, NightTimeStart = DateTime.Parse("01-09-14 21:00:00"), NightTimeEnd = DateTime.Parse("02-09-14 05:00:00") }; listShift.Add(_shiftEntity); #endregion #region listShiftItem List<Cat_ShiftItemEntity> listShiftItem = new List<Cat_ShiftItemEntity>(); Cat_ShiftItemEntity _shiftItemEntity1 = new Cat_ShiftItemEntity() { ShiftItemName = "Giao Ca Sang", ShiftID = 1, CoFrom = 4, CoTo = 5.5 }; Cat_ShiftItemEntity _shiftItemEntity2 = new Cat_ShiftItemEntity() { ShiftItemName = "Giao Ca Toi", ShiftID = 1, CoFrom = 9.5, CoTo = 10 }; listShiftItem.Add(_shiftItemEntity1); listShiftItem.Add(_shiftItemEntity2); #endregion #region listDayOff List<Cat_DayOffEntity> listDayOff = new List<Cat_DayOffEntity>(); Cat_DayOffEntity _DayOffEntity1 = new Cat_DayOffEntity() { DateOff = DateTime.Parse("02-09-14"), }; listDayOff.Add(_DayOffEntity1); #endregion #region listOvertimeType List<Cat_OvertimeTypeEntity> listOvertimeType = new List<Cat_OvertimeTypeEntity>(); Cat_OvertimeTypeEntity _OvertimeTypeEntity1 = new Cat_OvertimeTypeEntity() { OvertimeTypeName = "OT - 3.0", OvertimeTypeCode = "E_HOLIDAY", Rate = 3, TaxRate = 1, }; Cat_OvertimeTypeEntity _OvertimeTypeEntity5 = new Cat_OvertimeTypeEntity() { OvertimeTypeName = "OT - 3.5", OvertimeTypeCode = "E_HOLIDAY_NIGHTSHIFT", Rate = 3.5, TaxRate = 1, }; Cat_OvertimeTypeEntity _OvertimeTypeEntity2 = new Cat_OvertimeTypeEntity() { OvertimeTypeName = "OT - 2.0", OvertimeTypeCode = "E_WEEKEND", Rate = 1, TaxRate = 1, }; Cat_OvertimeTypeEntity _OvertimeTypeEntity3 = new Cat_OvertimeTypeEntity() { OvertimeTypeName = "OT - 1.5", OvertimeTypeCode = "E_WORKDAY", Rate = 1.5, TaxRate = 1, }; Cat_OvertimeTypeEntity _OvertimeTypeEntity4 = new Cat_OvertimeTypeEntity() { OvertimeTypeName = "OT - 2.0", OvertimeTypeCode = "E_WORKDAY_NIGHTSHIFT", Rate = 2, TaxRate = 1, }; listOvertimeType.Add(_OvertimeTypeEntity1); listOvertimeType.Add(_OvertimeTypeEntity2); listOvertimeType.Add(_OvertimeTypeEntity3); listOvertimeType.Add(_OvertimeTypeEntity4); #endregion #region listOvertimeInfoFillterAnalyze Att_OvertimeInfoFillterAnalyze _OvertimeInfoFillterAnalyzeEntity = new Att_OvertimeInfoFillterAnalyze() { isAllowGetOTOutterShift = true, isAllowGetBeforeShift = false, isAllowGetAfterShift = true, isAllowGetInShift = false, isAllowGetTypeBaseOnActualDate = true, isAllowGetTypeBaseOnBeginShift = true, isAllowGetTypeBaseOnEndShift = false, isAllowGetNightShift = true, // cắt h qua đêm 12h khuya isBreakMiddleNight = true, MininumOvertimeHour = 0.5 }; #endregion Att_OvertimeServices service = new Att_OvertimeServices(); List<Att_OvertimeEntity> listResult = service.AnalyzeOvertime(listWorkDay, listShift, listShiftItem, listDayOff, listOvertimeType, _OvertimeInfoFillterAnalyzeEntity); }