Esempio n. 1
0
        public void Insert_IndexBeforeAndNextYearTest()
        {
            group_testObject.Name          = "Group Test 2";
            group_testObject.DateRangeList = new List <CalculationDateRange>();

            dateRangList_testObject[0].FromMonth = 12;
            dateRangList_testObject[0].FromDay   = 15;
            dateRangList_testObject[0].ToMonth   = 1;
            dateRangList_testObject[0].ToDay     = 14;

            dateRangList_testObject[11].FromMonth = 12;
            dateRangList_testObject[11].FromDay   = 15;
            dateRangList_testObject[11].ToMonth   = 1;
            dateRangList_testObject[11].ToDay     = 14;

            businessDateRange.InsertDateRange(group_testObject, defaultDateRanges, dateRangList_testObject, new List <decimal>()
            {
                ADOConcept1.ID, ADOConcept2.ID, ADOConcept3.ID
            });

            ClearSession();

            CalculationRangeGroup group = businessDateRange.GetByID(group_testObject.ID);
            CalculationDateRange  range = group.DateRangeList.Where(x => x.Order == CalculationDateRangeOrder.Month1).First();

            Assert.AreEqual(11215, range.FromIndex); //12/15
            Assert.AreEqual(20114, range.ToIndex);   //01/14

            range = group.DateRangeList.Where(x => x.Order == CalculationDateRangeOrder.Month12).First();
            Assert.AreEqual(21215, range.FromIndex); //12/15
            Assert.AreEqual(30114, range.ToIndex);   //01/14
        }
Esempio n. 2
0
 /// <summary>
 /// ایندکس عددی ابتدا و انتها را میسازد
 /// </summary>
 /// <param name="dateRange"></param>
 /// <param name="langName"></param>
 private void SetDateRangeIndex(CalculationDateRange dateRange)
 {
     //تداخل با سال قبل
     if (dateRange.Order == CalculationDateRangeOrder.Month1 && dateRange.FromMonth == 12)
     {
         dateRange.FromIndex = Utility.ToDateRangeIndex(dateRange.FromMonth, dateRange.FromDay, 1);
     }
     else
     {
         dateRange.FromIndex = Utility.ToDateRangeIndex(dateRange.FromMonth, dateRange.FromDay, 2);
     }
     //تداخل با سال بعد
     if (dateRange.Order == CalculationDateRangeOrder.Month12 && dateRange.ToMonth == 1)
     {
         dateRange.ToIndex = Utility.ToDateRangeIndex(dateRange.ToMonth, dateRange.ToDay, 3);
     }
     else
     {
         dateRange.ToIndex = Utility.ToDateRangeIndex(dateRange.ToMonth, dateRange.ToDay, 2);
     }
 }
Esempio n. 3
0
    private List <CalculationDateRange> CreateCalculationRangesList_CalculationRange(string CalculationRangesList)
    {
        List <CalculationDateRange> CalculationDateRanges = new List <CalculationDateRange>();
        JavaScriptSerializer        jsSerializer          = new JavaScriptSerializer();

        object[] ParamsBatchs = (object[])jsSerializer.DeserializeObject(CalculationRangesList);
        foreach (object paramBatch in ParamsBatchs)
        {
            ((Dictionary <string, object>)paramBatch).Add("IsNavigate", false);
            //Dictionary<string, object> paramDic = this.ConvertCalculationRangesList_CalculationRange((Dictionary<string, object>)paramBatch);
            Dictionary <string, object> paramDic             = (Dictionary <string, object>)paramBatch;
            CalculationDateRange        calculationDateRange = new CalculationDateRange();
            calculationDateRange.Order     = (CalculationDateRangeOrder)Enum.Parse(typeof(CalculationDateRangeOrder), paramDic["M"].ToString());
            calculationDateRange.FromMonth = int.Parse(paramDic["Fm"].ToString());
            calculationDateRange.FromDay   = int.Parse(paramDic["Fd"].ToString());
            calculationDateRange.ToMonth   = int.Parse(paramDic["Tm"].ToString());
            calculationDateRange.ToDay     = int.Parse(paramDic["Td"].ToString());
            CalculationDateRanges.Add(calculationDateRange);
        }
        return(CalculationDateRanges);
    }
