protected async Task CreateMobile(CreateOrEditMobileDataChamCongDto 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); DataChamCong dataChamCong = new DataChamCong(); dataChamCong.MaChamCong = input.MaChamCong; dataChamCong.ProcessDate = input.ProcessDate.Date; dataChamCong.CheckTime = input.CheckTime; dataChamCong.TimeViolatingRuleFirstDuration = MathTimeViolatingRuleDurationFirst(input.ProcessDate.Date, dataChamCong.CheckTime, workTimeMonday, workTimeDaily, middleStart, middleEnd); dataChamCong.Status = DataChamCongConsts.PROCESS; dataChamCong.CheckIn = input.CheckTime; await _dataChamCongRepository.InsertAsync(dataChamCong); } catch (Exception ex) { throw; } }
public async Task CreateOrEditMobile(int maChamCong) { try { DateTime now = DateTime.Now; var dataChamCong = await _dataChamCongRepository.FirstOrDefaultAsync(x => x.MaChamCong == maChamCong && x.ProcessDate.Date == now.Date); var input = new CreateOrEditMobileDataChamCongDto() { CheckTime = now.ToString("HH:mm") + ":00", MaChamCong = maChamCong, ProcessDate = DateTime.Now.Date }; if (dataChamCong == null) { await CreateMobile(input); } else { input.Id = dataChamCong.Id; await UpdateMobile(input); } } catch (Exception e) { Logger.Error(e.Message, e); } }
public async Task CreateOrEditMobile(CreateOrEditMobileDataChamCongDto input) { var dataChamCong = await _dataChamCongRepository.FirstOrDefaultAsync(x => x.MaChamCong == input.MaChamCong && x.ProcessDate == input.ProcessDate.Date); if (dataChamCong == null) { await CreateMobile(input); } else { input.Id = dataChamCong.Id; await UpdateMobile(input); } }
//[AbpAuthorize(AppPermissions.Pages_DataChamCongs_Edit)] protected virtual async Task UpdateMobile(CreateOrEditMobileDataChamCongDto input) { try { // 7h30 var workTimeMonday = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_MONDAY)); // 7h45 var workTimeDaily = await _truongGiaoDichRepository.FirstOrDefaultAsync(x => x.Code.Equals(TruongGiaoDichConsts.WORKTIME) && x.CDName.Equals(DataChamCongConsts.WORKTIME_START_DAILY)); // 17h30 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.CheckTime; if (!timeCheckList.Any(x => x.Equals(timeStr))) { var checkTime = input.CheckTime; dataChamCong.CheckOut = checkTime; dataChamCong.ProcessDate = input.ProcessDate.Date; 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); } }