Oferta TGSoft

Generator JPK_FA za pomocą API



Zapoznaj się z opisem pliku JPK_FA w zakresie analizy, weryfikacji, generowania z tabel Excel.


Program-JPK udostępnia API do generowania dokumentów JPK na podstawie zewnętrznych danych, które mogą być pobierane z rzeczywistych baz danych użytkowanych programów księgowych ERP.

Dodawanie własnych rozszerzeń wykonujemy w oknie Menu/JPK/API.



Plik JPK_FA

Lista własnych skryptów rozszerzających podstawowe funkcje programu.

Środowisko projektowania otwieramy za pomocą przycisku [Projektuj]. Utworzony i zapisany projekt uruchamiamy przyciskiem [Wykonaj].

Plik JPK_FA

Okno edytora kodu C#. W programie dostępny jest system podpowiedzi i automatycznego uzupełniania kodu „IntelliSense”

Plik JPK_FA

Po wykonaniu skryptu możemy wygenerować żądany plik XML z podglądem za pomocą wbudowanego edytora.

Wygenerowany JPK.XML można zapisać do pliku lub otworzyć do analizy i testowania. Z drugiej możliwości zalecamy korzystać podczas projektowania skryptu przez programistę.

  • Zapis: jpk.SaveFile(@"c:\TMP\test_jpk_fa3.xml");
  • Podgląd w oknie analizy: jpk.ShowJpkDialog();
  • Podgląd samego XML: jpk.ShowXmlDialog();

Poniżej prezentujemy cały kod C# przykładu do generowania JPK_FA. Wykaz nazw użytych do wypełniania danych opisany jest w tabeli.

namespace Szark
{
    using System;
    using TGSoft.JPK;
    using TGSoft.JPK.FA.Ver3;

    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        private Xml jpk;
        
        public Form1(object sender)
        {
            this.InitializeComponent();
        }

        public void Main()
        {
            JPK_FA();
        }
        
        private void JPK_FA()
        {
            jpk = new Xml();
            jpk.NaglowekFirmy();
            jpk.DataOd = new DateTime(2019, 11, 1);
            jpk.DataDo = new DateTime(2019, 11, 30);
            
            Faktura1();
            Faktura2();
            Korekta1();
            Zaliczka1();
            Zaliczka2();
            //jpk.SaveFile(@"c:\TMP\test_jpk_fa3.xml");
            jpk.ShowJpkDialog();
        }
        
        private void Faktura1()
        {
            var f = new Faktura();
            f.DaneSprzedawcy(jpk);
            f.NIPNabywcy = "8888888888";
            f.NazwaNabywcy = "Firma Handlowa Skowronek";
            f.AdresNabywcy = "00-001 Warszawa, Ul.Kościuszki 12";
            f.NumerFaktury = "FV/123/2019";
            f.KodWaluty = TGSoft.JPK.currCode_Type.EUR;
            f.DataWystawienia = new DateTime(2019, 11, 1);
            f.FakturaMPP = true;
                       
            var fw = new FakturaWiersz();
            fw.NazwaTowaruUslugi = "Monitor";
            fw.JednostkaMiary = "SZT";
            fw.Ilosc = 5;
            fw.CenaJednostkowaNetto = 1500;
            fw.WartosciPozycji();
            f.Add(fw);

            fw = new FakturaWiersz();
            fw.NazwaTowaruUslugi = "Komputer";
            fw.JednostkaMiary = "SZT";
            fw.Ilosc = 2;
            fw.StawkaVat = TStawkaVAT.Vat23;
            fw.CenaJednostkowaNetto = 5000;
            f.Add(fw, true);

            fw = new FakturaWiersz();
            fw.NazwaTowaruUslugi = "Nazwa stawka-8";
            fw.JednostkaMiary = "SZT";
            fw.Ilosc = 3;
            fw.StawkaVat = TStawkaVAT.Vat8;
            fw.CenaJednostkowaNetto = 100;
            f.Add(fw, true);
            
            f.WartosciFaktury();           
            jpk.Add(f);
        }
        
        private void Faktura2()
        {
            var f = new Faktura();
            f.DaneSprzedawcy(jpk);
            f.NIPNabywcy = "2222222222";
            f.NazwaNabywcy = "DWA Sp. z o.o.";
            f.AdresNabywcy = "34-400 Nowy Targ, Szaflarska 1";
            f.NumerFaktury = "FV/222/2019";
            f.DataWystawienia = new DateTime(2019, 11, 3);            
          
            f.AddFw("Towar 23", "szt", 10, TStawkaVAT.Vat23, 100, 1000, 123, 1230, 0);
            f.AddFw("Towar 8", "kg", 12, TStawkaVAT.Vat8, 200, 2400, 216, 2592, 0);
            f.AddFw("Towar 5", "opk", 14, TStawkaVAT.Vat5, 11, 0);
            f.AddFw("Towar 0", "szt", 1, TStawkaVAT.Vat0, 10, 0);
            f.AddFw("Towar zw", "szt", 2, TStawkaVAT.VatZw, 20, 0);
            f.AddFw("Towar np", "szt", 3, TStawkaVAT.VatNp, 30, 0);
            jpk.Add(f, true);
            
        }
        
