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);
        }
Beispiel #2
0
        //[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);
        }