/// <summary> /// /// </summary> /// <param name="assignWorkGroup">گروه کاری تخصیص داده شده به پرسنل</param> protected override void InsertValidate(AssignWorkGroup assignWorkGroup) { UIValidationExceptions exception = new UIValidationExceptions(); PersonRepository personRep = new PersonRepository(false); WorkGroupRepository workRep = new WorkGroupRepository(false); if (assignWorkGroup.Person == null || personRep.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new Person().ID), assignWorkGroup.Person.ID)) == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.AssignWorkGroupPersonIdNotExsits, "پرسنلی با این مشخصات یافت نشد", ExceptionSrc)); } if (assignWorkGroup.WorkGroup == null || workRep.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new WorkGroup().ID), assignWorkGroup.WorkGroup.ID)) == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.AssignWorkGroupIdNotExsits, "گروه کاری با این مشخصات یافت نشد", ExceptionSrc)); } if (assignWorkGroup.FromDate < Utility.GTSMinStandardDateTime) { exception.Add(new ValidationException(ExceptionResourceKeys.AssignWorkGroupSmallerThanStandardValue, "مقدار تاریخ انتساب گروه محدوده محاسبات از حد مجاز کمتر میباشد", ExceptionSrc)); } if (asignRepository.Find(x => x.Person.ID == assignWorkGroup.Person.ID && x.FromDate.Date == assignWorkGroup.FromDate.Date).Count() > 0) { exception.Add(new ValidationException(ExceptionResourceKeys.AssignWorkGroupIsRepeated, "تاریخ تکراری است", ExceptionSrc)); } if (exception.Count > 0) { throw exception; } }
public void UpdateCFPByWorkGroupId(decimal workGroupId, DateTime minChangeDate) { IList <CFP> cfpList = new List <CFP>(); Dictionary <decimal, DateTime> uivalidationGroupIdDic = new Dictionary <decimal, DateTime>(); WorkGroupRepository workGroupRep = new WorkGroupRepository(false); WorkGroup wg = workGroupRep.GetById(workGroupId, false); IList <AssignWorkGroup> assignWorkGroupList = wg.AssignWorkGroupList; IList <CFP> cfpPersonList = new List <CFP>(); if (assignWorkGroupList.Count > 0) { cfpPersonList = base.GetCFPPersons(assignWorkGroupList.Select(a => a.Person.ID).ToList <decimal>()); } IList <decimal> UiValidationGroupIdList = uivalidationGroupingRepository.GetUivalidationIdListByWorkGroup(workGroupId); IList <decimal> cfpPersonIdInsertList = new List <decimal>(); foreach (decimal uiValidateionGrpId in UiValidationGroupIdList) { if (!uivalidationGroupIdDic.ContainsKey(uiValidateionGrpId)) { DateTime calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(uiValidateionGrpId); uivalidationGroupIdDic.Add(uiValidateionGrpId, calculationLockDate); } } base.UpdateCfpByWrokGroup(wg.ID, uivalidationGroupIdDic); cfpPersonIdInsertList = assignWorkGroupList.Where(p => cfpPersonList != null && !cfpPersonList.Select(c => c.PrsId).ToList().Contains(p.Person.ID)).Select(p => p.Person.ID).Distinct().ToList <decimal>(); if (cfpPersonIdInsertList.Count > 0) { base.InsertCfpByWrokGroup(cfpPersonIdInsertList, wg.ID, uivalidationGroupIdDic); } }
public void CheckInterfaceRuleGroup(ShiftPair pair) { BWorkGroupCalendar busWorkGroup = new BWorkGroupCalendar(); WorkGroupRepository workRep = new WorkGroupRepository(false); IList <WorkGroup> list = workRep.GetAllWorkGroupByShift(pair.ShiftId); foreach (WorkGroup workGroup in list) { busWorkGroup.CheckInterfaceRuleGroup(workGroup.ID); } }
IList <decimal> IDataAccess.GetAccessibleWorkGroups() { if (userRepository.HasAllWorkGroupAccess(this.CurrentUserId) > 0) { IList <WorkGroup> list = new WorkGroupRepository(false).GetAll(); var ids = from obj in list select obj.ID; return(ids.ToList <decimal>()); } else { return(userRepository.GetUserWorkGroupIdList(this.CurrentUserId)); } }
protected void UpdateCFP(ShiftPair obj, UIActionType action) { //return; if (action == UIActionType.ADD || action == UIActionType.EDIT || action == UIActionType.DELETE) { BWorkGroupCalendar busWorkGroup = new BWorkGroupCalendar(); WorkGroupRepository workRep = new WorkGroupRepository(false); IList <WorkGroup> list = workRep.GetAllWorkGroupByShift(obj.ShiftId); foreach (WorkGroup workGroup in list) { DateTime?firstUse = shiftRepository.GetFirstShiftUsedInWorkGroup(obj.ShiftId, workGroup.ID); if (firstUse != null && firstUse > Utility.GTSMinStandardDateTime) { busWorkGroup.UpdateCFPByWorkGroupId(workGroup.ID, (DateTime)firstUse); } } } }
/// <summary> /// بررسی حداقل تاریخ /// بررسی تکراری نبودن تاریخ /// </summary> /// <param name="person">پرسنل</param> /// <param name="fromDate">از تاریخ</param> /// <param name="message"></param> /// <returns>وضعیت انجام عملیات</returns> private bool ValidateWorkGroupAssignment(Person person, DateTime fromDate, ref string message) { PersonRepository personRep = new PersonRepository(false); WorkGroupRepository workRep = new WorkGroupRepository(false); EntityRepository <AssignWorkGroup> asignRepository = new EntityRepository <AssignWorkGroup>(false); if (fromDate <= Utility.GTSMinStandardDateTime) { message += "مقدار تاریخ انتساب گروه کاری از حد مجاز کمتر میباشد" + " --- "; } //else if (asignRepository.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new AssignWorkGroup().Person), person), // new CriteriaStruct(Utility.GetPropertyName(() => new AssignWorkGroup().FromDate), fromDate, CriteriaOperation.Equal)) > 0) //{ // message += "قبلا در این تاریخ گروه کاری دیگری انتساب داده شده است" + " --- "; //} return(Utility.IsEmpty(message)); }
public void UpdateCFPByWorkGroupId(decimal workGroupId, DateTime minChangeDate) { IList <CFP> cfpList = new List <CFP>(); Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>(); WorkGroupRepository workGroupRep = new WorkGroupRepository(false); WorkGroup wg = workGroupRep.GetById(workGroupId, false); foreach (AssignWorkGroup assign in wg.AssignWorkGroupList) { DateTime calculationLockDate = DateTime.Now; decimal personId = assign.Person.ID; if (assign.Person.PersonTASpec.UIValidationGroup != null) { decimal uiValidateionGrpId = assign.Person.PersonTASpec.UIValidationGroup.ID; if (!lockDates.ContainsKey(uiValidateionGrpId)) { calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(assign.Person.PersonTASpec.UIValidationGroup.ID); lockDates.Add(uiValidateionGrpId, calculationLockDate); } else { calculationLockDate = lockDates[uiValidateionGrpId]; } } CFP cfp = base.GetCFP(personId); DateTime newCfpDate = assign.FromDate; //بسته بودن محاسبات if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate) { newCfpDate = calculationLockDate.AddDays(1); } if (cfp.ID == 0 || cfp.Date > newCfpDate) { cfp.Date = newCfpDate.Date; cfp.PrsId = personId; cfpList.Add(cfp); } } base.UpdateCFP(cfpList, false); }
public int SaveChanges(IList <CalendarCellInfo> cellInfoList, decimal workGroupId, int year) { try { WorkGroupRepository workGroupRep = new WorkGroupRepository(false); DateTime minDate = new DateTime(); DateTime maxDate = new DateTime(); if (sysLangruage == SysLanguageResource.Parsi) { minDate = Utility.ToMildiDate(String.Format("{0}/01/01", year)); maxDate = Utility.ToMildiDate(String.Format("{0}/01/01", year + 1)); } else if (sysLangruage == SysLanguageResource.English) { minDate = new DateTime(year, 1, 1); maxDate = new DateTime(year + 1, 1, 1); } int count = cellInfoList.GroupBy(x => x.Key) .Where(g => g.Count() > 1).Count(); if (count > 0) { UIValidationExceptions exception = new UIValidationExceptions(); exception.Add(ExceptionResourceKeys.WorkGroupCalendarDublicateDate, "برای روز دوبار شیفت انتساب داده شده است", ExceptionSrc); throw exception; } workGroupRep.DeleteWorkGroupDetail(workGroupId, minDate, maxDate.AddDays(-1)); IList <WorkGroupDetail> detailList = new List <WorkGroupDetail>(); foreach (CalendarCellInfo cellInfo in cellInfoList) { if (cellInfo.ShiftID != 0) { WorkGroupDetail detail = new WorkGroupDetail(); DateTime date = new DateTime(); if (sysLangruage == SysLanguageResource.Parsi) { date = Utility.ToMildiDate(String.Format("{0}/{1}/{2}", year, cellInfo.Month, cellInfo.Day)); } else if (sysLangruage == SysLanguageResource.English) { date = new DateTime(year, cellInfo.Month, cellInfo.Day); } detail.WorkGroup = new WorkGroup() { ID = workGroupId }; detail.Date = date; detail.Shift = new Shift() { ID = cellInfo.ShiftID }; base.SaveChanges(detail, UIActionType.ADD); } } this.UpdateCFPByWorkGroupId(workGroupId, minDate); return(cellInfoList.Count); } catch (Exception ex) { LogException(ex, "BWorkGroupCalendar", "SaveChanges"); throw ex; } }