Program-JPK z własnym API

408 views
Skip to first unread message

tgs...@tgsoft.pl

unread,
Oct 13, 2016, 2:09:05 PM10/13/16
to Jednolity Plik Kontrolny

Pod adresem http://program-jpk.pl nowy, uniwersalny program do obsługi plików JPK. Między innymi generowanie JPK za pomocą wbudowanego API.


Tadeusz Gołębiowski

tgs...@tgsoft.pl

unread,
Nov 8, 2016, 10:58:59 AM11/8/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

API do generowania JPK_FA. Bezpośrednio z programu można pobrać rekordy z własnych baz danych za pomocą składni SQL. 

Nowy dokument z prezentacją API: http://www.program-jpk.pl/JPK_FA-API.aspx


Bolek

unread,
Nov 9, 2016, 5:19:19 AM11/9/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Witam,

Rozumiem, że program pozwoli utworzyć plik JPK FA na podstawie danych z zewnętrznych systemów.
Trzeba jednak samemu stworzyć skrypt w API.
Jednak przykład ze strony zawiera wartości wprowadzone na sztywno.
Czy można prosić o przykład pobrania danych (faktur) z bazy Microsoft SQL Server Express?
Chodzi mi o przykład pętli pobierającej i tworzący kolejne faktury.
Wystarczy przykład pobrania danych z tabeli "Faktury" dla pól "NumerFaktury" (P_2A)  i "NazwaKontrahenta" (P_3A)

pozdrawiam
Bolek

tgs...@tgsoft.pl

unread,
Nov 10, 2016, 11:27:58 AM11/10/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl, x9.a...@gmail.com

Odczyt danych z bazy MS SQL Server opisuje nowy dokument:

http://program-jpk.pl/MsSQL-API.aspx


z.g...@wp.pl

unread,
Nov 10, 2016, 4:35:40 PM11/10/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Próbuję uruchomić przykład z tematu: "Generator JPK za pomocą API".
Wychodzi mi błąd: "L50:C51  Nazwa typu lub przestrzeni nazw „SyntaxXmlDlg” nie istnieje w przestrzeni nazw „TGSoft.JPK.Forms”".
Mogę prosić o podpowiedź?

Pozdrawiam

tgs...@tgsoft.pl

unread,
Nov 11, 2016, 3:19:35 AM11/11/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

W aktualnej wersji programu uproszczono kod do podglądu XML. Teraz wystarczy metoda:

jpk.ShowXmlDialog();


Przykład na stronie został zaktualizowany.



GZ

unread,
Nov 11, 2016, 7:06:34 AM11/11/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Świetne narzędzie. Bardzo przejrzyste. Gratuluję !

Udało mi się pobrać dane ze starego programu FK. Nawet dość złożone wyrażenie SQL zadziałało i podało dobre wyniki.
Gdy dokończę wydobywanie danych, będę miał plik JPK w formie XML'a.
Jakie powinienem zrobić dalsze ruchy, aby zapisać go do rejestru plików JPK i aby móc go dalej podpisać i wysłać?

Pozdrawiam
GZ


tgs...@tgsoft.pl

unread,
Nov 11, 2016, 7:34:26 AM11/11/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
>Świetne narzędzie. Bardzo przejrzyste. Gratuluję !

Dziękuję



 Na końcu skryptu zamiast:

            jpk.ShowXmlDialog();


dajemy:

            jpk.SaveDB();


Metoda SaveDB() zapisuje plik bezpośrednio do [Rejestru Plików JPK] z automatycznym wypełnieniem rejestrów VAT sprzedaży i zakupów. Dalsze czynności (podpisywanie i wysyłanie) wykonuje użytkownik aplikacji z tego okna.


Można też zapisać wygenerowany XML do pliku metodą:

jpk.SaveFile(@"c:\tmp\nazwa_Pliku.xml");


ale w takim przypadku użytkownik przed wysłaniem pliku musi go dodać do listy za pomocą przycisku [Import]

http://program-jpk.pl/Rejestr-JPK.aspx




GZ

