sync SVN r18038
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -109,3 +109,11 @@ fals `roundtrip text1 != text2`. Ruleaza atunci cu lista rebazata:
|
||||
la fiecare capat de linie - rezultatul e un fisier cu sfarsituri de linie amestecate (CRLF pe
|
||||
continutul vechi, LF pe cel nou). Verificare finala obligatorie dupa orice scriere: numara
|
||||
octetii `0x0A` neprecedati de `0x0D` (LF izolati) - trebuie sa fie 0.
|
||||
- **`-DryRun` NU e plasa de siguranta pentru capete de linie** - fidelity-check-ul compara doar
|
||||
continutul text, nu CRLF vs LF, deci un fisier convertit integral la LF de un tool Edit/Write
|
||||
(patit si cumulat, pe mai multe runde succesive) trece cu OK/EXITCODE=0. Verificare separata,
|
||||
obligatorie dupa fiecare editare, langa censul de octeti non-ASCII deja documentat mai sus:
|
||||
`perl -e 'local $/; open F,"<:raw",$ARGV[0]; $d=<F>; $crlf=()=$d=~/\r\n/g; $lf=()=$d=~/\n/g; print $lf-$crlf' <fisier>`
|
||||
trebuie sa dea 0. Semnal secundar: daca `git diff --numstat` arata brusc tot fisierul schimbat
|
||||
(nu doar liniile atinse), capetele de linie sunt gresite. Reparare (doar dupa ce ai confirmat ca
|
||||
fisierul n-are deja niciun `\r`): `perl -pe 's/\n/\r\n/' < f > f.tmp`.
|
||||
|
||||
@@ -4772,7 +4772,7 @@ Function verifica_partener_show_info
|
||||
*** tcMesajIntrebare: IN, optional, daca se intreaba ceva la sfarsitul formularului (ex: Se completeaza datele in formularul partener nou?)
|
||||
|
||||
Local lcCodFiscal, lcDenumire, lcText, llCodRO, llPlatitorTVAMfin, llPlatitorTVAVIES, lnDialogType
|
||||
Local lnRaspuns, loPartener, lcProvenienta, lcPerioade
|
||||
Local lnRaspuns, loPartener, lcSursaPrefix, llAtentie, lcTVA, lcStareFirma, lcIdent, lcMesajAnaf
|
||||
|
||||
lcCodFiscal = Transform(m.tcCodFiscal)
|
||||
lcDenumire = Transform(m.tcDenumire)
|
||||
@@ -4784,50 +4784,68 @@ Function verifica_partener_show_info
|
||||
llTvaIncasare = loPartener.tvaincasare
|
||||
llSplitTVA = loPartener.splittva
|
||||
llInactiv = loPartener.inactiv
|
||||
*!* 01.08.2026 marius.mutu: marcaj explicit al sursei (ANAF live / cache), nu doar pe randurile din cache
|
||||
lcProvenienta = ''
|
||||
llAtentie = ((m.llPlatitorTVAMfin And !m.llCodRO) Or (!m.llPlatitorTVAMfin And m.llCodRO)) Or m.llInactiv
|
||||
|
||||
*!* 22.08.2026 marius.mutu: marcaj explicit al sursei (ANAF live / cache), ca prefix pe linia denumirii
|
||||
lcSursaPrefix = ''
|
||||
If Pemstatus(m.loPartener, 'sursa', 5) And !Empty(Alltrim(Nvl(loPartener.sursa, '')))
|
||||
lcProvenienta = Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'ANAF', '(sursa: ANAF)', ;
|
||||
'(sursa: CACHE ' + Dtoc(Nvl(loPartener.data_sursa, Date())) + Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'CACHE_INDISP', ', ANAF indisponibil', '') + ')')
|
||||
lcSursaPrefix = Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'ANAF', 'ANAF: ', ;
|
||||
'CACHE ' + Dtoc(Nvl(loPartener.data_sursa, Date())) + Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'CACHE_INDISP', ' (ANAF indisponibil)', '') + ': ')
|
||||
Endif
|
||||
|
||||
*!* 22.08.2026 marius.mutu: perioadele ANAF, doar cele completate (traseul mfinante.ro nu le are)
|
||||
lcPerioade = ''
|
||||
*!* 22.08.2026 marius.mutu: mesaj grupat pe sectiuni TVA/STARE FIRMA/IDENTIFICARE, fara campuri goale
|
||||
lcMesajAnaf = Iif(!Empty(Alltrim(Nvl(loPartener.stare, ''))), 'Mesaj ANAF: ' + Alltrim(loPartener.stare) + crlf, '')
|
||||
|
||||
lcTVA = Iif(m.llPlatitorTVAMfin, "Platitor TVA: DA (la " + Alltrim(loPartener.datatvamfin) + ")", "Platitor TVA: NU") + crlf
|
||||
lcStareFirma = 'Inactiv: ' + Iif(m.llInactiv, 'DA', 'NU') + crlf
|
||||
If Pemstatus(m.loPartener, 'data_inceput_scptva', 5)
|
||||
If !Empty(Nvl(loPartener.data_inceput_scptva, {}))
|
||||
lcPerioade = m.lcPerioade + 'Perioada TVA: ' + Dtoc(loPartener.data_inceput_scptva) + ' - ' + ;
|
||||
lcTVA = m.lcTVA + 'Perioada TVA: ' + Dtoc(loPartener.data_inceput_scptva) + ' - ' + ;
|
||||
Iif(Empty(Nvl(loPartener.data_sfarsit_scptva, {})), 'in vigoare', Dtoc(loPartener.data_sfarsit_scptva)) + ;
|
||||
Iif(Empty(Nvl(loPartener.data_anul_imp_scptva, {})), '', ' (anulare din oficiu: ' + Dtoc(loPartener.data_anul_imp_scptva) + ')') + crlf
|
||||
Endif
|
||||
lcTVA = m.lcTVA + m.lcMesajAnaf + 'TVA la incasare: ' + Iif(m.llTvaIncasare, 'DA', 'NU') + crlf
|
||||
If !Empty(Nvl(loPartener.data_inceput_tvainc, {}))
|
||||
lcPerioade = m.lcPerioade + 'Perioada TVA la incasare: ' + Dtoc(loPartener.data_inceput_tvainc) + ' - ' + ;
|
||||
lcTVA = m.lcTVA + 'Perioada TVA la incasare: ' + Dtoc(loPartener.data_inceput_tvainc) + ' - ' + ;
|
||||
Iif(Empty(Nvl(loPartener.data_sfarsit_tvainc, {})), 'in vigoare', Dtoc(loPartener.data_sfarsit_tvainc)) + crlf
|
||||
Endif
|
||||
lcTVA = m.lcTVA + 'Split TVA: ' + Iif(m.llSplitTVA, 'DA', 'NU') + crlf
|
||||
If !Empty(Nvl(loPartener.data_inactivare, {}))
|
||||
lcPerioade = m.lcPerioade + 'Inactivare: ' + Dtoc(loPartener.data_inactivare) + ;
|
||||
lcStareFirma = m.lcStareFirma + 'Inactivare: ' + Dtoc(loPartener.data_inactivare) + ;
|
||||
Iif(Empty(Nvl(loPartener.data_reactivare, {})), '', ' Reactivare: ' + Dtoc(loPartener.data_reactivare)) + crlf
|
||||
Endif
|
||||
Else
|
||||
lcTVA = m.lcTVA + m.lcMesajAnaf + 'TVA la incasare: ' + Iif(m.llTvaIncasare, 'DA', 'NU') + crlf + ;
|
||||
'Split TVA: ' + Iif(m.llSplitTVA, 'DA', 'NU') + crlf
|
||||
Endif
|
||||
|
||||
lcIdent = ''
|
||||
If !Empty(loPartener.adresa)
|
||||
lcIdent = m.lcIdent + 'Adresa: ' + Alltrim(loPartener.adresa) + crlf
|
||||
Endif
|
||||
If !Empty(loPartener.judet)
|
||||
lcIdent = m.lcIdent + 'Judet: ' + loPartener.judet + crlf
|
||||
Endif
|
||||
If !Empty(loPartener.regcom)
|
||||
lcIdent = m.lcIdent + 'Reg. comertului: ' + loPartener.regcom + crlf
|
||||
Endif
|
||||
If !Empty(loPartener.codpostal)
|
||||
lcIdent = m.lcIdent + 'Cod postal: ' + loPartener.codpostal + crlf
|
||||
Endif
|
||||
If !Empty(loPartener.telefon)
|
||||
lcIdent = m.lcIdent + 'Telefon: ' + loPartener.telefon + crlf
|
||||
Endif
|
||||
If !Empty(loPartener.fax)
|
||||
lcIdent = m.lcIdent + 'Fax: ' + loPartener.fax + crlf
|
||||
Endif
|
||||
|
||||
lcText = 'VERIFICARE CIF: ' + m.lcCodFiscal + ' ' + m.lcDenumire + crlf + crlf + ;
|
||||
Alltrim(loPartener.firma) + crlf + ;
|
||||
Iif(!Empty(m.lcProvenienta), m.lcProvenienta + crlf, '') + ;
|
||||
Iif((m.llPlatitorTVAMfin And !m.llCodRO) Or (!m.llPlatitorTVAMfin And m.llCodRO), ' *** ATENTIE *** ', '') + ;
|
||||
Iif(m.llPlatitorTVAMfin, "PLATITOR TVA (" + Alltrim(loPartener.datatvamfin) + ")", "NEPLATITOR TVA") + crlf + ;
|
||||
'Stare: ' + Alltrim(loPartener.stare) + crlf + ;
|
||||
'TVA Incasare: ' + Iif(m.llTvaIncasare, 'DA', 'NU') + crlf + ;
|
||||
'Split TVA: ' + Iif(m.llSplitTVA, 'DA', 'NU') + crlf + ;
|
||||
'Inactiv: ' + Iif(m.llInactiv, 'DA *** ATENTIE!', 'NU') + crlf + ;
|
||||
m.lcPerioade + ;
|
||||
'----------------------------------------------------' + crlf + ;
|
||||
'* Adresa: ' + Alltrim(loPartener.adresa) + crlf + ;
|
||||
'* Judet: ' + loPartener.judet + crlf + ;
|
||||
'* Nr. inregistrare la Registrul Comertului: ' + loPartener.regcom + crlf + ;
|
||||
'* Cod Postal: ' + loPartener.codpostal + crlf + ;
|
||||
'* Telefon: ' + loPartener.telefon + crlf + ;
|
||||
'* Fax: ' + loPartener.fax + crlf + ;
|
||||
Iif(!Empty(loPartener.eroare), Alltrim(loPartener.eroare) + crlf, '') + ;
|
||||
'----------------------------------------------------' + crlf + crlf + ;
|
||||
m.lcSursaPrefix + Alltrim(loPartener.firma) + crlf + ;
|
||||
Iif(m.llAtentie, ' *** ATENTIE *** ' + crlf, '') + crlf + ;
|
||||
'--- TVA ---' + crlf + m.lcTVA + crlf + ;
|
||||
Iif(!Empty(m.lcStareFirma), '--- STARE FIRMA ---' + crlf + m.lcStareFirma + crlf, '') + ;
|
||||
Iif(!Empty(m.lcIdent), '--- IDENTIFICARE ---' + crlf + m.lcIdent + crlf, '') + ;
|
||||
Iif(!Empty(loPartener.eroare), Alltrim(loPartener.eroare) + crlf + crlf, '') + ;
|
||||
Iif(!Empty(m.tcMesajIntrebare), m.tcMesajIntrebare + crlf + crlf + crlf, "")
|
||||
|
||||
lnRaspuns = amessagebox(lcText, m.lnDialogType, _Screen.Caption)
|
||||
@@ -4841,20 +4859,13 @@ Function GetMeniuVerificareCodFiscal
|
||||
llVerificareCod = Type('tcCodFiscal') = 'C' And !Empty(m.tcCodFiscal)
|
||||
lcMeniuOptiuniAnte = Iif(Type('tcOptiuniMeniuAnte') = 'C' And !Empty(m.tcOptiuniMeniuAnte), Alltrim(m.tcOptiuniMeniuAnte), '')
|
||||
|
||||
*!* 22.08.2026 marius.mutu: meniu scurtat, un raspuns ANAF acopera toate verificarile separate de mai jos
|
||||
lcMenu = lcMeniuOptiuniAnte + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare ANAF (automat);" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "VERIFICARE ANAF;" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "VERIFICARE VIES;" + ;
|
||||
"ISTORIC VERIFICARI COD FISCAL;" + ;
|
||||
"\-;" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare MFINANTE (manual);" + ;
|
||||
"\-;" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare Registru inactivi ANAF (manual);" + ;
|
||||
"\-;" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare Registru TVA Incasare (automat);" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare Registru TVA Incasare (manual);" + ;
|
||||
"\-;" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare VIES (automat);" + ;
|
||||
Iif(!m.llVerificareCod, "\", "") + "Verificare VIES (manual);" + ;
|
||||
"\-;" + ;
|
||||
"Istoric verificari cod fiscal"
|
||||
Iif(!m.llVerificareCod, "\", "") + "DESCHIDE FISA PE MFINANTE.RO"
|
||||
|
||||
Return m.lcMenu
|
||||
Endfunc
|
||||
@@ -4867,14 +4878,11 @@ Function GetOptiuneVerificareCodFiscal
|
||||
|
||||
lnOptiune = Iif(Type('tnOptiune') = 'N', m.tnOptiune, 0)
|
||||
|
||||
*!* 22.08.2026 marius.mutu: numerotare pe meniul scurtat (1 ANAF, 2 VIES, 3 ISTORIC, 5 MFINANTE.RO)
|
||||
lcTipVerificare = Iif(m.lnOptiune = 1, 'ANAF_SERVICIU_WEB', ;
|
||||
Iif(m.lnOptiune = 3, 'MFIN_MANUAL_COD', ;
|
||||
Iif(m.lnOptiune = 5, 'ANAF_MANUAL_COD', ;
|
||||
Iif(m.lnOptiune = 7, 'RTVAI_AUTO_COD', ;
|
||||
Iif(m.lnOptiune = 8, 'RTVAI_MANUAL_COD', ;
|
||||
Iif(m.lnOptiune = 10, 'VIES_AUTO', ;
|
||||
Iif(m.lnOptiune = 11, 'VIES_MANUAL', ;
|
||||
Iif(m.lnOptiune = 13, 'ISTORIC', ''))))))))
|
||||
Iif(m.lnOptiune = 2, 'VIES_AUTO', ;
|
||||
Iif(m.lnOptiune = 3, 'ISTORIC', ;
|
||||
Iif(m.lnOptiune = 5, 'MFIN_MANUAL_COD', ''))))
|
||||
|
||||
Return m.lcTipVerificare
|
||||
Endfunc
|
||||
|
||||
@@ -958,6 +958,10 @@ Define Class VerificareCod As Custom
|
||||
If Type("This.oHTTP") <> "O" && la prima apelare a verificarii MFIN
|
||||
If This.lXMLHTTP
|
||||
This.oHTTP = Createobject("winhttp.winhttprequest.5.1")
|
||||
Try
|
||||
This.oHTTP.SetTimeouts(5000, 5000, 10000, 15000)
|
||||
Catch To loEx
|
||||
Endtry
|
||||
Else
|
||||
This.oHTTP = Createobject("InternetExplorer.Application")
|
||||
This.oHTTP.Visible = .F.
|
||||
@@ -1174,6 +1178,10 @@ Define Class VerificareCod As Custom
|
||||
Try
|
||||
*!* loHTTP = Createobject("MSXML2.ServerXMLHTTP")
|
||||
loHTTP = Createobject("winhttp.winhttprequest.5.1")
|
||||
Try
|
||||
loHTTP.SetTimeouts(5000, 5000, 10000, 20000)
|
||||
Catch To loEx
|
||||
Endtry
|
||||
loHTTP.Open("GET", lcRomfastURL, .F.)
|
||||
loHTTP.Send()
|
||||
lnStatus = loHTTP.Status
|
||||
@@ -1236,9 +1244,16 @@ Define Class VerificareCod As Custom
|
||||
*!* 15.03.2010 ^
|
||||
ENDIF && .F.
|
||||
Try
|
||||
*!* 23.08.2026 marius.mutu: text/xml (nu urlencoded) - serviciul VIES da 400 pe content-type gresit
|
||||
lcViesURL = "https://ec.europa.eu/taxation_customs/vies/services/checkVatService"
|
||||
loHTTP = Createobject("winhttp.winhttprequest.5.1")
|
||||
loHTTP.Open("POST", "http://ec.europa.eu/taxation_customs/vies/services/checkVatService", .F.)
|
||||
loHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
|
||||
*!* 23.08.2026 marius.mutu: timeout, altfel apelul blocheaza formularul la nesfarsit daca serviciul nu raspunde
|
||||
Try
|
||||
loHTTP.SetTimeouts(5000, 5000, 10000, 20000)
|
||||
Catch To loEx
|
||||
Endtry
|
||||
loHTTP.Open("POST", m.lcViesURL, .F.)
|
||||
loHTTP.setRequestHeader('Content-Type', 'text/xml; charset=utf-8')
|
||||
|
||||
TEXT TO lcValues NOSHOW TEXTMERGE
|
||||
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
|
||||
@@ -1249,20 +1264,21 @@ Define Class VerificareCod As Custom
|
||||
</checkVat>
|
||||
</s:Body>
|
||||
</s:Envelope>
|
||||
ENDTEXT
|
||||
ENDTEXT
|
||||
|
||||
loHTTP.Send(lcValues)
|
||||
lnStatus = loHTTP.Status
|
||||
If lnStatus = 200 && OK
|
||||
If lnStatus = 200 && OK
|
||||
lcXML = loHTTP.responseText
|
||||
llPlatitorTVA = (STREXTRACT(m.lcXML, [<valid>],[</valid>],1,1) = 'true') && true/false
|
||||
lcFirma = STRTRAN(STREXTRACT(m.lcXML, [<name>],[</name>],1,1), '-','',1,10,1)
|
||||
lcAdresa = STRTRAN(STREXTRACT(m.lcXML, [<address>],[</address>],1,1), '-','',1,10,1)
|
||||
*!* 23.08.2026 marius.mutu: raspunsul are prefix de namespace (ns2:valid, ns2:name...) - delimitatorii vechi <valid> nu se mai potriveau
|
||||
llPlatitorTVA = (STREXTRACT(m.lcXML, [valid>],[<],1,1) = 'true') && true/false
|
||||
lcFirma = STRTRAN(STREXTRACT(m.lcXML, [name>],[<],1,1), '-','',1,10,1)
|
||||
lcAdresa = STRTRAN(STREXTRACT(m.lcXML, [address>],[<],1,1), '-','',1,10,1)
|
||||
lcAdresa = Strtran(m.lcAdresa, Chr(13) + CHR(10), ' ')
|
||||
llVies = .T.
|
||||
llVies = .T.
|
||||
Else
|
||||
lcEroare = 'VERIFICARE_CIF VIES - ' + m.lcViesURL + ' eroare ' + Alltrim(Str(lnStatus))
|
||||
Endif && lnStatus
|
||||
Endif && lnStatus
|
||||
Catch To loEx
|
||||
lcEroare = 'VERIFICARE_CIF VIES ' + CRLF + loEx.Message + " " + loEx.LineContents + " " + Transform(loEx.Lineno)
|
||||
This.Log(m.lcEroare)
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
* daca e incarcat cu SET PROCEDURE ... ADDITIVE INAINTE de test_init_env_auto.
|
||||
* Apelurile se numara in variabile PUBLIC (declarate si initializate de test inainte de fiecare pas):
|
||||
* gnMockNomModCount / gnMockNomModId (nom_parteneri_modifica) si gnMockVerifCodCount (VerificaCodFiscal).
|
||||
* gcMockVerifCodOptiuniAnte (daca declarata C de test) - captureaza toDate.optiuni_meniu_ante primit.
|
||||
* gnMockVerifCodLnOptiune (daca declarata N de test) - controleaza ce intoarce mock-ul prin @lnOptiune,
|
||||
* ca testul sa simuleze alegerea din XMENU (ex. 1 = prima optiune din meniu) fara sa-l deschida.
|
||||
|
||||
PROCEDURE nom_parteneri_modifica
|
||||
LPARAMETERS tnId_Part, tnIdTipPart, tcTipPart, tnSpecial, tcMesaj
|
||||
@@ -22,6 +25,10 @@ PROCEDURE VerificaCodFiscal
|
||||
IF TYPE('gnMockVerifCodCount') = 'N'
|
||||
gnMockVerifCodCount = gnMockVerifCodCount + 1
|
||||
ENDIF
|
||||
IF TYPE('gcMockVerifCodOptiuniAnte') = 'C'
|
||||
gcMockVerifCodOptiuniAnte = IIF(PEMSTATUS(toDate, 'optiuni_meniu_ante', 5), ALLTRIM(toDate.optiuni_meniu_ante), '')
|
||||
ENDIF
|
||||
lnOptiune = IIF(TYPE('gnMockVerifCodLnOptiune') = 'N', gnMockVerifCodLnOptiune, 0)
|
||||
loPartener = NULL
|
||||
RETURN 7
|
||||
ENDPROC
|
||||
|
||||
375
utile/Teste/todo21/test_todo21_e2e_verificare.prg
Normal file
375
utile/Teste/todo21/test_todo21_e2e_verificare.prg
Normal file
@@ -0,0 +1,375 @@
|
||||
* test_todo21_e2e_verificare.prg
|
||||
* TODO #21 - test END-TO-END al verificarii codurilor fiscale.
|
||||
*
|
||||
* Spre deosebire de celelalte teste (care instantiaza direct frm_verificare_parteneri), acesta
|
||||
* intra prin punctul de intrare REAL folosit de toti apelantii - verificare_parteneri()
|
||||
* (COMUN\programe\oproceduri_comune.prg:4525) - cu lista in formatul sir
|
||||
* "cod***denumire***atribut***ales***id_part***data|...", si merge pana la capat:
|
||||
* sir -> crsXMLParteneriVerificare -> crsVerificareParteneri -> formular modal ->
|
||||
* Activate -> do_verifica -> serviciul web ANAF REAL -> perioade + atentie -> cursor final.
|
||||
*
|
||||
* Formularul se deschide cu Show(1) (modal), deci headless-ul s-ar agata. Deblocarea se face cu
|
||||
* un obiect Timer independent (clasa tmrE2EDeblocare, la finalul fisierului), care asteapta ca
|
||||
* verificarea sa PORNEASCA (lblVerifica.Visible = .T., pus la inceputul lui do_verifica) si abia
|
||||
* apoi ca ea sa se TERMINE (lblVerifica.Visible = .F., pus la final), inainte sa dea Release.
|
||||
* Fara cele doua faze, timer-ul ar putea elibera formularul in mijlocul verificarii - do_verifica
|
||||
* apeleaza Inkey(1), moment in care evenimentele de timer chiar se executa.
|
||||
*
|
||||
* Cursorul se pastreaza dupa inchidere (tlDontCloseCursor = .T.), iar asertiunile se fac pe el.
|
||||
*
|
||||
* Datele de test: coduri fiscale REALE alese dinamic din istoric_coduri_fiscale si un partener
|
||||
* REAL din nom_parteneri (id_part nenul), plus un cod invalid fabricat si un duplicat - nimic
|
||||
* hardcodat, deci testul nu depinde de starea unei anumite firme.
|
||||
*
|
||||
* Nu scrie nimic in Oracle (doar SELECT-uri) si nu modifica nomenclatorul.
|
||||
*
|
||||
* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_e2e_verificare.prg"
|
||||
* Verdict in log: TOTAL OK / TOTAL FAIL: n pas(i).
|
||||
|
||||
SET SAFETY OFF
|
||||
SET TALK OFF
|
||||
SET DELETED ON
|
||||
SET EXACT ON
|
||||
SET CENTURY ON
|
||||
SET DATE DMY
|
||||
SET NULLDISPLAY TO ''
|
||||
CLOSE DATABASES
|
||||
|
||||
PUBLIC gcLog
|
||||
gcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_e2e_verificare_log.txt"
|
||||
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog)
|
||||
|
||||
PUBLIC gnEsecuri
|
||||
gnEsecuri = 0
|
||||
|
||||
ON ERROR DO PrErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
||||
ON SHUTDOWN QUIT
|
||||
|
||||
PUBLIC gcMockUltimMesaj, gnMockUltimTip, gnMockRaspuns
|
||||
gcMockUltimMesaj = ''
|
||||
gnMockUltimTip = 0
|
||||
gnMockRaspuns = 6
|
||||
|
||||
PUBLIC goTmrE2E, gnE2EFazaTimer, gnE2ETicks, glE2EEliberat
|
||||
gnE2EFazaTimer = 0
|
||||
gnE2ETicks = 0
|
||||
glE2EEliberat = .F.
|
||||
|
||||
TRY
|
||||
SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE
|
||||
DO PrLog WITH 'mock-uri incarcate'
|
||||
|
||||
DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
|
||||
IF gnHandle <= 0
|
||||
DO PrLog WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
DO PrLog WITH 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)'
|
||||
QUIT
|
||||
ENDIF
|
||||
DO PrLog WITH 'mediu OK, schema=' + gcS
|
||||
|
||||
*=====================================================================
|
||||
* Date de test reale, alese dinamic
|
||||
*=====================================================================
|
||||
LOCAL lcSql, lcCod1, lcCod2
|
||||
TEXT TO lcSql NOSHOW
|
||||
select cod_fiscal_n from (
|
||||
select cod_fiscal_n from istoric_coduri_fiscale
|
||||
where cod_fiscal_n is not null and data_inceput_scptva is not null
|
||||
order by dataorav_anaf desc) where rownum <= 2
|
||||
ENDTEXT
|
||||
lcCod1 = ''
|
||||
lcCod2 = ''
|
||||
IF goExecutor.oExecuta(lcSql, 'crsE1') AND USED('crsE1') AND RECCOUNT('crsE1') > 0
|
||||
SELECT crsE1
|
||||
GO TOP
|
||||
lcCod1 = ALLTRIM(TRANSFORM(NVL(crsE1.cod_fiscal_n, 0)))
|
||||
IF RECCOUNT('crsE1') > 1
|
||||
SKIP
|
||||
lcCod2 = ALLTRIM(TRANSFORM(NVL(crsE1.cod_fiscal_n, 0)))
|
||||
ENDIF
|
||||
ENDIF
|
||||
USE IN (SELECT('crsE1'))
|
||||
|
||||
LOCAL lnIdPart, lcCodPart, lcDenPart
|
||||
TEXT TO lcSql NOSHOW
|
||||
select id_part, cod_fiscal, denumire from (
|
||||
select id_part, cod_fiscal, denumire from nom_parteneri
|
||||
where nvl(inactiv,0) = 0 and nvl(sters,0) = 0 and not cod_fiscal is null
|
||||
order by id_part desc) where rownum <= 1
|
||||
ENDTEXT
|
||||
lnIdPart = 0
|
||||
lcCodPart = ''
|
||||
lcDenPart = ''
|
||||
IF goExecutor.oExecuta(lcSql, 'crsE2') AND USED('crsE2') AND RECCOUNT('crsE2') > 0
|
||||
lnIdPart = NVL(crsE2.id_part, 0)
|
||||
lcCodPart = ALLTRIM(NVL(crsE2.cod_fiscal, ''))
|
||||
lcDenPart = ALLTRIM(NVL(crsE2.denumire, ''))
|
||||
ENDIF
|
||||
USE IN (SELECT('crsE2'))
|
||||
|
||||
DO PrLog WITH 'coduri ANAF de test: [' + lcCod1 + '] [' + lcCod2 + ']; partener: id_part=' + ;
|
||||
TRANSFORM(lnIdPart) + ' cod=[' + lcCodPart + ']'
|
||||
|
||||
IF EMPTY(lcCod1) OR lnIdPart = 0
|
||||
DO PrLog WITH 'FAIL: nu s-au gasit date de test in Oracle'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
DO PrLog WITH 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)'
|
||||
QUIT
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* Lista de intrare, construita EXACT ca la apelantii reali (D394, jurnale TVA): un cursor cu
|
||||
* id_part / cod_fiscal / denumire / atribut_fiscal / ales / data, trecut prin Cursortoxml
|
||||
* (vezi Clase/ovanzcump.vc2:19608-19618).
|
||||
* 5 randuri: cod real 1 de doua ori (-> DUPLICAT), cod real 2, partener real cu id_part,
|
||||
* cod fabricat invalid (-> INVALID).
|
||||
*=====================================================================
|
||||
LOCAL lcLista, ldData
|
||||
ldData = DATE(YEAR(DATE()), MONTH(DATE()), 1)
|
||||
CREATE CURSOR crsE2ELista (id_part N(16), cod_fiscal C(30), denumire C(100), atribut_fiscal C(2), ;
|
||||
ales L, IsCIF L, Data D)
|
||||
INSERT INTO crsE2ELista VALUES (0, lcCod1, 'E2E DUPLICAT A', 'RO', .F., .T., ldData)
|
||||
INSERT INTO crsE2ELista VALUES (0, lcCod1, 'E2E DUPLICAT B', 'RO', .F., .T., ldData)
|
||||
IF !EMPTY(lcCod2)
|
||||
INSERT INTO crsE2ELista VALUES (0, lcCod2, 'E2E COD ANAF 2', 'RO', .F., .T., ldData)
|
||||
ENDIF
|
||||
INSERT INTO crsE2ELista VALUES (lnIdPart, lcCodPart, lcDenPart, ;
|
||||
IIF(LEFT(UPPER(lcCodPart), 2) == 'RO', 'RO', ' '), .F., .T., ldData)
|
||||
INSERT INTO crsE2ELista VALUES (0, '123', 'E2E COD INVALID', 'RO', .F., .T., ldData)
|
||||
lcLista = ''
|
||||
CURSORTOXML('crsE2ELista', 'lcLista', 1, 0, 0, '1')
|
||||
USE IN (SELECT('crsE2ELista'))
|
||||
|
||||
*=====================================================================
|
||||
* Timer de deblocare + apelul REAL (modal)
|
||||
*=====================================================================
|
||||
goTmrE2E = CREATEOBJECT('tmrE2EDeblocare')
|
||||
goTmrE2E.Enabled = .T.
|
||||
|
||||
LOCAL lcCursor, ltStart
|
||||
ltStart = DATETIME()
|
||||
DO PrLog WITH 'apelez verificare_parteneri (modal) ...'
|
||||
lcCursor = verificare_parteneri(m.lcLista, .T., .T., .F., .T., .T., .F., .T.)
|
||||
goTmrE2E.Enabled = .F.
|
||||
DO PrLog WITH 'verificare_parteneri s-a intors dupa ' + TRANSFORM(INT(DATETIME() - ltStart)) + ;
|
||||
' s, cursor=[' + TRANSFORM(lcCursor) + '], timer: faza=' + TRANSFORM(gnE2EFazaTimer) + ;
|
||||
' ticks=' + TRANSFORM(gnE2ETicks) + ' eliberat=' + TRANSFORM(glE2EEliberat)
|
||||
|
||||
*=====================================================================
|
||||
* E1: cursorul supravietuieste (tlDontCloseCursor = .T.) si are toate randurile
|
||||
*=====================================================================
|
||||
LOCAL lnAsteptate
|
||||
lnAsteptate = IIF(EMPTY(lcCod2), 4, 5)
|
||||
IF USED('crsVerificareParteneri') AND RECCOUNT('crsVerificareParteneri') = lnAsteptate
|
||||
DO PrLog WITH 'OK E1: cursorul crsVerificareParteneri a ramas deschis, ' + ;
|
||||
TRANSFORM(lnAsteptate) + ' randuri'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E1: cursor deschis=' + TRANSFORM(USED('crsVerificareParteneri')) + ;
|
||||
' randuri=' + TRANSFORM(IIF(USED('crsVerificareParteneri'), RECCOUNT('crsVerificareParteneri'), -1)) + ;
|
||||
' asteptat ' + TRANSFORM(lnAsteptate)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
DO PrLog WITH 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)'
|
||||
QUIT
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E2: id_part si data au traversat parsarea sirului (fix-ul C4 din TODO 21)
|
||||
*=====================================================================
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR ALLTRIM(NVL(denumire, '')) == lcDenPart
|
||||
IF FOUND() AND NVL(crsVerificareParteneri.id_part, 0) = lnIdPart AND crsVerificareParteneri.Data = ldData
|
||||
DO PrLog WITH 'OK E2: id_part=' + TRANSFORM(lnIdPart) + ' si data=' + DTOC(ldData) + ' au ajuns in cursor'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E2: id_part=' + TRANSFORM(IIF(FOUND(), NVL(crsVerificareParteneri.id_part, 0), -1)) + ;
|
||||
' data=' + IIF(FOUND(), DTOC(crsVerificareParteneri.Data), '?') + ' asteptat ' + ;
|
||||
TRANSFORM(lnIdPart) + ' / ' + DTOC(ldData)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E3: codul invalid e marcat Valid = .F. si primeste eticheta INVALID
|
||||
*=====================================================================
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR ALLTRIM(NVL(denumire, '')) == 'E2E COD INVALID'
|
||||
IF FOUND() AND NVL(crsVerificareParteneri.Valid, .T.) = .F. AND 'INVALID' $ crsVerificareParteneri.atentie
|
||||
DO PrLog WITH 'OK E3: cod invalid -> Valid=.F., atentie=[' + ALLTRIM(crsVerificareParteneri.atentie) + ']'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E3: cod invalid -> Valid=' + TRANSFORM(IIF(FOUND(), crsVerificareParteneri.Valid, .NULL.)) + ;
|
||||
' atentie=[' + IIF(FOUND(), ALLTRIM(crsVerificareParteneri.atentie), '?') + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E4: cele doua randuri cu acelasi cod fiscal sunt marcate DUPLICAT
|
||||
*=====================================================================
|
||||
LOCAL lnDupl
|
||||
SELECT crsVerificareParteneri
|
||||
COUNT FOR ALLTRIM(NVL(cod_fiscal, '')) == lcCod1 AND 'DUPLICAT' $ atentie TO lnDupl
|
||||
IF lnDupl = 2
|
||||
DO PrLog WITH 'OK E4: ambele randuri cu codul ' + lcCod1 + ' au eticheta DUPLICAT'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E4: randuri DUPLICAT pentru ' + lcCod1 + ' = ' + TRANSFORM(lnDupl) + ' (asteptat 2)'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E5: ANAF a raspuns pe traseul real - cel putin un rand cu firma completata
|
||||
* si cel putin o perioada de TVA completata (coloanele noi din TODO 21)
|
||||
*=====================================================================
|
||||
LOCAL lnCuFirma, lnCuPerioada
|
||||
SELECT crsVerificareParteneri
|
||||
COUNT FOR !EMPTY(NVL(firma, '')) TO lnCuFirma
|
||||
COUNT FOR !EMPTY(NVL(data_inceput_scptva, {})) OR !EMPTY(NVL(data_inceput_tvainc, {})) ;
|
||||
OR !EMPTY(NVL(data_inactivare, {})) TO lnCuPerioada
|
||||
IF lnCuFirma > 0 AND lnCuPerioada > 0
|
||||
DO PrLog WITH 'OK E5: ANAF a raspuns real - ' + TRANSFORM(lnCuFirma) + ' rand(uri) cu firma, ' + ;
|
||||
TRANSFORM(lnCuPerioada) + ' cu perioade completate'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E5: firma=' + TRANSFORM(lnCuFirma) + ' perioade=' + TRANSFORM(lnCuPerioada) + ' (asteptat > 0)'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E6: textul venit de la ANAF nu contine '?' (decodarea UTF-8 prin
|
||||
* AnafDecodeResponseText - COMUN\programe\validare.prg)
|
||||
*=====================================================================
|
||||
LOCAL lnSemn, lcExemplu
|
||||
lnSemn = 0
|
||||
lcExemplu = ''
|
||||
SELECT crsVerificareParteneri
|
||||
SCAN FOR !EMPTY(NVL(firma, ''))
|
||||
IF '?' $ NVL(firma, '') OR '?' $ NVL(adresa, '') OR '?' $ NVL(stare, '') OR '?' $ NVL(judet, '')
|
||||
lnSemn = lnSemn + 1
|
||||
lcExemplu = ALLTRIM(NVL(firma, '')) + ' / ' + ALLTRIM(NVL(adresa, ''))
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
IF lnSemn = 0
|
||||
DO PrLog WITH 'OK E6: niciun "?" in textele ANAF (firma/adresa/judet/stare)'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E6: ' + TRANSFORM(lnSemn) + ' rand(uri) cu "?" in text, ex: [' + lcExemplu + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E7: atentie contine numai etichetele definite, in ordinea gravitatii,
|
||||
* si nu are text trunchiat (regresie: concatenarea pe camp padded)
|
||||
*=====================================================================
|
||||
LOCAL lcAtn, llOrdineOK, lnPozI, lnPozD, lnPozN, lnPozR, llRauOK
|
||||
llOrdineOK = .T.
|
||||
llRauOK = .T.
|
||||
SELECT crsVerificareParteneri
|
||||
SCAN
|
||||
lcAtn = ALLTRIM(NVL(atentie, ''))
|
||||
IF EMPTY(lcAtn)
|
||||
LOOP
|
||||
ENDIF
|
||||
*-- fara spatii duble (semn ca s-a concatenat peste padding)
|
||||
IF ' ' $ lcAtn
|
||||
llRauOK = .F.
|
||||
DO PrLog WITH ' atentie cu spatii duble pe randul ' + TRANSFORM(RECNO()) + ': [' + lcAtn + ']'
|
||||
ENDIF
|
||||
lnPozI = AT('INVALID', lcAtn)
|
||||
lnPozD = AT('DUPLICAT', lcAtn)
|
||||
lnPozN = AT('INACTIV', lcAtn)
|
||||
lnPozR = AT('FARA RO', lcAtn)
|
||||
IF (lnPozI > 0 AND lnPozD > 0 AND lnPozI > lnPozD) OR ;
|
||||
(lnPozD > 0 AND lnPozN > 0 AND lnPozD > lnPozN) OR ;
|
||||
(lnPozN > 0 AND lnPozR > 0 AND lnPozN > lnPozR)
|
||||
llOrdineOK = .F.
|
||||
DO PrLog WITH ' ordine gresita in atentie pe randul ' + TRANSFORM(RECNO()) + ': [' + lcAtn + ']'
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
IF llOrdineOK AND llRauOK
|
||||
DO PrLog WITH 'OK E7: coloana atentie e coerenta (ordine INVALID/DUPLICAT/INACTIV/FARA RO, fara spatii duble)'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E7: coloana atentie incoerenta'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* E8: formularul a fost inchis de timer, nu a ramas deschis
|
||||
*=====================================================================
|
||||
IF glE2EEliberat AND gnE2EFazaTimer >= 2
|
||||
DO PrLog WITH 'OK E8: verificarea a pornit si s-a terminat, formularul a fost eliberat normal'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E8: faza timer=' + TRANSFORM(gnE2EFazaTimer) + ' eliberat=' + TRANSFORM(glE2EEliberat) + ;
|
||||
' (formularul nu a parcurs ciclul complet de verificare)'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- rezumat pe randuri, pentru diagnostic
|
||||
SELECT crsVerificareParteneri
|
||||
SCAN
|
||||
DO PrLog WITH ' ' + PADR(ALLTRIM(NVL(denumire, '')), 24) + ' cod=' + PADR(ALLTRIM(NVL(cod_fiscal, '')), 14) + ;
|
||||
' valid=' + TRANSFORM(NVL(Valid, .NULL.)) + ' dupl=' + TRANSFORM(duplicat) + ;
|
||||
' firma=[' + LEFT(ALLTRIM(NVL(firma, '')), 30) + ']' + ' atentie=[' + ALLTRIM(NVL(atentie, '')) + ']'
|
||||
ENDSCAN
|
||||
|
||||
USE IN (SELECT('crsVerificareParteneri'))
|
||||
DO PrLog WITH IIF(gnEsecuri = 0, 'TOTAL OK', 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)')
|
||||
CATCH TO loEx
|
||||
DO PrLog WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure
|
||||
DO PrLog WITH 'TOTAL FAIL: exceptie neasteptata'
|
||||
ENDTRY
|
||||
|
||||
QUIT
|
||||
|
||||
**********************************************************
|
||||
PROCEDURE PrLog
|
||||
LPARAMETERS tcMsg
|
||||
LOCAL lcL
|
||||
SET SAFETY OFF
|
||||
lcL = IIF(FILE(gcLog), FILETOSTR(gcLog), '')
|
||||
STRTOFILE(lcL + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcLog)
|
||||
ENDPROC
|
||||
|
||||
**********************************************************
|
||||
PROCEDURE PrErr
|
||||
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
||||
DO PrLog WITH 'EROARE ' + TRANSFORM(tnErr) + ': ' + TRANSFORM(tcMsg) + ' in ' + ;
|
||||
TRANSFORM(tcProg) + ' linia ' + TRANSFORM(tnLine)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
DO PrLog WITH 'TOTAL FAIL: eroare neasteptata'
|
||||
QUIT
|
||||
ENDPROC
|
||||
|
||||
**********************************************************
|
||||
* Deblocarea formularului modal, in doua faze:
|
||||
* faza 0 -> asteapta ca do_verifica sa PORNEASCA (lblVerifica.Visible = .T.)
|
||||
* faza 1 -> asteapta ca do_verifica sa TERMINE (lblVerifica.Visible = .F.) si da Release
|
||||
* Plasa de siguranta: dupa 240 de ticks (~8 minute) elibereaza oricum, ca sa nu agate testul.
|
||||
**********************************************************
|
||||
DEFINE CLASS tmrE2EDeblocare AS Timer
|
||||
Interval = 2000
|
||||
Enabled = .F.
|
||||
|
||||
PROCEDURE Timer
|
||||
LOCAL lnI, loF, llVaz
|
||||
gnE2ETicks = gnE2ETicks + 1
|
||||
IF gnE2ETicks <= 3 OR MOD(gnE2ETicks, 15) = 0
|
||||
DO PrLog WITH ' timer tick ' + TRANSFORM(gnE2ETicks) + ' forme=' + TRANSFORM(_SCREEN.FormCount) + ' faza=' + TRANSFORM(gnE2EFazaTimer)
|
||||
ENDIF
|
||||
FOR lnI = 1 TO _SCREEN.FormCount
|
||||
loF = _SCREEN.Forms(lnI)
|
||||
IF !PEMSTATUS(loF, 'lblVerifica', 5) OR !PEMSTATUS(loF, 'do_verifica', 5)
|
||||
LOOP
|
||||
ENDIF
|
||||
llVaz = loF.lblVerifica.Visible
|
||||
DO CASE
|
||||
CASE loF.lAutoverificare OR llVaz
|
||||
*-- verificarea nu a pornit inca sau e in curs (lblVerifica vizibil)
|
||||
gnE2EFazaTimer = IIF(llVaz, 1, gnE2EFazaTimer)
|
||||
CASE gnE2ETicks > 240
|
||||
glE2EEliberat = .F.
|
||||
loF.Release()
|
||||
OTHERWISE
|
||||
*-- Activate a rulat (lAutoverificare = .F.) si do_verifica s-a terminat
|
||||
gnE2EFazaTimer = 2
|
||||
glE2EEliberat = .T.
|
||||
loF.Release()
|
||||
ENDCASE
|
||||
EXIT
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
ENDDEFINE
|
||||
@@ -1,17 +1,33 @@
|
||||
* test_todo21_grid_dblclick.prg
|
||||
* TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale) si C
|
||||
* (dublu-click pe denumire/cod fiscal ROA -> editare partener, coloanele ANAF raman pe verificare).
|
||||
* Instantiaza DIRECT frm_verificare_parteneri (COMUN\clase\overificari.vc2), fara Show(1) modal -
|
||||
* cursorul crsVerificareParteneri e construit ca in oproceduri_comune.prg (verificare_parteneri),
|
||||
* fara sa treaca prin acea procedura (care ar deschide formularul modal).
|
||||
* TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale, inclusiv
|
||||
* coloana calculata cPerioadaTva) si D (meniul unic de dublu-click, vederi de grid, coloana Ales
|
||||
* conditionata). Instantiaza DIRECT frm_verificare_parteneri (COMUN\clase\overificari.vc2), fara
|
||||
* Show(1) modal - cursorul crsVerificareParteneri e construit ca in oproceduri_comune.prg
|
||||
* (verificare_parteneri), fara sa treaca prin acea procedura (care ar deschide formularul modal).
|
||||
*
|
||||
* Reproiectare: TOATE coloanele grid-ului cheama acum meniu_dblclick (nu mai exista rutare directa
|
||||
* pe Column2/3 vs Column5/6); prima optiune a meniului ("MODIFICARE PARTENER - <denumire>") vine
|
||||
* prin optiuni_meniu_ante, deci prin VerificaCodFiscal, care ar deschide XMENU (agata headless-ul) -
|
||||
* de-asta VerificaCodFiscal e mock-uita (mock_meniu_dblclick_deps.prg), nu apelata real.
|
||||
*
|
||||
* Mock-uri (fisiere DIFERITE de overificari.vc2 - rezolutia "primul incarcat" e sigura):
|
||||
* mock_amessagebox.prg - dialogul "partener neidentificat"
|
||||
* mock_meniu_dblclick_deps.prg - nom_parteneri_modifica si VerificaCodFiscal (numara apelurile)
|
||||
* mock_meniu_dblclick_deps.prg - nom_parteneri_modifica, VerificaCodFiscal (numara apelurile,
|
||||
* captureaza optiuni_meniu_ante, controleaza @lnOptiune intors)
|
||||
*
|
||||
* Banda G (continutul coloanei atentie): do_verifica face verificare ANAF reala (nu se poate
|
||||
* controla ce raspunde ANAF), deci nu se pot fabrica exact cele 4 texte pe randurile reale - se
|
||||
* verifica doar BUCATA care umple atentie (COMUN\clase\overificari.vc2:2992-2996), copiata LITERAL
|
||||
* si rulata pe randuri fabricate distincte, fara alt apel la do_verifica.
|
||||
*
|
||||
* Banda H: chkANAF si chkExperimental au disparut ca obiecte din formular (do_verifica are acum
|
||||
* llServiciuWebANAF constant .T.; modul experimental e citit din proprietatea lExperimental, nu
|
||||
* dintr-un control) - se verifica ca lExperimental reflecta al 5-lea parametru la Init, nu o
|
||||
* valoare hardcodata (regresie deja prinsa o data). chkMFIN ramane ca obiect (doar Visible=.F.).
|
||||
*
|
||||
* Coduri de test: un cod fiscal REAL cu perioada ANAF (ales dinamic din istoric_coduri_fiscale,
|
||||
* ca in test_todo21_perioade_anaf.prg) si un partener REAL din NOM_PARTENERI (ales dinamic, cel
|
||||
* mai nou activ), plus un rand cu id_part = 0 pentru cazul "partener neidentificat".
|
||||
* mai nou activ), plus randuri fabricate pentru meniu_dblclick/atentie.
|
||||
*
|
||||
* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_grid_dblclick.prg"
|
||||
* Verdict in log: TOTAL OK / TOTAL FAIL: n pas(i).
|
||||
@@ -40,10 +56,12 @@ gcMockUltimMesaj = ''
|
||||
gnMockUltimTip = 0
|
||||
gnMockRaspuns = 6
|
||||
|
||||
PUBLIC gnMockNomModCount, gnMockNomModId, gnMockVerifCodCount
|
||||
PUBLIC gnMockNomModCount, gnMockNomModId, gnMockVerifCodCount, gcMockVerifCodOptiuniAnte, gnMockVerifCodLnOptiune
|
||||
gnMockNomModCount = 0
|
||||
gnMockNomModId = 0
|
||||
gnMockVerifCodCount = 0
|
||||
gcMockVerifCodOptiuniAnte = ''
|
||||
gnMockVerifCodLnOptiune = 0
|
||||
|
||||
TRY
|
||||
SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE
|
||||
@@ -74,7 +92,7 @@ select cod_fiscal_n from (
|
||||
USE IN (SELECT('crsGD1'))
|
||||
DO PrLog WITH 'cod fiscal ANAF de test: [' + lcCodAnaf + ']'
|
||||
|
||||
*-- partener real activ, pentru banda C (dublu-click -> editare partener)
|
||||
*-- partener real activ, pentru banda D (meniu_dblclick -> editare partener)
|
||||
LOCAL lnIdPartTest, lcCodFiscalPart, lcDenumirePart
|
||||
TEXT TO lcSql NOSHOW
|
||||
select id_part, cod_fiscal, denumire from (
|
||||
@@ -110,18 +128,67 @@ select id_part, cod_fiscal, denumire from (
|
||||
INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST ANAF PERIOADA', lcCodAnaf, 0)
|
||||
INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES (lcDenumirePart, lcCodFiscalPart, lnIdPartTest)
|
||||
INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST FARA ID_PART', 'RO9999999', 0)
|
||||
*-- randul D1c: denumire cu ';' - trebuie inlocuit cu ',' ca sa nu sparga sirul XMENU
|
||||
INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST; CU PUNCT VIRGULA', 'RO8888888', 777)
|
||||
UPDATE crsVerificareParteneri SET IsCIF = .T.
|
||||
GO TOP
|
||||
|
||||
*=====================================================================
|
||||
* Banda F: coloana Ales (Column1) - conditionata de al 7-lea parametru la Init
|
||||
*=====================================================================
|
||||
LOCAL loFormAles
|
||||
loFormAles = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.)
|
||||
loFormAles.WindowType = 0
|
||||
IF !loFormAles._grdbase1.Column1.Visible
|
||||
DO PrLog WITH 'OK F1: Column1 (Ales) ascunsa cu 6 parametri (implicit, fara al 7-lea)'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL F1: Column1 (Ales) vizibila desi formularul a primit doar 6 parametri'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
loFormAles.Release()
|
||||
|
||||
loFormAles = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T., .T.)
|
||||
loFormAles.WindowType = 0
|
||||
IF loFormAles._grdbase1.Column1.Visible
|
||||
DO PrLog WITH 'OK F2: Column1 (Ales) vizibila cu al 7-lea parametru .T.'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL F2: Column1 (Ales) ramane ascunsa desi al 7-lea parametru e .T.'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
loFormAles.Release()
|
||||
|
||||
PUBLIC goFormGD
|
||||
goFormGD = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.)
|
||||
goFormGD.WindowType = 0
|
||||
goFormGD.Show()
|
||||
DOEVENTS FORCE
|
||||
DO PrLog WITH 'formular instantiat, chkANAF=' + TRANSFORM(goFormGD.chkANAF.Value)
|
||||
DO PrLog WITH 'formular instantiat, lMFIN=' + TRANSFORM(goFormGD.lMFIN)
|
||||
|
||||
*=====================================================================
|
||||
* Banda A: grid cu 34 coloane (era 27), cele 7 noi legate pe cursorul real
|
||||
* Banda H: chkANAF/chkExperimental/chkMFIN au disparut ca obiecte; lExperimental (proprietate) trebuie
|
||||
*-- sa reflecte al 5-lea parametru la Init, nu o valoare hardcodata
|
||||
*=====================================================================
|
||||
IF goFormGD.lExperimental = .F.
|
||||
DO PrLog WITH 'OK H1: tlExperimental=.F. (al 5-lea parametru) -> lExperimental=.F.'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL H1: lExperimental=' + TRANSFORM(goFormGD.lExperimental) + ' asteptat .F.'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
LOCAL loFormExp
|
||||
loFormExp = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .T., .T.)
|
||||
loFormExp.WindowType = 0
|
||||
IF loFormExp.lExperimental = .T.
|
||||
DO PrLog WITH 'OK H2: tlExperimental=.T. (al 5-lea parametru) -> lExperimental=.T.'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL H2: lExperimental=' + TRANSFORM(loFormExp.lExperimental) + ' asteptat .T. (nu mai e hardcodat pe .F.)'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
loFormExp.Release()
|
||||
|
||||
*=====================================================================
|
||||
* Banda A: cele 7 coloane de perioada ANAF din grid (34 in total; coloana calculata
|
||||
* cPerioadaTva a fost scoasa - vederea Esential arata doua coloane de date, nu un text lung)
|
||||
*=====================================================================
|
||||
IF goFormGD._grdbase1.ColumnCount = 34
|
||||
DO PrLog WITH 'OK A1: _grdbase1.ColumnCount = 34'
|
||||
@@ -130,6 +197,13 @@ select id_part, cod_fiscal, denumire from (
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
IF !PEMSTATUS(goFormGD._grdbase1, 'cPerioadaTva', 5)
|
||||
DO PrLog WITH 'OK A1b: coloana calculata cPerioadaTva a fost scoasa din grid'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL A1b: cPerioadaTva inca exista in grid'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- coloanele redenumite sunt membri ai grid-ului dupa Name (cDataInceputScpTva...), nu dupa
|
||||
*-- pozitia Column28..Column34 - VFP adreseaza obiectul din container dupa Name, nu dupa pozitie
|
||||
LOCAL laCol[7,2], lnI, lcNume, lcSrc, llColOk
|
||||
@@ -167,7 +241,7 @@ select id_part, cod_fiscal, denumire from (
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- do_verifica cu chkANAF fortat .T. in Init -> ramura serviciu web ANAF (banda A2)
|
||||
*-- do_verifica: llServiciuWebANAF e acum constanta .T. in cod (overificari.vc2:2808) -> ramura serviciu web ANAF (banda A2)
|
||||
goFormGD.do_verifica(.F., .T., .F.)
|
||||
DO PrLog WITH 'do_verifica rulat (tlValidare=.F. tlMFIN=.T. tlVIES=.F.)'
|
||||
|
||||
@@ -193,67 +267,214 @@ select id_part, cod_fiscal, denumire from (
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* Banda C: dublu-click pe coloanele ROA (denumire/cod fiscal) -> editare partener;
|
||||
* coloanele ANAF (firma/cod) raman pe meniul de verificare
|
||||
* Banda D: meniu_dblclick unic pe toate coloanele (nu mai exista rutare directa pe coloana)
|
||||
*=====================================================================
|
||||
|
||||
*-- D1a: partener cu id_part - prima optiune activa, cu denumirea lui
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR id_part = lnIdPartTest
|
||||
|
||||
gnMockNomModCount = 0
|
||||
gnMockNomModId = 0
|
||||
gnMockVerifCodCount = 0
|
||||
gcMockVerifCodOptiuniAnte = ''
|
||||
gnMockVerifCodLnOptiune = 0
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest AND gnMockVerifCodCount = 0
|
||||
DO PrLog WITH 'OK C1: dublu-click Column2 (denumire) -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')'
|
||||
IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;"
|
||||
DO PrLog WITH 'OK D1a: Column2 DblClick -> optiuni_meniu_ante = [MODIFICARE PARTENER - <denumire>;\-;]'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL C1: Column2 DblClick - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId) + ' verifcod count=' + TRANSFORM(gnMockVerifCodCount)
|
||||
DO PrLog WITH 'FAIL D1a: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
gnMockNomModCount = 0
|
||||
gnMockNomModId = 0
|
||||
gnMockVerifCodCount = 0
|
||||
goFormGD._grdbase1.Column3.Text1.DblClick()
|
||||
IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest AND gnMockVerifCodCount = 0
|
||||
DO PrLog WITH 'OK C2: dublu-click Column3 (cod fiscal ROA) -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL C2: Column3 DblClick - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId) + ' verifcod count=' + TRANSFORM(gnMockVerifCodCount)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
gnMockNomModCount = 0
|
||||
gnMockVerifCodCount = 0
|
||||
*-- coloana ANAF (firma) cheama ACELASI meniu_dblclick - nu mai exista rutare separata
|
||||
gcMockVerifCodOptiuniAnte = ''
|
||||
goFormGD._grdbase1.Column5.Text1.DblClick()
|
||||
IF gnMockVerifCodCount = 1 AND gnMockNomModCount = 0
|
||||
DO PrLog WITH 'OK C3: dublu-click Column5 (firma ANAF) -> VerificaCodFiscal, fara editare partener'
|
||||
IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;"
|
||||
DO PrLog WITH 'OK D1a2: Column5 (firma ANAF) DblClick -> acelasi meniu_dblclick unificat'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL C3: Column5 DblClick - verifcod count=' + TRANSFORM(gnMockVerifCodCount) + ' nom_mod count=' + TRANSFORM(gnMockNomModCount)
|
||||
DO PrLog WITH 'FAIL D1a2: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + '] - coloana ANAF nu mai e unificata cu restul'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
gnMockNomModCount = 0
|
||||
gnMockVerifCodCount = 0
|
||||
goFormGD._grdbase1.Column6.Text1.DblClick()
|
||||
IF gnMockVerifCodCount = 1 AND gnMockNomModCount = 0
|
||||
DO PrLog WITH 'OK C4: dublu-click Column6 (cod ANAF) -> VerificaCodFiscal, fara editare partener'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL C4: Column6 DblClick - verifcod count=' + TRANSFORM(gnMockVerifCodCount) + ' nom_mod count=' + TRANSFORM(gnMockNomModCount)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- id_part gol -> mesaj de avertizare, fara editare partener
|
||||
*-- D1b: fara id_part - prima optiune dezactivata (prefix \)
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR cod_fiscal = 'RO9999999'
|
||||
gcMockVerifCodOptiuniAnte = ''
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gcMockVerifCodOptiuniAnte == "\MODIFICARE PARTENER - TEST FARA ID_PART;\-;"
|
||||
DO PrLog WITH 'OK D1b: fara id_part -> prima optiune dezactivata cu \'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL D1b: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- D1c: ';' din denumire devine ',' - altfel ar sparge sirul XMENU
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR cod_fiscal = 'RO8888888'
|
||||
gcMockVerifCodOptiuniAnte = ''
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - TEST, CU PUNCT VIRGULA;\-;"
|
||||
DO PrLog WITH 'OK D1c: ";" din denumire e inlocuit cu "," in optiuni_meniu_ante'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL D1c: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- D2: lnOptiune = 1 (prima optiune aleasa) -> meniu_dblclick_partener -> nom_parteneri_modifica
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR id_part = lnIdPartTest
|
||||
gnMockVerifCodLnOptiune = 1
|
||||
gnMockNomModCount = 0
|
||||
gnMockNomModId = 0
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest
|
||||
DO PrLog WITH 'OK D2: lnOptiune=1 -> meniu_dblclick_partener -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL D2: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId)
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- D2b: orice alta optiune (ex. 7 = anulat/alta actiune din meniul de verificare) -> NU editeaza partenerul
|
||||
gnMockVerifCodLnOptiune = 7
|
||||
gnMockNomModCount = 0
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gnMockNomModCount = 0
|
||||
DO PrLog WITH 'OK D2b: lnOptiune<>1 -> nu se cheama meniu_dblclick_partener'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL D2b: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' desi lnOptiune=7'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- D3: id_part gol + lnOptiune=1 -> mesaj de avertizare, fara editare partener (fostul C5)
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR cod_fiscal = 'RO9999999'
|
||||
gnMockVerifCodLnOptiune = 1
|
||||
gnMockNomModCount = 0
|
||||
gcMockUltimMesaj = ''
|
||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||
IF gnMockNomModCount = 0 AND 'nu poate fi identificat' $ LOWER(gcMockUltimMesaj)
|
||||
DO PrLog WITH 'OK C5: id_part gol -> mesaj de avertizare, fara editare partener'
|
||||
DO PrLog WITH 'OK D3: id_part gol -> mesaj de avertizare, fara editare partener'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL C5: id_part gol - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' mesaj=[' + gcMockUltimMesaj + ']'
|
||||
DO PrLog WITH 'FAIL D3: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' mesaj=[' + gcMockUltimMesaj + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* Banda E: SetVedere(1/2/3) - coloane vizibile si suma latimilor
|
||||
*=====================================================================
|
||||
LOCAL lnV, lnC, lnSuma, lcVizibile
|
||||
FOR lnV = 1 TO 3
|
||||
goFormGD.SetVedere(m.lnV)
|
||||
lnSuma = 0
|
||||
lcVizibile = ''
|
||||
FOR lnC = 1 TO goFormGD._grdbase1.ColumnCount
|
||||
IF goFormGD._grdbase1.Columns(m.lnC).Visible
|
||||
lnSuma = lnSuma + goFormGD._grdbase1.Columns(m.lnC).Width
|
||||
lcVizibile = lcVizibile + goFormGD._grdbase1.Columns(m.lnC).Name + '(' + TRANSFORM(goFormGD._grdbase1.Columns(m.lnC).Width) + ') '
|
||||
ENDIF
|
||||
ENDFOR
|
||||
DO PrLog WITH 'Vedere ' + TRANSFORM(m.lnV) + ': suma latimi=' + TRANSFORM(m.lnSuma) + ' px, coloane vizibile: ' + m.lcVizibile
|
||||
IF m.lnV = 1
|
||||
IF m.lnSuma <= goFormGD._grdbase1.Width
|
||||
DO PrLog WITH 'OK E1: vedere Esential, suma latimilor (' + TRANSFORM(m.lnSuma) + ') <= ' + TRANSFORM(goFormGD._grdbase1.Width) + ' px (latimea reala a gridului)'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E1: vedere Esential depaseste latimea gridului - suma=' + TRANSFORM(m.lnSuma) + ' px > ' + TRANSFORM(goFormGD._grdbase1.Width) + ' px'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
*-- E2: in vederea Esential perioada de TVA se vede pe doua coloane de data, nu ca text lung
|
||||
goFormGD.SetVedere(1)
|
||||
IF goFormGD._grdbase1.cDataInceputScpTva.Visible AND goFormGD._grdbase1.cDataSfarsitScpTva.Visible ;
|
||||
AND goFormGD._grdbase1.cDataAnulImpScpTva.Visible
|
||||
DO PrLog WITH 'OK E2: vederea Esential arata Inceput / Sfarsit / Anulare TVA ca trei coloane'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL E2: vederea Esential nu arata cele trei coloane de perioada TVA'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* Banda I: AsazaFiltre - butoanele de filtru au caption cu numar, deci latime variabila;
|
||||
* trebuie asezate unul dupa altul, fara suprapunere, oricat de lung ar fi textul
|
||||
*=====================================================================
|
||||
LOCAL laFil[4], lnF, llSupra, lcPoz
|
||||
goFormGD.chkInvalid.Caption = 'Coduri invalide (12345)'
|
||||
goFormGD.chkDuplicat.Caption = 'Duplicate (12345)'
|
||||
goFormGD.chkInactiv.Caption = 'Inactivi (12345)'
|
||||
goFormGD.chkPlatitor.Caption = 'Atribut RO (12345)'
|
||||
goFormGD.chkInvalid.Visible = .T.
|
||||
goFormGD.chkDuplicat.Visible = .T.
|
||||
goFormGD.chkInactiv.Visible = .T.
|
||||
goFormGD.chkPlatitor.Visible = .T.
|
||||
goFormGD.AsazaFiltre()
|
||||
laFil[1] = goFormGD.chkInvalid
|
||||
laFil[2] = goFormGD.chkDuplicat
|
||||
laFil[3] = goFormGD.chkInactiv
|
||||
laFil[4] = goFormGD.chkPlatitor
|
||||
llSupra = .F.
|
||||
lcPoz = ''
|
||||
FOR lnF = 1 TO 4
|
||||
lcPoz = lcPoz + ALLTRIM(laFil[m.lnF].Caption) + ' [' + TRANSFORM(laFil[m.lnF].Left) + '..' + ;
|
||||
TRANSFORM(laFil[m.lnF].Left + laFil[m.lnF].Width) + '] '
|
||||
IF m.lnF > 1 AND laFil[m.lnF].Left < laFil[m.lnF - 1].Left + laFil[m.lnF - 1].Width
|
||||
llSupra = .T.
|
||||
ENDIF
|
||||
ENDFOR
|
||||
DO PrLog WITH ' filtre: ' + m.lcPoz
|
||||
IF !llSupra
|
||||
DO PrLog WITH 'OK I1: butoanele de filtru nu se suprapun dupa AsazaFiltre'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL I1: butoanele de filtru se suprapun'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- I2: chkMFIN a disparut ca obiect; ramane proprietatea lMFIN, setata din al 2-lea parametru
|
||||
IF !PEMSTATUS(goFormGD, 'chkMFIN', 5) AND goFormGD.lMFIN = .T.
|
||||
DO PrLog WITH 'OK I2: chkMFIN a fost scos, lMFIN = .T. (al 2-lea parametru la Init)'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL I2: chkMFIN inca exista sau lMFIN=' + TRANSFORM(goFormGD.lMFIN) + ' (asteptat .T.)'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*=====================================================================
|
||||
* Banda G: continutul coloanei atentie - metoda reala ConstruiesteAtentie (COMUN\clase\overificari.vc2),
|
||||
* apelata real, pe randuri fabricate, fara ANAF
|
||||
*=====================================================================
|
||||
INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ;
|
||||
VALUES ('ATN INVALID', .F., .F., .F., '', '', .F.)
|
||||
INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ;
|
||||
VALUES ('ATN DUPLICAT', .T., .T., .F., '', '', .F.)
|
||||
INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ;
|
||||
VALUES ('ATN INACTIV', .T., .F., .T., '', '', .F.)
|
||||
INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ;
|
||||
VALUES ('ATN FARARO', .T., .F., .F., 'FIRMA TEST SRL', 'RO', .F.)
|
||||
INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ;
|
||||
VALUES ('ATN COMBO', .T., .T., .T., 'FIRMA COMBO SRL', '', .T.)
|
||||
|
||||
goFormGD.ConstruiesteAtentie()
|
||||
|
||||
LOCAL laAtn[5,2]
|
||||
laAtn[1,1] = 'ATN INVALID'
|
||||
laAtn[1,2] = 'INVALID'
|
||||
laAtn[2,1] = 'ATN DUPLICAT'
|
||||
laAtn[2,2] = 'DUPLICAT'
|
||||
laAtn[3,1] = 'ATN INACTIV'
|
||||
laAtn[3,2] = 'INACTIV'
|
||||
laAtn[4,1] = 'ATN FARARO'
|
||||
laAtn[4,2] = 'FARA RO'
|
||||
laAtn[5,1] = 'ATN COMBO'
|
||||
laAtn[5,2] = 'DUPLICAT INACTIV FARA RO'
|
||||
|
||||
LOCAL lnG
|
||||
FOR lnG = 1 TO 5
|
||||
SELECT crsVerificareParteneri
|
||||
LOCATE FOR denumire = laAtn[m.lnG, 1]
|
||||
IF FOUND() AND ALLTRIM(crsVerificareParteneri.atentie) == laAtn[m.lnG, 2]
|
||||
DO PrLog WITH 'OK G' + TRANSFORM(m.lnG) + ': ' + laAtn[m.lnG, 1] + ' -> atentie=[' + laAtn[m.lnG, 2] + ']'
|
||||
ELSE
|
||||
DO PrLog WITH 'FAIL G' + TRANSFORM(m.lnG) + ': ' + laAtn[m.lnG, 1] + ' -> atentie=[' + ALLTRIM(crsVerificareParteneri.atentie) + '] asteptat [' + laAtn[m.lnG, 2] + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
goFormGD.Release()
|
||||
|
||||
DO PrLog WITH IIF(gnEsecuri = 0, 'TOTAL OK', 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)')
|
||||
|
||||
376
utile/Teste/todo21/test_todo21_mesaj_meniu.prg
Normal file
376
utile/Teste/todo21/test_todo21_mesaj_meniu.prg
Normal file
@@ -0,0 +1,376 @@
|
||||
* test_todo21_mesaj_meniu.prg
|
||||
* TODO #21: regresie pentru D6/D7 (mesajul de detalii grupat pe sectiuni) si D10 (meniul
|
||||
* scurtat de verificare cod fiscal), ca schimbari ulterioare in formular sa nu le strice tacut.
|
||||
* Fara HTTP, fara ANAF live, fara Oracle - GetMeniuVerificareCodFiscal/GetOptiuneVerificareCodFiscal/
|
||||
* verifica_partener_show_info nu depind de ele (doar de parametri si de variabila globala crlf,
|
||||
* setata mai jos ca in test_init_env_auto.prg).
|
||||
*
|
||||
* Pas 1-2: GetMeniuVerificareCodFiscal / GetOptiuneVerificareCodFiscal apelate DIRECT (functii
|
||||
* pure, fara XMENU in interior).
|
||||
* Pas 3: aritmetica optiuni_meniu_ante - copiata LITERAL din VerificaCodFiscal
|
||||
* (COMUN\programe\oproceduri_comune.prg:4960-4967: "lnOptiuneVerificare = m.lnOptiune" apoi
|
||||
* "lnOptiuneVerificare = m.lnOptiuneVerificare - Occurs(';', m.lcOptiuniMeniuAnte)"), aplicata pe
|
||||
* o pozitie FABRICATA (nu se apeleaza VerificaCodFiscal, care ar deschide XMENU si ar bloca
|
||||
* headless-ul).
|
||||
* Pas 4: verifica_partener_show_info, apelata prin umbra (copie a oproceduri_comune.prg cu
|
||||
* amessagebox redenumit, ca in test_todo21_perioade_anaf.prg) - amessagebox e inlocuit de
|
||||
* mock_amessagebox.prg, textul se captureaza in gcMockUltimMesaj fara dialog modal. Obiectele
|
||||
* partener sunt fabricate (CREATEOBJECT("empty") + ADDPROPERTY), fara verificare reala.
|
||||
*
|
||||
* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_mesaj_meniu.prg"
|
||||
* Verdict in log: TOTAL OK / TOTAL FAIL: n pas(i).
|
||||
|
||||
SET SAFETY OFF
|
||||
SET TALK OFF
|
||||
SET DELETED ON
|
||||
SET EXACT ON
|
||||
SET CENTURY ON
|
||||
SET DATE DMY
|
||||
SET NULLDISPLAY TO ''
|
||||
CLOSE DATABASES
|
||||
|
||||
PUBLIC gcLog, gcMockUltimMesaj, gnMockUltimTip, gnMockRaspuns, crlf
|
||||
gcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_mesaj_meniu_log.txt"
|
||||
gcMockUltimMesaj = ''
|
||||
gnMockUltimTip = 0
|
||||
gnMockRaspuns = 6
|
||||
crlf = CHR(13) + CHR(10)
|
||||
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog)
|
||||
|
||||
PUBLIC gnEsecuri
|
||||
gnEsecuri = 0
|
||||
|
||||
ON ERROR DO WriteTestErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
||||
ON SHUTDOWN QUIT
|
||||
|
||||
TRY
|
||||
*-- umbra: copie a oproceduri_comune.prg cu FUNCTION amessagebox redenumita, ca apelul din
|
||||
*-- verifica_partener_show_info sa cada pe mock_amessagebox.prg (fara conflict de nume) si
|
||||
*-- niciun dialog modal sa nu apara. VFP rezolva numele duplicate de procedura in favoarea
|
||||
*-- fisierului deschis PRIMUL cu SET PROCEDURE - de-asta mock-ul si umbra se incarca aici,
|
||||
*-- inaintea oricarui alt cod.
|
||||
LOCAL lcSrc, lcUmbra
|
||||
lcUmbra = ADDBS(SYS(2023)) + 'oproceduri_comune_umbra_mesajmeniu.prg'
|
||||
lcSrc = FILETOSTR("D:\ROA\ROACONT\COMUN\programe\oproceduri_comune.prg")
|
||||
lcSrc = STRTRAN(lcSrc, CHR(13) + CHR(10) + 'Function amessagebox' + CHR(13) + CHR(10), ;
|
||||
CHR(13) + CHR(10) + 'Function amessagebox_umbrit_mm' + CHR(13) + CHR(10))
|
||||
STRTOFILE(lcSrc, lcUmbra)
|
||||
ERASE (FORCEEXT(lcUmbra, 'fxp'))
|
||||
|
||||
SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE
|
||||
SET PROCEDURE TO (lcUmbra) ADDITIVE
|
||||
DO WriteTestLog WITH 'mock si umbra incarcate (fara Oracle - functiile testate nu depind de el)'
|
||||
|
||||
*==================================================================
|
||||
* Pas 1: GetMeniuVerificareCodFiscal - cele 5 pozitii, in ordine, cu cod fiscal prezent
|
||||
*==================================================================
|
||||
LOCAL lcMenu, lcMenuAsteptat, lcMenuFaraCod, lcMenuFaraCodAsteptat
|
||||
|
||||
lcMenu = GetMeniuVerificareCodFiscal('RO1890420')
|
||||
lcMenuAsteptat = "VERIFICARE ANAF;VERIFICARE VIES;ISTORIC VERIFICARI COD FISCAL;\-;DESCHIDE FISA PE MFINANTE.RO"
|
||||
IF m.lcMenu == m.lcMenuAsteptat
|
||||
DO WriteTestLog WITH 'OK P1a: meniul cu cod fiscal are exact cele 5 pozitii, in ordine'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P1a: meniu=[' + m.lcMenu + '] asteptat=[' + m.lcMenuAsteptat + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- Pas 3 (partial aici): fara cod fiscal, pozitiile dezactivabile au prefixul "\";
|
||||
*-- ISTORIC (pozitia 3) ramane activa oricum.
|
||||
lcMenuFaraCod = GetMeniuVerificareCodFiscal('')
|
||||
lcMenuFaraCodAsteptat = "\VERIFICARE ANAF;\VERIFICARE VIES;ISTORIC VERIFICARI COD FISCAL;\-;\DESCHIDE FISA PE MFINANTE.RO"
|
||||
IF m.lcMenuFaraCod == m.lcMenuFaraCodAsteptat
|
||||
DO WriteTestLog WITH 'OK P1b: fara cod fiscal, ANAF/VIES/MFINANTE dezactivate (\), ISTORIC ramane activ'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P1b: meniu=[' + m.lcMenuFaraCod + '] asteptat=[' + m.lcMenuFaraCodAsteptat + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*==================================================================
|
||||
* Pas 2: GetOptiuneVerificareCodFiscal - 1/2/3/5 mapate, 4 (separator) si restul goale
|
||||
*==================================================================
|
||||
LOCAL lnI, lcOptRezultat, lcOptAsteptat
|
||||
DIMENSION laOptiuni(7,2)
|
||||
laOptiuni(1,1) = 0
|
||||
laOptiuni(1,2) = ''
|
||||
laOptiuni(2,1) = 1
|
||||
laOptiuni(2,2) = 'ANAF_SERVICIU_WEB'
|
||||
laOptiuni(3,1) = 2
|
||||
laOptiuni(3,2) = 'VIES_AUTO'
|
||||
laOptiuni(4,1) = 3
|
||||
laOptiuni(4,2) = 'ISTORIC'
|
||||
laOptiuni(5,1) = 4
|
||||
laOptiuni(5,2) = ''
|
||||
laOptiuni(6,1) = 5
|
||||
laOptiuni(6,2) = 'MFIN_MANUAL_COD'
|
||||
laOptiuni(7,1) = 6
|
||||
laOptiuni(7,2) = ''
|
||||
|
||||
FOR lnI = 1 TO 7
|
||||
lcOptRezultat = GetOptiuneVerificareCodFiscal(laOptiuni(m.lnI,1))
|
||||
lcOptAsteptat = laOptiuni(m.lnI,2)
|
||||
IF m.lcOptRezultat == m.lcOptAsteptat
|
||||
DO WriteTestLog WITH 'OK P2: GetOptiuneVerificareCodFiscal(' + TRANSFORM(laOptiuni(m.lnI,1)) + ') = [' + m.lcOptRezultat + ']'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P2: GetOptiuneVerificareCodFiscal(' + TRANSFORM(laOptiuni(m.lnI,1)) + ') = [' + m.lcOptRezultat + '], asteptat [' + m.lcOptAsteptat + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
*==================================================================
|
||||
* Pas 3: aritmetica optiuni_meniu_ante - formula copiata din VerificaCodFiscal:4960-4967
|
||||
*==================================================================
|
||||
LOCAL lcOptiuniMeniuAnte, lcMenuCombinat, lcMenuCombinatAsteptat, lnOptiuneSimulat, lnOptiuneVerificare, lcTip
|
||||
|
||||
lcOptiuniMeniuAnte = "MODIFICARE PARTENER - X;\-;"
|
||||
|
||||
*-- meniul combinat trebuie sa fie exact prepandatul + submeniul de verificare neschimbat
|
||||
lcMenuCombinat = GetMeniuVerificareCodFiscal('RO1890420', m.lcOptiuniMeniuAnte)
|
||||
lcMenuCombinatAsteptat = m.lcOptiuniMeniuAnte + m.lcMenuAsteptat
|
||||
IF m.lcMenuCombinat == m.lcMenuCombinatAsteptat
|
||||
DO WriteTestLog WITH 'OK P3a: meniul combinat = prepandate (2 pozitii) + submeniul de verificare neschimbat'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P3a: combinat=[' + m.lcMenuCombinat + '] asteptat=[' + m.lcMenuCombinatAsteptat + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- pozitia 3 din meniul COMBINAT (dupa cele 2 prepandate: "MODIFICARE PARTENER - X" si "\-")
|
||||
*-- e primul element din submeniul de verificare -> trebuie sa cada pe ANAF_SERVICIU_WEB
|
||||
lnOptiuneSimulat = 3
|
||||
lnOptiuneVerificare = m.lnOptiuneSimulat
|
||||
IF !EMPTY(m.lcOptiuniMeniuAnte)
|
||||
lnOptiuneVerificare = m.lnOptiuneVerificare - OCCURS(';', m.lcOptiuniMeniuAnte)
|
||||
ENDIF
|
||||
lcTip = GetOptiuneVerificareCodFiscal(m.lnOptiuneVerificare)
|
||||
IF m.lcTip == 'ANAF_SERVICIU_WEB'
|
||||
DO WriteTestLog WITH 'OK P3b: pozitia 3 din meniul combinat (dupa cele 2 prepandate) = ANAF_SERVICIU_WEB'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P3b: pozitia 3 combinata a dat [' + m.lcTip + '], asteptat ANAF_SERVICIU_WEB'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- pozitia 7 (ultima din meniul combinat) e ultimul element din submeniu -> MFIN_MANUAL_COD
|
||||
lnOptiuneSimulat = 7
|
||||
lnOptiuneVerificare = m.lnOptiuneSimulat - OCCURS(';', m.lcOptiuniMeniuAnte)
|
||||
lcTip = GetOptiuneVerificareCodFiscal(m.lnOptiuneVerificare)
|
||||
IF m.lcTip == 'MFIN_MANUAL_COD'
|
||||
DO WriteTestLog WITH 'OK P3c: pozitia 7 din meniul combinat = MFIN_MANUAL_COD'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P3c: pozitia 7 combinata a dat [' + m.lcTip + '], asteptat MFIN_MANUAL_COD'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*==================================================================
|
||||
* Pas 4: verifica_partener_show_info - structura mesajului, pe obiecte fabricate
|
||||
*==================================================================
|
||||
LOCAL loPart
|
||||
|
||||
*-- 4a: sursa ANAF, atribut RO nepotrivit (neplatitor + cod RO) -> *** ATENTIE ***,
|
||||
*-- Mesaj ANAF completat, identificare PARTIALA (telefon/fax/cod postal goale -> absente)
|
||||
loPart = CREATEOBJECT("empty")
|
||||
ADDPROPERTY(loPart, "firma", "FIRMA UNU SRL")
|
||||
ADDPROPERTY(loPart, "sursa", "ANAF")
|
||||
ADDPROPERTY(loPart, "data_sursa", {})
|
||||
ADDPROPERTY(loPart, "platitortvamfin", .F.)
|
||||
ADDPROPERTY(loPart, "datatvamfin", "")
|
||||
ADDPROPERTY(loPart, "PlatitorTVA", .F.)
|
||||
ADDPROPERTY(loPart, "tvaincasare", .T.)
|
||||
ADDPROPERTY(loPart, "splittva", .F.)
|
||||
ADDPROPERTY(loPart, "inactiv", .F.)
|
||||
ADDPROPERTY(loPart, "stare", "ANULAT DIN OFICIU - TEST")
|
||||
ADDPROPERTY(loPart, "adresa", "STR TEST NR 1")
|
||||
ADDPROPERTY(loPart, "judet", "BUCURESTI")
|
||||
ADDPROPERTY(loPart, "regcom", "J40/1/2020")
|
||||
ADDPROPERTY(loPart, "codpostal", "")
|
||||
ADDPROPERTY(loPart, "telefon", "")
|
||||
ADDPROPERTY(loPart, "fax", "")
|
||||
ADDPROPERTY(loPart, "eroare", "")
|
||||
|
||||
gcMockUltimMesaj = ''
|
||||
verifica_partener_show_info(m.loPart, 'RO1234567', 'FIRMA UNU SRL', '')
|
||||
|
||||
IF 'ANAF: FIRMA UNU SRL' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4a1: prefix sursa "ANAF: " pe linia denumirii'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a1: prefixul ANAF lipseste din mesaj'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF '*** ATENTIE ***' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4a2: *** ATENTIE *** prezent (atribut RO nepotrivit)'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a2: *** ATENTIE *** lipseste pentru atribut RO nepotrivit'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF '--- TVA ---' $ m.gcMockUltimMesaj AND '--- STARE FIRMA ---' $ m.gcMockUltimMesaj AND '--- IDENTIFICARE ---' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4a3: cele 3 titluri de sectiune sunt prezente'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a3: lipseste cel putin un titlu de sectiune - [' + m.gcMockUltimMesaj + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF 'Mesaj ANAF: ANULAT DIN OFICIU - TEST' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4a4: Mesaj ANAF completat cand stare e nevida'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a4: linia Mesaj ANAF lipseste sau e gresita'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF NOT ('Cod postal:' $ m.gcMockUltimMesaj) AND NOT ('Telefon:' $ m.gcMockUltimMesaj) AND NOT ('Fax:' $ m.gcMockUltimMesaj)
|
||||
DO WriteTestLog WITH 'OK P4a5: liniile pentru campurile goale (cod postal/telefon/fax) lipsesc'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a5: cel putin un camp gol si-a pastrat linia - [' + m.gcMockUltimMesaj + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF 'Adresa: STR TEST NR 1' $ m.gcMockUltimMesaj AND 'Judet: BUCURESTI' $ m.gcMockUltimMesaj AND 'Reg. comertului: J40/1/2020' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4a6: campurile completate (adresa/judet/reg. comertului) apar'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4a6: lipseste cel putin un camp completat de identificare'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- 4b: sursa CACHE cu data, platitor+cod RO potrivite dar INACTIV -> *** ATENTIE *** pt. inactiv,
|
||||
*-- fara proprietatile de perioada ANAF (ramura Else din verifica_partener_show_info),
|
||||
*-- identificare COMPLETA (toate cele 6 campuri completate)
|
||||
loPart = CREATEOBJECT("empty")
|
||||
ADDPROPERTY(loPart, "firma", "FIRMA DOI SRL")
|
||||
ADDPROPERTY(loPart, "sursa", "CACHE")
|
||||
ADDPROPERTY(loPart, "data_sursa", {^2026-08-21})
|
||||
ADDPROPERTY(loPart, "platitortvamfin", .T.)
|
||||
ADDPROPERTY(loPart, "datatvamfin", "01/01/2015")
|
||||
ADDPROPERTY(loPart, "PlatitorTVA", .T.)
|
||||
ADDPROPERTY(loPart, "tvaincasare", .F.)
|
||||
ADDPROPERTY(loPart, "splittva", .F.)
|
||||
ADDPROPERTY(loPart, "inactiv", .T.)
|
||||
ADDPROPERTY(loPart, "stare", "")
|
||||
ADDPROPERTY(loPart, "adresa", "STR DOI NR 2")
|
||||
ADDPROPERTY(loPart, "judet", "CLUJ")
|
||||
ADDPROPERTY(loPart, "regcom", "J12/2/2015")
|
||||
ADDPROPERTY(loPart, "codpostal", "400000")
|
||||
ADDPROPERTY(loPart, "telefon", "0264000000")
|
||||
ADDPROPERTY(loPart, "fax", "0264000001")
|
||||
ADDPROPERTY(loPart, "eroare", "")
|
||||
|
||||
gcMockUltimMesaj = ''
|
||||
verifica_partener_show_info(m.loPart, 'RO7654321', 'FIRMA DOI SRL', '')
|
||||
|
||||
IF 'CACHE 21/08/2026: FIRMA DOI SRL' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4b1: prefix sursa "CACHE dd/mm/yyyy: " pe linia denumirii'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4b1: prefixul CACHE lipseste sau e gresit - [' + m.gcMockUltimMesaj + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF '*** ATENTIE ***' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4b2: *** ATENTIE *** prezent (inactiv)'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4b2: *** ATENTIE *** lipseste pentru partener inactiv'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF 'Mesaj ANAF:' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'FAIL P4b3: linia Mesaj ANAF apare desi stare e goala'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'OK P4b3: linia Mesaj ANAF lipseste cand stare e goala'
|
||||
ENDIF
|
||||
IF 'Cod postal: 400000' $ m.gcMockUltimMesaj AND 'Telefon: 0264000000' $ m.gcMockUltimMesaj AND 'Fax: 0264000001' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4b4: identificare completa (cod postal/telefon/fax completate) apare integral'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4b4: lipseste cel putin un camp de identificare completat'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- 4c: sursa CACHE_INDISP, fara atentie, IDENTIFICARE complet goala -> sectiunea lipseste
|
||||
loPart = CREATEOBJECT("empty")
|
||||
ADDPROPERTY(loPart, "firma", "FIRMA TREI SRL")
|
||||
ADDPROPERTY(loPart, "sursa", "CACHE_INDISP")
|
||||
ADDPROPERTY(loPart, "data_sursa", {^2026-08-20})
|
||||
ADDPROPERTY(loPart, "platitortvamfin", .T.)
|
||||
ADDPROPERTY(loPart, "datatvamfin", "01/01/2015")
|
||||
ADDPROPERTY(loPart, "PlatitorTVA", .T.)
|
||||
ADDPROPERTY(loPart, "tvaincasare", .F.)
|
||||
ADDPROPERTY(loPart, "splittva", .F.)
|
||||
ADDPROPERTY(loPart, "inactiv", .F.)
|
||||
ADDPROPERTY(loPart, "stare", "")
|
||||
ADDPROPERTY(loPart, "adresa", "")
|
||||
ADDPROPERTY(loPart, "judet", "")
|
||||
ADDPROPERTY(loPart, "regcom", "")
|
||||
ADDPROPERTY(loPart, "codpostal", "")
|
||||
ADDPROPERTY(loPart, "telefon", "")
|
||||
ADDPROPERTY(loPart, "fax", "")
|
||||
ADDPROPERTY(loPart, "eroare", "")
|
||||
|
||||
gcMockUltimMesaj = ''
|
||||
verifica_partener_show_info(m.loPart, 'RO1112223', 'FIRMA TREI SRL', '')
|
||||
|
||||
IF 'CACHE 20/08/2026 (ANAF indisponibil): FIRMA TREI SRL' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4c1: prefix "CACHE dd/mm/yyyy (ANAF indisponibil): " pe linia denumirii'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4c1: prefixul CACHE_INDISP lipseste sau e gresit - [' + m.gcMockUltimMesaj + ']'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
IF '*** ATENTIE ***' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'FAIL P4c2: *** ATENTIE *** apare desi codul si starea sunt consistente'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'OK P4c2: *** ATENTIE *** absent cand nu e cazul'
|
||||
ENDIF
|
||||
IF '--- IDENTIFICARE ---' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'FAIL P4c3: sectiunea IDENTIFICARE apare desi toate campurile ei sunt goale'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'OK P4c3: sectiunea IDENTIFICARE lipseste cand toate campurile ei sunt goale'
|
||||
ENDIF
|
||||
IF '--- TVA ---' $ m.gcMockUltimMesaj AND '--- STARE FIRMA ---' $ m.gcMockUltimMesaj
|
||||
DO WriteTestLog WITH 'OK P4c4: sectiunile TVA/STARE FIRMA raman prezente'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4c4: lipseste sectiunea TVA sau STARE FIRMA'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
*-- 4d: fara proprietatea sursa (stil mfinante.ro) -> fara prefix pe linia denumirii
|
||||
loPart = CREATEOBJECT("empty")
|
||||
ADDPROPERTY(loPart, "firma", "FIRMA PATRU SRL")
|
||||
ADDPROPERTY(loPart, "platitortvamfin", .T.)
|
||||
ADDPROPERTY(loPart, "datatvamfin", "01/01/2015")
|
||||
ADDPROPERTY(loPart, "PlatitorTVA", .T.)
|
||||
ADDPROPERTY(loPart, "tvaincasare", .F.)
|
||||
ADDPROPERTY(loPart, "splittva", .F.)
|
||||
ADDPROPERTY(loPart, "inactiv", .F.)
|
||||
ADDPROPERTY(loPart, "stare", "")
|
||||
ADDPROPERTY(loPart, "adresa", "")
|
||||
ADDPROPERTY(loPart, "judet", "")
|
||||
ADDPROPERTY(loPart, "regcom", "")
|
||||
ADDPROPERTY(loPart, "codpostal", "")
|
||||
ADDPROPERTY(loPart, "telefon", "")
|
||||
ADDPROPERTY(loPart, "fax", "")
|
||||
ADDPROPERTY(loPart, "eroare", "")
|
||||
|
||||
gcMockUltimMesaj = ''
|
||||
verifica_partener_show_info(m.loPart, 'RO4445556', 'FIRMA PATRU SRL', '')
|
||||
|
||||
IF 'FIRMA PATRU SRL' $ m.gcMockUltimMesaj AND NOT ('ANAF:' $ m.gcMockUltimMesaj) AND NOT ('CACHE' $ m.gcMockUltimMesaj)
|
||||
DO WriteTestLog WITH 'OK P4d: fara proprietatea sursa, linia denumirii nu are niciun prefix'
|
||||
ELSE
|
||||
DO WriteTestLog WITH 'FAIL P4d: mesajul are un prefix desi obiectul nu are proprietatea sursa'
|
||||
gnEsecuri = gnEsecuri + 1
|
||||
ENDIF
|
||||
|
||||
DO WriteTestLog WITH IIF(gnEsecuri = 0, 'TOTAL OK', 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)')
|
||||
CATCH TO loEx
|
||||
DO WriteTestLog WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure
|
||||
DO WriteTestLog WITH 'TOTAL FAIL: exceptie neasteptata'
|
||||
ENDTRY
|
||||
|
||||
QUIT
|
||||
|
||||
**********************************************************
|
||||
PROCEDURE WriteTestLog
|
||||
LPARAMETERS tcMsg
|
||||
LOCAL lcL
|
||||
SET SAFETY OFF
|
||||
lcL = IIF(FILE(gcLog), FILETOSTR(gcLog), '')
|
||||
STRTOFILE(lcL + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcLog)
|
||||
ENDPROC
|
||||
|
||||
**********************************************************
|
||||
PROCEDURE WriteTestErr
|
||||
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
|
||||
DO WriteTestLog WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo)
|
||||
ENDPROC
|
||||
Reference in New Issue
Block a user