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
|
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
|
continutul vechi, LF pe cel nou). Verificare finala obligatorie dupa orice scriere: numara
|
||||||
octetii `0x0A` neprecedati de `0x0D` (LF izolati) - trebuie sa fie 0.
|
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?)
|
*** 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 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)
|
lcCodFiscal = Transform(m.tcCodFiscal)
|
||||||
lcDenumire = Transform(m.tcDenumire)
|
lcDenumire = Transform(m.tcDenumire)
|
||||||
@@ -4784,50 +4784,68 @@ Function verifica_partener_show_info
|
|||||||
llTvaIncasare = loPartener.tvaincasare
|
llTvaIncasare = loPartener.tvaincasare
|
||||||
llSplitTVA = loPartener.splittva
|
llSplitTVA = loPartener.splittva
|
||||||
llInactiv = loPartener.inactiv
|
llInactiv = loPartener.inactiv
|
||||||
*!* 01.08.2026 marius.mutu: marcaj explicit al sursei (ANAF live / cache), nu doar pe randurile din cache
|
llAtentie = ((m.llPlatitorTVAMfin And !m.llCodRO) Or (!m.llPlatitorTVAMfin And m.llCodRO)) Or m.llInactiv
|
||||||
lcProvenienta = ''
|
|
||||||
|
*!* 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, '')))
|
If Pemstatus(m.loPartener, 'sursa', 5) And !Empty(Alltrim(Nvl(loPartener.sursa, '')))
|
||||||
lcProvenienta = Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'ANAF', '(sursa: ANAF)', ;
|
lcSursaPrefix = Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'ANAF', 'ANAF: ', ;
|
||||||
'(sursa: CACHE ' + Dtoc(Nvl(loPartener.data_sursa, Date())) + Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'CACHE_INDISP', ', ANAF indisponibil', '') + ')')
|
'CACHE ' + Dtoc(Nvl(loPartener.data_sursa, Date())) + Iif(Alltrim(Nvl(loPartener.sursa, '')) == 'CACHE_INDISP', ' (ANAF indisponibil)', '') + ': ')
|
||||||
Endif
|
Endif
|
||||||
|
|
||||||
*!* 22.08.2026 marius.mutu: perioadele ANAF, doar cele completate (traseul mfinante.ro nu le are)
|
*!* 22.08.2026 marius.mutu: mesaj grupat pe sectiuni TVA/STARE FIRMA/IDENTIFICARE, fara campuri goale
|
||||||
lcPerioade = ''
|
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 Pemstatus(m.loPartener, 'data_inceput_scptva', 5)
|
||||||
If !Empty(Nvl(loPartener.data_inceput_scptva, {}))
|
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_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
|
Iif(Empty(Nvl(loPartener.data_anul_imp_scptva, {})), '', ' (anulare din oficiu: ' + Dtoc(loPartener.data_anul_imp_scptva) + ')') + crlf
|
||||||
Endif
|
Endif
|
||||||
|
lcTVA = m.lcTVA + m.lcMesajAnaf + 'TVA la incasare: ' + Iif(m.llTvaIncasare, 'DA', 'NU') + crlf
|
||||||
If !Empty(Nvl(loPartener.data_inceput_tvainc, {}))
|
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
|
Iif(Empty(Nvl(loPartener.data_sfarsit_tvainc, {})), 'in vigoare', Dtoc(loPartener.data_sfarsit_tvainc)) + crlf
|
||||||
Endif
|
Endif
|
||||||
|
lcTVA = m.lcTVA + 'Split TVA: ' + Iif(m.llSplitTVA, 'DA', 'NU') + crlf
|
||||||
If !Empty(Nvl(loPartener.data_inactivare, {}))
|
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
|
Iif(Empty(Nvl(loPartener.data_reactivare, {})), '', ' Reactivare: ' + Dtoc(loPartener.data_reactivare)) + crlf
|
||||||
Endif
|
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
|
Endif
|
||||||
|
|
||||||
lcText = 'VERIFICARE CIF: ' + m.lcCodFiscal + ' ' + m.lcDenumire + crlf + crlf + ;
|
lcText = 'VERIFICARE CIF: ' + m.lcCodFiscal + ' ' + m.lcDenumire + crlf + crlf + ;
|
||||||
Alltrim(loPartener.firma) + crlf + ;
|
m.lcSursaPrefix + Alltrim(loPartener.firma) + crlf + ;
|
||||||
Iif(!Empty(m.lcProvenienta), m.lcProvenienta + crlf, '') + ;
|
Iif(m.llAtentie, ' *** ATENTIE *** ' + crlf, '') + crlf + ;
|
||||||
Iif((m.llPlatitorTVAMfin And !m.llCodRO) Or (!m.llPlatitorTVAMfin And m.llCodRO), ' *** ATENTIE *** ', '') + ;
|
'--- TVA ---' + crlf + m.lcTVA + crlf + ;
|
||||||
Iif(m.llPlatitorTVAMfin, "PLATITOR TVA (" + Alltrim(loPartener.datatvamfin) + ")", "NEPLATITOR TVA") + crlf + ;
|
Iif(!Empty(m.lcStareFirma), '--- STARE FIRMA ---' + crlf + m.lcStareFirma + crlf, '') + ;
|
||||||
'Stare: ' + Alltrim(loPartener.stare) + crlf + ;
|
Iif(!Empty(m.lcIdent), '--- IDENTIFICARE ---' + crlf + m.lcIdent + crlf, '') + ;
|
||||||
'TVA Incasare: ' + Iif(m.llTvaIncasare, 'DA', 'NU') + crlf + ;
|
Iif(!Empty(loPartener.eroare), Alltrim(loPartener.eroare) + crlf + 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 + ;
|
|
||||||
Iif(!Empty(m.tcMesajIntrebare), m.tcMesajIntrebare + crlf + crlf + crlf, "")
|
Iif(!Empty(m.tcMesajIntrebare), m.tcMesajIntrebare + crlf + crlf + crlf, "")
|
||||||
|
|
||||||
lnRaspuns = amessagebox(lcText, m.lnDialogType, _Screen.Caption)
|
lnRaspuns = amessagebox(lcText, m.lnDialogType, _Screen.Caption)
|
||||||
@@ -4841,20 +4859,13 @@ Function GetMeniuVerificareCodFiscal
|
|||||||
llVerificareCod = Type('tcCodFiscal') = 'C' And !Empty(m.tcCodFiscal)
|
llVerificareCod = Type('tcCodFiscal') = 'C' And !Empty(m.tcCodFiscal)
|
||||||
lcMeniuOptiuniAnte = Iif(Type('tcOptiuniMeniuAnte') = 'C' And !Empty(m.tcOptiuniMeniuAnte), Alltrim(m.tcOptiuniMeniuAnte), '')
|
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 + ;
|
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, "\", "") + "DESCHIDE FISA PE MFINANTE.RO"
|
||||||
"\-;" + ;
|
|
||||||
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"
|
|
||||||
|
|
||||||
Return m.lcMenu
|
Return m.lcMenu
|
||||||
Endfunc
|
Endfunc
|
||||||
@@ -4867,14 +4878,11 @@ Function GetOptiuneVerificareCodFiscal
|
|||||||
|
|
||||||
lnOptiune = Iif(Type('tnOptiune') = 'N', m.tnOptiune, 0)
|
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', ;
|
lcTipVerificare = Iif(m.lnOptiune = 1, 'ANAF_SERVICIU_WEB', ;
|
||||||
Iif(m.lnOptiune = 3, 'MFIN_MANUAL_COD', ;
|
Iif(m.lnOptiune = 2, 'VIES_AUTO', ;
|
||||||
Iif(m.lnOptiune = 5, 'ANAF_MANUAL_COD', ;
|
Iif(m.lnOptiune = 3, 'ISTORIC', ;
|
||||||
Iif(m.lnOptiune = 7, 'RTVAI_AUTO_COD', ;
|
Iif(m.lnOptiune = 5, 'MFIN_MANUAL_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', ''))))))))
|
|
||||||
|
|
||||||
Return m.lcTipVerificare
|
Return m.lcTipVerificare
|
||||||
Endfunc
|
Endfunc
|
||||||
|
|||||||
@@ -958,6 +958,10 @@ Define Class VerificareCod As Custom
|
|||||||
If Type("This.oHTTP") <> "O" && la prima apelare a verificarii MFIN
|
If Type("This.oHTTP") <> "O" && la prima apelare a verificarii MFIN
|
||||||
If This.lXMLHTTP
|
If This.lXMLHTTP
|
||||||
This.oHTTP = Createobject("winhttp.winhttprequest.5.1")
|
This.oHTTP = Createobject("winhttp.winhttprequest.5.1")
|
||||||
|
Try
|
||||||
|
This.oHTTP.SetTimeouts(5000, 5000, 10000, 15000)
|
||||||
|
Catch To loEx
|
||||||
|
Endtry
|
||||||
Else
|
Else
|
||||||
This.oHTTP = Createobject("InternetExplorer.Application")
|
This.oHTTP = Createobject("InternetExplorer.Application")
|
||||||
This.oHTTP.Visible = .F.
|
This.oHTTP.Visible = .F.
|
||||||
@@ -1174,6 +1178,10 @@ Define Class VerificareCod As Custom
|
|||||||
Try
|
Try
|
||||||
*!* loHTTP = Createobject("MSXML2.ServerXMLHTTP")
|
*!* loHTTP = Createobject("MSXML2.ServerXMLHTTP")
|
||||||
loHTTP = Createobject("winhttp.winhttprequest.5.1")
|
loHTTP = Createobject("winhttp.winhttprequest.5.1")
|
||||||
|
Try
|
||||||
|
loHTTP.SetTimeouts(5000, 5000, 10000, 20000)
|
||||||
|
Catch To loEx
|
||||||
|
Endtry
|
||||||
loHTTP.Open("GET", lcRomfastURL, .F.)
|
loHTTP.Open("GET", lcRomfastURL, .F.)
|
||||||
loHTTP.Send()
|
loHTTP.Send()
|
||||||
lnStatus = loHTTP.Status
|
lnStatus = loHTTP.Status
|
||||||
@@ -1236,9 +1244,16 @@ Define Class VerificareCod As Custom
|
|||||||
*!* 15.03.2010 ^
|
*!* 15.03.2010 ^
|
||||||
ENDIF && .F.
|
ENDIF && .F.
|
||||||
Try
|
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 = Createobject("winhttp.winhttprequest.5.1")
|
||||||
loHTTP.Open("POST", "http://ec.europa.eu/taxation_customs/vies/services/checkVatService", .F.)
|
*!* 23.08.2026 marius.mutu: timeout, altfel apelul blocheaza formularul la nesfarsit daca serviciul nu raspunde
|
||||||
loHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
|
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
|
TEXT TO lcValues NOSHOW TEXTMERGE
|
||||||
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
|
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
|
||||||
@@ -1255,9 +1270,10 @@ Define Class VerificareCod As Custom
|
|||||||
lnStatus = loHTTP.Status
|
lnStatus = loHTTP.Status
|
||||||
If lnStatus = 200 && OK
|
If lnStatus = 200 && OK
|
||||||
lcXML = loHTTP.responseText
|
lcXML = loHTTP.responseText
|
||||||
llPlatitorTVA = (STREXTRACT(m.lcXML, [<valid>],[</valid>],1,1) = 'true') && true/false
|
*!* 23.08.2026 marius.mutu: raspunsul are prefix de namespace (ns2:valid, ns2:name...) - delimitatorii vechi <valid> nu se mai potriveau
|
||||||
lcFirma = STRTRAN(STREXTRACT(m.lcXML, [<name>],[</name>],1,1), '-','',1,10,1)
|
llPlatitorTVA = (STREXTRACT(m.lcXML, [valid>],[<],1,1) = 'true') && true/false
|
||||||
lcAdresa = STRTRAN(STREXTRACT(m.lcXML, [<address>],[</address>],1,1), '-','',1,10,1)
|
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), ' ')
|
lcAdresa = Strtran(m.lcAdresa, Chr(13) + CHR(10), ' ')
|
||||||
llVies = .T.
|
llVies = .T.
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
* daca e incarcat cu SET PROCEDURE ... ADDITIVE INAINTE de test_init_env_auto.
|
* 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):
|
* Apelurile se numara in variabile PUBLIC (declarate si initializate de test inainte de fiecare pas):
|
||||||
* gnMockNomModCount / gnMockNomModId (nom_parteneri_modifica) si gnMockVerifCodCount (VerificaCodFiscal).
|
* 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
|
PROCEDURE nom_parteneri_modifica
|
||||||
LPARAMETERS tnId_Part, tnIdTipPart, tcTipPart, tnSpecial, tcMesaj
|
LPARAMETERS tnId_Part, tnIdTipPart, tcTipPart, tnSpecial, tcMesaj
|
||||||
@@ -22,6 +25,10 @@ PROCEDURE VerificaCodFiscal
|
|||||||
IF TYPE('gnMockVerifCodCount') = 'N'
|
IF TYPE('gnMockVerifCodCount') = 'N'
|
||||||
gnMockVerifCodCount = gnMockVerifCodCount + 1
|
gnMockVerifCodCount = gnMockVerifCodCount + 1
|
||||||
ENDIF
|
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
|
loPartener = NULL
|
||||||
RETURN 7
|
RETURN 7
|
||||||
ENDPROC
|
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
|
* test_todo21_grid_dblclick.prg
|
||||||
* TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale) si C
|
* TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale, inclusiv
|
||||||
* (dublu-click pe denumire/cod fiscal ROA -> editare partener, coloanele ANAF raman pe verificare).
|
* coloana calculata cPerioadaTva) si D (meniul unic de dublu-click, vederi de grid, coloana Ales
|
||||||
* Instantiaza DIRECT frm_verificare_parteneri (COMUN\clase\overificari.vc2), fara Show(1) modal -
|
* conditionata). Instantiaza DIRECT frm_verificare_parteneri (COMUN\clase\overificari.vc2), fara
|
||||||
* cursorul crsVerificareParteneri e construit ca in oproceduri_comune.prg (verificare_parteneri),
|
* Show(1) modal - cursorul crsVerificareParteneri e construit ca in oproceduri_comune.prg
|
||||||
* fara sa treaca prin acea procedura (care ar deschide formularul modal).
|
* (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-uri (fisiere DIFERITE de overificari.vc2 - rezolutia "primul incarcat" e sigura):
|
||||||
* mock_amessagebox.prg - dialogul "partener neidentificat"
|
* 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,
|
* 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
|
* 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"
|
* 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).
|
* Verdict in log: TOTAL OK / TOTAL FAIL: n pas(i).
|
||||||
@@ -40,10 +56,12 @@ gcMockUltimMesaj = ''
|
|||||||
gnMockUltimTip = 0
|
gnMockUltimTip = 0
|
||||||
gnMockRaspuns = 6
|
gnMockRaspuns = 6
|
||||||
|
|
||||||
PUBLIC gnMockNomModCount, gnMockNomModId, gnMockVerifCodCount
|
PUBLIC gnMockNomModCount, gnMockNomModId, gnMockVerifCodCount, gcMockVerifCodOptiuniAnte, gnMockVerifCodLnOptiune
|
||||||
gnMockNomModCount = 0
|
gnMockNomModCount = 0
|
||||||
gnMockNomModId = 0
|
gnMockNomModId = 0
|
||||||
gnMockVerifCodCount = 0
|
gnMockVerifCodCount = 0
|
||||||
|
gcMockVerifCodOptiuniAnte = ''
|
||||||
|
gnMockVerifCodLnOptiune = 0
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE
|
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'))
|
USE IN (SELECT('crsGD1'))
|
||||||
DO PrLog WITH 'cod fiscal ANAF de test: [' + lcCodAnaf + ']'
|
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
|
LOCAL lnIdPartTest, lcCodFiscalPart, lcDenumirePart
|
||||||
TEXT TO lcSql NOSHOW
|
TEXT TO lcSql NOSHOW
|
||||||
select id_part, cod_fiscal, denumire from (
|
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 ('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 (lcDenumirePart, lcCodFiscalPart, lnIdPartTest)
|
||||||
INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST FARA ID_PART', 'RO9999999', 0)
|
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.
|
UPDATE crsVerificareParteneri SET IsCIF = .T.
|
||||||
GO TOP
|
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
|
PUBLIC goFormGD
|
||||||
goFormGD = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.)
|
goFormGD = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.)
|
||||||
goFormGD.WindowType = 0
|
goFormGD.WindowType = 0
|
||||||
goFormGD.Show()
|
goFormGD.Show()
|
||||||
DOEVENTS FORCE
|
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
|
IF goFormGD._grdbase1.ColumnCount = 34
|
||||||
DO PrLog WITH 'OK A1: _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
|
gnEsecuri = gnEsecuri + 1
|
||||||
ENDIF
|
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
|
*-- 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
|
*-- pozitia Column28..Column34 - VFP adreseaza obiectul din container dupa Name, nu dupa pozitie
|
||||||
LOCAL laCol[7,2], lnI, lcNume, lcSrc, llColOk
|
LOCAL laCol[7,2], lnI, lcNume, lcSrc, llColOk
|
||||||
@@ -167,7 +241,7 @@ select id_part, cod_fiscal, denumire from (
|
|||||||
gnEsecuri = gnEsecuri + 1
|
gnEsecuri = gnEsecuri + 1
|
||||||
ENDIF
|
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.)
|
goFormGD.do_verifica(.F., .T., .F.)
|
||||||
DO PrLog WITH 'do_verifica rulat (tlValidare=.F. tlMFIN=.T. tlVIES=.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
|
ENDIF
|
||||||
|
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
* Banda C: dublu-click pe coloanele ROA (denumire/cod fiscal) -> editare partener;
|
* Banda D: meniu_dblclick unic pe toate coloanele (nu mai exista rutare directa pe coloana)
|
||||||
* coloanele ANAF (firma/cod) raman pe meniul de verificare
|
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
|
|
||||||
|
*-- D1a: partener cu id_part - prima optiune activa, cu denumirea lui
|
||||||
SELECT crsVerificareParteneri
|
SELECT crsVerificareParteneri
|
||||||
LOCATE FOR id_part = lnIdPartTest
|
LOCATE FOR id_part = lnIdPartTest
|
||||||
|
gcMockVerifCodOptiuniAnte = ''
|
||||||
gnMockNomModCount = 0
|
gnMockVerifCodLnOptiune = 0
|
||||||
gnMockNomModId = 0
|
|
||||||
gnMockVerifCodCount = 0
|
|
||||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||||
IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest AND gnMockVerifCodCount = 0
|
IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;"
|
||||||
DO PrLog WITH 'OK C1: dublu-click Column2 (denumire) -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')'
|
DO PrLog WITH 'OK D1a: Column2 DblClick -> optiuni_meniu_ante = [MODIFICARE PARTENER - <denumire>;\-;]'
|
||||||
ELSE
|
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
|
gnEsecuri = gnEsecuri + 1
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
gnMockNomModCount = 0
|
*-- coloana ANAF (firma) cheama ACELASI meniu_dblclick - nu mai exista rutare separata
|
||||||
gnMockNomModId = 0
|
gcMockVerifCodOptiuniAnte = ''
|
||||||
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
|
|
||||||
goFormGD._grdbase1.Column5.Text1.DblClick()
|
goFormGD._grdbase1.Column5.Text1.DblClick()
|
||||||
IF gnMockVerifCodCount = 1 AND gnMockNomModCount = 0
|
IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;"
|
||||||
DO PrLog WITH 'OK C3: dublu-click Column5 (firma ANAF) -> VerificaCodFiscal, fara editare partener'
|
DO PrLog WITH 'OK D1a2: Column5 (firma ANAF) DblClick -> acelasi meniu_dblclick unificat'
|
||||||
ELSE
|
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
|
gnEsecuri = gnEsecuri + 1
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
gnMockNomModCount = 0
|
*-- D1b: fara id_part - prima optiune dezactivata (prefix \)
|
||||||
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
|
|
||||||
SELECT crsVerificareParteneri
|
SELECT crsVerificareParteneri
|
||||||
LOCATE FOR cod_fiscal = 'RO9999999'
|
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
|
gnMockNomModCount = 0
|
||||||
gcMockUltimMesaj = ''
|
gcMockUltimMesaj = ''
|
||||||
goFormGD._grdbase1.Column2.Text1.DblClick()
|
goFormGD._grdbase1.Column2.Text1.DblClick()
|
||||||
IF gnMockNomModCount = 0 AND 'nu poate fi identificat' $ LOWER(gcMockUltimMesaj)
|
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
|
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
|
gnEsecuri = gnEsecuri + 1
|
||||||
ENDIF
|
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()
|
goFormGD.Release()
|
||||||
|
|
||||||
DO PrLog WITH IIF(gnEsecuri = 0, 'TOTAL OK', 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)')
|
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