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 }
/// <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); } }
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); }
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 }
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 }); }
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 }
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; } }