unread,
Nov 12, 2016, 7:26:45 AM11/12/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Czy jest wbudowana funkcja transponująca KodUrzedu z int, czy string na TGSoft.JPK.TKodUS?

Pozdrawiam 

tgs...@tgsoft.pl

unread,
Nov 12, 2016, 7:46:29 AM11/12/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

Niestety funkcja nie jest publiczna.

Ale pisząc kod C# nie jest to potrzebne, można użyć składni:

jpk.KodUrzedu = TGSoft.JPK.TKodUS.Item1214;


Lub całkowicie pominąć ręczne wypełnianie wszystkich pól nagłówkowych (adresowych) za pomocą metody:

jpk.NaglowekFirmy();


Wtedy dane nagłówkowe (nazwa, adres, nip, US) pobrane będą z programu z okna Menu/Kartoteki/Dane firmy


GZ

unread,
Nov 12, 2016, 4:14:16 PM11/12/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Czy wśród metod użytkowych ma Pan metodę umożliwiającą wprowadzenie zakresu dat, dla których chcemy wygenerować plik jpk?
Pozdrawiam

tgs...@tgsoft.pl

unread,
Nov 14, 2016, 3:57:27 AM11/14/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

Parametry (w tym przypadku daty obliczeń) można podać za pomocą własnego okna dialogowego używając standardowych kontrolek .NET, lub za pomocą wbudowanej klasy w programie.

Obydwie metody opisane są w nowym dokumencie wraz z materiałem Video:


http://program-jpk.pl/OknaDialogowe-API.aspx


GZ

unread,
Nov 17, 2016, 2:52:46 AM11/17/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Bardzo dziękuję za szybkie odpowiedzi i udostępnianie kolejnych pożytecznych funkcjonalności.

Wygląda na to, że udało mi się przy pomocy tego narzędzia rozwiązać problem JPK dla starych programów FK.
W demo wszystko działa, więc w najbliższym czasie zakupię licencję.

Pozdrawiam

GZ

unread,
Dec 8, 2016, 2:34:19 AM12/8/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Dziękuję za uwzględnienie tematu uprawnień. Ułatwi to działanie u klientów.
Proszę o wskazówki, jak używać tego nowego mechanizmu, aby móc wrzucić swój kod API.

Pozdrawiam.

tgs...@tgsoft.pl

unread,
Dec 8, 2016, 4:31:28 AM12/8/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

Rozumiem, że pytanie dotyczy API do JPK_VAT (2).

W przypadku API do JPK_VAT posługujemy się nazwami ze schematu XSD, w którym wprowadzono kilka zmian w nazwach pól.


Aby dostosować skrypt z wersji 1 do 2 należy:

Zmienić przestrzeń nazw using TGSoft.JPK.VAT.Ver1;  na using TGSoft.JPK.VAT.Ver2;


Nowe nazwy pól zaznaczone na przykładzie kodu ze strony:


        private void ImportDBF()
        {
            var dbf = new ADS("", @".\Import", "", "") { TableType = ADS.AdsTableType.VFP };
            var dt = dbf.GetSQLTable("SELECT * FROM jpk_vat_w1 WHERE sz='S'");
            
            var jpk = new Xml();
            jpk.PelnaNazwa = "Firma Testowa FHU";
            jpk.NIP = "1111111111";
            jpk.DataOd = new DateTime(2016, 9, 1);
            jpk.DataDo = new DateTime(2016, 9, 30);
            
            foreach (DataRow row in dt.Rows)
            {
                var sw = new JPKSprzedazWiersz();
                sw.NrKontrahenta = row["nip"].ToStr();
                sw.NazwaKontrahenta = Conversions.Mazovia(row["nazwa"].ToStr());
                sw.AdresKontrahenta = row["adres"].ToStr().Trim();
                sw.DataWystawienia = row["dataww"].ToDateTime();
                sw.DowodSprzedazy = row["nrfaktury"].ToStr().Trim();
                sw.K_10 = row["k_10"].ToDecimal();
                sw.K_17 = row["k_17"].ToDecimal();
                sw.K_18 = row["k_18"].ToDecimal();
                sw.K_19 = row["k_19"].ToDecimal();
                sw.K_20 = row["k_20"].ToDecimal();
                jpk.Add(sw);
            }
            
            jpk.ShowXmlDialog();
        }


