public void Parse_waybills_Convert_Dbf_format()
        {
            var filePath = @"..\..\Data\Waybills\890579.dbf";

            CopyFile(waybillDir, filePath);

            supplier.WaybillSource.ReaderClassName = "ProtekOmsk_3777_Reader";
            MaitainAddressIntersection(client.Addresses[0].Id);

            SetConvertDocumentSettings();

            Process();

            CheckClientDirectory(2, DocType.Waybill);

            var logs = session.Query <TestDocumentLog>().Where(l =>
                                                               l.Client.Id == client.Id &&
                                                               l.Supplier.Id == supplier.Id &&
                                                               l.Address == client.Addresses[0]);

            Assert.That(logs.Count(), Is.EqualTo(2));
            Assert.That(logs.Count(l => l.IsFake), Is.EqualTo(1));
            Assert.That(logs.Count(l => !l.IsFake), Is.EqualTo(1));

            var log      = logs.SingleOrDefault(l => !l.IsFake);
            var file_dbf = GetFileForAddress(DocType.Waybill).Single(f => f.IndexOf(log.Id.ToString()) > -1);

            var data = Dbf.Load(file_dbf, Encoding.GetEncoding(866));

            Assert.IsTrue(data.Columns.Contains("postid_af"));
            Assert.IsTrue(data.Columns.Contains("ttn"));
            Assert.IsTrue(data.Columns.Contains("przv_post"));
        }
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NSF")
            .DocumentHeader(h => h.DocumentDate, "DTOTG")
            .Invoice(i => i.RecipientAddress, "ADRPOTR")
            .Line(l => l.Code, "NFS")
            .Line(l => l.Product, "NMFS")
            .Line(l => l.Producer, "ZIZG")
            .Line(l => l.Country, "STRANA")
            .Line(l => l.ProducerCostWithoutNDS, "ZNIZG")
            .Line(l => l.ProducerCost, "ZNIZG_S_N")
            .Line(l => l.SupplierCostWithoutNDS, "ZNPROD")
            .Line(l => l.SupplierCost, "ZNPROD_S_N")
            .Line(l => l.RegistryCost, "ZNIZG_F")
            .Line(l => l.Amount, "SUMNDS")
            .Line(l => l.NdsAmount, "NDSSUM")
            .Line(l => l.Quantity, "KOLF")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.Period, "SROK")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.CertificatesDate, "DATA_SERT")
            .Line(l => l.SerialNumber, "SER")
            .Line(l => l.BillOfEntryNumber, "OKDP")
            .Line(l => l.EAN13, "EAN")
            .Line(l => l.VitallyImportant, "JNVLS")
            .ToDocument(document, data);

            return(document);
        }
        public void Parse()
        {
            Assert.IsTrue(BaltimorYoshkarOlaParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\00033318.dbf")));
            var doc  = WaybillParser.Parse("00033318.dbf");
            var line = doc.Lines[0];

            Assert.That(doc.ProviderDocumentId, Is.EqualTo("ЧБ000033318"));
            Assert.That(doc.DocumentDate.Value.ToShortDateString(), Is.EqualTo("29.08.2011"));
            Assert.That(line.Code, Is.EqualTo("36869"));
            Assert.That(line.Product, Is.EqualTo("Окситоцин МЭЗ р-р д/ин. 5МЕ амп. 1мл. №10"));
            Assert.That(line.Producer, Is.EqualTo("Московский эндокринный з-д"));
            Assert.That(line.Country, Is.EqualTo("РОССИЯ"));
            Assert.That(line.BillOfEntryNumber, Is.Null);
            Assert.That(doc.Lines[2].BillOfEntryNumber, Is.EqualTo("10130130/200611/0012231/1"));
            Assert.That(line.SerialNumber, Is.EqualTo("70411"));
            Assert.That(line.Period, Is.EqualTo("01.05.2013"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС RU.ФМ01.Д42360"));
            Assert.That(line.Quantity, Is.EqualTo(2));
            Assert.That(line.SupplierPriceMarkup, Is.EqualTo(0.00));
            Assert.That(doc.Lines[1].SupplierPriceMarkup, Is.EqualTo(12.57));
            Assert.That(line.SupplierCost, Is.EqualTo(22.69));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(20.63));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.NdsAmount, Is.EqualTo(4.13));
            Assert.That(line.Amount, Is.EqualTo(45.38));
            Assert.That(line.EAN13, Is.EqualTo(4602676001761));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(21.45));
            Assert.That(line.VitallyImportant, Is.True);
            Assert.That(line.RegistryCost, Is.EqualTo(21.45));
        }
        public void Parse()
        {
            var document = WaybillParser.Parse("Р-147253.dbf");

            Assert.IsTrue(VegaParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\Р-147253.dbf")));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("147253"));
            Assert.That(document.DocumentDate, Is.EqualTo(DateTime.Parse("14.10.2014")));

            Assert.That(document.Lines.Count, Is.EqualTo(6));
            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("3289"));
            Assert.That(line.Quantity, Is.EqualTo(2));
            Assert.That(line.SupplierCost, Is.EqualTo(72.33));
            Assert.That(line.Nds, Is.EqualTo(18));
            Assert.That(line.NdsAmount, Is.EqualTo(22.07));
            Assert.That(line.Amount, Is.EqualTo(144.66));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(61.29));
            Assert.That(line.SupplierPriceMarkup, Is.EqualTo(11));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(55.22));
            Assert.That(line.Period, Is.EqualTo("05.06.2016"));
            Assert.That(line.SerialNumber, Is.EqualTo("050614"));
            Assert.That(line.BillOfEntryNumber, Is.Null);
            Assert.That(line.Certificates, Is.EqualTo("РОСС RU.АЮ18.Д02268"));
            Assert.That(line.CertificateAuthority, Is.EqualTo("Сергиево-Посадский ЦСМС"));
            Assert.That(line.Product, Is.EqualTo("Бальзам СПАСАТЕЛЬ от ран и ожогов 30г"));
            Assert.That(line.Producer, Is.EqualTo("Люми ООО"));
            Assert.That(line.EAN13, Is.EqualTo(4607004431050));
            Assert.That(line.VitallyImportant, Is.False);
            Assert.That(line.RegistryCost, Is.Null);
        }
