Harness ROAACNPRO-specific (gcAppPath propriu, spre deosebire de test_init_env_auto.prg care e fixat pe ROACONT), shadow pentru cauta_alfa() si testul care reproduce/confirma label-ul ANAF pe caut_client_contract_activ(), plus repro pentru scoping-ul gresit al lui poDate in do_cauta_partener (Thisform.poDate vs poDate PRIVATE).
131 lines
5.8 KiB
Plaintext
131 lines
5.8 KiB
Plaintext
* test_repro_anaf_label_client_contract.prg
|
|
* Reproduce raportul utilizatorului (Marius, 03.08.2026): la alegerea clientului pe factura
|
|
* (ROAACNPRO, frm_factura.do_cauta_partener), nu apare label-ul de verificare ANAF a codului
|
|
* fiscal, desi acesta a fost adaugat in COMUN (ocautare.prg: clasa anaf_verif_cautare, activata
|
|
* de caut_partener() prin parametrul tlVerificaANAF). Cauza: frm_factura foloseste in schimb
|
|
* caut_client_contract_activ() (ocautare.prg), care nu are deloc acest parametru.
|
|
*
|
|
* Testeaza DOAR mecanismul comun (caut_client_contract_activ + anaf_verif_cautare.Activeaza),
|
|
* nu UI-ul ROAACNPRO: inlocuieste cauta_alfa() cu un shadow (mock_cauta_alfa_anaf_label.prg) care
|
|
* replica liniile 211-220 din cauta_alfa.prg (poVerifAlegere.Activeaza/Dezactiveaza) pe un formular
|
|
* REAL cauta_alfa_form, PRE-CONSTRUIT in acest script (capcana l), fara sa mai deschida fereastra
|
|
* (Show() modal ar bloca headless). Foloseste un partener REAL din nom_parteneri, ca verificarea
|
|
* ANAF (goExecutor + serviciul ANAF/cache) sa ruleze pe fluxul real.
|
|
*
|
|
* Rulare: vfp9.exe -A -T "test_repro_anaf_label_client_contract.prg"
|
|
* Verdict in gcUILog. Ruleaza INAINTE de fix (astept gcTestAnafActivat=.F.) si DUPA fix (astept .T.
|
|
* + label populat), cu semnatura caut_client_contract_activ() ajustata mai jos (tlVerificaANAF).
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
SET DELETED ON
|
|
SET EXACT ON
|
|
SET CENTURY ON
|
|
SET DATE DMY
|
|
SET NULLDISPLAY TO ''
|
|
CLOSE DATABASES
|
|
|
|
PUBLIC gcUILog
|
|
gcUILog = "D:\ROA\ROAACNPRO\COMUN\utile\Teste\test_repro_anaf_label_client_contract_log.txt"
|
|
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13)+CHR(10), gcUILog)
|
|
|
|
ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
|
ON SHUTDOWN QUIT
|
|
|
|
TRY
|
|
*-- shadow-ul TREBUIE incarcat PRIMUL, inainte ca test_init_env_auto sa incarce cauta_alfa real
|
|
SET PROCEDURE TO "D:\ROA\ROAACNPRO\COMUN\utile\Teste\mock_cauta_alfa_anaf_label.prg" ADDITIVE
|
|
DO PrLogLocal WITH 'shadow cauta_alfa incarcat'
|
|
|
|
PUBLIC gnButon
|
|
gnButon = 0
|
|
|
|
DO "D:\ROA\ROAACNPRO\COMUN\utile\Teste\test_init_env_auto_acnpro.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
|
|
IF gnHandle <= 0
|
|
DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')'
|
|
QUIT
|
|
ENDIF
|
|
DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle)
|
|
|
|
*-- un partener real, cu cod fiscal completat, pentru fluxul ANAF real
|
|
LOCAL lcSelPart, lnSuccesPart
|
|
IF USED('crsPartTest')
|
|
USE IN ('crsPartTest')
|
|
ENDIF
|
|
lcSelPart = "SELECT * FROM (SELECT id_part, denumire, cod_fiscal, tip_persoana FROM nom_parteneri " + ;
|
|
"WHERE sters = 0 AND inactiv = 0 AND cod_fiscal IS NOT NULL AND LENGTH(TRIM(cod_fiscal)) > 0 " + ;
|
|
"ORDER BY id_part) WHERE ROWNUM = 1"
|
|
lnSuccesPart = goExecutor.oExecute(lcSelPart, "crsPartTest")
|
|
IF lnSuccesPart < 0 OR RECCOUNT('crsPartTest') = 0
|
|
DO PrLogLocal WITH 'FAIL: nu am gasit niciun partener cu cod fiscal pentru test'
|
|
QUIT
|
|
ENDIF
|
|
SELECT crsPartTest
|
|
LOCAL lnIdPartTest, lcCodFiscalTest, lcDenumireTest
|
|
lnIdPartTest = id_part
|
|
lcCodFiscalTest = ALLTRIM(cod_fiscal)
|
|
lcDenumireTest = ALLTRIM(denumire)
|
|
USE IN ('crsPartTest')
|
|
DO PrLogLocal WITH 'partener test: id_part=' + TRANSFORM(lnIdPartTest) + ' cod_fiscal=' + lcCodFiscalTest + ' denumire=' + lcDenumireTest
|
|
|
|
*-- cursorul cu FORMA EXACTA produsa de caut_client_contract_activ (ocautare.prg ~4054-4060):
|
|
*-- id_ctr, id_part, denumire, cod_fiscal, data, numar, data_inceput, data_sfarsit, nr_zile_scadenta, tip_curs
|
|
LOCAL lcCurTest
|
|
lcCurTest = SYS(2015)
|
|
IF USED(lcCurTest)
|
|
USE IN (lcCurTest)
|
|
ENDIF
|
|
CREATE CURSOR (lcCurTest) (id_ctr N(10), id_part N(10), denumire C(100), cod_fiscal C(50), ;
|
|
data D, numar C(100), data_inceput D, data_sfarsit D, nr_zile_scadenta N(10), tip_curs N(10))
|
|
INSERT INTO (lcCurTest) (id_part, denumire, cod_fiscal) VALUES (lnIdPartTest, lcDenumireTest, lcCodFiscalTest)
|
|
GO TOP IN (lcCurTest)
|
|
|
|
*-- goDlgTest: formularul REAL cauta_alfa_form, PRE-CONSTRUIT aici (capcana l: CREATEOBJECT
|
|
*-- dintr-o procedura intoarce obiect stricat in acest runtime headless)
|
|
PUBLIC goDlgTest
|
|
goDlgTest = CREATEOBJECT('cauta_alfa_form', lcCurTest, '', ;
|
|
'Denumire,Cod fiscal,Contract,Data', 'denumire,cod_fiscal,numar,data', .F., 'denumire', 1)
|
|
goDlgTest.crs_cursor = lcCurTest
|
|
goDlgTest.WindowType = 0
|
|
DO PrLogLocal WITH 'goDlgTest construit (cauta_alfa_form real, cursor=' + lcCurTest + ')'
|
|
|
|
PUBLIC gcTestAnafActivat, gcTestAnafLabelType, gcTestAnafLabelVisible, gcTestAnafLabelCaption, gcTestDiag
|
|
|
|
*-- ================= apelul real testat =================
|
|
LOCAL loCauta
|
|
loCauta = caut_client_contract_activ('', 0, 0, .T., DATE())
|
|
|
|
DO PrLogLocal WITH 'caut_client_contract_activ() finalizat'
|
|
DO PrLogLocal WITH 'DIAG: ' + gcTestDiag
|
|
DO PrLogLocal WITH 'gcTestAnafActivat=' + TRANSFORM(gcTestAnafActivat) + ;
|
|
' gcTestAnafLabelType=' + gcTestAnafLabelType + ;
|
|
' gcTestAnafLabelVisible=' + TRANSFORM(gcTestAnafLabelVisible) + ;
|
|
' gcTestAnafLabelCaption=[' + gcTestAnafLabelCaption + ']'
|
|
|
|
IF gcTestAnafActivat AND gcTestAnafLabelType == 'O'
|
|
DO PrLogLocal WITH 'PASS: label-ul ANAF (lb_anaf) e creat si activat de caut_client_contract_activ'
|
|
ELSE
|
|
DO PrLogLocal WITH 'FAIL (asteptat inainte de fix): label-ul ANAF NU e creat - caut_client_contract_activ nu instantiaza poVerifAlegere'
|
|
ENDIF
|
|
|
|
DO PrLogLocal WITH 'GATA'
|
|
CATCH TO loExcMain
|
|
DO PrLogLocal WITH 'CATCH ErrorNo=' + TRANSFORM(loExcMain.ErrorNo) + ' Message=' + loExcMain.Message + ;
|
|
' Proc=' + loExcMain.Procedure + ' Line=' + TRANSFORM(loExcMain.LineNo) + ' [' + loExcMain.LineContents + ']'
|
|
ENDTRY
|
|
|
|
QUIT
|
|
|
|
PROCEDURE PrErrLocal
|
|
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
|
DO PrLogLocal WITH 'ON ERROR ' + TRANSFORM(tnErr) + ' [' + tcProg + ':' + TRANSFORM(tnLine) + '] ' + tcMsg
|
|
ENDPROC
|
|
|
|
PROCEDURE PrLogLocal
|
|
LPARAMETERS tcMsg
|
|
SET SAFETY OFF
|
|
LOCAL lcL
|
|
lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '')
|
|
STRTOFILE(lcL + tcMsg + CHR(13)+CHR(10), gcUILog)
|
|
ENDPROC
|