W polu NazwaKontrahenta zastosowano nową funkcję Mazovia, która ułatwi bezpośredni import danych z kodowaniem polskich liter w standardzie Mazovia.


GZ

unread,
Dec 10, 2016, 6:26:05 AM12/10/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Pobrałem nową wersję. Dwa pytanka:
  1. Jak użyć nową funkcjonalność związaną z uprawnieniami, czyli jak zablokować dostęp do kodu API po instalacji u klienta?
  2. Gdy użyję metody jpk.SaveDB(), to nie zapisuję się do rejestru plików JPK. W zakładkach "Sprzedaż VAT" i "Zakupu VAT" zapisuje się.
Pozdrawiam
Zbigniew Grzelczak

tgs...@tgsoft.pl

unread,
Dec 12, 2016, 4:08:54 AM12/12/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
>Jak użyć nową funkcjonalność związaną z uprawnieniami, czyli jak zablokować dostęp do kodu API po instalacji u klienta?



W zakładce Menu/Kartoteki/[Uprawnienia dostępu] zdefiniować hasło dla ADMIN oraz dodać nowego użytkownika z własnymi uprawnieniami (zaznaczyć listę pozycji z prawej strony)



 
>Gdy użyję metody jpk.SaveDB(), to nie zapisuję się do rejestru plików JPK. W zakładkach "Sprzedaż VAT" i "Zakupu VAT" zapisuje się.


Lista zawiera tylko zapisy z bieżącego roku.

Prawdopodobnie importowano dokumenty z roku 2017 [VAT (2)], a program otwarty jest w roku 2016. Proszę zmienić rok w oknie Menu/Narzędzia/Otwarcie nowego roku

W kolejnej aktualizacji program będzie kontrolował import JPK z bieżącym rokiem i będzie wymagał zmianę roku w takim przypadku.

 

GZ

unread,
Dec 16, 2016, 3:42:14 PM12/16/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Dziękuję za podpowiedzi.
1. Uprawnienia działają bez zarzutu.
2. Założenie nowego roku też i dokumenty pojawiły się, gdyż robiłem próby na danych z poprzedniego roku.
W tym tygodniu idę robić próbę na demo u klienta.

Pozdrawiam

GZ

unread,
Dec 20, 2016, 4:16:52 PM12/20/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Jestem po próbach u klienta. Wyszły bardzo dobrze.
- podpis cyfrowy i wysłanie pliku JPK na serwer - bez zarzutu
- vat zgadza mi się co do grosza.

W nowej wersji widzę, że pojawił się komunikat informujący o tym, że plik z zadanego okresu już istnieje i nie zapisuje drugiego. Klient, u którego robiłem próbę ma dwie firmy i przygotowałem API tak, że generuje dwa pliku JPK. Jednak tego drugiego teraz nie zapisuje. Można prosić o pomoc, jak rozwiązać tę kwestię?

Pozdrawiam

tgs...@tgsoft.pl

unread,
Dec 21, 2016, 3:55:19 AM12/21/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl

W celu generowania i wysyłania JPK dla różnych podmiotów z różnym NIP potrzebna jest pełna wersja programu. Każda firma musi mieć własną bazę danych, którą definiujemy w oknie Menu/Narzędzia/Zmiana firmy.

Funkcja dostępna jest w wersji DEMO.


GZ

unread,
Dec 21, 2016, 4:16:52 AM12/21/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl
Czy wiąże się to z zakupem wersji dla biur księgowych?

tgs...@tgsoft.pl

unread,
Dec 21, 2016, 5:36:50 AM12/21/16
to Jednolity Plik Kontrolny, tgs...@tgsoft.pl


Czy wiąże się to z zakupem wersji dla biur księgowych?


Wersja pełna jest potrzebna do obsługi więcej niż jednego podmiotu. Może to być biuro rachunkowe, kilka spółek zależnych od siebie, lub kilka firm rodzinnych, itp.

 
Reply all
Reply to author
Forward
Message has been deleted
0 new messages