Exemple #5
0
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NomNakl")
            .DocumentHeader(h => h.DocumentDate, "DateNakl")
            .Line(l => l.Code, "Kod")
            .Line(l => l.Product, "Naim")
            .Line(l => l.Producer, "Proizv")
            .Line(l => l.Country, "Strana")
            .Line(l => l.SupplierCostWithoutNDS, "ZenaBezNDS")
            .Line(l => l.SupplierCost, "ZenaSNDS")
            .Line(l => l.ProducerCostWithoutNDS, "ZenaProizv")
            .Line(l => l.ProducerCost, "ZenaPrSNDS")
            .Line(l => l.RegistryCost, "ZenaReestr")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.Amount, "SumSNDS")
            .Line(l => l.NdsAmount, "NDSSUM")
            .Line(l => l.Quantity, "Kol")
            .Line(l => l.Unit, "EdIzm")
            .Line(l => l.Period, "SrokGodn")
            .Line(l => l.Certificates, "ImSS")
            .Line(l => l.CertificatesDate, "DateImSS")
            .Line(l => l.SerialNumber, "Seria")
            .Line(l => l.BillOfEntryNumber, "TamozhDek")
            .Line(l => l.EAN13, "EAN8_13")
            .Line(l => l.VitallyImportant, "ISLIFE")
            .ToDocument(document, data);

            return(document);
        }
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser().DocumentHeader(h => h.ProviderDocumentId, "NDOC") //NDOC – номер накладной
            .DocumentHeader(h => h.DocumentDate, "DDOC")                      //DDOC – дата накладной
            .Line(l => l.Product, "GOOD")                                     //GOOD – наименование товара
            //Пропущено : PRODSBAR- всегда ноль
            .Line(l => l.SerialNumber, "SERIAL")                              //SERIAL – серия товара или номер партии или дата производства товара
            .Line(l => l.Period, "DATEB")                                     //DATEB – дата окончания срока годности товара
            .Line(l => l.Certificates, "SERT")                                //SERT – сертификат на товар или иной другой документ подтверждающий регистрацию товара
            //Пропущено : NOMERA- НОМЕР АПТЕКИ, КУДА ПОСТАВЛЯЕТСЯ ТОВАР
            .Line(l => l.Producer, "ENTERP")                                  //ENTERP – производитель товара
            .Line(l => l.Country, "COUNTRY")                                  //COUNTRY – страна производитель
            //Пропущено : TYPEPUK – всегда пусто
            .Line(l => l.Quantity, "QUANT")                                   //QUANT – количество товара
            .Line(l => l.Nds, "NDS")                                          //NDS – НДС на данный товар
            //Пропущено : EDIZM- всегда пусто
            //Пропущено : KOEFED – всегда ноль
            .Line(l => l.SupplierCostWithoutNDS, "PRICEENT")    //PRICEENT –цена ПОСТАВЩИКА за штуку без НДС
            //.Line(l => l.ProducerCostWithoutNDS, "PRICEWONDS")//PRICEWONDS – цена за штуку без НДС
            .Line(l => l.NdsAmount, "SUMNDS")                   //SUMNDS – сумма НДС за штуку
            .Line(l => l.Amount, "SUMSNDS")                     //SUMSNDS – общая сумма товара с НДС
            .Line(l => l.SupplierCost, "PRICEENTND")            // PRICEENTND – Цена ПОСТАВЩИКА за штуку с НДС
            //.Line(l => l.ProducerCost, "CENASNDS")//CENASNDS – Цена за штуку с НДС
            .ToDocument(document, data);

            //CheckAndFixSerialFormat(document.Lines);

            return(document);
        }
        public void Parse()
        {
            var document = WaybillParser.Parse("605 3311.dbf");

            Assert.IsTrue(RiaPandaVolgogradParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\605 3311.dbf")));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("33117"));
            Assert.That(document.DocumentDate, Is.EqualTo(new DateTime(2014, 11, 06)));
            Assert.That(document.Lines.Count, Is.EqualTo(13));

            var line = document.Lines[0];

            Assert.That(line.Product, Is.EqualTo("Dt. Vistong: Сироп Подорожника и Мать-и-мачехи, фл 150мл"));
            Assert.That(line.Code, Is.EqualTo("3303"));
            Assert.That(line.Period, Is.EqualTo("10.09.2016"));
            Assert.That(line.Quantity, Is.EqualTo(3));
            Assert.That(line.SerialNumber, Is.EqualTo("0914"));
            Assert.That(line.SupplierCost.ToString(), Is.EqualTo("77,79"));
            Assert.That(line.SupplierCostWithoutNDS.ToString(), Is.EqualTo("65,92"));
            Assert.That(line.Nds.ToString(), Is.EqualTo("18"));
            Assert.That(line.Producer, Is.EqualTo("ООО ВИС"));
            Assert.That(line.EAN13, Is.EqualTo(605));
            Assert.That(line.Certificates, Is.EqualTo("РОСС RU.АЯ61.Н12103"));
            Assert.That(line.CertificatesDate, Is.EqualTo("16.12.2016"));
            Assert.That(line.CertificateAuthority, Is.EqualTo("Таможенный Союз"));
            Assert.That(line.Amount, Is.EqualTo(233.37));
        }
        public void Parse()
        {
            Assert.IsTrue(SiaAstrahanParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\Р-786953.DBF")));
            var document = WaybillParser.Parse("Р-786953.DBF");

            Assert.That(document.Lines.Count, Is.EqualTo(36));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("Р-786953"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("12.03.2012"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("24378"));
            Assert.That(line.Product, Is.EqualTo("Аква Марис капли назальные д/детей 10мл Фл-капельница Б"));
            Assert.That(line.Producer, Is.EqualTo("Ядран Галенский Лабораторий АО"));
            Assert.That(line.Country, Is.EqualTo("ХОРВАТИЯ"));
            Assert.That(line.RegistryCost, Is.EqualTo(0));
            Assert.IsNull(line.ProducerCost);
            Assert.IsNull(line.ProducerCostWithoutNDS);
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(73.22));
            Assert.That(line.SupplierCost, Is.EqualTo(80.54));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.Quantity, Is.EqualTo(2));
            Assert.That(line.Amount, Is.EqualTo(161.08));
            Assert.That(line.NdsAmount, Is.EqualTo(14.64));
            Assert.That(line.Period, Is.EqualTo("01.08.2013"));
            Assert.That(line.SerialNumber, Is.EqualTo("2041"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС HR.ФМ01.Д23988"));
            Assert.That(line.CertificatesDate, Is.EqualTo("25.10.2011"));
            Assert.That(line.VitallyImportant, Is.EqualTo(false));
            Assert.That(line.EAN13, Is.EqualTo(3858881054738));
            Assert.That(line.BillOfEntryNumber, Is.EqualTo("10130030/251011/0004515/1"));
        }
        public void Parse()
        {
            Assert.IsTrue(AptekaHoldingSPBParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\NKL_1892886.dbf")));
            var document = WaybillParser.Parse("NKL_1892886.dbf");

            Assert.That(document.ProviderDocumentId, Is.EqualTo("АХ1-1892886/0"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("01.12.2011"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("8667"));
            Assert.That(line.Product, Is.EqualTo("Анаферон детск. табл. д/рассасыв. N20 Россия"));

            Assert.That(line.ProducerCost, Is.EqualTo(103.2));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(102.95));

            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.Quantity, Is.EqualTo(5));

            Assert.That(line.Amount, Is.EqualTo(566.25));
            Assert.That(line.NdsAmount, Is.EqualTo(51.50));

            Assert.That(line.Producer, Is.EqualTo("Материа Медика ПФ ЗАО"));
            Assert.That(line.Country, Is.EqualTo("Россия"));

            Assert.That(line.Period, Is.EqualTo("01.09.2014"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС RU.ФМ05.Д99156"));
            Assert.That(line.CertificatesDate, Is.EqualTo("22.08.2011"));

            Assert.That(line.EAN13, Is.EqualTo(4607009581071));
            Assert.That(line.BillOfEntryNumber, Is.EqualTo(null));

            Assert.That(line.SerialNumber, Is.EqualTo("5030811"));
            Assert.That(line.VitallyImportant, Is.EqualTo(true));
        }
        public void Parse_and_Convert_to_Dbf_if_sert_date()
        {
            settings.IsConvertFormat    = true;
            settings.AssortimentPriceId = price.Id;
            settings.SaveAndFlush();

            var ids = ParseFile("20101119_8055_250829.xml");

            var logs = DocumentReceiveLog.Queryable.Where(l => l.Supplier.Id == supplier.Id && l.ClientCode == client.Id);

            Assert.That(logs.Count(), Is.EqualTo(2));
            Assert.That(logs.Where(l => l.IsFake).Count(), Is.EqualTo(1));
            Assert.That(logs.Where(l => !l.IsFake).Count(), Is.EqualTo(1));

            // Проверяем наличие записей в documentheaders для исходных документов.
            foreach (var documentLog in logs)
            {
                var count = documentLog.IsFake
                                        ? Document.Queryable.Where(doc => doc.Log.Id == documentLog.Id && doc.Log.IsFake).Count()
                                        : Document.Queryable.Where(doc => doc.Log.Id == documentLog.Id && doc.Log.IsFake).Count();
                Assert.That(count, documentLog.IsFake ? Is.EqualTo(1) : Is.EqualTo(0));
            }
            var files_dbf = Directory.GetFiles(Path.Combine(docRoot, "Waybills"), "*.dbf");

            Assert.That(files_dbf.Count(), Is.EqualTo(1));
            var file_dbf = files_dbf.Select(f => f).First();
            var data     = Dbf.Load(file_dbf, Encoding.GetEncoding(866));

            Assert.IsTrue(data.Columns.Contains("sert_date"));
            Assert.That(data.Rows[0]["sert_date"], Is.EqualTo("10.08.2009"));
        }
        public void Parse()
        {
            Assert.IsTrue(PulsFKParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\249137.dbf")));

            var document = WaybillParser.Parse(@"..\..\Data\Waybills\249137.dbf");

            Assert.That(document.Lines.Count, Is.EqualTo(7));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("249137"));
            Assert.That(document.DocumentDate, Is.EqualTo(Convert.ToDateTime("26.07.2012")));

            Assert.That(document.Invoice.InvoiceNumber, Is.EqualTo("249137"));
            Assert.That(document.Invoice.InvoiceDate, Is.EqualTo(Convert.ToDateTime("26.07.2012")));
            Assert.That(document.Invoice.AmountWithoutNDS, Is.EqualTo(1535.62));
            Assert.That(document.Invoice.RecipientAddress, Is.EqualTo("42667"));

            Assert.That(document.Lines[0].Code, Is.EqualTo("11187"));
            Assert.That(document.Lines[0].Product, Is.EqualTo("911 Венолгон гель д/ног 100мл"));
            Assert.That(document.Lines[0].Producer, Is.EqualTo("Твинс Тэк"));
            Assert.That(document.Lines[0].Country, Is.EqualTo("РОССИЯ"));
            Assert.That(document.Lines[0].Quantity, Is.EqualTo(3));
            Assert.That(document.Lines[0].SupplierCostWithoutNDS, Is.EqualTo(36.56));
            Assert.That(document.Lines[0].SupplierCost, Is.EqualTo(43.14));
            Assert.That(document.Lines[0].Nds, Is.EqualTo(18));
            Assert.That(document.Lines[0].Amount, Is.EqualTo(129.42));
            Assert.That(document.Lines[0].NdsAmount, Is.EqualTo(19.74));
            Assert.That(document.Lines[0].EAN13, Is.EqualTo(4607010242558));
            Assert.That(document.Lines[0].BillOfEntryNumber, Is.EqualTo(null));
            Assert.That(document.Lines[0].VitallyImportant, Is.EqualTo(false));
            Assert.That(document.Lines[0].SerialNumber, Is.EqualTo("0612"));
            Assert.That(document.Lines[0].Period, Is.EqualTo("01.12.2013"));
            Assert.That(document.Lines[0].Certificates, Is.EqualTo("POCC  RU.АГ50.Д00016"));
            Assert.That(document.Lines[0].CertificateAuthority, Is.EqualTo("ОС ООО \"ЕВРОСТРОЙ\""));
            Assert.That(document.Lines[0].CertificatesDate, Is.EqualTo("17.11.2011"));
            Assert.That(document.Lines[0].OrderId, Is.EqualTo(31539501));
        }
Exemple #12
0
        public void Parse()
        {
            Assert.IsTrue(BioFarmVolgaParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\260254.dbf")));

            var document = WaybillParser.Parse(@"..\..\Data\Waybills\260254.dbf");

            Assert.That(document.Lines.Count, Is.EqualTo(1));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("Рн-ЙО00000260254"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("06.09.2011"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("М13845"));
            Assert.That(line.Product, Is.EqualTo("Валосердин 25мл"));
            Assert.That(line.Quantity, Is.EqualTo(10));
            Assert.That(line.RegistryCost, Is.EqualTo(0.00));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(24.20));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(22.77));
            Assert.That(line.SupplierCost, Is.EqualTo(25.05));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.NdsAmount, Is.EqualTo(22.77));
            Assert.That(line.Amount, Is.EqualTo(250.50));
            Assert.That(line.SerialNumber, Is.EqualTo("210311"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС.RU.ФМ01.Д07977"));
            Assert.That(line.CertificatesDate, Is.EqualTo("01.03.2013"));
            Assert.That(line.Producer, Is.EqualTo("Московская фарм. ф-к"));
            Assert.That(line.Period, Is.EqualTo("01.03.2013"));
            Assert.That(line.Country, Is.EqualTo("РОССИЯ"));
            Assert.That(line.BillOfEntryNumber, Is.Null);
            Assert.That(line.VitallyImportant, Is.False);
        }
Exemple #13
0
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding.GetEncoding(866), true, false);

            new DbfParser()
            .DocumentHeader(d => d.ProviderDocumentId, "NUM_NAKL")
            .DocumentHeader(d => d.DocumentDate, "DATA_NAKL")
            .Line(l => l.Code, "KOD")
            .Line(l => l.Product, "NAME")
            .Line(l => l.Producer, "PROIZV")
            .Line(l => l.Country, "COUNTRY")
            .Line(l => l.Quantity, "KOLVO")
            .Line(l => l.ProducerCostWithoutNDS, "CENAPROIZ")
            .Line(l => l.RegistryCost, "REESTR")
            .Line(l => l.SupplierPriceMarkup, "NADBPROC")
            .Line(l => l.SupplierCostWithoutNDS, "CENABNDS")
            .Line(l => l.Nds, "NDSPOSTAV")
            .Line(l => l.SupplierCost, "CENASNDS")
            .Line(l => l.NdsAmount, "SUMMANDS")
            .Line(l => l.Amount, "SUMMA")
            .Line(l => l.SerialNumber, "SERII")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.CertificatesEndDate, "SERTDATE")
            .Line(l => l.CertificatesDate, "SERTGIVE")
            .Line(l => l.CertificateAuthority, "SERTORG")
            .Line(l => l.Period, "SROK_GODN", "DATAEND")
            .ToDocument(document, data);
            return(document);
        }
        public void Parse()
        {
            Assert.IsTrue(FarmSKDParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\30529180.DBF")));
            var document = WaybillParser.Parse("30529180.DBF");

            Assert.That(document.ProviderDocumentId, Is.EqualTo("29180"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("05.03.2012"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("2012-0011610"));
            Assert.That(line.Product, Is.EqualTo("Аллохол табл.п.о. N 50 (48)"));
            Assert.That(line.Country, Is.EqualTo("БЕЛАРУСЬ"));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(36.27));
            Assert.That(line.ProducerCost, Is.EqualTo(39.9));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(42.93));
            Assert.That(line.SupplierCost, Is.EqualTo(47.22));
            Assert.That(line.RegistryCost, Is.EqualTo(0));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.Quantity, Is.EqualTo(10));
            Assert.That(line.Amount, Is.EqualTo(472.23));
            Assert.That(line.NdsAmount, Is.EqualTo(42.93));
            Assert.That(line.Producer, Is.EqualTo("Белмедпрепараты"));
            Assert.That(line.Period, Is.EqualTo("01.02.2016"));
            Assert.That(line.SerialNumber, Is.EqualTo("030112"));
            Assert.That(line.Unit, Is.EqualTo("уп."));
            Assert.That(line.Certificates, Is.EqualTo("РОСС BY.ФМ05.Д97735"));
            Assert.That(line.CertificatesDate, Is.EqualTo("06.02.2012"));
            Assert.That(line.EAN13, Is.EqualTo(4810133003801));
            Assert.IsNull(line.BillOfEntryNumber);
        }
Exemple #15
0
 public static void Load()
 {
     if (s_index == null)
     {
         s_index = new GameDbfIndex();
     }
     else
     {
         s_index.Initialize();
     }
     Achieve           = Dbf.Load("ACHIEVE", (Dbf.RecordAddedListener)null);
     Adventure         = Dbf.Load("ADVENTURE", (Dbf.RecordAddedListener)null);
     AdventureData     = Dbf.Load("ADVENTURE_DATA", (Dbf.RecordAddedListener)null);
     AdventureMission  = Dbf.Load("ADVENTURE_MISSION", (Dbf.RecordAddedListener)null);
     AdventureMode     = Dbf.Load("ADVENTURE_MODE", (Dbf.RecordAddedListener)null);
     Banner            = Dbf.Load("BANNER", (Dbf.RecordAddedListener)null);
     Booster           = Dbf.Load("BOOSTER", (Dbf.RecordAddedListener)null);
     Board             = Dbf.Load("BOARD", (Dbf.RecordAddedListener)null);
     Card              = Dbf.Load("CARD", new Dbf.RecordAddedListener(s_index.OnCardAdded));
     CardBack          = Dbf.Load("CARD_BACK", (Dbf.RecordAddedListener)null);
     FixedReward       = Dbf.Load("FIXED_REWARD", (Dbf.RecordAddedListener)null);
     FixedRewardAction = Dbf.Load("FIXED_REWARD_ACTION", new Dbf.RecordAddedListener(s_index.OnFixedRewardActionAdded));
     FixedRewardMap    = Dbf.Load("FIXED_REWARD_MAP", new Dbf.RecordAddedListener(s_index.OnFixedRewardMapAdded));
     Hero              = Dbf.Load("HERO", (Dbf.RecordAddedListener)null);
     Scenario          = Dbf.Load("SCENARIO", (Dbf.RecordAddedListener)null);
     Season            = Dbf.Load("SEASON", (Dbf.RecordAddedListener)null);
     Wing              = Dbf.Load("WING", (Dbf.RecordAddedListener)null);
 }
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NOMER")
            .DocumentHeader(h => h.DocumentDate, "DATA")
            .Invoice(i => i.BuyerName, "KLI")
            .Invoice(i => i.BuyerId, "REESTR")
            .Line(l => l.Code, "KOD")
            .Line(l => l.Product, "NM")
            .Line(l => l.Producer, "PROIZV")
            .Line(l => l.Country, "COUNTRY")
            .Line(l => l.SupplierCostWithoutNDS, "PRICMNDS")
            .Line(l => l.SupplierCost, "PRICWNDS")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.Amount, "SUMMA")
            .Line(l => l.Quantity, "KOLVO")
            .Line(l => l.Period, "SROKGODN")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.CertificatesDate, "SERTDATA")
            .Line(l => l.CertificatesEndDate, "SROKSERT")
            .Line(l => l.CertificateAuthority, "SERTKEM")
            .Line(l => l.SerialNumber, "SERIA")
            .Line(l => l.BillOfEntryNumber, "GTD")
            .Line(l => l.ProducerCost, "PRICE_PR")
            .Line(l => l.NdsAmount, "REG_NOM")
            .Line(l => l.RegistryCost, "NAC")
            .ToDocument(document, data);

            return(document);
        }
        public void DBFSaveTest()
        {
            batch.Lines.Value = new ObservableCollection <BatchLineView> {
                new BatchLineView(new BatchLine(), new OrderLine {
                    Code = "normal", ProductSynonym = "Папаверин"
                }),
                new BatchLineView(new BatchLine(), new OrderLine {
                    Code = "SuperLongCodeIsMoreThan9Symbols"
                           + "BetterToAddMoreSymbolsForClearTest"
                           + "MaybeItsStillNotLongEnought"
                           + "SomeMoreText"
                })
            };

            var results = batch.Save().GetEnumerator();
            var save    = Next <SaveFileResult>(results);

            save.Dialog.FilterIndex = 1;
            var file = cleaner.RandomFile();

            save.Dialog.FileName = file;
            Next(results);

            var dbf = Dbf.Load(file, Encoding.GetEncoding(1251));

            Assert.That(dbf.Rows.Count, Is.EqualTo(2));
            Assert.AreEqual("Папаверин", dbf.Rows[0]["Name"]);
        }
Exemple #18
0
        public void Parse()
        {
            Assert.IsTrue(BikovCheboksary12649Parser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\Б0001213.DBF")));
            var document = WaybillParser.Parse("Б0001213.DBF");

            Assert.That(document.ProviderDocumentId, Is.EqualTo("Б0001213"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("24.04.2012"));

            var invoice = document.Invoice;

            Assert.That(invoice, Is.Not.Null);
            Assert.That(invoice.InvoiceNumber, Is.EqualTo("Б0001213"));
            Assert.That(invoice.InvoiceDate.Value.ToShortDateString(), Is.EqualTo("24.04.2012"));
            Assert.That(invoice.BuyerName, Is.EqualTo("ИП Шахвердиева Валентина Александровна"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("3244"));
            Assert.That(line.Product, Is.EqualTo("911 Непотин гель д/ног 100 мл антиперспирант"));
            Assert.That(line.ProducerCost, Is.EqualTo(45.35));
            Assert.That(line.SupplierCost, Is.EqualTo(49.88));
            Assert.That(line.Nds, Is.EqualTo(18));
            Assert.That(line.Quantity, Is.EqualTo(1));
            Assert.That(line.NdsAmount, Is.EqualTo(0));
            Assert.That(line.Producer, Is.EqualTo("Твинс Тэк Россия"));
            Assert.That(line.Period, Is.EqualTo("01.08.2013"));
            Assert.That(line.SerialNumber, Is.EqualTo("0212"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС RU.АИ86.Д00149"));
            Assert.That(line.CertificatesDate, Is.EqualTo("16.04.2011"));
            Assert.IsNull(line.BillOfEntryNumber);
        }
        public void Parse()
        {
            var document = WaybillParser.Parse("Н4375_5061.dbf", new DocumentReceiveLog(new Supplier {
                Id = 7524
            }, new Address(new Client())));

            KronikaLtdParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\Н4375_5061.dbf"));
            Assert.That(document.Lines.Count, Is.EqualTo(24));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("061216"));
            Assert.That(document.DocumentDate, Is.EqualTo(Convert.ToDateTime("19.03.2015")));

            Assert.That(document.Lines[0].Code, Is.EqualTo("523203"));
            Assert.That(document.Lines[0].Product, Is.EqualTo("Амбробене сироп 15мг/5мл 100мл"));
            Assert.That(document.Lines[0].Producer, Is.EqualTo("Меркле ГмбХ"));
            Assert.That(document.Lines[0].Country, Is.EqualTo("Германия"));
            Assert.That(document.Lines[0].Quantity, Is.EqualTo(3));
            Assert.That(document.Lines[0].ProducerCostWithoutNDS, Is.EqualTo(86.87m));
            Assert.That(document.Lines[0].SupplierCostWithoutNDS, Is.EqualTo(96.42m));
            Assert.That(document.Lines[0].Certificates, Is.EqualTo("РОСС DE.ФМ08.Д28058"));
            Assert.That(document.Lines[0].VitallyImportant, Is.True);
            Assert.That(document.Lines[0].Nds.Value, Is.EqualTo(10));
            Assert.That(document.Lines[0].SupplierCost, Is.EqualTo(106.06));
            Assert.That(document.Lines[0].SupplierPriceMarkup, Is.EqualTo(10.99));
            Assert.That(document.Lines[0].NdsAmount, Is.EqualTo(28.93));
            Assert.That(document.Lines[0].Amount, Is.EqualTo(318.19m));
        }
        public Document Parse(string file, Document document)
        {
            string vitallyImportantColumn = null;
            string certificatesColumn     = null;
            string registryCostColumn     = null;

            var data = Dbf.Load(file, Encoding);

            if (data.Columns.Contains("LIFE_REQ"))
            {
                vitallyImportantColumn = "LIFE_REQ";
            }

            if (data.Columns.Contains("REESTR"))
            {
                registryCostColumn = "REESTR";
            }

            if (data.Columns.Contains("SERT"))
            {
                certificatesColumn = "SERT";
            }

            document.Lines = data.Rows.Cast <DataRow>().Select(r => {
                document.ProviderDocumentId = r["NUM_DOC"].ToString();
                if (!Convert.IsDBNull(r["DATA_DOC"]))
                {
                    document.DocumentDate = Convert.ToDateTime(r["DATA_DOC"]);
                }
                var line      = document.NewLine();
                line.Code     = r["CODE"].ToString();
                line.Product  = r["GOOD"].ToString();
                line.Producer = r["ENTERP"].ToString();
                line.Country  = r["COUNTRY"].ToString();
                line.ProducerCostWithoutNDS = Convert.IsDBNull(r["PRICEENT"]) ? null : (decimal?)Convert.ToDecimal(r["PRICEENT"], CultureInfo.InvariantCulture);
                line.SupplierCostWithoutNDS = Convert.ToDecimal(r["PRICEWONDS"], CultureInfo.InvariantCulture);
                line.SupplierCost           = Convert.ToDecimal(r["PRICE"], CultureInfo.InvariantCulture);
                line.Quantity = Convert.ToUInt32(r["QUANT"]);
                line.Period   = Convert.IsDBNull(r["DATEB"]) ? null : Convert.ToDateTime(r["DATEB"]).ToShortDateString();

                if (!String.IsNullOrEmpty(registryCostColumn))
                {
                    line.RegistryCost = Convert.IsDBNull(r[registryCostColumn]) ? null : (decimal?)Convert.ToDecimal(r[registryCostColumn], CultureInfo.InvariantCulture);
                }

                if (!String.IsNullOrEmpty(certificatesColumn))
                {
                    line.Certificates = Convert.IsDBNull(r[certificatesColumn]) ? null : r[certificatesColumn].ToString();
                }

                line.SerialNumber = Convert.IsDBNull(r["SERIAL"]) ? null : r["SERIAL"].ToString();
                line.Nds          = Convert.ToUInt32(r["NDS"], CultureInfo.InvariantCulture);
                if (!String.IsNullOrEmpty(vitallyImportantColumn))
                {
                    line.VitallyImportant = Convert.IsDBNull(r[vitallyImportantColumn]) ? null : (bool?)(Convert.ToUInt32(r[vitallyImportantColumn]) == 1);
                }
                return(line);
            }).ToList();
            return(document);
        }
        /// <summary>
        /// Парсер для формата файла DBF
        /// </summary>
        protected void ParseDBF(RejectHeader reject, string filename)
        {
            DataTable data;

            try
            {
                data = Dbf.Load(filename);
            }
            catch (Exception e)
            {
                var err = string.Format("Не удалось получить файл с отказами '{0}' для лога документа {1}", filename, reject.Log.Id);
                Logger.Warn(err, e);
                return;
            }
            for (var i = 0; i < data.Rows.Count; i++)
            {
                var rejectLine = new RejectLine();
                reject.Lines.Add(rejectLine);
                rejectLine.Product = data.Rows[i][10].ToString();
                rejectLine.Code    = data.Rows[i][9].ToString();
                rejectLine.Cost    = NullableConvert.ToDecimal(data.Rows[i][13].ToString());
                rejectLine.Ordered = NullableConvert.ToUInt32(data.Rows[i][14].ToString());
                var rejected = NullableConvert.ToUInt32(data.Rows[i][15].ToString());
                rejectLine.Rejected = rejected != null ? rejected.Value : 0;
            }
        }
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file);

            new DbfParser()
            .DocumentHeader(d => d.DocumentDate, "DATA_NAKL")
            .DocumentHeader(h => h.ProviderDocumentId, "NUM_NAKL")
            .Invoice(i => i.RecipientAddress, "ADDRESS")
            .Invoice(i => i.InvoiceNumber, "SF")
            .Line(l => l.Code, "KOD")
            .Line(l => l.Product, "NAME")
            .Line(l => l.Producer, "PROIZV")
            .Line(l => l.Country, "COUNTRY")
            .Line(l => l.ProducerCostWithoutNDS, "CENAPROIZ")
            .Line(l => l.ProducerCost, "CENAPRNDS")
            .Line(l => l.RegistryCost, "REESTR")
            .Line(l => l.SupplierCostWithoutNDS, "CENABNDS")
            .Line(l => l.SupplierCost, "CENASNDS")
            .Line(l => l.Quantity, "KOLVO")
            .Line(l => l.SerialNumber, "SERII")
            .Line(l => l.Period, "EXPDATE", "SROK_GODN")
            .Line(l => l.Nds, "NDSPOSTAV")
            .Line(l => l.NdsAmount, "SUMMANDS")
            .Line(l => l.Amount, "SUMMA")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.CertificatesDate, "DATAEND")
            .Line(l => l.CertificateAuthority, "SERTORG")
            .Line(l => l.BillOfEntryNumber, "N_DECLAR")
            .Line(l => l.VitallyImportant, "PV")
            .ToDocument(document, data);
            return(document);
        }
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NDOCNUM")
            .DocumentHeader(h => h.DocumentDate, "NDATE")
            .Line(l => l.Code, "ACWARES")
            .Line(l => l.Product, "WARESNAME")
            .Line(l => l.Producer, "PRODNAME")
            .Line(l => l.Country, "COUNTRY")
            .Line(l => l.ProducerCostWithoutNDS, "PLT_NO_NDS")
            .Line(l => l.SupplierCost, "ACSELLCOST")
            .Line(l => l.SupplierCostWithoutNDS, "SELL_NO_ND")
            .Line(l => l.Quantity, "ACAMOUNT")
            .Line(l => l.Period, "ACVALDATE")
            .Line(l => l.RegistryCost, "RECOST")
            .Line(l => l.Certificates, "CERTNUM")
            .Line(l => l.SerialNumber, "ACSERIES")
            .Line(l => l.VitallyImportant, "IS_VITAL")
            .Line(l => l.Nds, "NDS")
            .ToDocument(document, data);

            return(document);
        }
        public void Parse()
        {
            Assert.IsTrue(Vazakor_144_Parser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\00387_1.DBF")));
            var document = WaybillParser.Parse("00387_1.DBF");

            Assert.That(document.Lines.Count, Is.EqualTo(1));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("0000000387"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("20.02.2012"));

            var invoice = document.Invoice;

            Assert.That(invoice, Is.Not.Null);
            Assert.That(invoice.BuyerName, Is.EqualTo("Акватик ООО"));
            Assert.That(invoice.SellerName, Is.EqualTo("ООО \"ВАЗАКОР\""));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("132"));
            Assert.That(line.Product, Is.EqualTo("Шприц 1 мл инсулиновый HELMJECT U-40/100"));
            Assert.That(line.Unit, Is.EqualTo("шт"));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(2.94));
            Assert.That(line.SupplierCost, Is.EqualTo(3.23));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.Quantity, Is.EqualTo(200));
            Assert.That(line.Amount, Is.EqualTo(646.8));
            Assert.That(line.NdsAmount, Is.EqualTo(58.8));
            Assert.That(line.Producer, Is.EqualTo("HELM Medical GmbH"));
            Assert.That(line.Certificates, Is.EqualTo("РОСС.DE.ИМ08.Д00165"));
            Assert.That(line.CertificatesDate, Is.EqualTo("09.12.2014"));
        }