Esempio n. 4
0
        public void Insert_IndexTest()
        {
            group_testObject.Name          = "Group Test 2";
            group_testObject.DateRangeList = new List <CalculationDateRange>();

            businessDateRange.InsertDateRange(group_testObject, defaultDateRanges, dateRangList_testObject, new List <decimal>()
            {
                ADOConcept1.ID, ADOConcept2.ID, ADOConcept3.ID
            });

            ClearSession();

            CalculationRangeGroup group = businessDateRange.GetByID(group_testObject.ID);
            CalculationDateRange  range = group.DateRangeList.Where(x => x.Order == CalculationDateRangeOrder.Month1).First();

            Assert.AreEqual(20101, range.FromIndex); //01/01
            Assert.AreEqual(20131, range.ToIndex);   //01/31

            range = group.DateRangeList.Where(x => x.Order == CalculationDateRangeOrder.Month12).First();
            Assert.AreEqual(21201, range.FromIndex); //12/01
            Assert.AreEqual(21229, range.ToIndex);   //12/29
        }
Esempio n. 5
0
        public void TestSetup()
        {
            businessDateRange       = new BDateRange();
            dateRange_testObject    = new CalculationDateRange();
            group_testObject        = new CalculationRangeGroup();
            dateRangList_testObject = new List <CalculationDateRange>();

            personTA.InsertQuery("0000", "ali", true, null);
            int personId = Convert.ToInt32(personTA.GetDataByBarcode("0000")[0][0]);

            groupTA.Insert("RangeGroup", "", 1);
            DatabaseGateway.TA_CalculationRangeGroupDataTable groupTable = new DatabaseGateway.TA_CalculationRangeGroupDataTable();
            groupTA.FillByGroupName(groupTable, "RangeGroup");

            ADOGroup.ID          = Convert.ToDecimal(groupTable.Rows[0]["CalcRangeGroup_ID"]);
            ADOGroup.Name        = Convert.ToString(groupTable.Rows[0]["CalcRangeGroup_Name"]);
            ADOGroup.Description = Convert.ToString(groupTable.Rows[0]["CalcRangeGroup_Des"]);

            assinTA.Insert(personId, ADOGroup.ID, DateTime.Now);

            DatabaseGateway.TA_ConceptTemplateDataTable concepts = new DatabaseGateway.TA_ConceptTemplateDataTable();
            concepts = conceptTA.GetDataRangly();

            ADOConcept1.ID = Convert.ToDecimal(concepts.Rows[0]["concepttmp_ID"]);
            ADOConcept2.ID = Convert.ToDecimal(concepts.Rows[1]["concepttmp_ID"]);
            ADOConcept3.ID = Convert.ToDecimal(concepts.Rows[2]["concepttmp_ID"]);


            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 1, 14, 2, 1);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 2, 14, 3, 2);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 3, 14, 4, 3);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 4, 14, 5, 4);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 5, 14, 6, 5);
            dateRangeTA.Insert(ADOConcept2.ID, ADOGroup.ID, 15, 1, 14, 2, 1);
            dateRangeTA.Insert(ADOConcept2.ID, ADOGroup.ID, 15, 2, 14, 3, 2);
            dateRangeTA.Insert(ADOConcept2.ID, ADOGroup.ID, 15, 3, 14, 4, 3);
            dateRangeTA.Insert(ADOConcept2.ID, ADOGroup.ID, 15, 4, 14, 5, 4);
            dateRangeTA.Insert(ADOConcept2.ID, ADOGroup.ID, 15, 5, 14, 6, 5);

            DatabaseGateway.TA_CalculationDateRangeDataTable rangeTable = new DatabaseGateway.TA_CalculationDateRangeDataTable();
            dateRangeTA.FillByGroup(rangeTable, ADOGroup.ID);
            ADODateRange1.ID = Convert.ToDecimal(rangeTable.Rows[0]["CalcDateRange_ID"]);
            ADODateRange2.ID = Convert.ToDecimal(rangeTable.Rows[1]["CalcDateRange_ID"]);
            ADODateRange3.ID = Convert.ToDecimal(rangeTable.Rows[2]["CalcDateRange_ID"]);
            ADODateRange4.ID = Convert.ToDecimal(rangeTable.Rows[3]["CalcDateRange_ID"]);
            ADODateRange5.ID = Convert.ToDecimal(rangeTable.Rows[4]["CalcDateRange_ID"]);

            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 1, ToDay = 31, ToMonth = 1, Order = CalculationDateRangeOrder.Month1
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 2, ToDay = 31, ToMonth = 2, Order = CalculationDateRangeOrder.Month2
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 3, ToDay = 31, ToMonth = 3, Order = CalculationDateRangeOrder.Month3
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 4, ToDay = 31, ToMonth = 4, Order = CalculationDateRangeOrder.Month4
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 5, ToDay = 31, ToMonth = 5, Order = CalculationDateRangeOrder.Month5
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 6, ToDay = 31, ToMonth = 6, Order = CalculationDateRangeOrder.Month6
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 7, ToDay = 31, ToMonth = 7, Order = CalculationDateRangeOrder.Month7
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 8, ToDay = 31, ToMonth = 8, Order = CalculationDateRangeOrder.Month8
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 9, ToDay = 31, ToMonth = 9, Order = CalculationDateRangeOrder.Month9
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 10, ToDay = 31, ToMonth = 10, Order = CalculationDateRangeOrder.Month10
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 11, ToDay = 31, ToMonth = 11, Order = CalculationDateRangeOrder.Month11
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 12, ToDay = 29, ToMonth = 12, Order = CalculationDateRangeOrder.Month12
            });
        }
