public override void Execute(ISession session) { var supplier = TestSupplier.CreateNaked(session, TestRegion.Inforoom); var data = @" 2 Нафазолин Нафтизина раствор Капли назальные Флакон-капельницы пластиковые 1 мг/мл 15 мл №1 Славянская Аптека ООО 3 Нимесулид Найз Таблетки Упаковка контурная ячейковая 100 мг №20 Dr.Reddy'S Laboratories Ltd 4 Ацетилсалициловая кислота+Кофеин+Парацетамол Цитрамон П Таблетки Упаковка контурная ячейковая №10 Уралбиофарм ОАО" ; var map = new[] { "Code", "Note", "Doc", "Series", "Unit", "Volume", "", //ClNm - Производитель "CodeCr", }; var producers = session.Query <TestProducer>().Take(10).ToList(); var products = session.Query <TestProduct>().Fetch(p => p.CatalogProduct).Where(p => !p.CatalogProduct.Hidden).Take(10).ToList(); var maxProducer = producers.Count(); var maxProduct = products.Count(); var randomProducts = Generator.Random(maxProduct).SelectMany(i => products.Skip(i).Take(1)); var randomProducers = Generator.Random(maxProducer).SelectMany(i => producers.Skip(i).Take(1)); var price = supplier.Prices[0]; foreach (var line in data.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) { var offer = supplier.AddCore(randomProducts.First(), randomProducers.First()); price.Core.Add(offer); session.Save(offer); session.Flush(); var parts = line.Split('\t'); var update = parts.Where((p, i) => !String.IsNullOrEmpty(map[i])).Select((p, i) => String.Format("{0} = '{1}'", map[i], p)).Implode(); session.CreateSQLQuery(String.Format("update Farm.Core0 set {0} where id = {1}", update, offer.Id)).ExecuteUpdate(); } var user = User(session); var waybill = new TestWaybill(new TestDocumentLog(supplier, user.AvaliableAddresses[0])); waybill.DocumentDate = waybill.DocumentDate.AddDays(-7); var waybillLine = waybill.AddLine(price.Core[0].Product, price.Core[0].Producer); waybillLine.SupplierCostWithoutNDS = 90; session.Save(waybill); session.Save(new TestDocumentSendLog(user, waybill.Log)); session.CreateSQLQuery("delete from Customers.AppConfig").ExecuteUpdate(); session.CreateSQLQuery("insert into Customers.AppConfig (`key`, `value`) value('RegulatorRegistryPriceId', :id)") .SetParameter("id", price.Id) .ExecuteUpdate(); }
private TestWaybill SetupWaybill(TestSupplier supplier, TestClient client, out TestDocumentSendLog sendLog) { var log = new TestDocumentLog(supplier, client); session.Save(log); var doc = new TestWaybill(log); var product = session.Query <TestProduct>().First(x => !x.Hidden); doc.AddLine(product); doc.ProviderDocumentId = "G1"; session.Save(doc); sendLog = new TestDocumentSendLog(client.Users[0], log); session.Save(sendLog); return(doc); }
public void Export_waybills() { var supplier = TestSupplier.CreateNaked(session); var client = TestClient.CreateNaked(session); var log = new TestDocumentLog(supplier, client); session.Save(log); var doc = new TestWaybill(log); var product = session.Query<TestProduct>().First(x => !x.Hidden); doc.AddLine(product); doc.ProviderDocumentId = "G1"; session.Save(doc); var sendLog = new TestDocumentSendLog(client.Users[0], log); session.Save(sendLog); FlushAndCommit(); Program.ProcessUser(config, client.Users[0].Id, ProtocolType.DbfAsna); Assert.IsTrue(File.Exists($"tmp/{client.Users[0].Id}/waybills/{doc.Id}.dbf")); }
public void Export_prices() { FileHelper.InitDir("ftp"); var log = new TestDocumentLog(supplier, client); session.Save(log); var doc = new TestWaybill(log); var product = session.Query <TestProduct>().First(x => !x.Hidden); doc.AddLine(product); doc.ProviderDocumentId = "G1"; session.Save(doc); var sendLog = new TestDocumentSendLog(user, log); session.Save(sendLog); session.Save(new FtpConfig(session.Load <User>(user.Id), session.Load <Supplier>(supplier.Id)) { PriceUrl = $"ftp://localhost:{port}/тестовый поставщик/common/PRICE.DBF", WaybillUrl = $"ftp://localhost:{port}/тестовый поставщик/in", OrderUrl = $"ftp://localhost:{port}/тестовый поставщик/out", }); FlushAndCommit(); var job = new FtpExportJob(); job.Execute(null); var prices = Directory.GetFiles("ftp/тестовый поставщик/common").Implode(Path.GetFileName); Assert.AreEqual("PRICE.DBF", prices); var waybills = Directory.GetFiles("ftp/тестовый поставщик/in").Implode(Path.GetFileName); Assert.AreEqual($"{log.Id}.dbf", waybills); }