Exemple #25
0
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "IDDOC")
            .Line(l => l.Code, "ID_MP")
            .Line(l => l.Product, "NAMETOW")
            .Line(l => l.ProducerCostWithoutNDS, "SUMIZGOTWO")
            .Line(l => l.ProducerCost, "SUMIZGOT")
            .Line(l => l.SupplierCostWithoutNDS, "SUMPRIHWON")
            .Line(l => l.SupplierCost, "SUMPRIH")
            .Line(l => l.Producer, "IZGOT")
            .Line(l => l.Country, "STRANA")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.RegistryCost, "PRICE_REG")
            .Line(l => l.Amount, "PRICESWN")
            .Line(l => l.NdsAmount, "SNDS")
            .Line(l => l.Unit, "ED")
            .Line(l => l.EAN13, "EAN13")
            .Line(l => l.Quantity, "AMOUNTOW")
            .Line(l => l.Period, "SROK")
            .Line(l => l.Certificates, "NUMBSERT")
            .Line(l => l.CertificatesDate, "DATASERT")
            .Line(l => l.SerialNumber, "SERIA")
            .Line(l => l.BillOfEntryNumber, "NUMBGTD")
            .Line(l => l.VitallyImportant, "GNVLS")
            .ToDocument(document, data);

            return(document);
        }
