Beispiel #1
0
 private void CoppySellRowsCtrl(JPK jpk, Business.JPKXMLModels.JPK jpkXML)
 {
     if (jpk.Sell.SellCtrl.Count > 0)
     {
         var ctrl = MapperHelper.Map <Business.JPKXMLModels.JPKEwidencjaSprzedazCtrl>(cfg => cfg.CreateMap <SellCtrl, Business.JPKXMLModels.JPKEwidencjaSprzedazCtrl>(), jpk.Sell.SellCtrl[0]);
         jpkXML.Ewidencja.SprzedazCtrl = ctrl;
     }
 }
Beispiel #2
0
 private void CopyBuyRowsCtrl(JPK jpk, Business.JPKXMLModels.JPK jpkXML)
 {
     if (jpk.Buy.BuyCtrl.Count > 0)
     {
         var ctrl = MapperHelper.Map <Business.JPKXMLModels.JPKEwidencjaZakupCtrl>(cfg => cfg.CreateMap <BuyCtrl, Business.JPKXMLModels.JPKEwidencjaZakupCtrl>(), jpk.Buy.BuyCtrl[0]);
         jpkXML.Ewidencja.ZakupCtrl = ctrl;
     }
 }
Beispiel #3
0
        public static void CreateWithAutoFixture()
        {
            Fixture fixture = new Fixture();

            JPK jpk = fixture.Create <JPK>();

            NamespacePrefixer.Serialize(jpk, "JPK_VAT_output_from_AutoFixture.xml");
        }
        static void Main(string[] args)
        {
            JpkCreator.CreateWithAutoFixture();

            var path = @"JPK_VAT_example.xml";

            if (File.Exists(path))
            {
                JPK jpk = XmlSerializerHelper.FromFile <JPK>(path);
                NamespacePrefixer.Serialize(jpk, "JPK_VAT_output.xml");
            }

            Console.WriteLine("Done");
        }
