frm_modific2024, pgfArticole.PAGE3 - editare in memorie, fara scriere in Oracle (aceea ramane S5). - sub-blocul A: cantitate/pret/pret_cu_tva editabile inline, marcaj lmodificat pe linie, coloana valoare pe linie - sub-blocul B: stergere logica de linii (sters/DynamicForeColor gri) si adaugare de linii prin frm_articol_factura, cu alegerea articolului prin caut_articol() - sub-blocul C: bara de totaluri sub grid (total linii convertit RON la cursul documentului, discount de antet editabil, total net), ascunsa pe transfer/custodie; verdict de corelatie ACT/RUL informativ, cu 3 stari - suma ACT: sold net debit-credit, cont pe tip de document (4111 / 418 / 461, iar pe rate/contract 4111, 411 sau 461) - suma RUL: doar ID_TIP_RULAJ = 0, adica miscarile reale; perechile ID_TIP_RULAJ = 3 sunt virtuale (tin locul procesului verbal de schimbare de pret) si nu intra in suma. Corectie cu liniile nestocate, marcata "ajustat" - adaugarea de linii pe document in valuta: dialogul primeste tip_valuta si cursul documentului de pe tvanz, deci pretul se introduce direct in valuta; ofacturare.vc2 ramane neatins - cei 5 apelanti frm_modific2024 (afisjurcom, anaf_efactura, cele doua .sc2 de import) pregatesc cursorul de articole inainte de Createobject, gardat pe SET PROCEDURE - registrul jurnal din ROACONT/ROAGEST ramane neschimbat Teste headless pe MARIUSM_AUTO, suite care isi descopera singure documentele: test_page3_articole 14/2 (cele 2 = artefact de grid nematerializat headless, acoperit pe ecran), test_incarca_vanzare_din_nota 5/0, test_adauga_linie_articol 20/0, test_adauga_linie_valuta 16/0, test_ui_sterge_linie 8/0, test_verdict_act_rul 26/0. docs/todos.txt: punctele 13 si 20, scrise de Marius. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
138 lines
5.7 KiB
Plaintext
138 lines
5.7 KiB
Plaintext
* test_ui_fix_editabil_subtotal.prg - verifica pe formular vizibil (nu headless) defectele raportate
|
|
* pe grid-ul grdArticoleFactura: coloanele cantitate/pret nu erau editabile (_grid.Init le forta
|
|
* ReadOnly cat timp lcamptextneeditabil ramanea .T.), valoarea pe linie ramanea defazata cu un pas la
|
|
* bifa "pret cu TVA" (in InteractiveChange, ControlSource nu e inca actualizat) si nu scadea
|
|
* discountul unitar. Coloana se numeste acum "Valoare" (campul tvd.valoare).
|
|
* Flux identic cu do_editare_factura. Document: cod=1139934/an=2021/luna=12 (id_vanzare=882, 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\uisync3\'
|
|
gcUILog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_ui_fix_editabil_subtotal_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, loChk
|
|
LOCAL lnCant, lnPretNet, lnProcT, lnFlagVechi, lnFlagNou, lnValoareVeche, lnAsteptat, lnLaIncarcare
|
|
|
|
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
|
|
|
|
DO asserteaza WITH 'ColumnCount = 14', loGrid.ColumnCount = 14, TRANSFORM(loGrid.ColumnCount)
|
|
DO asserteaza WITH 'cantitate editabila', loGrid.cCantitateArt.ReadOnly = .F., TRANSFORM(loGrid.cCantitateArt.ReadOnly)
|
|
DO asserteaza WITH 'pret editabil', loGrid.cPretArt.ReadOnly = .F., TRANSFORM(loGrid.cPretArt.ReadOnly)
|
|
DO asserteaza WITH 'denumire ramane readonly', loGrid.cDenumireArt.ReadOnly = .T., TRANSFORM(loGrid.cDenumireArt.ReadOnly)
|
|
DO asserteaza WITH 'discount_unitar ramane readonly', loGrid.cDiscountUnitarArt.ReadOnly = .T., TRANSFORM(loGrid.cDiscountUnitarArt.ReadOnly)
|
|
DO asserteaza WITH 'valoare ramane readonly', loGrid.cValoareArt.ReadOnly = .T., TRANSFORM(loGrid.cValoareArt.ReadOnly)
|
|
DO asserteaza WITH 'antetul coloanei e Valoare', loGrid.cValoareArt.Header1.Caption == 'Valoare', loGrid.cValoareArt.Header1.Caption
|
|
|
|
SELECT tvd
|
|
GO TOP
|
|
lnCant = NVL(tvd.cantitate, 0)
|
|
lnPretNet = NVL(tvd.pret, 0) - NVL(tvd.discount_unitar, 0)
|
|
lnProcT = NVL(tvd.proc_tvav, 1)
|
|
lnFlagVechi = NVL(tvd.pret_cu_tva, 0)
|
|
lnValoareVeche = NVL(tvd.valoare, 0)
|
|
lnFlagNou = IIF(m.lnFlagVechi = 0, 1, 0)
|
|
lnLaIncarcare = ROUND(m.lnCant * IIF(m.lnFlagVechi = 0, m.lnPretNet * m.lnProcT, m.lnPretNet), m.gnPC)
|
|
lnAsteptat = ROUND(m.lnCant * IIF(m.lnFlagNou = 0, m.lnPretNet * m.lnProcT, m.lnPretNet), m.gnPC)
|
|
|
|
STRTOFILE('linia 1: cant=' + TRANSFORM(m.lnCant) + ' pret=' + TRANSFORM(NVL(tvd.pret,0)) + ;
|
|
' discount_unitar=' + TRANSFORM(NVL(tvd.discount_unitar,0)) + ' proc_tvav=' + TRANSFORM(m.lnProcT) + ;
|
|
' flag_vechi=' + TRANSFORM(m.lnFlagVechi) + ' valoare_la_incarcare=' + TRANSFORM(m.lnValoareVeche) + ;
|
|
' -> flag_nou=' + TRANSFORM(m.lnFlagNou) + ' valoare_asteptata=' + TRANSFORM(m.lnAsteptat) + CHR(13) + CHR(10), gcUILog, 1)
|
|
|
|
DO asserteaza WITH 'discountul scazut deja la incarcare', m.lnValoareVeche = m.lnLaIncarcare, TRANSFORM(m.lnValoareVeche) + ' vs ' + TRANSFORM(m.lnLaIncarcare)
|
|
|
|
*!* reproduce clickul pe bifa: valoarea se schimba in control, ControlSource inca nu
|
|
loChk = loGrid.cPretCuTvaArt._checkbox1
|
|
loChk.Value = m.lnFlagNou
|
|
loChk.InteractiveChange()
|
|
DOEVENTS FORCE
|
|
|
|
SELECT tvd
|
|
GO TOP
|
|
DO asserteaza WITH 'flagul ajunge in cursor', NVL(tvd.pret_cu_tva, 0) = m.lnFlagNou, TRANSFORM(NVL(tvd.pret_cu_tva, 0))
|
|
DO asserteaza WITH 'valoare recalculata cu flagul nou', NVL(tvd.valoare, 0) = m.lnAsteptat, TRANSFORM(NVL(tvd.valoare, 0))
|
|
DO asserteaza WITH 'linia marcata modificata', tvd.lmodificat = .T., TRANSFORM(tvd.lmodificat)
|
|
|
|
DO HarnessStep WITH 0, 'pagina3 articole - dupa bifa pret cu TVA', 25
|
|
|
|
STRTOFILE('REZULTAT: ' + TRANSFORM(gnPass) + ' PASS / ' + TRANSFORM(gnFail) + ' FAIL' + CHR(13) + CHR(10), gcUILog, 1)
|
|
|
|
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
|