Files
comun/utile/Teste/editare_factura/test_ui_sterge_linie.prg
Marius Mutu b9a14bcb9c #6 editare factura emisa: runda 6 - nomenclatoare, zecimale, aspect grid, meniu
Pagina Articole din frm_modific2024:
- DblClick pe cele cinci coloane cu nomenclator (articol, gestiune, taxcode,
  valuta, explicatie TVA). Explicatia TVA are ControlSource expresie, deci
  tastarea nu putea declansa niciodata InteractiveChange; DblClick se sprijina
  pe pccontrol si acopera uniform toate cele cinci.
- Pret si Pret cu TVA folosesc gnPPretV (precizie pret vanzare) in loc de
  gnPPret (precizie achizitie). Coloana de pret achizitie ramane pe gnPPret.
- Culori dupa conventia de pe pagina Rulaje: verde pe coloanele care se
  editeaza prin dialog, alb pe cele care se tasteaza direct.
- Serie, lot si explicatie devin editabile in celula. Garda .When ramane si
  blocheaza in continuare liniile din seturi si facturile din e-Factura.

frm_facturi: textul optiunii de editare factura din meniul contextual devine
"Editare factura (note, rulaje, articole)".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013gYCNE26G1G7UoGu2ju7aS
2026-08-20 16:28:02 +03:00

152 lines
4.9 KiB
Plaintext