Beispiel #5
0
        public async Task LoadDBAsync(string path)
        {
            _jpkXML = await TryToDeserializeObjectAsync <Business.JPKXMLModels.JPK>(path);

            var jpk = new JPK();

            LoadDeclarationFields(jpk.Declaration);
            CopyDeclarationFields(_jpkXML.Deklaracja.PozycjeSzczegolowe, jpk.Declaration, GenerateP_XPropertiesName());
            CopySellRows(_jpkXML.Ewidencja.SprzedazWiersz, jpk, jpk.Sell);
            CoppySellRowsCtrl(_jpkXML.Ewidencja.SprzedazCtrl, jpk, jpk.Sell);
            CopyBuyRows(_jpkXML.Ewidencja.ZakupWiersz, jpk);
            CoppyBuyRowsCtrl(_jpkXML.Ewidencja.ZakupCtrl, jpk);
            _sessionContext.JPKDataSource = jpk;
        }
        public void ValidData_JpkFileCorrectlyGenerated()
        {
            IList <invoice> invoices = new List <invoice>();

            invoice invoice1 = new invoice()
            {
                invoice_id         = 1,
                invoice_number     = "3/2020",
                description        = "Usługi informatyczne",
                amount_net         = 2000,
                amount_vat         = 460,
                vat_rate           = 23,
                contractor_name    = "Tiger Bonzo 2016",
                contractor_address = "ul. Mineralna 3, 91-601 Łódź",
                contractor_nip     = "3921787841",
                date_of_issue      = new DateTime(2020, 02, 29),
                date_of_sale       = new DateTime(2020, 02, 29),
                income             = true
            };

            invoice invoice2 = new invoice()
            {
                invoice_id         = 1,
                invoice_number     = "4/2020",
                description        = "Usługi informatyczne",
                amount_net         = 1000,
                amount_vat         = 230,
                vat_rate           = 23,
                contractor_name    = "Tiger Bonzo 2016",
                contractor_address = "ul. Mineralna 3, 91-601 Łódź",
                contractor_nip     = "3921787841",
                date_of_issue      = new DateTime(2020, 02, 29),
                date_of_sale       = new DateTime(2020, 02, 29),
                income             = true
            };

            invoices.Add(invoice1);
            invoices.Add(invoice2);

            config config = new config()
            {
                config_id             = 1,
                my_name               = "Kamil Murański IT",
                my_address            = "Zabłocińska 4/23, 01-697, Warszawa",
                my_nip                = "1182144394",
                my_email              = "*****@*****.**",
                form_variant          = "3",
                path_for_jpk          = @"C:\JPK",
                purpose_of_submission = "0",
                system_name           = "Microsoft Excel"
            };

            DateTime dateFrom = new DateTime(2020, 02, 01);
            DateTime dateTo   = new DateTime(2020, 02, 29);

            JpkGenerator jpkGenerator = new JpkGenerator();

            JPK jpk = jpkGenerator.GenerateJpk(invoices, config, dateFrom, dateTo);

            jpk.Should().NotBeNull();
            jpk.Naglowek.KodFormularza.kodSystemowy.Should().Be("JPK_VAT (3)");
            jpk.Naglowek.KodFormularza.Value.Should().Equals(0); //enum TKodFormularza.JPK_VAT == 0
            jpk.Naglowek.KodFormularza.wersjaSchemy.Should().Be("1-1");
            jpk.Naglowek.WariantFormularza.Should().Equals(3);
            jpk.Naglowek.CelZlozenia.Should().Be("0");
            jpk.Naglowek.DataOd.Should().Be(new DateTime(2020, 02, 01));
            jpk.Naglowek.DataDo.Should().Be(new DateTime(2020, 02, 29));
            jpk.Naglowek.NazwaSystemu.Should().Be("Microsoft Excel");

            jpk.Podmiot1.NIP.Should().Be("1182144394");
            jpk.Podmiot1.PelnaNazwa.Should().Be("Kamil Murański IT");
            jpk.Podmiot1.Email.Should().Be("*****@*****.**");

            jpk.SprzedazWiersz.Should().HaveCount(2);
            jpk.SprzedazWiersz[0].LpSprzedazy.Should().Be("1");
            jpk.SprzedazWiersz[0].NrKontrahenta.Should().Be("3921787841");
            jpk.SprzedazWiersz[0].NazwaKontrahenta.Should().Be("Tiger Bonzo 2016");
            jpk.SprzedazWiersz[0].AdresKontrahenta.Should().Be("ul. Mineralna 3, 91-601 Łódź");
            jpk.SprzedazWiersz[0].DowodSprzedazy.Should().Be("3/2020");
            jpk.SprzedazWiersz[0].DataWystawienia.Should().Be(new DateTime(2020, 02, 29));
            jpk.SprzedazWiersz[0].DataSprzedazy.Should().Be(new DateTime(2020, 02, 29));
            jpk.SprzedazWiersz[0].K_19.Should().Equals("2000");
            jpk.SprzedazWiersz[0].K_20.Should().Equals("460");

            jpk.SprzedazWiersz[1].LpSprzedazy.Should().Be("2");
            jpk.SprzedazWiersz[1].NrKontrahenta.Should().Be("3921787841");
            jpk.SprzedazWiersz[1].NazwaKontrahenta.Should().Be("Tiger Bonzo 2016");
            jpk.SprzedazWiersz[1].AdresKontrahenta.Should().Be("ul. Mineralna 3, 91-601 Łódź");
            jpk.SprzedazWiersz[1].DowodSprzedazy.Should().Be("4/2020");
            jpk.SprzedazWiersz[1].DataWystawienia.Should().Be(new DateTime(2020, 02, 29));
            jpk.SprzedazWiersz[1].DataSprzedazy.Should().Be(new DateTime(2020, 02, 29));
            jpk.SprzedazWiersz[1].K_19.Should().Equals("1000");
            jpk.SprzedazWiersz[1].K_20.Should().Equals("230");

            jpk.SprzedazCtrl.LiczbaWierszySprzedazy.Should().Equals("2");
            jpk.SprzedazCtrl.PodatekNalezny.Should().Equals("690");

            jpk.ZakupCtrl.LiczbaWierszyZakupow.Should().Equals("0");
            jpk.ZakupCtrl.PodatekNaliczony.Should().Equals("0");
        }