Esempio n. 6
0
        public decimal UpdateDateRange(CalculationRangeGroup calcDateRangeGroup, IList <CalculationDateRange> dateRanges, IList <decimal> conceptTmpIds)
        {
            try
            {
                #region validation
                UIValidationExceptions exception = new UIValidationExceptions();

                if (dateRanges == null || dateRanges.Count != 12)
                {
                    exception.Add(new ValidationException(ExceptionResourceKeys.DateRangesCountNotEqualToTwelve, "تعداد ماههای ارسالی برای ذخیره دوره محاسبات باید برابر 12 باشد", ExceptionSrc));
                }
                if (Utility.IsEmpty(conceptTmpIds))
                {
                    exception.Add(new ValidationException(ExceptionResourceKeys.DateRangesMustHaveConcept, "بمنظور بروزرسانی حتما باید یک یا چند مفهوم انتخاب شود", ExceptionSrc));
                }
                if (exception.Count > 0)
                {
                    throw exception;
                }
                #endregion
                ApplicationLanguageSettings sysLanguage = new BLanguage().CurrentApplicationSetting;
                if (sysLanguage != null)
                {
                    calcDateRangeGroup.Culture = sysLanguage.Language.Name;
                }

                //بارگذاری دوره مجاسبات ثبت شده در دیتابیس
                var result = from o in conceptTmpIds
                             select new SecondaryConcept()
                {
                    ID = o
                };
                IList <SecondaryConcept> conceptsList = result.ToList <SecondaryConcept>();

                IList <CalculationDateRange> dateRangeListInDatabase = dateRangeRepository.GetCalculationDateRanges(calcDateRangeGroup, conceptsList);
                //استخراج مفاهیمی که در حال حاضر در دیتابیس دوره محاسبات ندارند
                IList <SecondaryConcept>     extraCnps           = conceptsList.Where(x => dateRangeListInDatabase.Select(y => y.Concept.ID).Contains(x.ID) == false).ToList();
                IList <CalculationDateRange> newOrderList        = new List <CalculationDateRange>();
                List <CalculationDateRange>  resultDateRangeList = new List <CalculationDateRange>();

                foreach (CalculationDateRange dateRange in dateRanges.OrderBy(x => x.Order).ToList())
                {
                    //بروزرساتی دورهای محاسباتی
                    IList <CalculationDateRange> sameOrderList = dateRangeListInDatabase.Where(x => x.Order == dateRange.Order).ToList();
                    for (int i = 0; i < sameOrderList.Count; i++)
                    {
                        sameOrderList[i].FromDay   = dateRange.FromDay;
                        sameOrderList[i].FromMonth = dateRange.FromMonth;
                        sameOrderList[i].ToDay     = dateRange.ToDay;
                        sameOrderList[i].ToMonth   = dateRange.ToMonth;
                        SetDateRangeIndex(sameOrderList[i]);
                    }
                    //درج دوره محاسبات برای مفاهیم جدید
                    foreach (SecondaryConcept cnp in extraCnps)
                    {
                        CalculationDateRange dr = new CalculationDateRange();
                        dr.Concept    = cnp;
                        dr.FromDay    = dateRange.FromDay;
                        dr.FromMonth  = dateRange.FromMonth;
                        dr.ToDay      = dateRange.ToDay;
                        dr.ToMonth    = dateRange.ToMonth;
                        dr.Order      = dateRange.Order;
                        dr.RangeGroup = calcDateRangeGroup;
                        SetDateRangeIndex(dr);
                        newOrderList.Add(dr);
                    }
                }

                resultDateRangeList.AddRange(dateRangeListInDatabase);
                resultDateRangeList.AddRange(newOrderList);
                calcDateRangeGroup.DateRangeList = resultDateRangeList;

                base.SaveChanges(calcDateRangeGroup, UIActionType.EDIT);
                return(calcDateRangeGroup.ID);
            }
            catch (Exception ex)
            {
                LogException(ex, "BDateRange", "UpdateDateRange");
                throw ex;
            }
        }
        public void TestSetup()
        {
            #region organization unit
            DatabaseGateway.TA_OrganizationUnitDataTable organTable = new DatabaseGateway.TA_OrganizationUnitDataTable();
            organTable              = organTA.GetDataByParent();
            ADOOrganRoot.ID         = Convert.ToInt32(organTable.Rows[0]["organ_ID"]);
            ADOOrganRoot.Name       = Convert.ToString(organTable.Rows[0]["organ_Name"]);
            ADOOrganRoot.CustomCode = Convert.ToString(organTable.Rows[0]["organ_CustomCode"]);

            organTA.Insert("Level2_1", "2020_11", ADOPerson2.ID, ADOOrganRoot.ID, String.Format(",{0},", ADOOrganRoot.ID));
            organTable          = organTA.GetDataByCustomCode("2020_11");
            ADOOrgan.ID         = Convert.ToInt32(organTable.Rows[0]["organ_ID"]);
            ADOOrgan.Name       = Convert.ToString(organTable.Rows[0]["organ_Name"]);
            ADOOrgan.CustomCode = Convert.ToString(organTable.Rows[0]["organ_CustomCode"]);
            #endregion

            #region managers
            managerTA.Insert(ADOPerson1.ID, null);
            DatasetGatewayWorkFlow.TA_ManagerDataTable masterTable = managerTA.GetDataByPersonID(ADOPerson1.ID);
            ADOManager1.ID               = Convert.ToInt32(masterTable.Rows[0]["MasterMng_ID"]);
            ADOManager1.Person           = ADOPerson1;
            ADOManager1.OrganizationUnit = null;

            managerTA.Insert(null, ADOOrgan.ID);
            masterTable                  = managerTA.GetDataByOrganID(ADOOrgan.ID);
            ADOManager2.ID               = Convert.ToInt32(masterTable.Rows[0]["MasterMng_ID"]);
            ADOManager2.Person           = null;
            ADOManager2.OrganizationUnit = ADOOrgan;

            managerTA.Insert(ADOPerson3.ID, null);
            masterTable                  = managerTA.GetDataByPersonID(ADOPerson3.ID);
            ADOManager3.ID               = Convert.ToInt32(masterTable.Rows[0]["MasterMng_ID"]);
            ADOManager3.Person           = ADOPerson3;
            ADOManager3.OrganizationUnit = null;
            #endregion

            #region pishcart access group
            precardAccessGroupTA.Insert("PrecardAccessGroupTest");
            DatasetGatewayWorkFlow.TA_PrecardAccessGroupDataTable accessTable = precardAccessGroupTA.GetDataBy1("PrecardAccessGroupTest");
            ADOaccessGroup.ID   = Convert.ToInt32(accessTable.Rows[0]["accessGrp_ID"]);
            ADOaccessGroup.Name = Convert.ToString(accessTable.Rows[0]["accessGrp_Name"]);
            #endregion

            #region Flow
            flowTA.Insert(ADOaccessGroup.ID, false, false, "FlowTest1");
            DatasetGatewayWorkFlow.TA_FlowDataTable flowTable = flowTA.GetDataByName("FlowTest1");
            ADOFlow1.ID          = Convert.ToInt32(flowTable.Rows[0]["flow_ID"]);
            ADOFlow1.AccessGroup = ADOaccessGroup;
            ADOFlow1.ActiveFlow  = false;
            ADOFlow1.WorkFlow    = false;
            ADOFlow1.FlowName    = "FlowTest1";

            flowTA.Insert(ADOaccessGroup.ID, false, false, "FlowTest2");
            flowTable            = flowTA.GetDataByName("FlowTest2");
            ADOFlow2.ID          = Convert.ToInt32(flowTable.Rows[0]["flow_ID"]);
            ADOFlow2.AccessGroup = ADOaccessGroup;
            ADOFlow2.ActiveFlow  = false;
            ADOFlow2.WorkFlow    = false;
            ADOFlow2.FlowName    = "FlowTest2";

            flowTA.Insert(ADOaccessGroup.ID, false, false, "FlowTest3");
            flowTable            = flowTA.GetDataByName("FlowTest3");
            ADOFlow3.ID          = Convert.ToInt32(flowTable.Rows[0]["flow_ID"]);
            ADOFlow3.AccessGroup = ADOaccessGroup;
            ADOFlow3.ActiveFlow  = false;
            ADOFlow3.WorkFlow    = false;
            ADOFlow3.FlowName    = "FlowTest3";
            #endregion

            #region manager Flow
            managerFlowTA.Insert(ADOManager1.ID, 1, ADOFlow1.ID, true);
            managerFlowTA.Insert(ADOManager1.ID, 2, ADOFlow2.ID, true);
            managerFlowTA.Insert(ADOManager3.ID, 2, ADOFlow3.ID, true);
            #endregion

            #region under managment
            undermanagmentTA.Insert(ADOFlow1.ID, ADOPerson2.ID, ADODepartment1.ID, false, true);
            undermanagmentTA.Insert(ADOFlow1.ID, ADOPerson5.ID, ADODepartment1.ID, false, true);
            DatasetGatewayWorkFlow.TA_UnderManagmentDataTable underManagmentTable = new DatasetGatewayWorkFlow.TA_UnderManagmentDataTable();
            underManagmentTable                  = undermanagmentTA.GetDataByManagmentID(ADOFlow1.ID);
            ADOUnderManagment.ID                 = Convert.ToInt32(underManagmentTable.Rows[0]["underMng_ID"]);
            ADOUnderManagment.Contains           = true;
            ADOUnderManagment.ContainInnerChilds = false;
            ADOUnderManagment.Person             = ADOPerson2;
            ADOUnderManagment.Flow               = ADOFlow1;

            undermanagmentTA.Insert(ADOFlow2.ID, ADOPerson4.ID, ADODepartment1.ID, false, true);
            undermanagmentTA.Insert(ADOFlow3.ID, ADOPerson5.ID, null, false, true);

            #endregion

            bussWorkTime = new BWorkedTime(ADOUser1.UserName);

            #region date range init
            businessDateRange       = new BDateRange();
            dateRange_testObject    = new CalculationDateRange();
            group_testObject        = new CalculationRangeGroup();
            dateRangList_testObject = new List <CalculationDateRange>();

            groupTA.Insert("TestRangeGroup", "", 1);
            DatabaseGateway.TA_CalculationRangeGroupDataTable groupTable = new DatabaseGateway.TA_CalculationRangeGroupDataTable();
            groupTA.FillByGroupName(groupTable, "TestRangeGroup");

            ADOGroup.ID          = Convert.ToDecimal(groupTable.Rows[0]["CalcRangeGroup_ID"]);
            ADOGroup.Name        = Convert.ToString(groupTable.Rows[0]["CalcRangeGroup_Name"]);
            ADOGroup.Description = Convert.ToString(groupTable.Rows[0]["CalcRangeGroup_Des"]);

            assinTA.Insert(ADOPerson3.ID, ADOGroup.ID, Utility.ToMildiDate("1390/05/01"));
            assinTA.Insert(ADOPerson4.ID, ADOGroup.ID, Utility.ToMildiDate("1389/01/01"));

            DatabaseGateway.TA_ConceptTemplateDataTable concepts = new DatabaseGateway.TA_ConceptTemplateDataTable();
            concepts = conceptTA.GetDataByyRanglyConceptsNotNullKeys();

            ADOConcept1.ID = Convert.ToDecimal(concepts.Rows[0]["concepttmp_ID"]);
            ADOConcept2.ID = Convert.ToDecimal(concepts.Rows[1]["concepttmp_ID"]);
            ADOConcept3.ID = Convert.ToDecimal(concepts.Rows[2]["concepttmp_ID"]);


            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 1, 14, 2, 1);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 2, 14, 3, 2);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 3, 14, 4, 3);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 4, 14, 5, 4);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 5, 14, 6, 5);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 6, 14, 7, 6);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 7, 14, 8, 7);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 8, 14, 9, 8);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 9, 14, 10, 9);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 10, 14, 11, 10);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 11, 14, 12, 11);
            dateRangeTA.Insert(ADOConcept1.ID, ADOGroup.ID, 15, 12, 14, 1, 12);

            DatabaseGateway.TA_CalculationDateRangeDataTable rangeTable = new DatabaseGateway.TA_CalculationDateRangeDataTable();
            dateRangeTA.FillByGroup(rangeTable, ADOGroup.ID);
            ADODateRange1.ID = Convert.ToDecimal(rangeTable.Rows[0]["CalcDateRange_ID"]);
            ADODateRange2.ID = Convert.ToDecimal(rangeTable.Rows[1]["CalcDateRange_ID"]);

            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 1, ToDay = 31, ToMonth = 1, Order = CalculationDateRangeOrder.Month1
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 2, ToDay = 31, ToMonth = 2, Order = CalculationDateRangeOrder.Month2
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 3, ToDay = 31, ToMonth = 3, Order = CalculationDateRangeOrder.Month3
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 4, ToDay = 31, ToMonth = 4, Order = CalculationDateRangeOrder.Month4
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 5, ToDay = 31, ToMonth = 5, Order = CalculationDateRangeOrder.Month5
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 6, ToDay = 31, ToMonth = 6, Order = CalculationDateRangeOrder.Month6
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 7, ToDay = 31, ToMonth = 7, Order = CalculationDateRangeOrder.Month7
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 8, ToDay = 31, ToMonth = 8, Order = CalculationDateRangeOrder.Month8
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 9, ToDay = 31, ToMonth = 9, Order = CalculationDateRangeOrder.Month9
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 10, ToDay = 31, ToMonth = 10, Order = CalculationDateRangeOrder.Month10
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 11, ToDay = 31, ToMonth = 11, Order = CalculationDateRangeOrder.Month11
            });
            dateRangList_testObject.Add(new CalculationDateRange()
            {
                FromDay = 1, FromMonth = 12, ToDay = 29, ToMonth = 12, Order = CalculationDateRangeOrder.Month12
            });
            #endregion
        }
