4.6 KiB
4.6 KiB
Flux: Achiziție din import (NIR import)
Lanțul complet (descoperit la sesizarea „achiziție import", 07.2026):
- Intrare:
Clase\gestiuni.vcx(gestiuni.vc2:2045-2171) → meniu „Achizitie din import / Achizitie interna" →DO achizitie_import WITH <id_set>, llIntern IN ointroduceri.prg. Id-uri de set: 208/209 = import, 220/221 = intern (perechi pe tip de operație). achizitie_import(COMUN\programe\ointroduceri.prg:1435-1617):- antetul facturii =
poAct(SCATTER dinactactan, structura dinpmenu.prg:281-307, tabelulACT) — o singură perecheid_valuta+curspe act; - liniile de notă = cursorul
introdc(din viewvnote_contabilefiltrat peid_set), fiecare rând moșteneșteid_valuta/curs/dataact/tva_incasaredinpoAct; rândurile merg în perechi impar = linia de bază, par = linia de TVA; - cursorul
jtva_coloane2(explicații TVA, cu rând 0 gol) — sursa dropdown-ului de explicație; - deschide forma
import_nota(COMUN\clase\ointroduceri.vcx). Atenție:import_nota_originaldin același .vcx NU e instanțiat nicăieri — e copie de rezervă.
- antetul facturii =
- Modelul de documente: un NIR de import = factura principală de achiziție (marfă și/sau
imobilizări; valuta/cursul ei =
poAct.id_valuta/poAct.Curs, referința de conversie) + opțional factura de transport (poate fi altă valută/curs) + opțional factura de taxe vamale + DVI (declarația vamală, cu TVA-urile fiecărei facturi, plătite în lei). Toate devin linii înintrodc, apartenența la document fiind per rând:nract/serie_act/id_fact(rândurile au șiid_valuta/cursproprii, dar istoric codul folosește doarpoAct.Curs). import_nota(nota contabilă a facturii): grila peintrodc; transport/alte taxe se introduc ca linii de notă suplimentare cu flagurilein_valuta(suma e în valută) șiparticipa_valuta(linia intră în valoarea de intrare a mărfii).do_executacalculează procentele de repartizare (stocate înexplicatia4/explicatia5);inainte_de_do_terminsumează bazele (lei/valută, liniile în lei se împart lapoAct.Curs) și lanseazăimport_nircuprocent_lei/procent_val/ncurs.import_nir(grila de articole):do_adauga→viz_catalog_articole()(oproceduri_articole.prg:62, câmpulin_stoc= „Gestionabil") filtrat pe conturilescddin notă; prețul de intrare per articol = preț valută ×procent_val, apoi ×ncurs×procent_lei(transportul „umflă" procentele peste 100). Diferența reziduală devine linia „DIFERENTE".do_modiparam= preluare articole din XLS (creează articole noi prinpack_preturi.adauga_articol, cont implicit 371).- Salvare:
oscrie_in_fisiere→ tabelele temporareACT_TEMP/RUL_TEMP→ pachetul OraclePACK_CONTAFIN(SCRIE_IN_ACT,SCRIE_IN_RUL,SCRIE_IN_STOC, …).SCRIE_IN_RULinserează înRULexact conținutulRUL_TEMP(nu derivă din ACT) — orice filtrare de rulaje se face în clientul VFP. Sursa pachetului:COMUN\docs\PACK_CONTAFIN.pck(veziCOMUN\docs\oracle_export.md). - Articole negestionabile (
nom_articole.in_stoc = 0): modelul canonic e în clasanir(NIR-ul obișnuit, acelașiointroduceri.vcx), mecanism din 2009 — articolul intră normal în grilă și participă la calcule, iar îninainte_de_do_termin, chiar înainte de scriere, se faceDelete From rul_temp Where in_stoc = 0(valoarea rămâne doar pe nota contabilă, nu ajunge înRUL/STOC). Din v2.11.6import_nire aliniat la același model, cu un cursor temporar (crsNegest) care readaugă rândurile șterse în grilă dacăoscrie_in_fisiereeșuează. Cursorulrul_tempare coloanain_stocpentru că e creat din view-ulvrul(where 1=2); lado_adaugacoloana se umple prinGATHER NAME loArtdin cursorul catalogului, lado_modiparam(XLS) explicit din selectul penom_articole. - Explicație TVA: dropdown istoric
Grid1.cExplicatieTva.Combo1(RowSourcejtva_coloane2); modelul alternativ cu formular de căutare =frm_modific2024.do_modifica_explicatie_tva(omodificari.vcx) →caut_explicatie_tva()(ocautare.prg:1934, viewvjtva_coloane, întoarce DOARid_jtva_coloana, denumire, cota_tva). Capcane: înintrodc.ptvase ține cota brută (21), pe când în registru jurnalproc_tva= (cota+100)/100; comutarea 4427/401 pe linia de TVA se face prin SEEK în cursorulcJtvaCol4427.
Căutarea generică: cauta_alfa() (COMUN\programe\cauta_alfa.prg) → forma cauta_alfa_form_plus.