Beispiel #7
0
        public JPK GenerateJpk(IList <invoice> invoices, config config, DateTime dateFrom, DateTime dateTo)
        {
            JPK jpk = new JPK();

            jpk.Naglowek = new TNaglowek();
            jpk.Naglowek.KodFormularza = new TNaglowekKodFormularza();
            //jpk.Naglowek.KodFormularza.kodSystemowy = "JPK_VAT (3)";
            //jpk.Naglowek.KodFormularza.wersjaSchemy = "1-1";
            jpk.Naglowek.WariantFormularza = 3; //config.form_variant
            //jpk.Naglowek.CelZlozenia = config.purpose_of_submission; //0
            jpk.Naglowek.DataWytworzeniaJPK = DateTime.Now;
            jpk.Naglowek.DataOd             = dateFrom;
            jpk.Naglowek.DataDo             = dateTo;
            jpk.Naglowek.NazwaSystemu       = config.system_name;


            jpk.Podmiot1            = new JPKPodmiot1();
            jpk.Podmiot1.NIP        = config.my_nip;
            jpk.Podmiot1.PelnaNazwa = config.my_name;
            jpk.Podmiot1.Email      = config.my_email;

            var     incomeInvoices = invoices.Where(a => a.income == true).ToArray();
            decimal incomeSum      = 0;

            jpk.SprzedazWiersz = new JPKSprzedazWiersz[incomeInvoices.Count()];
            for (var i = 0; i < incomeInvoices.Count(); i++)
            {
                var currentInvoice     = incomeInvoices[i];
                JPKSprzedazWiersz item = new JPKSprzedazWiersz();
                item.LpSprzedazy            = (i + 1).ToString();
                item.NrKontrahenta          = currentInvoice.contractor_nip;
                item.NazwaKontrahenta       = currentInvoice.contractor_name;
                item.AdresKontrahenta       = currentInvoice.contractor_address;
                item.DowodSprzedazy         = currentInvoice.invoice_number;
                item.DataWystawienia        = currentInvoice.date_of_issue;
                item.DataSprzedazy          = currentInvoice.date_of_sale;
                item.DataSprzedazySpecified = true;
                item.K_19             = currentInvoice.amount_net;
                item.K_20             = currentInvoice.amount_vat;
                jpk.SprzedazWiersz[i] = item;
                incomeSum             = incomeSum + currentInvoice.amount_vat;
            }

            jpk.SprzedazCtrl = new JPKSprzedazCtrl();
            jpk.SprzedazCtrl.LiczbaWierszySprzedazy = incomeInvoices.Count().ToString();
            jpk.SprzedazCtrl.PodatekNalezny         = incomeSum;

            var     outcomeInvoices = invoices.Where(a => a.income == false).ToArray();
            decimal outcomeSum      = 0;

            jpk.ZakupWiersz = new JPKZakupWiersz[outcomeInvoices.Count()];
            for (var i = 0; i < outcomeInvoices.Count(); i++)
            {
                var            currentInvoice = outcomeInvoices[i];
                JPKZakupWiersz item           = new JPKZakupWiersz();
                item.LpZakupu      = (i + 1).ToString();
                item.NrDostawcy    = currentInvoice.contractor_nip;
                item.NazwaDostawcy = currentInvoice.contractor_name;
                item.AdresDostawcy = currentInvoice.contractor_address;
                item.DowodZakupu   = currentInvoice.invoice_number;
                item.DataZakupu    = currentInvoice.date_of_issue; //być może zamieniona kolejność
                item.DataWplywu    = currentInvoice.date_of_sale;  //być może zamieniona kolejność
                item.K_45          = currentInvoice.amount_net;
                item.K_46          = currentInvoice.amount_vat;
                jpk.ZakupWiersz[i] = item;
                outcomeSum         = outcomeSum + currentInvoice.amount_vat;
            }

            jpk.ZakupCtrl = new JPKZakupCtrl();
            jpk.ZakupCtrl.LiczbaWierszyZakupow = outcomeInvoices.Count().ToString();
            jpk.ZakupCtrl.PodatekNaliczony     = outcomeSum;

            XmlSerializer serializer  = new XmlSerializer(typeof(JPK));
            string        jpkFileName = "JPK_" + new DateTime().Month + "_" + new DateTime().Year + ".xml";
            string        path        = config.path_for_jpk + "\\" + jpkFileName;

            using (MemoryStream stream = new MemoryStream())
                using (StreamWriter writer = new StreamWriter(path, false, Encoding.UTF8))
                {
                    serializer.Serialize(writer, jpk);
                }
            return(jpk);
        }