        private void Korekta1()
        {
            var f = new Faktura();
            f.DaneSprzedawcy(jpk);
            f.NIPNabywcy = "2222222222";
            f.NazwaNabywcy = "DWA Sp. z o.o.";
            f.AdresNabywcy = "34-400 Nowy Targ, Szaflarska 1";
            f.NumerFaktury = "FK/1/2019";
            f.DataWystawienia = new DateTime(2019, 11, 5);
            f.DataDostawy = new DateTime(2019, 11, 3);
            
            f.RodzajFaktury = JPKFakturaRodzajFaktury.KOREKTA;
            f.NumerFakturyKorygowanej = "FV/222/2019";
            f.PrzyczynaKorekty = "Zwrot towaru";
            f.OkresFakturyKorygowanej = "Listopad 2019";
                       
            f.AddFw("Towar 23 - ZWROT", "szt", -10, TStawkaVAT.Vat23, 100, -1000, 123, -1230, 0);
            jpk.Add(f, true);
            
        }
        
        private void Zaliczka1()
        {
            var f = new Faktura();
            f.DaneSprzedawcy(jpk);
            f.NIPNabywcy = "3333333333";
            f.NazwaNabywcy = "TRZY Sp. z o.o.";
            f.AdresNabywcy = "30-389 Kraków, Zawiła 1";
            f.NumerFaktury = "FV/333/2019";
            f.DataWystawienia = new DateTime(2019, 11, 10);  
            
            f.RodzajFaktury = JPKFakturaRodzajFaktury.ZAL;                     
            f.AddFw("Zaliczka", "szt", 1, TStawkaVAT.Vat23, 1000, 0);
            
            f.AddZw("Towar zamówiony 1", "szt", 2, TStawkaVAT.Vat23, 300, 600, 138);
            f.AddZw("Towar zamówiony 2", "szt", 10, TStawkaVAT.Vat23, 500, 5000, 1150);
            jpk.Add(f, true);
        }
        
        private void Zaliczka2()
        {
            var f = new Faktura();
            f.DaneSprzedawcy(jpk);
            f.NIPNabywcy = "3333333333";
            f.NazwaNabywcy = "TRZY Sp. z o.o.";
            f.AdresNabywcy = "30-389 Kraków, Zawiła 1";
            f.NumerFaktury = "FV/340/2019";
            f.DataWystawienia = new DateTime(2019, 11, 20);  
            
            f.RodzajFaktury = JPKFakturaRodzajFaktury.ZAL; 
            f.NrFaZaliczkowej = "FV/333/2019";          
            f.AddFw("Zaliczka dopłata", "szt", 1, TStawkaVAT.Vat23, 2000, 0);
            
            var zw = new ZamowienieWiersz();
            zw.NazwaTowaruUslugi = "Towar zamówiony 1";
            zw.JednostkaMiary = "szt";
            zw.Ilosc = 2;
            zw.CenaJednostkowaNetto = 300;
            f.Add(zw, true);
            
            zw = new ZamowienieWiersz();
            zw.NazwaTowaruUslugi = "Towar zamówiony 2";
            zw.JednostkaMiary = "szt";
            zw.Ilosc = 10;
            zw.CenaJednostkowaNetto = 500;
            f.Add(zw, true);
            
            jpk.Add(f, true);
        }      
    }
}
        


Plik JPK_FA



Drugi przykład prezentuje API do generowania JPK_FA z demonstracyjnych tabel DBF, które używane są w kreatorze importu DBF.

namespace Szark
{
    using System;
    using System.Data;
    using TGSoft.DB;
    using TGSoft.JPK;
    using TGSoft.JPK.FA.Ver3;
    using TGSoft.Utils;

    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        private ADS dbf;
        private Xml jpk;
        
        public Form1(object sender)
        {
            this.InitializeComponent();
        }

        public void Main()
        {
            dbf = new ADS("", @"C:\Program-JPK\Import", "", "") { TableType = ADS.AdsTableType.DBF_NTX };
            JPK_FA();
        }
        
        private void JPK_FA()
        {
            jpk = new Xml();
            jpk.NaglowekFirmy();
            jpk.DataOd = new DateTime(2019, 11, 1);
            jpk.DataDo = new DateTime(2019, 11, 30);
            
            Faktury();
            jpk.ShowJpkDialog();
        }
        
        private void Faktury()
        {
            var dtFa = dbf.GetSQLTable("SELECT * FROM jpk_fa");
            foreach (DataRow row in dtFa.Rows)
            {
                var f = new Faktura();
                f.DaneSprzedawcy(jpk);
                f.NazwaNabywcy = row["NazwaNab"].ToStr();
                f.AdresNabywcy = row["AdresNab"].ToStr();
                f.NumerFaktury = row["NumerFak"].ToStr();
                f.DataWystawienia = row["DataWys"].ToDateTime();
                
                WierszeFaktury(f, row["ID_FA"].ToInt());
            
                f.WartosciFaktury();
                jpk.Add(f);
            }
           
        }
        
        private void WierszeFaktury(Faktura f, int id)
        {
            var dtFaw = dbf.GetSQLTable("SELECT * FROM jpk_faw WHERE id_fa=" + id.ToStr());
            foreach (DataRow row in dtFaw.Rows)
            {
                var fw = new FakturaWiersz();
                fw.NazwaTowaruUslugi = row["Nazwa"].ToStr();
                fw.JednostkaMiary = row["JM"].ToStr();
                fw.Ilosc = row["ILOSC"].ToDecimal();
                fw.StawkaVat = TStawkaVAT.Vat23;
                fw.CenaJednostkowaNetto = row["CenaNetto"].ToDecimal();
                fw.WartosciPozycji();
                f.Add(fw);
            }
        }
    }
}        
        


Zapoznaj się z następnym dokumentem Odczyt danych z bazy MS SQL SERVER EXPRESS.