public void Complex_double_firmalize_no_automatic_synonim() { session.CreateSQLQuery("delete from AutomaticProducerSynonyms") .ExecuteUpdate(); var product = new TestProduct("9 МЕСЯЦЕВ КРЕМ ДЛЯ ПРОФИЛАКТИКИ И КОРРЕКЦИИ РАСТЯЖЕК 150МЛ"); product.CatalogProduct.Pharmacie = true; product.CatalogProduct.Monobrend = true; session.Save(product); var producer = new TestProducer("Валента Фармацевтика/Королев Ф"); session.Save(producer); price.AddProductSynonym("9 МЕСЯЦЕВ КРЕМ ДЛЯ ПРОФИЛАКТИКИ И КОРРЕКЦИИ РАСТЯЖЕК 150МЛ", product); price.CreateAssortmentBoundSynonyms( "5 ДНЕЙ ВАННА Д/НОГ СМЯГЧАЮЩАЯ №10 ПАК. 25Г", "Санкт-Петербургская ф.ф."); session.Save(price); TestAssortment.CheckAndCreate(session, product, producer); Reopen(); Price(@"9 МЕСЯЦЕВ КРЕМ ДЛЯ ПРОФИЛАКТИКИ И КОРРЕКЦИИ РАСТЯЖЕК 150МЛ;Валента Фармацевтика/Королев Ф;2864;220.92; 5 ДНЕЙ ВАННА Д/НОГ СМЯГЧАЮЩАЯ №10 ПАК. 25Г;Санкт-Петербургская ф.ф.;24;73.88;"); Formalize(); Formalize(); var count = session.CreateSQLQuery("select count(*) from AutomaticProducerSynonyms") .UniqueResult <long>(); Assert.That(count, Is.EqualTo(0)); }
public void SetUp() { var priceParent = TestSupplier.CreateNaked(session).Prices[0]; var price = TestSupplier.CreateNaked(session).Prices[0]; price.ParentSynonym = priceParent.Id; Save(price); _supplier = price.Supplier; var client = TestClient.CreateNaked(session); var testAddress = client.Addresses[0]; var order = new TestOrder(); _product = new TestProduct("Виагра (табл.)"); _product.CatalogProduct.Pharmacie = true; session.Save(_product); _producer = new TestProducer("Пфайзер"); session.Save(_producer); session.Save(new TestSynonym() { Synonym = "Виагра", ProductId = _product.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm() { Synonym = "Пфайзер", CodeFirmCr = (int?)_producer.Id, PriceCode = (int?)price.Id }); TestAssortment.CheckAndCreate(session, _product, _producer); var log = new DocumentReceiveLog(session.Load <Supplier>(_supplier.Id), session.Load <Address>(testAddress.Id)) { MessageUid = 123, DocumentSize = 100 }; _doc = new Document(log) { OrderId = order.Id, Address = log.Address, DocumentDate = DateTime.Now }; _supplierCode = new SupplierCode { Code = "45678", Supplier = session.Load <Supplier>(_supplier.Id), ProducerId = _producer.Id, Product = session.Load <Product>(_product.Id), CodeCr = string.Empty }; session.Save(_supplierCode); // сопоставляется по коду _documentLine = _doc.NewLine(); _documentLine.Product = "Виагра"; _documentLine.Producer = " Тестовый производитель "; _documentLine.Code = "45678"; }
public void TestFillSupplierCode() { var expression = new TestUnrecExp("Тестовый продукт", "Тестовый производитель", price); expression.Code = new Random().Next().ToString(); expression.Save(); var product = Pharmacie().First(); var producer = TestProducer.Queryable.FirstOrDefault(); TestAssortment.CheckAndCreate(session, product, producer); Load(); Resolve(expression, product); Resolve(expression, producer); Save(); session.Clear(); var synonym = session.Query <TestProductSynonym>().FirstOrDefault(s => s.Price == price); var synonymFirmCr = session.Query <TestProducerSynonym>().FirstOrDefault(s => s.Price == price); Assert.That(synonym, Is.Not.Null); Assert.That(synonymFirmCr, Is.Not.Null); }
public void Setup() { supplier = TestSupplier.CreateNaked(session); supplier.CreateSampleCore(session); supplier.Prices[0].Core.Where(c => c.Producer != null) .Each(c => TestAssortment.CheckAndCreate(session, c.Product, c.Producer)); var client = TestClient.CreateNaked(session); var order = new TestOrder(client.Users[0], supplier.Prices[0]); order.Processed = false; order.WriteTime = DateTime.Today.AddDays(-1); order.AddItem(supplier.Prices[0].Core[0], 1); session.Save(order); supplier.Maintain(session); session.Transaction.Commit(); calculator = new CostCalculator(); ratings = RatingCalculator .Caclucated(DateTime.Today.AddDays(-10), DateTime.Today) .Take(3) .ToArray(); }
public void DocumentSetIdTest() { var price = TestSupplier.CreateTestSupplierWithPrice(); var supplier = price.Supplier; var client = TestClient.CreateNaked(); var testAddress = client.Addresses[0]; var order = new TestOrder(); var product1 = new TestProduct("Активированный уголь (табл.)"); product1.CatalogProduct.Pharmacie = true; session.Save(product1); var product2 = new TestProduct("Виагра (табл.)"); product2.CatalogProduct.Pharmacie = true; session.Save(product2); var product3 = new TestProduct("Крем для кожи (гель.)"); product3.CatalogProduct.Pharmacie = false; session.Save(product3); var product4 = new TestProduct("Эластичный бинт"); product4.CatalogProduct.Pharmacie = false; session.Save(product4); var product5 = new TestProduct("Стерильные салфетки"); product5.CatalogProduct.Pharmacie = false; session.Save(product5); var product6 = new TestProduct("Аспирин (табл.)"); product6.CatalogProduct.Pharmacie = false; session.Save(product6); var producer1 = new TestProducer("ВероФарм"); session.Save(producer1); var producer2 = new TestProducer("Пфайзер"); session.Save(producer2); var producer3 = new TestProducer("Воронежская Фармацевтическая компания"); session.Save(producer3); session.Save(new TestSynonym { Synonym = "Активированный уголь", ProductId = product1.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonym { Synonym = "Виагра", ProductId = product2.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonym { Synonym = "Крем для кожи", ProductId = product3.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonym { Synonym = "Аспирин", ProductId = product6.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm { Synonym = "ВероФарм", CodeFirmCr = (int?)producer1.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm { Synonym = "Пфайзер", CodeFirmCr = (int?)producer1.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm { Synonym = "Пфайзер", CodeFirmCr = (int?)producer2.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm { Synonym = "Верофарм", CodeFirmCr = (int?)producer2.Id, PriceCode = (int?)price.Id }); session.Save(new TestSynonymFirm { Synonym = "ВоронежФарм", CodeFirmCr = (int?)producer3.Id, PriceCode = (int?)price.Id }); TestAssortment.CheckAndCreate(product1, producer1); TestAssortment.CheckAndCreate(product2, producer2); var supplierCode2 = new SupplierCode { Code = "45678", Supplier = session.Load <Supplier>(supplier.Id), ProducerId = producer2.Id, Product = session.Load <Product>(product2.Id), CodeCr = "1" }; session.Save(supplierCode2); var supplierCode4 = new SupplierCode { Code = "789", Supplier = session.Load <Supplier>(supplier.Id), ProducerId = producer2.Id, Product = session.Load <Product>(product4.Id), CodeCr = "2" }; session.Save(supplierCode4); var supplierCode5 = new SupplierCode { Code = "12345", Supplier = session.Load <Supplier>(supplier.Id), ProducerId = producer3.Id, Product = session.Load <Product>(product5.Id), CodeCr = "3" }; session.Save(supplierCode5); var log = new DocumentReceiveLog { Supplier = session.Load <Supplier>(supplier.Id), ClientCode = client.Id, Address = session.Load <Address>(testAddress.Id), MessageUid = 123, DocumentSize = 100 }; var doc = new Document(log) { OrderId = order.Id, Address = log.Address, DocumentDate = DateTime.Now }; // сопоставляется по наименованию, фармацевтика, product1, producer1 var line = doc.NewLine(); line.Product = "Активированный уголь"; line.Producer = "ВероФарм"; // сопоставляется по коду, product2, producer2 line = doc.NewLine(); line.Product = "Виагра"; line.Producer = " Тестовый производитель "; line.Code = "45678"; line.CodeCr = "1"; // сопоставляется по наименованию, product3, производитель - null line = doc.NewLine(); line.Product = " КРЕМ ДЛЯ КОЖИ "; line.Producer = "Тестовый производитель"; // сопоставляется по коду, product4, producer2 line = doc.NewLine(); line.Product = "эластичный бинт"; line.Producer = "Воронежфарм"; line.Code = "789"; line.CodeCr = "2"; // сопоставляется по коду, product5, producer3 line = doc.NewLine(); line.Product = "Салфетки"; line.Producer = "Воронежфарм"; line.Code = "12345"; line.CodeCr = "3"; // сопоставляется по наименованию, потому как такого кода нет в базе, product6, producer3 line = doc.NewLine(); line.Product = "Аспирин"; line.Producer = "Воронежфарм"; line.Code = "1952"; // не сопоставляется, везде null line = doc.NewLine(); line.Product = "Неизвестный продукт"; line.Producer = "Воронежфарм"; line.Code = "1952"; Reopen(); doc.SetProductId(); Assert.That(doc.Lines[0].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[0].ProductEntity.Id, Is.EqualTo(product1.Id)); Assert.That(doc.Lines[0].ProducerId, Is.EqualTo(producer1.Id)); Assert.That(doc.Lines[1].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[1].ProductEntity.Id, Is.EqualTo(product2.Id)); Assert.That(doc.Lines[1].ProducerId, Is.EqualTo(producer2.Id)); Assert.That(doc.Lines[2].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[2].ProductEntity.Id, Is.EqualTo(product3.Id)); Assert.That(doc.Lines[2].ProducerId, Is.Null); Assert.That(doc.Lines[3].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[3].ProductEntity.Id, Is.EqualTo(product4.Id)); Assert.That(doc.Lines[3].ProducerId, Is.EqualTo(producer2.Id)); Assert.That(doc.Lines[4].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[4].ProductEntity.Id, Is.EqualTo(product5.Id)); Assert.That(doc.Lines[4].ProducerId, Is.EqualTo(producer3.Id)); Assert.That(doc.Lines[5].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[5].ProductEntity.Id, Is.EqualTo(product6.Id)); Assert.That(doc.Lines[5].ProducerId, Is.EqualTo(producer3.Id)); Assert.That(doc.Lines[6].ProductEntity, Is.Null); Assert.That(doc.Lines[6].ProducerId, Is.Null); }
public void resolve_product_and_producer_for_farmacie() { var order = new TestOrder(); var product1 = new TestProduct("Активированный уголь (табл.)"); product1.CatalogProduct.Pharmacie = true; product1.CreateAndFlush(); Thread.Sleep(100); var product2 = new TestProduct("Виагра (табл.)"); product2.CatalogProduct.Pharmacie = true; product2.CreateAndFlush(); Thread.Sleep(100); var product3 = new TestProduct("Крем для кожи (гель.)"); product3.CatalogProduct.Pharmacie = false; product3.CreateAndFlush(); Thread.Sleep(100); var product4 = new TestProduct("Эластичный бинт"); product4.CatalogProduct.Pharmacie = false; product4.CreateAndFlush(); Thread.Sleep(100); var product5 = new TestProduct("Стерильные салфетки"); product5.CatalogProduct.Pharmacie = false; product5.CreateAndFlush(); var producer1 = new TestProducer("ВероФарм"); producer1.CreateAndFlush(); var producer2 = new TestProducer("Пфайзер"); producer2.CreateAndFlush(); var producer3 = new TestProducer("Воронежская Фармацевтическая компания"); producer3.CreateAndFlush(); new TestSynonym { Synonym = "Активированный уголь", ProductId = product1.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonym { Synonym = "Виагра", ProductId = product2.Id, PriceCode = (int?)price.Id }.CreateAndFlush(); new TestSynonym { Synonym = "Крем для кожи", ProductId = product3.Id, PriceCode = (int?)price.Id }.CreateAndFlush(); new TestSynonym { Synonym = "Эластичный бинт", ProductId = product4.Id, PriceCode = (int?)price.Id }.CreateAndFlush(); new TestSynonym { Synonym = "Тестовый", ProductId = null, PriceCode = (int?)price.Id, SupplierCode = "12345" } .CreateAndFlush(); new TestSynonym { Synonym = "Тестовый2", ProductId = product5.Id, PriceCode = (int?)price.Id, SupplierCode = "12345" } .CreateAndFlush(); new TestSynonymFirm { Synonym = "ВероФарм", CodeFirmCr = (int?)producer1.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonymFirm { Synonym = "Пфайзер", CodeFirmCr = (int?)producer1.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonymFirm { Synonym = "Пфайзер", CodeFirmCr = (int?)producer2.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonymFirm { Synonym = "Верофарм", CodeFirmCr = (int?)producer2.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonymFirm { Synonym = "ВоронежФарм", CodeFirmCr = (int?)producer3.Id, PriceCode = (int?)price.Id } .CreateAndFlush(); new TestSynonymFirm { Synonym = "Тестовый", CodeFirmCr = null, PriceCode = (int?)price.Id, SupplierCode = "12345" } .CreateAndFlush(); new TestSynonymFirm { Synonym = "Тестовый2", CodeFirmCr = (int?)producer3.Id, PriceCode = (int?)price.Id, SupplierCode = "12345" }.CreateAndFlush(); TestAssortment.CheckAndCreate(session, product1, producer1); TestAssortment.CheckAndCreate(session, product2, producer2); var log = new DocumentReceiveLog { Supplier = appSupplier, ClientCode = client.Id, Address = address, MessageUid = 123, DocumentSize = 100 }; var doc = new Document(log) { OrderId = order.Id, Address = log.Address, DocumentDate = DateTime.Now }; var line = doc.NewLine(); line.Product = "Активированный уголь"; line.Producer = "ВероФарм"; line = doc.NewLine(); line.Product = "Виагра"; line.Producer = " Верофарм "; line = doc.NewLine(); line.Product = " КРЕМ ДЛЯ КОЖИ "; line.Producer = "Тестовый производитель"; line = doc.NewLine(); line.Product = "эластичный бинт"; line.Producer = "Воронежфарм"; line = doc.NewLine(); line.Product = "Салфетки"; line.Producer = "Воронежфарм"; line.Code = "12345"; doc.SetProductId(); Assert.That(doc.Lines[0].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[0].ProductEntity.Id, Is.EqualTo(product1.Id)); Assert.That(doc.Lines[0].ProducerId, Is.EqualTo(producer1.Id)); Assert.That(doc.Lines[1].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[1].ProductEntity.Id, Is.EqualTo(product2.Id)); Assert.That(doc.Lines[1].ProducerId, Is.EqualTo(producer2.Id)); Assert.That(doc.Lines[2].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[2].ProductEntity.Id, Is.EqualTo(product3.Id)); Assert.That(doc.Lines[2].ProducerId, Is.Null); Assert.That(doc.Lines[3].ProductEntity, Is.Not.Null); Assert.That(doc.Lines[3].ProductEntity.Id, Is.EqualTo(product4.Id)); Assert.That(doc.Lines[3].ProducerId, Is.EqualTo(producer3.Id)); Assert.That(doc.Lines[4].ProductEntity, Is.Null); Assert.That(doc.Lines[4].ProducerId, Is.Null); }