Achizitie import unificata (ROAGEST): ointroduceri, teste UI, documentatie

- import_nota / import_adauga_factura: flux unificat note contabile + articole,
  sincronizare automata, total factura automat, TVA impartit pe conturile
  creditoare ale notelor (rundele 1-31)
- runda 32: totalurile import_nota pe _label/_textbox din _baza.vcx (Arial 10),
  fara containerele clb_tx_simplu si fara bifa "Recalculeaza TVA" (recalcul
  mereu automat); "Sincronizeaza facturile secundare" mutata sub butoane
- utile/Teste: harness UI VFP headless (vfp_ui_harness.ps1, ui_harness.prg,
  precompilare, mock-uri) in radacina; suitele e2e pentru achizitia din import
  grupate in utile/Teste/achizitie_import/
- docs: flux editare text vcx/scx, testare-ui-vfp si testare-vfp-mcp (mutate
  din ROAGEST, general valabile), inventar comun, orchestrare subagenti,
  conventie GO recno, depanare testare VFP

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019DGibQKa5uK4P2TNSFFQNh
This commit is contained in:
2026-07-20 00:50:18 +03:00
parent 0fe9b25fe6
commit 53d9f1c64a
46 changed files with 16907 additions and 457 deletions

View File

@@ -1555,7 +1555,10 @@ Procedure achizitie_import
00000000000000 As id_fact, 00000000000000 As id_factd, 00000000000000 As id_factc, 00000000000000 As pereched, 00000000000000 As perechec, ;
00000000000000 As nract, Space(10) As serie_Act,Space(50) As explicatia4, Space(50) As explicatia5, .T. As participa_valuta, ;
poAct.id_valuta As id_valuta, poAct.Curs As Curs, poAct.nume_val As nume_val, poAct.dataact as dataact, poAct.fdoc as fdoc, poAct.id_fdoc as id_fdoc, 0 as se_scrie, poAct.tva_incasare as tva_incasare, ;
16777215 As doc_color, Space(10) As doc_label ;
16777215 As doc_color, Space(10) As doc_label, ;
'B' As tip_rand, Space(80) As doc_key, 00000000 As nr_doc, ;
00000000000000.0000 As suma_doc, 00000000000000.0000 As suma_doc_val, 0 As mod_manual, ;
Space(20) As scd_orig, Space(20) As ascd_orig ;
FROM cnote_contabile N ;
WHERE N.id_set = poAct.id_set ;
INTO Cursor introdc Readwrite Order By ordine
@@ -1564,6 +1567,13 @@ Procedure achizitie_import
*!* Directia A (11.07.2026): introdc porneste GOL; perechea-sablon (primele 2 linii,
*!* baza + TVA) se pastreaza in introdc_sablon ca sursa de clonare pentru "Adauga factura".
Select * From introdc Where Recno('introdc') <= 2 Into Cursor introdc_sablon Readwrite
*!* 16.07.2026 claude - marcaj tip_rand pe sablon (baza/TVA), inlocuieste paritatea Recno
Select introdc_sablon
Go 1
Replace tip_rand With 'B'
Go 2
Replace tip_rand With 'T'
Go Top
Select introdc
Zap
@@ -1601,8 +1611,23 @@ Procedure achizitie_import
gnZvama = 0
gnButon = 1
*!* 16.07.2026 claude - F1: index unic de sortare pe introdc, o singura data, inainte de Show
*!* (niciodata re-INDEX ulterior sub grid - vezi docs/propuneri_import_unificat.md)
SELECT introdc
INDEX ON Str(Nvl(nr_doc,0),8) + Icase(tip_rand='B','1', tip_rand='S','2', tip_rand='T','3', tip_rand='D','4', '5') + Padr(Nvl(scd,''),10) TAG ord_doc
SET ORDER TO ord_doc
SELECT introdc
obj = Createobject('IMPORT_nota', tlIntern)
*!* 16.07.2026 claude (T3) - Init poate intoarce .F. (esec Oracle la crearea rul_temp) -> obiect nul
If Vartype(obj) <> 'O'
Use In (SELECT('introdc'))
Use In (SELECT('introdc_sablon'))
Use In (SELECT('actactan'))
Use In (SELECT('jtva_coloane2'))
Return
Endif
obj.oact = poAct
obj.Show()