#6 editare factura emisa: S4 runda 3 completa (pagina de articole editabila)
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
This commit is contained in:
138
utile/Teste/editare_factura/test_ui_bara_totaluri.prg
Normal file
138
utile/Teste/editare_factura/test_ui_bara_totaluri.prg
Normal file
@@ -0,0 +1,138 @@
|
||||
* test_ui_bara_totaluri.prg - verifica pe formular vizibil (nu headless) bara de totaluri de pe
|
||||
* PAGE3 (sub-blocul C): totalul liniilor active convertit in RON la cursul documentului (decizia 33),
|
||||
* discountul de antet editabil (tvanz.discount, decizia 17), si ascunderea barei pe tipurile fara
|
||||
* suma comparabila (decizia 22). 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\uisync4\'
|
||||
gcUILog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_ui_bara_totaluri_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, loBara
|
||||
LOCAL lnTotalAsteptat, lnCurs, lnMultiplicator, lnDiscountVechi, lnDiscountNou
|
||||
|
||||
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
|
||||
|
||||
loBara = loForm.pgfArticole.Page3
|
||||
|
||||
DO asserteaza WITH 'bara vizibila (tip comparabil)', loBara.lblTotalLiniiArt.Visible = .T., TRANSFORM(loBara.lblTotalLiniiArt.Visible)
|
||||
DO asserteaza WITH 'discount editabil', loBara.txtDiscountArt.ReadOnly = .F., TRANSFORM(loBara.txtDiscountArt.ReadOnly)
|
||||
DO asserteaza WITH 'total linii readonly', loBara.txtTotalLiniiArt.ReadOnly = .T., TRANSFORM(loBara.txtTotalLiniiArt.ReadOnly)
|
||||
|
||||
*!* totalul asteptat: suma liniilor active (tvd.sters<>1) convertita RON la cursul documentului
|
||||
lnCurs = NVL(tvanz.curs, 1)
|
||||
lnMultiplicator = NVL(tvanz.multiplicator, 1)
|
||||
IF m.lnMultiplicator = 0
|
||||
m.lnMultiplicator = 1
|
||||
ENDIF
|
||||
SELECT tvd
|
||||
SUM valoare TO lnTotalAsteptat FOR NVL(sters,0) <> 1
|
||||
lnTotalAsteptat = ROUND(m.lnTotalAsteptat * m.lnCurs / m.lnMultiplicator, 2)
|
||||
|
||||
STRTOFILE('curs=' + TRANSFORM(m.lnCurs) + ' multiplicator=' + TRANSFORM(m.lnMultiplicator) + ;
|
||||
' total_asteptat=' + TRANSFORM(m.lnTotalAsteptat) + ' bara.nTotalLiniiRon=' + TRANSFORM(loForm.nTotalLiniiRon) + CHR(13) + CHR(10), gcUILog, 1)
|
||||
|
||||
DO asserteaza WITH 'total linii RON calculat corect', loForm.nTotalLiniiRon = m.lnTotalAsteptat, TRANSFORM(loForm.nTotalLiniiRon) + ' vs ' + TRANSFORM(m.lnTotalAsteptat)
|
||||
|
||||
*!* editarea discountului recalculeaza totalul net, fara sa atinga Oracle
|
||||
lnDiscountVechi = NVL(tvanz.discount, 0)
|
||||
lnDiscountNou = m.lnDiscountVechi + 10
|
||||
loBara.txtDiscountArt.Value = m.lnDiscountNou
|
||||
loBara.txtDiscountArt.Valid()
|
||||
DOEVENTS FORCE
|
||||
|
||||
DO asserteaza WITH 'discountul ajunge in tvanz', NVL(tvanz.discount, 0) = m.lnDiscountNou, TRANSFORM(NVL(tvanz.discount, 0))
|
||||
DO asserteaza WITH 'total net recalculat', loForm.nTotalNetRon = ROUND(loForm.nTotalLiniiRon - m.lnDiscountNou, 2), TRANSFORM(loForm.nTotalNetRon)
|
||||
|
||||
*!* decizia 22: pe tipuri fara suma comparabila bara se ascunde, pagina ramane
|
||||
loForm.nTipVanzare = 23
|
||||
loForm.ActualizeazaBaraTotaluri()
|
||||
DOEVENTS FORCE
|
||||
DO asserteaza WITH 'bara ascunsa pe transfer (tip 23)', loBara.lblTotalLiniiArt.Visible = .F., TRANSFORM(loBara.lblTotalLiniiArt.Visible)
|
||||
DO asserteaza WITH 'grid articole ramane vizibil pe transfer', loBara.grdArticoleFactura.Visible = .T., TRANSFORM(loBara.grdArticoleFactura.Visible)
|
||||
|
||||
loForm.nTipVanzare = 1
|
||||
loForm.ActualizeazaBaraTotaluri()
|
||||
DOEVENTS FORCE
|
||||
DO asserteaza WITH 'bara revine vizibila pe factura normala', loBara.lblTotalLiniiArt.Visible = .T., TRANSFORM(loBara.lblTotalLiniiArt.Visible)
|
||||
|
||||
DO HarnessStep WITH 0, 'bara_totaluri', 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
|
||||
Reference in New Issue
Block a user