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>
This commit is contained in:
46
docs/flux-achizitie-import.md
Normal file
46
docs/flux-achizitie-import.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user