Aktualna wersja: 19.10.28


Generator JPK_FA za pomocą API

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.

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



Generator JPK API

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

Środowisko projektowania otwieramy za pomocą przycisku [Projektuj].



Generator JPK API

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



Generator JPK API

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



Generator JPK API

Wykonanie skryptu umożliwia też przeglądanie faktury za pomocą dedykowanego okna Faktury, gdzie w przyjazny sposób zaprezentowano wszystkie zapisy nagłówka faktury oraz elementów pozycji faktury.

W środowisku produkcyjnym nie będziemy prezentować wyników lecz wykonamy bezpośredni zapis XML do właściwego Rejestru.


Poniżej cały kod C# naszego przykładu:

namespace Szark
{
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using TGSoft.JPK;

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

        public void Main()
        {
            JPK_FA();
        }
        
        private void JPK_FA()
        {
            jpk = new TGSoft.JPK.FA.Ver1.Xml();
            jpk.NaglowekFirmy();
            jpk.DataOd = new DateTime(2016, 10, 1);
            jpk.DataDo = new DateTime(2016, 10, 31);
            
            Faktury();
            jpk.ShowDialog();
        }
        
        private void Faktury()
        {
            var f = new TGSoft.JPK.FA.Faktura();
            f.DaneSprzedawcy(jpk);
            f.NazwaNabywcy = "Firma Handlowa Skowronek";
            f.AdresNabywcy = "00-001 Warszawa, Ul.Kościuszki 12";
            f.NumerFaktury = "FV/123/2016";
            f.DataWystawienia = new DateTime(2016, 10, 5);
            
            var fw = new TGSoft.JPK.FA.FakturaWiersz();
            fw.NazwaTowaruUslugi = "Monitor";
            fw.JednostkaMiary = "SZT";
            fw.Ilosc = 1;
            fw.StawkaVat = TStawkaVAT.Vat23;
            fw.CenaJednostkowaNetto = 150;
            fw.WartosciPozycji();
            f.Add(fw);

            fw = new TGSoft.JPK.FA.FakturaWiersz();
            fw.NazwaTowaruUslugi = "Klawiatura";
            fw.JednostkaMiary = "SZT";
            fw.Ilosc = 2;
            fw.StawkaVat = TStawkaVAT.Vat8;
            fw.CenaJednostkowaNetto = 100;
            fw.WartosciPozycji();
            f.Add(fw);
            
            f.WartosciFaktury();
            jpk.Add(f);
        }
    }
}
        



Generator JPK API


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 System.Drawing;
    using System.Windows.Forms;
    using TGSoft.DB;
    using TGSoft.JPK;
    using TGSoft.JPK.FA;
    using TGSoft.JPK.FA.Ver1;
    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(2018, 6, 1);
            jpk.DataDo = new DateTime(2018, 6, 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.