示例#1
0
        public IList <CreateOrEditDataChamCongDto> GetDataChamCongAll()
        {
            IList <CreateOrEditDataChamCongDto> result = new List <CreateOrEditDataChamCongDto>();
            var configs = AppConfigSection.GetInstance();

            if (configs.Device.Enable)
            {
                LogUtils.WirteLogInfo("Schedule Get Data From Device Start");

                AbriDoorSDK.Instance.Connect_Net(configs.Device.DeviceAddress, configs.Device.Port);

                int dwTMachineNumber = 0, dwEnrollNumber = 0, dwEMachineNumber = 0, dwVerifyMode = 0,
                    dwInOutMode = 0, dwYear = 0, dwMonth = 0, dwDay = 0, dwHour = 0, dwMinute = 0;

                AbriDoorSDK.Instance.ReadAllGLogData();

                while (AbriDoorSDK.Instance.GetAllGLogData(ref dwTMachineNumber, ref dwEnrollNumber, ref dwEMachineNumber, ref dwVerifyMode, ref dwInOutMode, ref dwYear, ref dwMonth, ref dwDay, ref dwHour, ref dwMinute))
                {
                    var timekeepingDate = new DateTime(dwYear, dwMonth, dwDay, dwHour, dwMinute, 0);
                    var dataChamCong    = new CreateOrEditDataChamCongDto();
                    dataChamCong.MaChamCong = dwEnrollNumber;
                    dataChamCong.TimeCheck  = timekeepingDate.ToString(BaseConfig.FormatDate);

                    result.Add(dataChamCong);
                }

                AbriDoorSDK.Instance.Disconnect();

                LogUtils.WirteLogInfo($"Schedule Get Data From Device End - Count: {result.Count}");
            }

            return(result);
        }
示例#2
0
        //[AbpAuthorize(AppPermissions.Pages_DataChamCongs_Create)]
        protected virtual async Task Create(CreateOrEditDataChamCongDto input)
        {
            try
            {
                var workTimeMonday = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_MONDAY));

                var workTimeDaily = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_DAILY));

                /// kêt thúc làm việc buổi sáng: 12:00:00
                var middleStart = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.MIDDLE_START));

                /// giờ bắt đầu làm việc buổi chiều: 13:00:00
                var middleEnd = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.MIDDLE_END));

                var dataChamCong = ObjectMapper.Map <DataChamCong>(input);
                var checkTime    = input.TimeCheckDate.Value.ToString(AppConsts.TimeFormat);

                dataChamCong.ProcessDate = input.TimeCheckDate.Value.Date;
                dataChamCong.CheckTime   = checkTime;
                dataChamCong.TimeViolatingRuleFirstDuration = MathTimeViolatingRuleDurationFirst(dataChamCong.ProcessDate, dataChamCong.CheckTime, workTimeMonday, workTimeDaily, middleStart, middleEnd);
                dataChamCong.Status  = DataChamCongConsts.PROCESS;
                dataChamCong.CheckIn = checkTime;

                await _dataChamCongRepository.InsertAsync(dataChamCong);
            }
            catch (Exception ex)
            {
                // return ex.Message.ToString();
                throw;
            }
        }
示例#3
0
        public async Task CreateOrEdit(CreateOrEditDataChamCongDto input)
        {
            if (input.TimeCheckDate.HasValue)
            {
                var dataChamCong = await _dataChamCongRepository.FirstOrDefaultAsync(x => x.MaChamCong == input.MaChamCong && x.ProcessDate == input.TimeCheckDate.Value.Date);

                if (dataChamCong == null)
                {
                    await Create(input);
                }
                else
                {
                    input.Id = dataChamCong.Id;
                    await Update(input);
                }
            }
        }
示例#4
0
        //[AbpAuthorize(AppPermissions.Pages_DataChamCongs_Edit)]
        protected virtual async Task Update(CreateOrEditDataChamCongDto input)
        {
            try
            {
                var workTimeMonday = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_MONDAY));

                var workTimeDaily = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_DAILY));

                var workTimeEnd = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_END));

                ///workTimeApprove: số giờ tối thiểu làm trong 1 buổi để được chấm công
                var workTimeApprove = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORK_TIME_APPROVE));

                /// kêt thúc làm việc buổi sáng: 12:00:00
                var middleStart = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.MIDDLE_START));

                /// giờ bắt đầu làm việc buổi chiều: 13:00:00
                var middleEnd = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.MIDDLE_END));

                var dataChamCong = await _dataChamCongRepository.FirstOrDefaultAsync((int)input.Id);

                var timeCheckList = dataChamCong.CheckTime.Split('~');
                var timeStr       = input.TimeCheckDate.Value.ToString(AppConsts.TimeFormat);

                if (!timeCheckList.Any(x => x.Equals(timeStr)))
                {
                    var checkTime = input.TimeCheckDate.Value.ToString(AppConsts.TimeFormat);

                    dataChamCong.CheckOut   = checkTime;
                    dataChamCong.CheckTime += $"~{checkTime}";
                    dataChamCong.TimeWorkMorningDuration        = MathTimeWorkMorningDuration(dataChamCong.CheckTime, dataChamCong.ProcessDate, workTimeMonday, workTimeDaily, workTimeApprove, middleStart, middleEnd);
                    dataChamCong.TimeWorkAfternoonDuration      = MathTimeWorkAfternoonDuration(dataChamCong.CheckTime, workTimeEnd, workTimeApprove, middleStart, middleEnd);
                    dataChamCong.TimeOTDuration                 = MathTimeOTDurationDaily(dataChamCong.CheckTime, workTimeEnd);
                    dataChamCong.TimeViolatingRuleFirstDuration = MathTimeViolatingRuleDurationFirst(dataChamCong.ProcessDate, dataChamCong.CheckTime, workTimeMonday, workTimeDaily, middleStart, middleEnd);
                    dataChamCong.TimeViolatingRuleLastDuration  = MathTimeViolatingRuleDurationLast(dataChamCong.CheckTime, middleEnd, workTimeEnd);
                    dataChamCong.Status = DataChamCongConsts.SUCCESS;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            }
        }