Import bonuri de consum
Importul bonurilor de consum 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_consum_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_consum_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 importului, datele existente:
- Antete de documente: bcm. Cheia primara a tabelului: anluna + pct_lcr + id.
- Linii de documente pentru produse: linbcmateriale. Legatura cu antetul anluna + pl_bcm + id_bcm.
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), valoare 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 |
| import_mode | tinyint | 0 - Se importă antetele și liniile (valoare implicită) 1 - Se identifică documentul și se înserează noile linii |
| 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 |
ANEXA B. Tabel antete document: importex_bonuri_consum 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 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 |
| id_carnet | bigint | Codul intern al carnetului din care este emis documentul (optional) |
| serie_document | varchar(10) | Seria documentului (optional) |
| numar_document | varchar(20) | Numarul documentului |
| 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 (optional daca se specifica id_gestiune sau den_gestiune) |
| den_gestiune | varchar(30) | Denumirea gestiunii (optional daca se specifica id_gestiune) |
| id_primitor | varchar(25) | Codul intern al persoanei in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_primitor) |
| id_extern_primitor | varchar(25) | Id-ul extern al primitorului (optional daca se specifica id_primitor sau den_primitor) |
| den_primitor | varchar(30) | Denumirea persoanei (optional daca se specifica id_primitor) |
| id_centru_profit | varchar(25) | Codul intern al centrului de profit in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_centru_profit) |
| den_centru_profit | nvarchar(100) | Denumirea centrului de profit (optional daca se specifica id_centru_profit) |
| id_beneficiar | 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_beneficiar sau den_beneficiar) |
| id_extern_beneficiar | varchar(50) | Id-ul extern al beneficiarului (optional daca se specifica id_beneficiar sau cif_beneficiar) |
| cif_beneficiar | varchar(20) | Codul fiscal / CNP al clientului (optional daca se specifica id_beneficiar sau den_beneficiar) |
| den_beneficiar | varchar(100) | Denumirea clientului (optional daca se specifica id_beneficiar sau cif_beneficiar) |
| cont_debit | varchar(17) | Cont debit. Poate fi de forma 4111.1, programul corectand automat formatul |
| observatii | varchar(250) | Observatii document |
| validare | bit | Se va valida sau nu documentul dupa salvare |
| valoare | money | Valoarea pentru control final |
| id_transport | varchar(25) | Codul intern al transportului in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci adresa este considerat implicit 1 (optional daca se specifica nume_transport) |
| nume_transport | varchar(20) | Denumirea transportului (optional daca se specifica id_transport) |
| id_extern_centru_profit | varchar(25) | Id-ul extern al centrului de profit (optional daca se specifica id_centru_profit sau den_centru_profit) |
| cod_transport | varchar(50) | Codul VIN din nomenclatorul de vehicule si utilaje (optional daca se specifica id_transport, den_transport) |
| cont_db_gest | varchar(17) | Cont gestiune DB |
| cont_cr_gest | varchar(17) | Cont gestiune CR |
| 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(25) | Id-ul extern al comenzii (optional daca se specifica id_comanda) |
| serie_comanda | varchar(10) | Seria comenzii |
| numar_comanda | varchar(10) | Numarul comenzii |
| data_comanda | date | Data comenzii |
| id_prev_agr | varchar(25) | Codul intern al previzionarii agricole in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_prev_agr) |
| den_prev_agr | varchar(100) | Denumire previzionare lucrare agricola (optional daca se specifica id_prev_agr) |
| lot_prev_agr | nchar(20) | Numar lot planificare lucrare agricola |
| id_prev_agz | varchar(25) | Codul intern al previzionarii zootehnice in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_prev_agz) |
| den_prev_agz | varchar(100) | Denumire previzionare lucrare zootehnica (optional daca se specifica id_prev_agz) |
| id_lucrare_agr | numeric(18,0) | Codul intern al lucrarii agricole in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci punctul de lucru este considerat implicit 1 (optional daca se specifica den_lucrare_agr) |
| den_lucrare_agr | varchar(500) | Denumire lucrare agricola (optional daca se specifica id_lucrare_agr) |
| numar_km | int | Nr. kilometri |
| tip_buget | int | Tip buget |
| anexa_buget | varchar(3) | Anexa buget |
| ind_func_buget | varchar(17) | Indicator functional buget |
| ind_econ_buget | varchar(11) | Indicator economic buget |
ANEXA C. Tabel linii facturi clienti: importex_bonuri_consum_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, cod_produs sau den_produs) |
| cod_produs | varchar(20) | 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) |
| data_expirare | date | Data expirarii (optional) |
| denumire_sup | varchar(250) | Denumire suplimentara (optional) |
| id_foaieparcurs | varchar(25) | Codul intern al foii de parcurs in formatul ID(PCT_LCR). Daca se specifica doar ID-ul, atunci adresa este considerat implicit 1 (optional daca se specifica serie_fparcurs, numar_fparcurs si data_fparcurs) |
| serie_fparcurs | varchar(10) | Seria foii de parcurs (optional daca se specifica id_foaieparcurs, numar_fparcurs si data_fparcurs) |
| numar_fparcurs | varchar(20) | Numarul foii de parcurs (optional daca se specifica id_foaieparcurs, serie_fparcurs si data_fparcurs) |
| data_fparcurs | date | Data foii de parcurs (optional daca se specifica id_foaieparcurs, serie_fparcurs si numar_fparcurs) |
ANEXA D. Tabel erori posibile la importul bonurilor de consum:
| Coloana | Descriere |
|---|---|
| BCM001 | Lipsa date (tabelul de import nu are nicio inregistrare) |
| BCM002 | Centru de profit nespecificat |
| BCM003 | Gestiune nespecificata |
| BCM004 | Primitor nespecificat |
| BCM005 | Urmatoarele coduri de carnet nu exista in nomenclator... |
| BCM006 | Produs nespecificat |
| BCM007 | Cont produs nespecificat |
| BCM008 | Lipsa antet |
| BCM009 | Urmatoarele conturi sunt invalide |
| BCM010 | Cont debit invalid |
| BCM011 | Urmatoarele denumiri nu identifica unic gestiunea |
| BCM012 | Lipsa gestiune in nomenclator |
| BCM013 | Urmatoarele denumiri nu identifica unic centrul de profit |
| BCM014 | Lipsa centru de profit in nomenclator |
| BCM015 | Urmatoarele denumiri nu identifica unic primitorul |
| BCM016 | Lipsa primitor in nomenclator |
| BCM017 | Urmatoarele coduri fiscale nu identifica unic beneficiarul in nomenclatorul de parteneri |
| BCM018 | Urmatoarele denumiri nu identifica unic beneficiarul in nomenclatorul de parteneri |
| BCM019 | Lipsa partener in nomenclator |
| BCM020 | Document deja existent |
| BCM021 | Urmatoarele conturi sunt invalide |
| BCM022 | Urmatoarele conturi nu identifica unic tipul in nomenclatorul de bunuri si servicii |
| BCM023 | Lipsa pozitie in nomenclator bunuri si servicii |
| BCM024 | Urmatoarele coduri nu identifica unic produsul |
| BCM025 | Urmatoarele denumiri nu identifica unic produsul |
| BCM026 | Lipsa produs in nomenclator |
| BCM027 | Sesiunea documentului a fost blocata la modificari |
| BCM028 | Sesiunea documentului depaseste sesiunea curenta |
| BCM029 | Cantitate insuficienta in stoc pentru produsul |
| BCM030 | Urmatoarele denumiri nu identifica unic vehiculul in nomenclatorul de vehicule |
| BCM031 | Lipsa vehicul in nomenclator |
| BCM032 | Urmatoarele denumiri nu identifica unica foaie de parcurs in nomenclatorul de foi de parcurs |
| BCM033 | Lipsa foaie de parcurs in nomenclator |
| BCM034 | Urmatoarele id-uri externe nu identifica unic gestiunea |
| BCM035 | Urmatoarele id-uri externe nu identifica unic primitorul |
| BCM036 | Urmatoarele id-uri externe nu identifica unic beneficiarul in nomenclatorul de parteneri |
| BCM037 | Urmatoarele id-uri externe nu identifica unic produsul |
| BCM038 | Bonul de consum cu id-ul ... nu a fost gasit! |
| BCM039 | Urmatoarele denumiri nu identifica unic previzionare agricola |
| BCM040 | Lipsa previzionare agricola in nomenclator |
| BCM041 | Lipsa lot in planificare! |
| BCM042 | Urmatoarele denumiri nu identifica unic proiectul |
| BCM043 | Lipsa proiect in nomenclator |
| BCM044 | Urmatoarele id-uri externe nu identifica unic comanda |
| BCM045 | Urmatoarele informatii nu identifica unic comanda client |
| BCM046 | Urmatoarele informatii nu identifica unic comanda de client |
| BCM047 | Beneficiarul din comanda client nu corespunde cu cel de pe bonul de consum |
| BCM048 | Urmatoarele denumiri nu identifica unic previzionarea zootehnica |
| BCM049 | Lipsa previzionare zootehnica in nomenclator |
| BCM050 | Urmatoarele id-uri externe nu identifica unic centrul de profit |
| BCM051 | Urmatoarele coduri de transport nu identifica unic vehiculul in nomenclatorul de vehicule |
| BCM052 | Numar document nespecificat |
| BCM053 | Urmatoarele conturi de gestiune CR sunt invalide |
| BCM054 | Cont de gestiune CR invalid |
| BCM055 | Urmatoarele conturi de gestiune DB sunt invalide |
| BCM056 | Cont de gestiune DB invalid |
| BCM057 | Urmatoarele denumiri nu identifica unic lucrarea agricola |
| BCM058 | Lipsa lucrare agricola in nomenclator |
| BCM059 | Lucrarea agricola specificata difera de lucrarea agricola setata pe previzionarea agricola |
