Esempio n. 1
0
        /// <summary>
        /// بروزرسانی نشانه محاسبات
        /// </summary>
        /// <param name="personId"></param>
        /// <param name="cfpDate"></param>
        protected void UpdateCFP(decimal personId, DateTime cfpDate)
        {
            using (NHibernateSessionManager.Instance.BeginTransactionOn())
            {
                try
                {
                    string className = Utility.CallerCalassName;

                    LogUserAction(String.Format("CFP {0} Prs:{1} cls:{2} ", Utility.ToPersianDate(cfpDate), personId, className));

                    CFP cfp = cfpRepository.GetByPersonID(personId);
                    if (cfp != null && cfp.ID > 0)
                    {
                        if (cfp.Date.Date >= cfpDate.Date)
                        {
                            cfp.Date = cfpDate.Date;
                            cfp.CalculationIsValid = false;
                            cfpRepository.WithoutTransactUpdate(cfp);
                        }
                    }
                    else
                    {
                        cfpRepository.InsertCFP(personId, cfpDate.Date);
                    }
                    PermitRepository permitRep = new PermitRepository();
                    permitRep.InvalidateTrafficCalculation(personId, cfpDate);
                    NHibernateSessionManager.Instance.CommitTransactionOn();
                }
                catch (Exception ex)
                {
                    NHibernateSessionManager.Instance.RollbackTransactionOn();
                    throw ex;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// برای تمامی پرسنل
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="action"></param>
        protected void UpdateCFPByCalendar1(decimal calendarTypeId, int year, IList <DateTime> oldCalDateList, IList <CalendarCellInfo> calendars)
        {
            DateTime         firstDate = this.GetFirstDateDiffrence(year, oldCalDateList, calendars, calendarTypeId).Date;
            PersonRepository prsRep    = new PersonRepository(false);
            IList <decimal>  prsIds    = prsRep.GetAllActivePersonIds();

            if (InTestCasePersonContext != null && InTestCasePersonContext.Count > 0)
            {
                prsIds = InTestCasePersonContext;
            }

            DateTime newCfpDate = firstDate;

            foreach (decimal prsId in prsIds)
            {
                CFP cfp = base.GetCFP(prsId);

                if (cfp.ID == 0 || cfp.Date > newCfpDate)
                {
                    DateTime calculationLockDate = base.UIValidator.GetCalculationLockDate(prsId);

                    //بسته بودن محاسبات
                    if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                    {
                        newCfpDate = calculationLockDate.AddDays(1);
                    }

                    base.UpdateCFP(prsId, newCfpDate);
                }
            }
        }
Esempio n. 3
0
        protected void UpdateCFP1(CalculationRangeGroup obj, UIActionType action)
        {
            if (action == UIActionType.EDIT)
            {
                NHibernateSessionManager.Instance.ClearSession();
                CalculationRangeGroup dateRangeGroup = base.GetByID(obj.ID);
                if (dateRangeGroup.PersonRangeAssignmentList != null)
                {
                    foreach (PersonRangeAssignment assign in dateRangeGroup.PersonRangeAssignmentList)
                    {
                        decimal  personId   = assign.Person.ID;
                        CFP      cfp        = base.GetCFP(personId);
                        DateTime newCfpDate = assign.FromDate;

                        if (cfp.ID == 0 || cfp.Date > newCfpDate)
                        {
                            DateTime calculationLockDate = base.UIValidator.GetCalculationLockDate(personId);

                            //بسته بودن محاسبات
                            if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                            {
                                newCfpDate = calculationLockDate.AddDays(1);
                            }

                            base.UpdateCFP(personId, newCfpDate);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        ///  بروزرسانی نشانه تغییرات برای پرسنلی که به گروه قانون این سهمیه مرخصی منتسب می باشند
        /// </summary>
        /// <param name="obj">سهمیه مرخصی</param>
        /// <param name="action">نوع عملیات</param>
        protected void UpdateCFP1(Budget obj, UIActionType action)
        {
            if (action == UIActionType.ADD)
            {
                RuleCategory ruleCat = new BRuleCategory().GetByID(obj.RuleCategory.ID);
                foreach (PersonRuleCatAssignment assgn in ruleCat.PersonRuleCatAssignList)
                {
                    decimal  personId   = assgn.Person.ID;
                    CFP      cfp        = base.GetCFP(personId);
                    DateTime newCfpDate = obj.Date;
                    if (cfp.ID == 0 || cfp.Date > newCfpDate)
                    {
                        DateTime calculationLockDate = base.UIValidator.GetCalculationLockDate(personId);

                        //بسته بودن محاسبات
                        if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                        {
                            newCfpDate = calculationLockDate.AddDays(1);
                        }

                        base.UpdateCFP(personId, newCfpDate);
                    }
                }
            }
        }
Esempio n. 5
0
 public void UpdateCFP(IList <Person> personList, DateTime newCfpDate, bool invalidateTraffic)
 {
     try
     {
         IList <CFP> cfpList = new List <CFP>();
         foreach (Person prs in personList)
         {
             decimal personId = prs.ID;
             CFP     cfp      = base.GetCFP(personId);
             if (cfp.ID == 0 || cfp.Date > newCfpDate)
             {
                 cfp.Date  = newCfpDate.Date;
                 cfp.PrsId = personId;
                 cfpList.Add(cfp);
             }
             else if (invalidateTraffic)
             {
                 cfpList.Add(cfp);
             }
         }
         base.UpdateCFP(cfpList, invalidateTraffic);
     }
     catch (Exception ex)
     {
         LogException(ex);
     }
 }
Esempio n. 6
0
        /// <summary>
        /// بروزرسانی نشانه تغییرات
        /// </summary>
        /// <param name="obj"></param>
        private void InsertCFP(decimal personId, DateTime date)
        {
            CFP cfp = new CFP();

            cfp.PrsId = personId;
            cfp.Date  = date;
            cfp.CalculationIsValid = false;
            cfpRepository.Save(cfp);
        }
Esempio n. 7
0
        public void PutCfp(string id, CFP cfp)
        {
            var mongoCFP = new MongoCFP
            {
                id     = cfp.id,
                status = cfp.status
            };

            cfpCollection.PutCFP(id, mongoCFP);
        }
Esempio n. 8
0
        protected CFP GetCFP(decimal personId)
        {
            CFP cfp = cfpRepository.GetByPersonID(personId);

            if (cfp != null && cfp.ID > 0)
            {
                return(cfp);
            }
            return(new CFP());
        }
Esempio n. 9
0
        protected void UpdateCFPByCalendar(decimal calendarTypeId, int year, IList <DateTime> oldCalDateList, IList <CalendarCellInfo> calendars)
        {
            DateTime         firstDate = this.GetFirstDateDiffrence(year, oldCalDateList, calendars, calendarTypeId).Date;
            PersonRepository prsRep    = new PersonRepository(false);
            IList <decimal>  prsIds    = prsRep.GetAllActivePersonIds();

            if (InTestCasePersonContext != null && InTestCasePersonContext.Count > 0)
            {
                prsIds = InTestCasePersonContext;
            }

            IList <CFP> cfpList = new List <CFP>();
            Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>();

            foreach (decimal prsId in prsIds)
            {
                DateTime calculationLockDate = DateTime.Now;
                decimal  personId            = prsId;
                Person   prs = prsRep.GetById(personId, false);
                if (prs.PersonTASpec.UIValidationGroup != null)
                {
                    decimal uiValidateionGrpId = prs.PersonTASpec.UIValidationGroup.ID;
                    if (!lockDates.ContainsKey(uiValidateionGrpId))
                    {
                        calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(prs.PersonTASpec.UIValidationGroup.ID);
                        lockDates.Add(uiValidateionGrpId, calculationLockDate);
                    }
                    else
                    {
                        calculationLockDate = lockDates[uiValidateionGrpId];
                    }
                }
                CFP      cfp        = base.GetCFP(personId);
                DateTime newCfpDate = firstDate;

                //بسته بودن محاسبات
                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);
        }
Esempio n. 10
0
        protected override void UpdateCFP(CalculationRangeGroup obj, UIActionType action)
        {
            if (action == UIActionType.EDIT)
            {
                IList <CFP> cfpList = new List <CFP>();
                Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>();
                NHibernateSessionManager.Instance.ClearSession();
                CalculationRangeGroup dateRangeGroup = base.GetByID(obj.ID);
                if (dateRangeGroup.PersonRangeAssignmentList != null)
                {
                    foreach (PersonRangeAssignment assign in dateRangeGroup.PersonRangeAssignmentList)
                    {
                        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);
                }
            }
        }
Esempio n. 11
0
        protected override void UpdateCFP(RuleCategory obj, UIActionType action)
        {
            if (action == UIActionType.EDIT)
            {
                IList <CFP> cfpList = new List <CFP>();
                Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>();
                IList <CFP> personCfpList = new CFPRepository().GetCFPListByRuleCategory(obj.ID);
                foreach (PersonRuleCatAssignment assgn in obj.PersonRuleCatAssignList)
                {
                    DateTime calculationLockDate = DateTime.Now;
                    decimal  personId            = assgn.Person.ID;
                    if (assgn.Person.PersonTASpec.UIValidationGroup != null)
                    {
                        decimal uiValidateionGrpId = assgn.Person.PersonTASpec.UIValidationGroup.ID;
                        if (!lockDates.ContainsKey(uiValidateionGrpId))
                        {
                            calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(assgn.Person.PersonTASpec.UIValidationGroup.ID);
                            lockDates.Add(uiValidateionGrpId, calculationLockDate);
                        }
                        else
                        {
                            calculationLockDate = lockDates[uiValidateionGrpId];
                        }
                    }
                    //CFP cfp = base.GetCFP(personId);
                    CFP      cfp        = personCfpList.Where(x => x.PrsId == personId).FirstOrDefault();
                    DateTime newCfpDate = Utility.ToMildiDateTime(assgn.FromDate);

                    // DateTime calculationLockDate = base.UIValidator.GetCalculationLockDate(personId);

                    //بسته بودن محاسبات
                    if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                    {
                        newCfpDate = calculationLockDate.AddDays(1);
                    }
                    if (cfp == null || cfp.ID == 0 || cfp.Date > newCfpDate)
                    {
                        cfp.Date  = newCfpDate.Date;
                        cfp.PrsId = personId;
                        cfpList.Add(cfp);
                    }
                    //base.UpdateCFP(personId, newCfpDate);
                }
                base.UpdateCFP(cfpList, false);
            }
        }
Esempio n. 12
0
        protected override void UpdateCFP(AssignRuleParameter obj, UIActionType action)
        {
            if (action != UIActionType.ADD)
            {
                IList <CFP> cfpList = new List <CFP>();
                Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>();
                foreach (PersonRuleCatAssignment assgn in obj.Rule.Category.PersonRuleCatAssignList)
                {
                    DateTime calculationLockDate = DateTime.Now;
                    decimal  personId            = assgn.Person.ID;
                    if (assgn.Person.PersonTASpec.UIValidationGroup != null)
                    {
                        decimal uiValidateionGrpId = assgn.Person.PersonTASpec.UIValidationGroup.ID;
                        if (!lockDates.ContainsKey(uiValidateionGrpId))
                        {
                            calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(assgn.Person.PersonTASpec.UIValidationGroup.ID);
                            lockDates.Add(uiValidateionGrpId, calculationLockDate);
                        }
                        else
                        {
                            calculationLockDate = lockDates[uiValidateionGrpId];
                        }
                    }
                    CFP      cfp        = base.GetCFP(personId);
                    DateTime newCfpDate = Utility.ToMildiDateTime(assgn.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);
            }
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        protected override void UpdateCFP(PersonRuleCatAssignment obj, UIActionType action)
        {
            if (action == UIActionType.ADD || action == UIActionType.EDIT)
            {
                decimal  personId   = obj.Person.ID;
                CFP      cfp        = base.GetCFP(personId);
                DateTime newCfpDate = Utility.ToMildiDateTime(obj.FromDate);
                if (cfp.ID == 0 || cfp.Date > newCfpDate)
                {
                    DateTime calculationLockDate = base.UIValidator.GetCalculationLockDate(personId);

                    //بسته بودن محاسبات
                    if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                    {
                        newCfpDate = calculationLockDate.AddDays(1);
                    }

                    base.UpdateCFP(personId, newCfpDate);
                }
            }
        }
Esempio n. 15
0
        private void UpdateCFP(IList <Person> personList, DateTime minChangeDate)
        {
            BusinessEntity baseBus = new BusinessEntity();
            IList <CFP>    cfpList = new List <CFP>();
            Dictionary <decimal, DateTime> lockDates = new Dictionary <decimal, DateTime>();

            foreach (Person prs in personList)
            {
                DateTime calculationLockDate = DateTime.Now;
                if (prs.PersonTASpec.UIValidationGroup != null)
                {
                    decimal uiValidateionGrpId = prs.PersonTASpec.UIValidationGroup.ID;
                    if (!lockDates.ContainsKey(uiValidateionGrpId))
                    {
                        calculationLockDate = baseBus.UIValidator.GetCalculationLockDateByGroup(prs.PersonTASpec.UIValidationGroup.ID);
                        lockDates.Add(uiValidateionGrpId, calculationLockDate);
                    }
                    else
                    {
                        calculationLockDate = lockDates[uiValidateionGrpId];
                    }
                }
                CFP      cfp        = baseBus.GetCFP(prs.ID);
                DateTime newCfpDate = minChangeDate;


                //بسته بودن محاسبات
                if (calculationLockDate > Utility.GTSMinStandardDateTime && calculationLockDate > newCfpDate)
                {
                    newCfpDate = calculationLockDate.AddDays(1);
                }
                if (cfp.ID == 0 || cfp.Date > newCfpDate)
                {
                    cfp.Date  = newCfpDate.Date;
                    cfp.PrsId = prs.ID;
                    cfpList.Add(cfp);
                }
            }
            baseBus.UpdateCFP(cfpList, false);
        }
 public void Put(string id, [FromBody] CFP value)
 {
     cfpDomain.PutCfp(id, value);
 }
Esempio n. 17
0
        /// <summary>
        /// بروزرسانی نشانه محاسبات
        /// </summary>
        /// <param name="personId"></param>
        /// <param name="newCfpDate"></param>
        protected void UpdateCFP(decimal personId, DateTime newCfpDate, bool isForce = false)
        {
            using (NHibernateSessionManager.Instance.BeginTransactionOn())
            {
                try
                {
                    IList <decimal> prsIds = new List <decimal>();
                    prsIds.Add(personId);
                    IList <decimal> UiValidationGroupIdList = uivalidationGroupingRepository.GetUivalidationIdList(prsIds);
                    DateTime        calculationLockDate     = Utility.GTSMinStandardDateTime;
                    if (UiValidationGroupIdList.Count > 0)
                    {
                        calculationLockDate = base.UIValidator.GetCalculationLockDateByGroup(UiValidationGroupIdList.FirstOrDefault());
                    }

                    string className = Utility.CallerCalassName;



                    CFP      cfp          = cfpRepository.GetByPersonID(personId);
                    DateTime finalCfpDate = Utility.GTSMinStandardDateTime;
                    if (cfp != null && cfp.ID > 0)
                    {
                        if (UiValidationGroupIdList.Count > 0)
                        {
                            if (cfp.Date <= newCfpDate || cfp.Date < calculationLockDate)
                            {
                                finalCfpDate = cfp.Date;
                            }
                            else if (calculationLockDate <= cfp.Date && calculationLockDate >= newCfpDate)
                            {
                                if (!isForce)
                                {
                                    finalCfpDate = calculationLockDate.AddDays(1);
                                }
                                else
                                {
                                    finalCfpDate = newCfpDate;
                                }
                            }
                            else if (newCfpDate > calculationLockDate && newCfpDate < cfp.Date)
                            {
                                finalCfpDate = newCfpDate;
                            }
                        }
                        else
                        {
                            finalCfpDate = newCfpDate;
                        }
                        //if (UiValidationGroupIdList.Count > 0)
                        //{
                        //    if(calculationLockDate >= newCfpDate || calculationLockDate >= cfp.Date)
                        //    {
                        //        finalCfpDate = calculationLockDate.AddDays(1);
                        //    }
                        //    else if (cfp.Date > calculationLockDate && cfp.Date <= newCfpDate)
                        //    {
                        //        finalCfpDate = cfp.Date;
                        //    }
                        //    else if (newCfpDate > calculationLockDate && newCfpDate <= cfp.Date)
                        //    {
                        //        finalCfpDate = newCfpDate;
                        //    }

                        //}
                        //else
                        //{
                        //    finalCfpDate = newCfpDate;
                        //}

                        LogUserAction(String.Format("CFP {0} Prs:{1} cls:{2} ", Utility.ToPersianDate(finalCfpDate), personId, className));
                        cfp.Date = finalCfpDate.Date;
                        cfp.CalculationIsValid = false;
                        cfpRepository.WithoutTransactUpdate(cfp);
                    }
                    else
                    {
                        cfpRepository.InsertCFP(personId, finalCfpDate);
                    }

                    //LogUserAction(String.Format("Before InvalidateTrafficCalculation CFP {0} Prs:{1} cls:{2} ", Utility.ToPersianDate(cfpDate), personId, className));
                    //PermitRepository permitRep = new PermitRepository();
                    //permitRep.InvalidateTrafficCalculation(personId, cfpDate);
                    NHibernateSessionManager.Instance.CommitTransactionOn();
                    //LogUserAction(String.Format("After InvalidateTrafficCalculation CFP {0} Prs:{1} cls:{2} ", Utility.ToPersianDate(cfpDate), personId, className));
                }
                catch (Exception ex)
                {
                    NHibernateSessionManager.Instance.RollbackTransactionOn();
                    LogException(ex);
                    throw ex;
                }
            }
        }