Exemple #26
0
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NOM_SHET")
            .DocumentHeader(h => h.DocumentDate, "DATA_SCHET")
            .Line(l => l.Code, "KOD")
            .Line(l => l.Product, "NAME")
            .Line(l => l.Producer, "ZAVOD")
            .Line(l => l.Country, "STRANA")
            .Line(l => l.Period, "GOGEN_DO")
            .Line(l => l.Quantity, "KOLVO")
            .Line(l => l.SupplierCost, "CENA_OPT")
            .Line(l => l.SupplierCostWithoutNDS, "CENA_BNDS")
            .Line(l => l.ProducerCostWithoutNDS, "CENA_ZAV")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.VitallyImportant, "JV")
            .Line(l => l.RegistryCost, "REESTR")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.SerialNumber, "SERIA")
            .ToDocument(document, data);

            return(document);
        }
Exemple #27
0
        public void Parse()
        {
            Assert.IsTrue(Medkom_Mp_Spb.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\6792.dbf")));
            var document = WaybillParser.Parse("6792.dbf");

            Assert.That(document.Lines.Count, Is.EqualTo(28));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("СКЛ-006792"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("30.01.2012"));

            var invoice = document.Invoice;

            Assert.That(invoice, Is.Not.Null);
            Assert.That(invoice.InvoiceNumber, Is.EqualTo("СКЛ-006792"));
            Assert.That(invoice.InvoiceDate.Value.ToShortDateString(), Is.EqualTo("30.01.2012"));
            Assert.That(invoice.RecipientAddress, Is.EqualTo("ООО \"УК Здоровые Люди\",196105, Санкт-Петербург г, Московский пр-кт,  дом 143 лит.А 12Н"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("ММ-1016160"));
            Assert.That(line.Product, Is.EqualTo("DUREX (lubr)  Play O 15ml"));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(423.73));
            Assert.That(line.SupplierCost, Is.EqualTo(500));
            Assert.That(line.Nds, Is.EqualTo(18));
            Assert.That(line.EAN13, Is.EqualTo(0));
            Assert.That(line.Quantity, Is.EqualTo(2));
            Assert.That(line.Amount, Is.EqualTo(1000));
            Assert.That(line.NdsAmount, Is.EqualTo(152.54));
            Assert.That(line.Producer, Is.Null);
            Assert.That(line.Country, Is.EqualTo("ВЕЛИКОБРИТАНИЯ"));
            Assert.That(line.BillOfEntryNumber, Is.EqualTo("10130070/210611/0013791/1"));
            Assert.That(line.Period, Is.EqualTo("31.01.2015"));
            Assert.That(line.SerialNumber, Is.Null);
            Assert.That(line.VitallyImportant, Is.False);
            Assert.That(line.Certificates, Is.EqualTo("РОСС GB.АЯ46.Д39193"));
        }
Exemple #28
0
        public Document Parse(string file, Document document)
        {
            var data = Dbf.Load(file, Encoding);

            new DbfParser()
            .DocumentHeader(h => h.ProviderDocumentId, "NDOC")
            .DocumentHeader(h => h.DocumentDate, "DATEDOC")
            .Invoice(i => i.InvoiceNumber, "BILLNUM")
            .Invoice(i => i.InvoiceDate, "BILLDT")
            .Invoice(i => i.RecipientAddress, "PODR")
            .Line(l => l.Code, "CODEPST")
            .Line(l => l.Product, "NAME")
            .Line(l => l.Producer, "FIRM")
            .Line(l => l.Country, "CNTR")
            .Line(l => l.SupplierCost, "PRICE")
            .Line(l => l.ProducerCostWithoutNDS, "PRICEMAN")
            .Line(l => l.Amount, "SUMSNDS")
            .Line(l => l.NdsAmount, "SUMNDS")
            .Line(l => l.Quantity, "QNT")
            .Line(l => l.Period, "GDATE")
            .Line(l => l.Certificates, "SERTIF")
            .Line(l => l.SerialNumber, "SER")
            .Line(l => l.EAN13, "EAN13")
            .Line(l => l.BillOfEntryNumber, "GTD")
            .Line(l => l.Nds, "NDS")
            .Line(l => l.VitallyImportant, "ISLIFE")
            .ToDocument(document, data);

            return(document);
        }
Exemple #29
0
        public void Check_file_format()
        {
            Assert.IsTrue(Moron_338_SpecialParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\Р-1642648-1.dbf")));
            var document = WaybillParser.Parse(@"..\..\Data\Waybills\Р-1642648-1.dbf");

            Assert.IsTrue(document.Lines[0].VitallyImportant.Value);
        }
        public void Parse()
        {
            Assert.IsTrue(UralBioFarmKurskParser.CheckFileFormat(Dbf.Load(@"..\..\Data\Waybills\152307.DBF")));
            var document = WaybillParser.Parse("152307.DBF");

            Assert.That(document.Lines.Count, Is.EqualTo(3));
            Assert.That(document.ProviderDocumentId, Is.EqualTo("152307"));
            Assert.That(document.DocumentDate.Value.ToShortDateString(), Is.EqualTo("25.11.2011"));

            var invoice = document.Invoice;

            Assert.That(invoice, Is.Not.Null);
            Assert.That(invoice.InvoiceNumber, Is.EqualTo("152307"));
            Assert.That(invoice.InvoiceDate.Value.ToShortDateString(), Is.EqualTo("25.11.2011"));
            Assert.That(invoice.BuyerName, Is.EqualTo("ИП Нескородова Л.А."));
            Assert.That(invoice.BuyerAddress, Is.EqualTo("305025, г.Курск  Магистральный пр. 16 б"));

            var line = document.Lines[0];

            Assert.That(line.Code, Is.EqualTo("2029"));
            Assert.That(line.Product, Is.EqualTo("Асептолин р-р д/наруж. прим. 90% 100мл"));
            Assert.That(line.ProducerCostWithoutNDS, Is.EqualTo(15.32));
            Assert.That(line.ProducerCost, Is.EqualTo(16.85));
            Assert.That(line.SupplierCostWithoutNDS, Is.EqualTo(15.47));
            Assert.That(line.SupplierCost, Is.EqualTo(17.02));
            Assert.That(line.Nds, Is.EqualTo(10));
            Assert.That(line.Quantity, Is.EqualTo(210));
            Assert.That(line.Amount, Is.EqualTo(3573.57));
            Assert.That(line.NdsAmount, Is.EqualTo(324.87));
            Assert.That(line.Producer, Is.EqualTo("Фармацевтический комбинат (Россия)"));
            Assert.That(line.Period, Is.EqualTo("01.10.2013"));
            Assert.That(line.SerialNumber, Is.EqualTo("071011"));
            Assert.That(line.Certificates, Is.EqualTo("POCCRU.ФМ01.Д38608, 01.11.11, ФГБУ\"ЦЭККМП\"Росздравнадзора, 01.10.13"));
            Assert.IsNull(line.BillOfEntryNumber);
        }