#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:
117
utile/Teste/editare_factura/test_defect1_crsjtvatemp.prg
Normal file
117
utile/Teste/editare_factura/test_defect1_crsjtvatemp.prg
Normal file
@@ -0,0 +1,117 @@
|
||||
* test_defect1_crsjtvatemp.prg
|
||||
* Verifica fix-ul din frm_facturi.do_editare_factura (ofacturare_comun.vc2:3799-3804): inainte de
|
||||
* Createobject('frm_modific2024',...), metoda precreeaza crsJtvaTemp cu update_jtva_coloane("",
|
||||
* "crsJtvaTemp", 0) - acelasi tipar folosit de ooperatii_comune.prg:113 (viz_act, calea ROACONT
|
||||
* "registru jurnal > modificare" care functiona deja corect). Fara aceasta linie,
|
||||
* Column63.ControlSource din grid (Seek(...,'crsJtvaTemp','id_jtva')) crapa la constructia
|
||||
* formularului, fiindca cursorul nu exista inca.
|
||||
* Nu scrie in Oracle - doar SELECT-uri prin goExecutor si citiri de proprietati. QUIT la final.
|
||||
|
||||
SET SAFETY OFF
|
||||
SET TALK OFF
|
||||
|
||||
LOCAL lcLog
|
||||
lcLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_defect1_crsjtvatemp_log.txt'
|
||||
STRTOFILE('start' + CHR(13) + CHR(10), lcLog)
|
||||
|
||||
PUBLIC gcErrLog
|
||||
gcErrLog = lcLog
|
||||
ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
||||
|
||||
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), lcLog, 1)
|
||||
QUIT
|
||||
ENDIF
|
||||
|
||||
SET PROCEDURE TO D:\ROA\ROAFACTURARE\COMUN\programe\ofacturare_editare.prg ADDITIVE
|
||||
|
||||
*!* test_init_env_auto:139 incarca omodificari din copia ROACONT (alt working copy) - o eliberam
|
||||
*!* si o reincarcam pe cea DE SUB TEST, cu cale completa
|
||||
RELEASE CLASSLIB omodificari
|
||||
SET CLASSLIB TO D:\ROA\ROAFACTURARE\COMUN\clase\omodificari.vcx ADDITIVE
|
||||
|
||||
DO verifica_defect1 WITH 1139934, 2021, 12, lcLog, 3, .T., 882
|
||||
|
||||
STRTOFILE('done' + CHR(13) + CHR(10), lcLog, 1)
|
||||
QUIT
|
||||
|
||||
|
||||
PROCEDURE verifica_defect1
|
||||
LPARAMETERS tnCod, tnAn, tnLuna, tcLog, tnPageCountAsteptat, tlAreArticoleAsteptat, tnIdVanzareAsteptat
|
||||
|
||||
LOCAL llOk, lnIdSet, loForm, llCrsJtvaInchisInainte, llCrsJtvaCreatDupa, lnPageCount, llAreArticole, lnIdVanzare
|
||||
|
||||
IF USED('crsJtvaTemp')
|
||||
USE IN crsJtvaTemp
|
||||
ENDIF
|
||||
llCrsJtvaInchisInainte = !USED('crsJtvaTemp')
|
||||
|
||||
llOk = IncarcaCursoareModificareNota(tnCod, tnAn, tnLuna, .F.)
|
||||
lnPageCount = -1
|
||||
llAreArticole = .F.
|
||||
lnIdVanzare = 0
|
||||
llCrsJtvaCreatDupa = .F.
|
||||
|
||||
IF llOk AND USED('tact') AND RECCOUNT('tact') > 0
|
||||
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
|
||||
|
||||
*-- linia din fix (ofacturare_comun.vc2:3801) - fara ea, grid-ul din frm_modific2024
|
||||
*-- crapa la constructie pe crsJtvaTemp lipsa
|
||||
update_jtva_coloane("", "crsJtvaTemp", 0)
|
||||
|
||||
llCrsJtvaCreatDupa = USED('crsJtvaTemp') AND RECCOUNT('crsJtvaTemp') >= 0
|
||||
|
||||
SELECT tact
|
||||
TRY
|
||||
loForm = CREATEOBJECT([frm_modific2024], lnIdSet)
|
||||
loForm.WindowType = 0
|
||||
loForm.Show()
|
||||
lnPageCount = loForm.pgfArticole.PageCount
|
||||
llAreArticole = loForm.lAreArticoleVanzari
|
||||
lnIdVanzare = loForm.nIdVanzare
|
||||
loForm.Release()
|
||||
CATCH TO loExc
|
||||
STRTOFILE(' EXCEPTIE la Createobject/Show frm_modific2024: ' + TRANSFORM(loExc.ErrorNo) + ;
|
||||
' [' + loExc.Message + ']' + CHR(13) + CHR(10), tcLog, 1)
|
||||
ENDTRY
|
||||
ENDIF
|
||||
|
||||
STRTOFILE('--- Defect 1 (crsJtvaTemp), cod=' + TRANSFORM(tnCod) + ' ---' + CHR(13) + CHR(10) + ;
|
||||
' crsJtvaTemp inchis inainte de apel = ' + TRANSFORM(llCrsJtvaInchisInainte) + CHR(13) + CHR(10) + ;
|
||||
' crsJtvaTemp creat de update_jtva_coloane (Used+Reccount>=0) = ' + TRANSFORM(llCrsJtvaCreatDupa) + CHR(13) + CHR(10) + ;
|
||||
' PageCount = ' + TRANSFORM(lnPageCount) + ' (asteptat ' + TRANSFORM(tnPageCountAsteptat) + ')' + CHR(13) + CHR(10) + ;
|
||||
' lAreArticoleVanzari = ' + TRANSFORM(llAreArticole) + ' (asteptat ' + TRANSFORM(tlAreArticoleAsteptat) + ')' + CHR(13) + CHR(10) + ;
|
||||
' nIdVanzare = ' + TRANSFORM(lnIdVanzare) + ' (asteptat ' + TRANSFORM(tnIdVanzareAsteptat) + ')' + CHR(13) + CHR(10) + ;
|
||||
' ' + IIF(llCrsJtvaInchisInainte AND llCrsJtvaCreatDupa AND lnPageCount == tnPageCountAsteptat AND llAreArticole == tlAreArticoleAsteptat AND lnIdVanzare == tnIdVanzareAsteptat, 'PASS', 'FAIL') + CHR(13) + CHR(10), tcLog, 1)
|
||||
|
||||
IF USED('actactan')
|
||||
USE IN actactan
|
||||
ENDIF
|
||||
IF USED('tact')
|
||||
USE IN tact
|
||||
ENDIF
|
||||
IF USED('rul_temp')
|
||||
USE IN rul_temp
|
||||
ENDIF
|
||||
IF USED('trul')
|
||||
USE IN trul
|
||||
ENDIF
|
||||
IF USED('rul_temp_obinv')
|
||||
USE IN rul_temp_obinv
|
||||
ENDIF
|
||||
IF USED('trul_obinv')
|
||||
USE IN trul_obinv
|
||||
ENDIF
|
||||
IF USED('crsJtvaTemp')
|
||||
USE IN crsJtvaTemp
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE test_error_handler
|
||||
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
|
||||
STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcErrLog, 1)
|
||||
ENDPROC
|
||||
Reference in New Issue
Block a user