Files
roagest/docs/flux-achizitie-import.md
Marius Mutu ca21bfe7a2 Docs: flux achizitie import, propuneri sesizare, mod de lucru Claude
- docs/propuneri_achizitie_import.md: modificarile propuse (cu cod) pentru
  sesizarea achizitie import (explicatie TVA prin cautare, valute/cursuri
  per document, conturi 2xx la articole, negestionabile fara RULAJE)
- docs/flux-achizitie-import.md: notita durabila cu lantul fluxului
- docs/CLAUDE.md: modul de lucru (propuneri pentru VFP IDE, export Oracle)
- .gitignore: docs/local/ (credentiale neversionate)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:18:03 +03:00

47 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 din `actactan`, structura din `pmenu.prg:281-307`,
tabelul `ACT`) — o singură pereche `id_valuta` + `curs` pe act;
- liniile de notă = cursorul **`introdc`** (din view `vnote_contabile` filtrat pe `id_set`),
fiecare rând moștenește `id_valuta`/`curs`/`dataact`/`tva_incasare` din `poAct`; 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_original` din același .vcx NU e instanțiat nicăieri — e copie de rezervă.**
- **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 în `introdc`,
apartenența la document fiind per rând: `nract`/`serie_act`/`id_fact` (rândurile au și `id_valuta`/
`curs` proprii, dar istoric codul folosește doar `poAct.Curs`).
- **`import_nota`** (nota contabilă a facturii): grila pe `introdc`; transport/alte taxe se introduc
ca linii de notă suplimentare cu flagurile `in_valuta` (suma e în valută) și `participa_valuta`
(linia intră în valoarea de intrare a mărfii). `do_executa` calculează procentele de repartizare
(stocate în `explicatia4`/`explicatia5`); `inainte_de_do_termin` sumează bazele
(lei/valută, liniile în lei se împart la `poAct.Curs`) și lansează **`import_nir`** cu
`procent_lei/procent_val/ncurs`.
- **`import_nir`** (grila de articole): `do_adauga``viz_catalog_articole()`
(`oproceduri_articole.prg:62`, câmpul `in_stoc` = „Gestionabil") filtrat pe conturile `scd` din
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 prin `pack_preturi.adauga_articol`,
cont implicit 371).
- **Salvare**: `oscrie_in_fisiere` → tabelele temporare `ACT_TEMP`/`RUL_TEMP` → pachetul Oracle
**`PACK_CONTAFIN`** (`SCRIE_IN_ACT`, `SCRIE_IN_RUL`, `SCRIE_IN_STOC`, …). `SCRIE_IN_RUL` inserează
în `RUL` **exact** conținutul `RUL_TEMP` (nu derivă din ACT) — orice filtrare de rulaje se face în
clientul VFP. Sursa pachetului: `COMUN\docs\PACK_CONTAFIN.pck` (vezi `COMUN\docs\oracle_export.md`).
- **Explicație TVA**: dropdown istoric `Grid1.cExplicatieTva.Combo1` (RowSource `jtva_coloane2`);
modelul alternativ cu formular de căutare = `frm_modific2024.do_modifica_explicatie_tva`
(`omodificari.vcx`) → `caut_explicatie_tva()` (`ocautare.prg:1934`, view `vjtva_coloane`,
întoarce DOAR `id_jtva_coloana, denumire, cota_tva`). Capcane: în `introdc.ptva` se ține **cota
brută** (21), pe când în registru jurnal `proc_tva` = (cota+100)/100; comutarea 4427/401 pe linia
de TVA se face prin SEEK în cursorul `cJtvaCol4427`.
Căutarea generică: `cauta_alfa()` (`COMUN\programe\cauta_alfa.prg`) → forma `cauta_alfa_form_plus`.