Esempio n. 8
0
        private ArchiveCalcValuesProxy ValidateKaheshiKosuratBankSepah(ArchiveCalcValuesProxy archiveCalcProxyObj, int year, int month, decimal personId)
        {
            try
            {
                archiveCalcProxyObj.PersonId = personId;
                PersonRepository             personRep = new PersonRepository(false);
                IRuleRepository              ruleRep   = Rule.GetRuleRepository(false);
                Person                       personObj = personRep.GetById(personId, false);
                PersonRangeAssignment        personRangeAssigmentObj  = new BPerson().GetCurrentRangeAssignment(personId);
                IList <CalculationDateRange> calculationDateRangeList = personRangeAssigmentObj.CalcDateRangeGroup.DateRangeList;
                CalculationDateRange         calculationDateRangeObj  = calculationDateRangeList.FirstOrDefault(f => f.Concept.IdentifierCode == 4005 && f.ToMonth == month);
                int      dayRule  = calculationDateRangeObj.ToDay;
                DateTime ruledate = Utility.ToMildiDate(year.ToString() + "/" + (month < 10 ? "0" + month.ToString() : month.ToString()).ToString() + "/" + (dayRule < 10 ? "0" + dayRule.ToString() : dayRule.ToString()).ToString());
                personObj.InitializeForAccessRules(ruledate, ruledate);
                int          maxOverTime = Convert.ToInt32(personObj.PersonTASpec.R10 == string.Empty ? "0" : personObj.PersonTASpec.R10) * 60;
                AssignedRule ar          = personObj.AssignedRuleList.Where(x => x.FromDate <= ruledate && x.ToDate >= ruledate && x.IdentifierCode == 6029).FirstOrDefault();
                int          zaribBaje   = 1;
                if (ar != null)
                {
                    IList <AssignedRuleParameter> ruleParameterList = ruleRep.GetAssginedRuleParamList(ruledate, ruledate);
                    IList <AssignedRuleParameter> asp = ruleParameterList.Where(x => x.RuleId == ar.RuleId && x.FromDate <= ruledate && x.ToDate >= ruledate).ToList();
                    zaribBaje = 1 + (Utility.ToInteger(asp.SingleOrDefault(a => a.Name == "Third").Value) / 100);
                }

                if (archiveCalcProxyObj.P2 == null || archiveCalcProxyObj.P2.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P2 = "00:00";
                }
                else if (!archiveCalcProxyObj.P2.Contains(":"))
                {
                    archiveCalcProxyObj.P2 = archiveCalcProxyObj.P2.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P3 == null || archiveCalcProxyObj.P3.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P3 = "00:00";
                }
                else if (!archiveCalcProxyObj.P3.Contains(":"))
                {
                    archiveCalcProxyObj.P3 = archiveCalcProxyObj.P3.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P4 == null || archiveCalcProxyObj.P4.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P4 = "00:00";
                }
                else if (!archiveCalcProxyObj.P4.Contains(":"))
                {
                    archiveCalcProxyObj.P4 = archiveCalcProxyObj.P4.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P5 == null || archiveCalcProxyObj.P5.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P5 = "00:00";
                }
                else if (!archiveCalcProxyObj.P5.Contains(":"))
                {
                    archiveCalcProxyObj.P5 = archiveCalcProxyObj.P5.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P6 == null || archiveCalcProxyObj.P6.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P6 = "00:00";
                }
                else if (!archiveCalcProxyObj.P6.Contains(":"))
                {
                    archiveCalcProxyObj.P6 = archiveCalcProxyObj.P6.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P7 == null || archiveCalcProxyObj.P7.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P7 = "00:00";
                }
                else if (!archiveCalcProxyObj.P7.Contains(":"))
                {
                    archiveCalcProxyObj.P7 = archiveCalcProxyObj.P7.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P8 == null || archiveCalcProxyObj.P8.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P8 = "00:00";
                }
                else if (!archiveCalcProxyObj.P8.Contains(":"))
                {
                    archiveCalcProxyObj.P8 = archiveCalcProxyObj.P8.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P11 == null || archiveCalcProxyObj.P11.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P11 = "00:00";
                }
                else if (!archiveCalcProxyObj.P11.Contains(":"))
                {
                    archiveCalcProxyObj.P11 = archiveCalcProxyObj.P11.Trim() + ":00";
                }

                if (archiveCalcProxyObj.P12 == null || archiveCalcProxyObj.P12.Trim() == string.Empty)
                {
                    archiveCalcProxyObj.P12 = "00:00";
                }
                else if (!archiveCalcProxyObj.P12.Contains(":"))
                {
                    archiveCalcProxyObj.P12 = archiveCalcProxyObj.P12.Trim() + ":00";
                }



                int jameSotunhayeEzafeKar = (Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P2)) * zaribBaje) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P3)) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P4)) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P5)) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P6)) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P7) + Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P8)));

                if (jameSotunhayeEzafeKar > maxOverTime)
                {
                    int tafavotemaxOverTimeSotunha = jameSotunhayeEzafeKar - maxOverTime;
                    archiveCalcProxyObj.P11 = (Utility.IntTimeToTime(tafavotemaxOverTimeSotunha + Utility.RealTimeToIntTime(archiveCalcProxyObj.P11)));
                    if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P3) > tafavotemaxOverTimeSotunha)
                    {
                        archiveCalcProxyObj.P3 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P3)) - tafavotemaxOverTimeSotunha));
                    }
                    else
                    {
                        tafavotemaxOverTimeSotunha = tafavotemaxOverTimeSotunha - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P3) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P3));
                        archiveCalcProxyObj.P3     = Utility.IntTimeToTime(0);
                        if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P4) > tafavotemaxOverTimeSotunha)
                        {
                            archiveCalcProxyObj.P4 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P4)) - tafavotemaxOverTimeSotunha));
                        }
                        else
                        {
                            tafavotemaxOverTimeSotunha = tafavotemaxOverTimeSotunha - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P4) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P4));
                            archiveCalcProxyObj.P4     = Utility.IntTimeToTime(0);
                            if ((Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje) > tafavotemaxOverTimeSotunha)
                            {
                                archiveCalcProxyObj.P2 = Utility.IntTimeToTime(Utility.ToInteger((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje) - tafavotemaxOverTimeSotunha) / zaribBaje));
                            }
                            else
                            {
                                tafavotemaxOverTimeSotunha = tafavotemaxOverTimeSotunha - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje);
                                archiveCalcProxyObj.P2     = Utility.IntTimeToTime(0);
                                if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P5) > tafavotemaxOverTimeSotunha)
                                {
                                    archiveCalcProxyObj.P5 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P5)) - tafavotemaxOverTimeSotunha));
                                }
                                else
                                {
                                    tafavotemaxOverTimeSotunha = tafavotemaxOverTimeSotunha - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P5) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P5));
                                    archiveCalcProxyObj.P5     = Utility.IntTimeToTime(0);
                                }
                            }
                        }
                    }
                }
                //else

                //    archiveCalcProxyObj.P11 = Utility.IntTimeToTime(0);


                int kosurat = Utility.RealTimeToIntTime(archiveCalcProxyObj.P12);
                if (kosurat > 0)
                {
                    if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P3) > kosurat)
                    {
                        archiveCalcProxyObj.P3 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P3)) - kosurat));
                    }
                    else
                    {
                        kosurat = kosurat - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P3) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P3));
                        archiveCalcProxyObj.P3 = Utility.IntTimeToTime(0);
                        if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P4) > kosurat)
                        {
                            archiveCalcProxyObj.P4 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P4)) - kosurat));
                        }
                        else
                        {
                            kosurat = kosurat - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P4) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P4));
                            archiveCalcProxyObj.P4 = Utility.IntTimeToTime(0);
                            if ((Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje) > kosurat)
                            {
                                archiveCalcProxyObj.P2 = Utility.IntTimeToTime(Utility.ToInteger((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje) - kosurat) / zaribBaje));
                            }
                            else
                            {
                                kosurat = kosurat - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P2) * zaribBaje);
                                archiveCalcProxyObj.P2 = Utility.IntTimeToTime(0);
                                if (Utility.RealTimeToIntTime(archiveCalcProxyObj.P5) > kosurat)
                                {
                                    archiveCalcProxyObj.P5 = Utility.IntTimeToTime((Utility.ToInteger(Utility.RealTimeToIntTime(archiveCalcProxyObj.P5)) - kosurat));
                                }
                                else
                                {
                                    kosurat = kosurat - (Utility.RealTimeToIntTime(archiveCalcProxyObj.P5) == -1000 ? 0 : Utility.RealTimeToIntTime(archiveCalcProxyObj.P5));
                                    archiveCalcProxyObj.P5 = Utility.IntTimeToTime(0);
                                }
                            }
                        }
                    }
                }


                return(archiveCalcProxyObj);
            }
            catch (Exception ex)
            {
                BaseBusiness <Entity> .LogException(ex);

                throw ex;
            }
        }