Import bonuri fiscale
Importul bonurilor fiscale se realizeaza in doua etape:
- Inserarea in tabelele de antete si linii a informatiilor corecte si complete. In cazul in care se doreste importul simultan pentru mai multe documente se foloseste pentru legatura dintre antet si linii campul id_document. Structura tabelelor este prezentata in anexele B si C.
- Apelarea procedurii stocate importex_bonuri_fiscale_exec care valideaza, importa datele si goleste tabelele-buffer. In cazul in care datele nu sunt corecte procedura intoarce o exceptie si intregul proces de import este abandonat, restabilindu-se starea dinaintea importului. Lista erorilor posibile este prezentata in anexa D.
Anularea unui import se face prin apelarea procedurii stocate importex_bonuri_fiscale_anulare cu parametrul id_importex (id lot articole importate), dar si prin id_document (id-ul extern din aplicatia terta). Procedura stocata verifica consistenta efectului de anulare, a datelor deja importate, si dupa caz realizeaza stergerea efectiva a datelor sau intoarce un mesaj de eroare.
Puteti consulta urmatoarele tabele pentru a verifica, in prealabil sau ulterior, importul corect al datelor:
- Antete de documente: bonfisc. Cheia primara a tebelului: anluna + pct_lcr + id.
- Linii de documente pentru produse: bonfisc_lin. Legatura cu antetul anluna + pl_bon + id_bon.
- Linii de documente pentru plati: bonfisc_plt. Legatura cu antetul anluna + pl_bon + id_bon.
ANEXA A. Parametri import:
| Câmp | Tip | Descriere |
|---|---|---|
| id_importex | varchar(25) | ID pentru identificarea unui lot de documente importate (util, de ex., pentru ștergerea în bloc a unui lot de documente importate), implicit NULL |
| id_document | varchar(25) | ID-ul documentului care se dorește a fi importat. În cazul în care se dorește importul tuturor documentelor se va trimite NULL. Valoarea implicită este NULL. |
| keep_data_on_err | bit | 0 - nu se vor păstra datele în tabelele buffer (valoare implicită) 1 - se vor păstra datele în tabelele buffer, în caz de eroare |
| single_tran | bit | Se specifică dacă se va deschide o singură tranzacție pentru întregul import sau se va utiliza o tranzacție per document. 1 - în cazul apariției unei erori la importul unui document, sistemul va reveni complet la starea dinaintea importului (valoare implicită). 0 - documentele importate până la apariția erorii rămân în baza de date |
| tiparire_cm | bit | 0 - Bonul nu se va trimite către casa de marcat (valoare implicită) 1 - Bonul se va trimite către casa de marcat |
| fara_descarcare | bit | 0 - Se va realiza descărcarea din stoc (valoare implicită) 1 - Se va omite descărcarea din stoc |
| exec_type | tinyint | 0 - Validare și import, cu oprire în cazul erorilor (valoare implicită) 1 - Validare și import, sărind peste înregistrările cu erori 2 - Validare date, fără a realiza importul |
| return_errorlist | tinyint | 0 - Fără listă erori (valoare implicită) 1 - Returnează lista înregistrărilor cu erori 2 - Returnează lista tuturor înregistrărilor |
| tiparire_comenzi | bit | 0 - Nu se vor tipări comenzile către secțiile de bucătărie (valoare implicită) 1 - Se vor tipări comenzile către secțiile de bucătărie |
ANEXA B. Tabel antete document: importex_bonuri_fiscale avand structura:
| Coloana | Tip | Descriere |
|---|---|---|
| id_importex | varchar(25) | ID pentru identificarea unui lot de documente importate (util, de ex., pentru stergerea in bloc a unui lot de documente deja importate) Atentie! Gestionarea, verificarea si validarea acestui camp este in sarcina dezvoltatorului utilitarului de export-import. |
| id_document | varchar(25) | ID unic pentru identificarea documentului |
| dispozitiv_fiscal | smallint | Numarul dispozitivului fiscal (casa de marcat, imprimanta fiscala) din reteaua de vanzari. Este un numar care identifica unic un dispozitiv fiscal. |
| numar_z | int | Numarul de Z in cadrul caruia se relizeaza vanzarea. |
| numar_document | int | Numarul bonului fiscal |
| data_document | date | Data documentului |
| id_gestiune | varchar(25) | Codul intern al gestiunii in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_gestiune) |
| id_extern_gestiune | varchar(25) | Id-ul extern al gestiunii (id_gestiune sau den_gestiune) |
| den_gestiune | varchar(30) | Denumirea gestiunii (optional daca se specifica id_gestiune) |
| id_client | varchar(25) | Codul intern al clientului in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica cif_client sau den_client) |
| id_extern_client | varchar(50) | Id-ul extern al clientului (optional daca se specifica id_client sau cif_client) |
| cif_client | varchar(20) | Codul fiscal / CNP al clientului (optional daca se specifica id_client sau den_client) |
| den_client | varchar(100) | Denumirea clientului (optional daca se specifica id_client sau cif_client) |
| id_delegat | varchar(25) | Codul intern al delegatului in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_delegat) |
| id_extern_delegat | varchar(25) | Id-ul extern al delegatului (optional daca se specifica id_delegat sau den_delegat) |
| den_delegat | varchar(30) | Denumirea delegatului (optional daca se specifica id_delegat) |
| id_agent | varchar(25) | Codul intern al agentului in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_agent) |
| id_extern_agent | varchar(25) | Id-ul extern al agentului (optional daca se specifica id_agent sau den_agent) |
| den_agent | varchar(30) | Denumirea agentului (optional daca se specifica id_agent) |
| incasat_cash | money | Suma incasata utilizand metoda Numerar |
| incasat_card | money | Suma incasata utilizand metoda Card |
| incasat_tichet | money | Suma incasata utilizand metoda Tichete valorice |
| incasat_cec | money | Suma incasata utilizand metoda CEC/OP |
| incasat_protocol | money | Suma incasata utilizand metoda Protocol |
| incasat_consum | money | Suma incasata utilizand metoda Bon de consum |
| incasat_consum_evenimente | money | Suma incasata utilizand metoda Consum evenimente |
| incasat_hotel | money | Suma incasata utilizand metoda Hotel |
| incasat_contract_cu_bon | money | Suma incasata utilizand metoda Contract cu bon |
| incasat_contract_fara_bon | money | Suma incasata utilizand metoda Contract fara bon |
| validare | bit | Se va valida sau nu documentul dupa salvare |
| valoare | money | Valoarea inclusiv TVA pentru control final |
| numar_bonuri | varchar(20) | Numarul bonuri (optional) |
| incasat_plt_moderna | money | Suma incasata utilizand metodata Plata moderna |
| id_masa | varchar(25) | Codul intern al mesei in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica numar_masa si numar_salon) |
| numar_masa | numeric(5,0) | Numar masa (optional daca se specifica id_masa). Daca doriti identificarea dupa acest camp, obligatoriu trebuie sa trimiteti si numar_salon |
| numar_salon | numeric(2,0) | Numarul salonului (obligatoriu daca se specifica numar_masa) |
| schimb | tinyint | Schimb |
| nr_persoane | tinyint | Numarul de persoane |
| data_vanzare | datetime | Data documentului de vanzare |
| observatii | varchar(500) | Observatii (optional) |
| incasat_postpay | money | Suma incasata utilizand metoda Postpay |
| tip_servire | tinyint | 0 - In locatie 10 - Livrare proprie 11 - Livrare cu Glovo 12 - Livrare cu Uber Eats 13 - Livrare cu Tazz 14 - Livrare cu TakeAway 15 - Livrare cu Bolt 16 - Livrare cu Pizza Delivery 20 - Preluare client |
| id_pos | numeric(18,0) | Id POS setat pe dispozitivul fiscal |
ANEXA C. Tabel linii: importex_bonuri_fiscale_lin avand structura:
| Coloana | Tip | Descriere |
|---|---|---|
| id_document | varchar(25) | ID unic pentru identificarea documentului |
| id_produs | varchar(25) | Codul intern al produsului in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica cod_produs sau den_produs) |
| id_extern_produs | varchar(25) | Id-ul extern al produsului (optional daca se specifica id_produs sau cod_produs) |
| cod_produs | varchar(50) | Codul de bare al produsului (optional daca se specifica id_produs sau den_produs) |
| den_produs | varchar(173) | Denumirea produsului (optional daca se specifica id_produs sau cod_produs) |
| tip_produs | char(3) | Codul din 3 caractere corespunzator tipului de produs definit in nomenclatorul de bunuri si servicii (optional daca se specifica cont_produs) |
| cont_produs | varchar(17) | Contul produsului (optional daca se specifica tip_produs) |
| serie_produs | varchar(50) | Seria/numarul de lot al produsului (optional) |
| cantitate | numeric(13,3) | Cantitatea |
| pret_achizitie | money | Pretul de achizitie(optional, descarcarea marfii se va face FIFO) |
| pret_vanzare_tva | money | Pretul de vanzare cu TVA |
| cota_tva_ies | int | Cota TVA iesire (optional, implicit e preluata din nomenclator) |
| data_expirare | date | Data expirarii (optional) |
| id_comanda | varchar(25) | Codul intern al comenzii in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 |
| id_extern_comanda | varchar(50) | Id-ul extern al comenzii (optional daca se specifica id_comanda) |
| serie_comanda | varchar(10) | Seria/numarul comenzii |
| numar_comanda | varchar(20) | Numarul comenzii |
| data_comanda | date | Data comenzii |
| tip_produs_consum | varchar(3) | Tip produs consum |
| cont_produs_consum | varchar(17) | Cont produs consum |
| discount | money | Discount |
| discount_proc | decimal(5,2) | Discount procentual |
| den_suplimentara | varchar(500) | Denumire suplimentara |
ANEXA D. Tabel erori posibile la importul bonurilor fiscale:
| Coloana | Descriere |
|---|---|
| BFR001 | Lipsa date (tabelul de import nu are nicio inregistrare) |
| BFR002 | Gestiune nespecificata |
| BFR003 | Incasare nespecificata |
| BFR004 | Produs nespecificat |
| BFR005 | Cont produs nespecificat |
| BFR006 | Lipsa antet ... |
| BFR007 | Urmatoarele denumiri nu identifica unic gestiunea ... |
| BFR008 | Lipsa gestiune in nomenclator ... |
| BFR009 | Urmatoarele coduri fiscale nu identifica unic partenerul ... |
| BFR010 | Urmatoarele denumiri nu identifica unic partenerul ... |
| BFR011 | Lipsa partener in nomenclator ... |
| BFR012 | Document deja existent ... |
| BFR013 | Urmatoarele conturi sunt invalide ... |
| BFR014 | Urmatoarele conturi nu identifica unic tipul in nomenclatorul de bunuri si servicii ... |
| BFR015 | Lipsa pozitie in nomenclator bunuri si servicii ... |
| BFR016 | Urmatoarele coduri nu identifica unic produsul ... |
| BFR017 | Urmatoarele denumiri nu identifica unic produsul ... |
| BFR018 | Lipsa produs in nomenclator ... |
| BFR020 | Sesiunea documentului a fost blocata la modificari |
| BFR021 | Sesiunea documentului depaseste sesiunea curenta |
| BFR022 | Exista linii cu pret de achizitie negativ |
| BFR023 | Exista linii cu pret de vanzare negativ |
| BFR024 | Datele specificate nu identifica unic comanda de client |
| BFR025 | Lipsa comanda client |
| BFR026 | Clientul din comanda client nu corespunde cu cel de pe bonul fiscal |
| BFR027 | Dispozitiv fiscal nespecificat |
| BFR028 | Urmatoarele denumiri nu identifica unic delegatul |
| BFR029 | Lipsa delegat in nomenclator |
| BFR030 | Urmatoarele denumiri nu identifica unic agentul |
| BFR031 | Lipsa agent in nomenclator |
| BFR032 | Plata prin [Protocol] exclude alte modalitati de plata pe acelasi bon |
| BFR033 | Plata prin [Bon de consum] exclude alte modalitati de plata pe acelasi bon |
| BFR034 | Urmatoarele conturi produse consumabile sunt invalide |
| BFR035 | Urmatoarele conturi produse consumabile nu identifica unic tipul in nomenclatorul de bunuri si servicii |
| BFR036 | Lipsa pozitie in nomenclator bunuri si servicii |
| BFR037 | Procent discount invalid |
| BFR038 | Urmatoarele id-uri externe nu identifica unic gestiunea |
| BFR039 | Urmatoarele id-uri externe nu identifica unic partenerul |
| BFR040 | Urmatoarele id-uri externe nu identifica unic produsul |
| BFR041 | Urmatoarele id-uri externe nu identifica unic comanda client |
| BFR042 | Urmatoarele id-uri externe nu identifica unic agentul |
| BFR043 | Urmatoarele numere nu identifica unic masa |
| BFR044 | Lipsa masa in nomenclator |
| BFR045 | Tip servire invalid |
| BFR046 | Lipsa POS in nomenclator |
| BFR047 | Plata prin [Consum evenimente] exclude alte modalitati de plata pe acelasi bon |
