protected virtual csMaterial Prepare_csMaterial(Session ssn, string modificator, csNomenclatureType nomenclatureType, csUnit unit, fmCostItem costItem) { csMaterial material1 = new csMaterial(ssn); material1.NomenclatureType = nomenclatureType; material1.Code = "Мат" + modificator; material1.NameShort = "Мт" + modificator; material1.NameFull = "Материал" + modificator; material1.BaseUnit = unit; material1.CostItem = costItem; return(material1); }
public void Import(IObjectSpace os, String file_name) { FileHelperEngine <DealDataImport> engine = new FileHelperEngine <DealDataImport>(); engine.Options.IgnoreFirstLines = 1; engine.Options.IgnoreEmptyLines = true; // DealDataImport[] deal_data = engine.ReadStream(reader); DealDataImport[] deal_data = engine.ReadFile(file_name); IList <fmCOrder> orders = new List <fmCOrder>(); IList <crmStage> stages = new List <crmStage>(); IList <crmDeliveryUnit> delivery_units = new List <crmDeliveryUnit>(); IList <crmDeliveryItem> delivery_items = new List <crmDeliveryItem>(); IList <crmPaymentUnit> payment_units = new List <crmPaymentUnit>(); IList <crmPaymentItem> payment_items = new List <crmPaymentItem>(); IList <csMaterial> materials = os.GetObjects <csMaterial>(); foreach (DealDataImport record in deal_data) { fmCOrder order = null; crmStage stage = null; crmDeliveryUnit delivery_unit = null; crmDeliveryItem delivery_item = null; crmPaymentUnit payment_unit = null; crmPaymentItem payment_item = null; if (String.IsNullOrEmpty(record.StageCode)) { throw new ArgumentException("Stage Code is Empty", "StageCode"); } if (record.StageCode.Substring(0, 3) == "Adv") { stage = StageStructure.FirstStage; } else { stage = StageStructure.Stages.FirstOrDefault(x => x.Code == record.StageCode); if (stage == null) { stage = StageStructure.FirstStage.SubStagesCreate(); stage.Code = record.StageCode; } if (!stages.Contains(stage)) { stage.StageType = Contract.StageType.FINANCE; stage.DeliveryMethod = DeliveryMethod.UNITS_SHEDULE; stage.PaymentMethod = PaymentMethod.SCHEDULE; // stage.DateEnd = stage.DateBegin; // stage.DateFinish = stage.DateEnd; stages.Add(stage); } } if (record.StageCode.Substring(0, 3) != "Adv") { if (String.IsNullOrEmpty(record.OrderCode)) { throw new ArgumentException("Order Code is Empty", "OrderCode"); } order = orders.FirstOrDefault(x => x.Code == record.OrderCode); if (order == null) { order = os.FindObject <fmCOrder>(new BinaryOperator("Code", record.OrderCode, BinaryOperatorType.Equal)); if (order == null) { throw new ArgumentException("Order unknow", "OrderCode"); } else { orders.Add(order); } stage.Order = order; } if (record.DateContract == null) { throw new ArgumentException("Date Contract is Empty", "DateContract"); } delivery_unit = stage.DeliveryPlan.DeliveryUnits.FirstOrDefault(x => x.DatePlane == record.DateContract); if (record.DateContract > stage.DateEnd) { stage.DateEnd = (DateTime)record.DateContract; } if (delivery_unit == null) { delivery_unit = stage.DeliveryPlan.DeliveryUnitCreate(); delivery_unit.DatePlane = (DateTime)record.DateContract; } if (!delivery_units.Contains(delivery_unit)) { delivery_units.Add(delivery_unit); } delivery_unit.Order = order; if (record.Count == null) { throw new ArgumentException("Count is Empty", "Count"); } if (record.Price == null) { throw new ArgumentException("Price is Empty", "Price"); } if (String.IsNullOrEmpty(record.NomenclatureCode)) { throw new ArgumentException("Nomenclature Code is Empty", "NomenclatureCode"); } if (!record.NomenclatureCode.Contains("*I") && !record.NomenclatureCode.Contains("*E")) { csMaterial material = materials.FirstOrDefault(x => x.CodeTechnical == record.NomenclatureCode); if (material == null) { throw new ArgumentException("Nomenclature unknow", "NomenclatureCode"); } delivery_item = delivery_unit.DeliveryItems.FirstOrDefault(x => x.Nomenclature == material); if (delivery_item == null) { delivery_item = delivery_unit.DeliveryItemsCreateMaterial(); ((crmDeliveryMaterial)delivery_item).Material = material; } delivery_item.CostCalculateMethod = CostCalculateMethod.CALC_COST; delivery_item.NDSCalculateMethod = NDSCalculateMethod.FROM_COST; delivery_item.FullCalculateMethod = FullCalculateMethod.CALC_FULL; delivery_item.Price = (Decimal)record.Price; delivery_item.CountUnit = delivery_item.Nomenclature.BaseUnit; if (delivery_items.Contains(delivery_item)) { delivery_item.CountValue += (Decimal)record.Count; } else { delivery_item.CountValue = (Decimal)record.Count; delivery_items.Add(delivery_item); } } } if (record.DateContract == null) { throw new ArgumentException("Date Contract is Empty", "DateContract"); } payment_unit = stage.PaymentPlan.PaymentUnits.FirstOrDefault(x => x.DatePlane == record.DateContract && x is crmPaymentCasheLess); if (payment_unit == null) { payment_unit = stage.PaymentPlan.PaymentCasheLessCreate(); payment_unit.DatePlane = (DateTime)record.DateContract; if (payment_unit.DatePlane > stage.DateFinish) { stage.DateFinish = payment_unit.DatePlane; } } if (!payment_units.Contains(payment_unit)) { ((crmPaymentCasheLess)payment_unit).SummFull = (Decimal)record.SummaPayment; payment_units.Add(payment_unit); } else { ((crmPaymentCasheLess)payment_unit).SummFull += (Decimal)record.SummaPayment; } // payment_item = payment_unit.PaymentItems.FirstOrDefault(x => x.Order == order); // if (payment_item == null) { // payment_item = payment_unit.PaymentItemsCreateMoney(); // } //if (payment_unit.PaymentItems.Count == 0) { // payment_item = payment_unit.PaymentItemsCreateMoney(); //} //else { // payment_item = payment_unit.PaymentItems[0]; //} //if (payment_items.Contains(payment_item)) { // payment_item.SummFull += (Decimal)record.SummaPayment; // payment_item.AccountSumma += (Decimal)record.SummaPayment; //} //else { // payment_item.SummFull = (Decimal)record.SummaPayment; // payment_item.AccountSumma = (Decimal)record.SummaPayment; // payment_items.Add(payment_item); //} } IList <crmDeliveryUnit> del_delivery_units = new List <crmDeliveryUnit>(); IList <crmPaymentUnit> del_payment_units = new List <crmPaymentUnit>(); foreach (crmStage stage in stages) { foreach (crmDeliveryUnit delivery_unit in stage.DeliveryPlan.DeliveryUnits) { if (!delivery_units.Contains(delivery_unit)) { del_delivery_units.Add(delivery_unit); } } foreach (crmPaymentUnit payment_unit in stage.PaymentPlan.PaymentUnits) { if (!payment_units.Contains(payment_unit)) { del_payment_units.Add(payment_unit); } } } os.Delete(del_delivery_units); os.Delete(del_payment_units); }
public void CreateAllReferencesOnlyTest([Values("", "0", "1", "2", "3", "4")] string modificator) { //Session ssn = session1; UnitOfWork ssn = new UnitOfWork(Common.dataLayer); crmContractCategory contractCategory = Prepare_crmContractCategory(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(contractCategory, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } crmCostModel costModel = Prepare_crmCostModel(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(costModel, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csCountry country = Prepare_csCountry(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(country, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csUnit unit = Prepare_csUnit(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(unit, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csNomenclatureType nomenclatureType = Prepare_csNomenclatureType(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(nomenclatureType, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } fmCostItem costItem = Prepare_fmCostItem(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(costItem, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csMaterial material = Prepare_csMaterial(ssn, modificator, nomenclatureType, unit, costItem); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(material, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csService service = Prepare_csService(ssn, modificator, nomenclatureType, unit, costItem); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(service, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csValuta valuta = Prepare_csValuta(ssn, modificator, nomenclatureType, unit, costItem); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(valuta, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } csAddress address = Prepare_csAddress(ssn, modificator, country); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(address, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } crmPhysicalPerson physicalPersonRu = Prepare_crmPhysicalPerson(ssn, modificator, address); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(physicalPersonRu, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } crmCBusinessman businessmanRu = Prepare_crmBusinessmanRu(ssn, modificator, physicalPersonRu, address); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(businessmanRu, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } crmCLegalPerson legalPersonRussianRu = Prepare_crmCLegalPerson(ssn, modificator, address); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(legalPersonRussianRu, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } //crmPartyRu partyRu = Prepare_crmPartyRu(ssn, modificator, address, legalPersonRussianRu); //if (Common.CheckValidationRule) { // ruleResult = ruleSet.ValidateTarget(partyRu, DefaultContexts.Save); // Assert.AreEqual(ValidationState.Valid, ruleResult.State); //} fmCSubject subject = Prepare_fmSubject(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(subject, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } hrmDepartment department = Prepare_hrmDepartment(ssn, modificator); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(department, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } hrmStaff staff = Prepare_hrmStaff(ssn, modificator, physicalPersonRu, department); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(staff, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } crmUserParty userParty = Prepare_crmUserParty(ssn, modificator, legalPersonRussianRu.Party); if (Common.CheckValidationRule) { ruleResult = ruleSet.ValidateTarget(userParty, DefaultContexts.Save); Assert.AreEqual(ValidationState.Valid, ruleResult.State); } ssn.CommitChanges(); }