* test_ui_sterge_linie.prg - verifica pe formular vizibil (nu headless) butonul nou
* but_stergeR pe pagina de articole: comuta tvd.sters intre 0 si 1 pe linia curenta,
* marcheaza lmodificat si grizeaza vizual randul (DynamicForeColor pe toate coloanele
* grid-ului) fara sa-l scoata din cursor - stergerea ramane logica, nu fizica.
* Document: cod=1139934/an=2021/luna=12 (id_vanzare=882, 2 linii, are si rulaje, altfel
* Show() ascunde tot pgfArticole). Nu scrie in Oracle. QUIT la final.
SET SAFETY OFF
SET TALK OFF
PUBLIC gcUILog, gcSyncDir
gcSyncDir = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\uisync4\'
gcUILog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_ui_sterge_linie_log.txt'
STRTOFILE('start' + CHR(13) + CHR(10), gcUILog)
ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
PUBLIC gnPass, gnFail
gnPass = 0
gnFail = 0
SET PROCEDURE TO D:\ROA\ROAFACTURARE\COMUN\utile\Teste\ui_harness.prg ADDITIVE
DO HarnessInit
DO ('D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
IF gnHandle <= 0
STRTOFILE('EROARE: conectare esuata' + CHR(13) + CHR(10), gcUILog, 1)
DO HarnessDone WITH 'error'
QUIT
ENDIF
SET PROCEDURE TO D:\ROA\ROAFACTURARE\COMUN\programe\ofacturare_editare.prg ADDITIVE
*!* test_init_env_auto incarca intai copia omodificari din ROACONT - o eliberam si o reincarcam pe cea de sub test
RELEASE CLASSLIB omodificari
SET CLASSLIB TO D:\ROA\ROAFACTURARE\COMUN\clase\omodificari.vcx ADDITIVE
LOCAL llOk, lnIdSet, loForm, loGrid, loBut
LOCAL lnStersInitialR1, lnStersInitialR2
llOk = IncarcaCursoareModificareNota(1139934, 2021, 12, .F.)
IF !llOk OR !Used('tact') OR Reccount('tact') = 0
STRTOFILE('EROARE: IncarcaCursoareModificareNota a esuat pe cod=1139934' + CHR(13) + CHR(10), gcUILog, 1)
DO HarnessDone WITH 'error'
QUIT
ENDIF
Select a.*, Iif(Nvl(id_jtva_coloana,0)=0,0,1) As cu_Tva From tact a Into Cursor tact Readwrite
Go Top In tact
lnIdSet = tact.id_set
IF !Used('crsJtvaTemp')
update_jtva_coloane("", "crsJtvaTemp", 6)
ENDIF
IncarcaArticoleFactura(882, 'crsArticoleFactura')
Select tact
loForm = Createobject([frm_modific2024], lnIdSet)
loForm.WindowType = 0
loForm.Show()
loForm.pgfArticole.ActivePage = 3
DOEVENTS FORCE
loGrid = loForm.pgfArticole.Page3.grdArticoleFactura
loBut = loForm.but_stergeR
DO asserteaza WITH 'butonul but_stergeR exista', TYPE('loBut.Caption') = 'C', TYPE('loBut.Caption')
DO asserteaza WITH 'butonul e vizibil', loBut.Visible, TRANSFORM(loBut.Visible)
SELECT tvd
GO TOP
lnStersInitialR1 = NVL(tvd.sters, 0)
DO asserteaza WITH 'linia 1 incarcata cu sters=0', m.lnStersInitialR1 = 0, TRANSFORM(m.lnStersInitialR1)
SELECT tvd
SKIP
lnStersInitialR2 = NVL(tvd.sters, 0)
GO TOP
*!* primul click - marcheaza linia 1 ca stearsa (logic, ramane in cursor)
loBut.Click()
DOEVENTS FORCE
SELECT tvd
GO TOP
DO asserteaza WITH 'dupa click 1: sters=1 pe linia curenta', NVL(tvd.sters,0) = 1, TRANSFORM(NVL(tvd.sters,0))
DO asserteaza WITH 'dupa click 1: lmodificat=.T.', tvd.lmodificat = .T., TRANSFORM(tvd.lmodificat)
SELECT tvd
SKIP
DO asserteaza WITH 'linia 2 neatinsa de stergerea liniei 1', NVL(tvd.sters,0) = m.lnStersInitialR2, TRANSFORM(NVL(tvd.sters,0))
GO TOP
*!* al doilea click pe aceeasi linie - restaureaza (comutare, nu buton separat)
*!* asertia ruleaza INAINTE de orice HarnessStep - daca harness-ul nu detecteaza fereastra,
*!* procesul e omorat la primul READY si tot ce urmeaza dupa acel pas nu se mai executa
loBut.Click()
DOEVENTS FORCE
SELECT tvd
GO TOP
DO asserteaza WITH 'dupa click 2: sters=0 (restaurata)', NVL(tvd.sters,0) = 0, TRANSFORM(NVL(tvd.sters,0))
*!* al treilea click - re-marcheaza linia, doar ca sa fie vizibila grizarea in captura de mai jos
loBut.Click()
DOEVENTS FORCE
SELECT tvd
GO TOP
DO asserteaza WITH 'dupa click 3: sters=1 (re-marcata pentru captura)', NVL(tvd.sters,0) = 1, TRANSFORM(NVL(tvd.sters,0))
STRTOFILE('REZULTAT: ' + TRANSFORM(gnPass) + ' PASS / ' + TRANSFORM(gnFail) + ' FAIL' + CHR(13) + CHR(10), gcUILog, 1)
*!* muta randul curent al gridului pe linia 2, ca selectia (fundal albastru) sa nu acopere
*!* culoarea DynamicForeColor a liniei grizate (linia 1) in captura
SELECT tvd
SKIP
loGrid.SetFocus()
DOEVENTS FORCE
DO HarnessStep WITH 0, 'pagina3 articole - linia 1 grizata (sters=1)', 25
loForm.Release()
IF Used('crsArticoleFactura')
Use In crsArticoleFactura
ENDIF
DO HarnessDone WITH 'done'
QUIT
PROCEDURE asserteaza
LPARAMETERS tcNume, tlConditie, tcValoare
IF m.tlConditie
gnPass = gnPass + 1
STRTOFILE('PASS ' + m.tcNume + CHR(13) + CHR(10), gcUILog, 1)
ELSE
gnFail = gnFail + 1
STRTOFILE('FAIL ' + m.tcNume + ' (valoare: ' + m.tcValoare + ')' + CHR(13) + CHR(10), gcUILog, 1)
ENDIF
ENDPROC
PROCEDURE test_error_handler
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcUILog, 1)
ENDPROC