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);
        }
示例#3
0
		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"));
		}
示例#4
0
        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);
        }