Beispiel #8
0
 public static void InitZakupArray(this JPK jpk, int zakupLenght)
 {
     jpk.ZakupWiersz = new JPKZakupWiersz[zakupLenght];
 }
Beispiel #9
0
 public static void InitSprzedazArray(this JPK jpk, int sprzedazLenght)
 {
     jpk.SprzedazWiersz = new JPKSprzedazWiersz[sprzedazLenght];
 }
Beispiel #10
0
        private void CoppyBuyRowsCtrl(Business.JPKXMLModels.JPKEwidencjaZakupCtrl zakupCtrl, JPK jpk)
        {
            var buyCtrl = MapperHelper.Map <BuyCtrl>(cfg => cfg.CreateMap <Business.JPKXMLModels.JPKEwidencjaZakupCtrl, BuyCtrl>(), zakupCtrl);

            jpk.Buy.BuyCtrl.Add(buyCtrl);
        }
Beispiel #11
0
        private void CopyBuyRows(Business.JPKXMLModels.JPKEwidencjaZakupWiersz[] zakupWiersz, JPK jpk)
        {
            var buyRows = MapperHelper.Map <List <BuyRow> >(cfg => cfg.CreateMap <Business.JPKXMLModels.JPKEwidencjaZakupWiersz, BuyRow>(), zakupWiersz);

            jpk.Buy.BuyRows = buyRows;
        }
Beispiel #12
0
        private void CopyBuyRows(JPK jpk, Business.JPKXMLModels.JPK jpkXML)
        {
            var buyRows = MapperHelper.Map <Business.JPKXMLModels.JPKEwidencjaZakupWiersz[]>(cfg => cfg.CreateMap <BuyRow, Business.JPKXMLModels.JPKEwidencjaZakupWiersz>(), jpk.Buy.BuyRows);

            jpkXML.Ewidencja.ZakupWiersz = buyRows;
        }
Beispiel #13
0
        private void CopySellRows(JPK jpk, Business.JPKXMLModels.JPK jpkXML)
        {
            var sellRows = MapperHelper.Map <Business.JPKXMLModels.JPKEwidencjaSprzedazWiersz[]>(cfg => cfg.CreateMap <SellRow, Business.JPKXMLModels.JPKEwidencjaSprzedazWiersz>(), jpk.Sell.SellRows);

            jpkXML.Ewidencja.SprzedazWiersz = sellRows;
        }
Beispiel #14
0
        private void CoppySellRowsCtrl(Business.JPKXMLModels.JPKEwidencjaSprzedazCtrl sprzedazCtrl, JPK jpk, Sell sell)
        {
            var sellCtrl = MapperHelper.Map <SellCtrl>(cfg => cfg.CreateMap <Business.JPKXMLModels.JPKEwidencjaSprzedazCtrl, SellCtrl>(), sprzedazCtrl);

            sellCtrl.Sell = sell;              //TO DO change it
            sellCtrl.ValidatePodatekNalezny(); // TO Do change it
            jpk.Sell.SellCtrl.Add(sellCtrl);
        }
Beispiel #15
0
        private void CopySellRows(Business.JPKXMLModels.JPKEwidencjaSprzedazWiersz[] sprzedazWiersz, JPK jpk, Sell sell)
        {
            var sellRows = MapperHelper.Map <List <SellRow> >(cfg => cfg.CreateMap <Business.JPKXMLModels.JPKEwidencjaSprzedazWiersz, SellRow>(), sprzedazWiersz);

            foreach (var sellRow in sellRows) //TO Do change IT!!!!
            {
                sellRow.Sell = sell;
            }
            jpk.Sell.SellRows = sellRows;
        }