* 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