Merge claude/anaf-tva-efactura: avertizare exigibilizare TVA, verificare ANAF
This commit is contained in:
@@ -2359,11 +2359,13 @@ DEFINE CLASS frm_modific2007 AS _frmbase OF "_frm_base.vcx"
|
||||
*m: salveazaxml
|
||||
*m: updateexplicatiesaft
|
||||
*m: valideaza_data
|
||||
*m: verificaavertizareexigibilizaretva
|
||||
*p: cacont
|
||||
*p: ccont
|
||||
*p: ccontrol
|
||||
*p: cpaymentcode
|
||||
*p: fel_compensare
|
||||
*p: lavertizatexigibilizare
|
||||
*p: lmodificare
|
||||
*p: lnotanoua
|
||||
*p: lverificare
|
||||
@@ -2390,6 +2392,7 @@ DEFINE CLASS frm_modific2007 AS _frmbase OF "_frm_base.vcx"
|
||||
DoCreate = .T.
|
||||
FontCharSet = 238
|
||||
Height = 360
|
||||
lavertizatexigibilizare = .F.
|
||||
lmodificare = .F.
|
||||
lnotanoua = .F.
|
||||
lverificare = .F.
|
||||
@@ -5035,6 +5038,9 @@ DEFINE CLASS frm_modific2007 AS _frmbase OF "_frm_base.vcx"
|
||||
"Doriti sa continuati?", 4+32, "Note 4426-4428/4428-4427")=6,.T.,.F.)
|
||||
Endif
|
||||
ENDIF
|
||||
If m.llRet
|
||||
llRet = This.VerificaAvertizareExigibilizareTVA()
|
||||
Endif
|
||||
ENDIF
|
||||
*!* modificare v 2.4.4 ^
|
||||
RETURN m.llRet
|
||||
@@ -5409,6 +5415,182 @@ DEFINE CLASS frm_modific2007 AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE VerificaAvertizareExigibilizareTVA
|
||||
Local llKillSwitch, lcValOpt, lcSql, lcCursor, lnSucces, lnNrFacturi, lcMesaj, lnRasp
|
||||
Local lnRecno, lnCntSalvat, lnJ
|
||||
Local Array laAlesOrig(1,2)
|
||||
|
||||
If !(Type('tact.id_factd') = 'N' And Type('tact.id_factc') = 'N' And Type('tact.id_fact') = 'N' And Type('tact.tipnota') = 'N' And Type('tact.ales') = 'L' And Type('tact.scd') = 'C' And Type('tact.scc') = 'C')
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
If This.lAvertizatExigibilizare
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
llKillSwitch = (Alltrim(Nvl(getini(gcGeneralIniFile, 'tva', 'avertizare_exigibilizare'), '')) == '0')
|
||||
If !llKillSwitch And 'OINIT_OPTIUNI' $ Upper(Set('Procedure'))
|
||||
lcValOpt = ''
|
||||
If Used('crsOptiuniUtilizator')
|
||||
lcValOpt = Alltrim(Nvl(citeste_optiune_utilizator('RC_TVA_AVERT_EXIGIB'), ''))
|
||||
Endif
|
||||
If Empty(lcValOpt) And Used('crsOptiuni')
|
||||
lcValOpt = Alltrim(Nvl(citeste_optiune('RC_TVA_AVERT_EXIGIB'), ''))
|
||||
Endif
|
||||
llKillSwitch = (lcValOpt == '0')
|
||||
Endif
|
||||
If llKillSwitch
|
||||
Return .T.
|
||||
Endif
|
||||
Catch
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la citirea optiunii, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
Try
|
||||
Select Distinct id_factd As id_fact From tact Where id_factd > 0 And Left(Nvl(scc,''),1) = '5' Into Cursor crsCandidDTVAEx Readwrite
|
||||
Select Distinct id_factc As id_fact From tact Where id_factc > 0 And Left(Nvl(scd,''),1) = '5' Into Cursor crsCandidCTVAEx Readwrite
|
||||
Select id_fact From crsCandidDTVAEx Union Select id_fact From crsCandidCTVAEx Into Cursor crsCandidTVAEx Readwrite
|
||||
Use In crsCandidDTVAEx
|
||||
Use In crsCandidCTVAEx
|
||||
Catch
|
||||
If Used('crsCandidDTVAEx')
|
||||
Use In crsCandidDTVAEx
|
||||
Endif
|
||||
If Used('crsCandidCTVAEx')
|
||||
Use In crsCandidCTVAEx
|
||||
Endif
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la colectarea facturilor din nota, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
If Reccount('crsCandidTVAEx') = 0
|
||||
Use In crsCandidTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
Select Distinct id_fact From tact Where tipnota = 1 And id_fact > 0 Into Cursor crsAcopTVAEx Readwrite
|
||||
Select crsCandidTVAEx.id_fact From crsCandidTVAEx Left Join crsAcopTVAEx On crsCandidTVAEx.id_fact = crsAcopTVAEx.id_fact Where Isnull(crsAcopTVAEx.id_fact) Into Cursor crsNeacopTVAEx Readwrite
|
||||
Use In crsCandidTVAEx
|
||||
Use In crsAcopTVAEx
|
||||
Catch
|
||||
If Used('crsCandidTVAEx')
|
||||
Use In crsCandidTVAEx
|
||||
Endif
|
||||
If Used('crsAcopTVAEx')
|
||||
Use In crsAcopTVAEx
|
||||
Endif
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la suprimarea platilor acoperite, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
If Reccount('crsNeacopTVAEx') = 0
|
||||
Use In crsNeacopTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
If Type('goExecutor') <> 'O' Or goExecutor.nHandle <= 0
|
||||
Use In crsNeacopTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
lcSql = ;
|
||||
[SELECT id_fact FROM VJC2025 WHERE an = ] + Transform(gnAn) + [ AND luna = ] + Transform(gnLuna) + ;
|
||||
[ AND tva_incasare = 1 AND (ro24nb+ro24nt+ro20nb+ro20nt+ro21nb+ro21nt+ro11nb+ro11nt+ro19nb+ro19nt+ro9nb+ro9nt+ro5nb+ro5nt) <> 0] + ;
|
||||
[ UNION SELECT id_fact FROM VJV2025 WHERE an = ] + Transform(gnAn) + [ AND luna = ] + Transform(gnLuna) + ;
|
||||
[ AND tva_incasare = 1 AND (ro24nb+ro24nt+ro20nb+ro20nt+ro21nb+ro21nt+ro11nb+ro11nt+ro19nb+ro19nt+ro9nb+ro9nt+ro5nb+ro5nt) <> 0]
|
||||
lcCursor = Sys(2015)
|
||||
lnSucces = 0
|
||||
Try
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor, .F., '', 0, .F., .F., .F.)
|
||||
Catch
|
||||
lnSucces = -1
|
||||
Endtry
|
||||
|
||||
If lnSucces < 0
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: interogare esuata - ' + Nvl(goExecutor.cEroare,''), 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
Select crsNeacopTVAEx.id_fact From crsNeacopTVAEx Inner Join (lcCursor) tvaex On crsNeacopTVAEx.id_fact = tvaex.id_fact Into Cursor crsFinalTVAEx Readwrite
|
||||
Catch
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la intersectia locala, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
|
||||
lnNrFacturi = Reccount('crsFinalTVAEx')
|
||||
If lnNrFacturi = 0
|
||||
Use In crsFinalTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Index On id_fact Tag id_fact
|
||||
|
||||
lcMesaj = 'Exista ' + Transform(lnNrFacturi) + ' facturi cu TVA la incasare pentru care nu s-a adaugat nota de TVA exigibilizat.' + Chr(13) + Chr(13) + ;
|
||||
'Da = adaugati acum notele de TVA exigibilizat si ramaneti in formular, ca sa le verificati.' + Chr(13) + ;
|
||||
'Nu = continuati salvarea fara sa adaugati notele.' + Chr(13) + ;
|
||||
'Anulare = renuntati, nu salvati.'
|
||||
lnRasp = Amessagebox(lcMesaj, 3+32, 'TVA la incasare - exigibilizare')
|
||||
This.lAvertizatExigibilizare = (lnRasp <> 2)
|
||||
|
||||
If lnRasp = 6
|
||||
Select tact
|
||||
lnRecno = Recno()
|
||||
lnCntSalvat = 0
|
||||
Dimension laAlesOrig(Reccount('tact'), 2)
|
||||
Scan
|
||||
lnCntSalvat = lnCntSalvat + 1
|
||||
laAlesOrig(lnCntSalvat, 1) = Recno()
|
||||
laAlesOrig(lnCntSalvat, 2) = ales
|
||||
Replace ales With (id_factd > 0 And Left(Nvl(scc,''),1) = '5' And Seek(id_factd, 'crsFinalTVAEx')) Or (id_factc > 0 And Left(Nvl(scd,''),1) = '5' And Seek(id_factc, 'crsFinalTVAEx'))
|
||||
Endscan
|
||||
Thisform.do_adauga_tva_exigibil()
|
||||
Select tact
|
||||
For lnJ = 1 To lnCntSalvat
|
||||
Try
|
||||
Go laAlesOrig(lnJ, 1)
|
||||
Replace ales With laAlesOrig(lnJ, 2)
|
||||
Catch
|
||||
Endtry
|
||||
Endfor
|
||||
Try
|
||||
Go lnRecno
|
||||
Catch
|
||||
Go Top
|
||||
Endtry
|
||||
Endif
|
||||
|
||||
Use In crsFinalTVAEx
|
||||
|
||||
Return (lnRasp = 7)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE cmdSelect.Click
|
||||
Local lnRecno
|
||||
Select tAct
|
||||
@@ -6583,11 +6765,13 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
*m: updateexplicatiesaft
|
||||
*m: updateexplicatiesaftrul
|
||||
*m: valideaza_data
|
||||
*m: verificaavertizareexigibilizaretva
|
||||
*p: cacont
|
||||
*p: ccont
|
||||
*p: ccontrol
|
||||
*p: cpaymentcode
|
||||
*p: fel_compensare
|
||||
*p: lavertizatexigibilizare
|
||||
*p: leditare
|
||||
*p: lmodificare
|
||||
*p: lnotanoua
|
||||
@@ -6617,6 +6801,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
DoCreate = .T.
|
||||
FontCharSet = 238
|
||||
Height = 508
|
||||
lavertizatexigibilizare = .F.
|
||||
leditare = .F.
|
||||
lmodificare = .F.
|
||||
lnotanoua = .F.
|
||||
@@ -13170,6 +13355,9 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
"Doriti sa continuati?", 4+32, "Note 4426-4428/4428-4427")=6,.T.,.F.)
|
||||
Endif
|
||||
ENDIF
|
||||
If m.llRet
|
||||
llRet = This.VerificaAvertizareExigibilizareTVA()
|
||||
Endif
|
||||
ENDIF
|
||||
*!* modificare v 2.4.4 ^
|
||||
RETURN m.llRet
|
||||
@@ -13630,6 +13818,182 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE VerificaAvertizareExigibilizareTVA
|
||||
Local llKillSwitch, lcValOpt, lcSql, lcCursor, lnSucces, lnNrFacturi, lcMesaj, lnRasp
|
||||
Local lnRecno, lnCntSalvat, lnJ
|
||||
Local Array laAlesOrig(1,2)
|
||||
|
||||
If !(Type('tact.id_factd') = 'N' And Type('tact.id_factc') = 'N' And Type('tact.id_fact') = 'N' And Type('tact.tipnota') = 'N' And Type('tact.ales') = 'L' And Type('tact.scd') = 'C' And Type('tact.scc') = 'C')
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
If This.lAvertizatExigibilizare
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
llKillSwitch = (Alltrim(Nvl(getini(gcGeneralIniFile, 'tva', 'avertizare_exigibilizare'), '')) == '0')
|
||||
If !llKillSwitch And 'OINIT_OPTIUNI' $ Upper(Set('Procedure'))
|
||||
lcValOpt = ''
|
||||
If Used('crsOptiuniUtilizator')
|
||||
lcValOpt = Alltrim(Nvl(citeste_optiune_utilizator('RC_TVA_AVERT_EXIGIB'), ''))
|
||||
Endif
|
||||
If Empty(lcValOpt) And Used('crsOptiuni')
|
||||
lcValOpt = Alltrim(Nvl(citeste_optiune('RC_TVA_AVERT_EXIGIB'), ''))
|
||||
Endif
|
||||
llKillSwitch = (lcValOpt == '0')
|
||||
Endif
|
||||
If llKillSwitch
|
||||
Return .T.
|
||||
Endif
|
||||
Catch
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la citirea optiunii, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
Try
|
||||
Select Distinct id_factd As id_fact From tact Where id_factd > 0 And Left(Nvl(scc,''),1) = '5' Into Cursor crsCandidDTVAEx Readwrite
|
||||
Select Distinct id_factc As id_fact From tact Where id_factc > 0 And Left(Nvl(scd,''),1) = '5' Into Cursor crsCandidCTVAEx Readwrite
|
||||
Select id_fact From crsCandidDTVAEx Union Select id_fact From crsCandidCTVAEx Into Cursor crsCandidTVAEx Readwrite
|
||||
Use In crsCandidDTVAEx
|
||||
Use In crsCandidCTVAEx
|
||||
Catch
|
||||
If Used('crsCandidDTVAEx')
|
||||
Use In crsCandidDTVAEx
|
||||
Endif
|
||||
If Used('crsCandidCTVAEx')
|
||||
Use In crsCandidCTVAEx
|
||||
Endif
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la colectarea facturilor din nota, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
If Reccount('crsCandidTVAEx') = 0
|
||||
Use In crsCandidTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
Select Distinct id_fact From tact Where tipnota = 1 And id_fact > 0 Into Cursor crsAcopTVAEx Readwrite
|
||||
Select crsCandidTVAEx.id_fact From crsCandidTVAEx Left Join crsAcopTVAEx On crsCandidTVAEx.id_fact = crsAcopTVAEx.id_fact Where Isnull(crsAcopTVAEx.id_fact) Into Cursor crsNeacopTVAEx Readwrite
|
||||
Use In crsCandidTVAEx
|
||||
Use In crsAcopTVAEx
|
||||
Catch
|
||||
If Used('crsCandidTVAEx')
|
||||
Use In crsCandidTVAEx
|
||||
Endif
|
||||
If Used('crsAcopTVAEx')
|
||||
Use In crsAcopTVAEx
|
||||
Endif
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la suprimarea platilor acoperite, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
If Reccount('crsNeacopTVAEx') = 0
|
||||
Use In crsNeacopTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
If Type('goExecutor') <> 'O' Or goExecutor.nHandle <= 0
|
||||
Use In crsNeacopTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
lcSql = ;
|
||||
[SELECT id_fact FROM VJC2025 WHERE an = ] + Transform(gnAn) + [ AND luna = ] + Transform(gnLuna) + ;
|
||||
[ AND tva_incasare = 1 AND (ro24nb+ro24nt+ro20nb+ro20nt+ro21nb+ro21nt+ro11nb+ro11nt+ro19nb+ro19nt+ro9nb+ro9nt+ro5nb+ro5nt) <> 0] + ;
|
||||
[ UNION SELECT id_fact FROM VJV2025 WHERE an = ] + Transform(gnAn) + [ AND luna = ] + Transform(gnLuna) + ;
|
||||
[ AND tva_incasare = 1 AND (ro24nb+ro24nt+ro20nb+ro20nt+ro21nb+ro21nt+ro11nb+ro11nt+ro19nb+ro19nt+ro9nb+ro9nt+ro5nb+ro5nt) <> 0]
|
||||
lcCursor = Sys(2015)
|
||||
lnSucces = 0
|
||||
Try
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor, .F., '', 0, .F., .F., .F.)
|
||||
Catch
|
||||
lnSucces = -1
|
||||
Endtry
|
||||
|
||||
If lnSucces < 0
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: interogare esuata - ' + Nvl(goExecutor.cEroare,''), 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Try
|
||||
Select crsNeacopTVAEx.id_fact From crsNeacopTVAEx Inner Join (lcCursor) tvaex On crsNeacopTVAEx.id_fact = tvaex.id_fact Into Cursor crsFinalTVAEx Readwrite
|
||||
Catch
|
||||
If Type('goLog') = 'O'
|
||||
goLog.Log('Avertizare exigibilizare TVA la incasare: eroare la intersectia locala, verificare sarita', 'VerificaAvertizareExigibilizareTVA')
|
||||
Endif
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Return .T.
|
||||
Endtry
|
||||
|
||||
Use In crsNeacopTVAEx
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
|
||||
lnNrFacturi = Reccount('crsFinalTVAEx')
|
||||
If lnNrFacturi = 0
|
||||
Use In crsFinalTVAEx
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Index On id_fact Tag id_fact
|
||||
|
||||
lcMesaj = 'Exista ' + Transform(lnNrFacturi) + ' facturi cu TVA la incasare pentru care nu s-a adaugat nota de TVA exigibilizat.' + Chr(13) + Chr(13) + ;
|
||||
'Da = adaugati acum notele de TVA exigibilizat si ramaneti in formular, ca sa le verificati.' + Chr(13) + ;
|
||||
'Nu = continuati salvarea fara sa adaugati notele.' + Chr(13) + ;
|
||||
'Anulare = renuntati, nu salvati.'
|
||||
lnRasp = Amessagebox(lcMesaj, 3+32, 'TVA la incasare - exigibilizare')
|
||||
This.lAvertizatExigibilizare = (lnRasp <> 2)
|
||||
|
||||
If lnRasp = 6
|
||||
Select tact
|
||||
lnRecno = Recno()
|
||||
lnCntSalvat = 0
|
||||
Dimension laAlesOrig(Reccount('tact'), 2)
|
||||
Scan
|
||||
lnCntSalvat = lnCntSalvat + 1
|
||||
laAlesOrig(lnCntSalvat, 1) = Recno()
|
||||
laAlesOrig(lnCntSalvat, 2) = ales
|
||||
Replace ales With (id_factd > 0 And Left(Nvl(scc,''),1) = '5' And Seek(id_factd, 'crsFinalTVAEx')) Or (id_factc > 0 And Left(Nvl(scd,''),1) = '5' And Seek(id_factc, 'crsFinalTVAEx'))
|
||||
Endscan
|
||||
Thisform.do_adauga_tva_exigibil()
|
||||
Select tact
|
||||
For lnJ = 1 To lnCntSalvat
|
||||
Try
|
||||
Go laAlesOrig(lnJ, 1)
|
||||
Replace ales With laAlesOrig(lnJ, 2)
|
||||
Catch
|
||||
Endtry
|
||||
Endfor
|
||||
Try
|
||||
Go lnRecno
|
||||
Catch
|
||||
Go Top
|
||||
Endtry
|
||||
Endif
|
||||
|
||||
Use In crsFinalTVAEx
|
||||
|
||||
Return (lnRasp = 7)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE But_modificaR.Click
|
||||
Local lcRul
|
||||
|
||||
|
||||
@@ -7,8 +7,11 @@
|
||||
.gitignore ca `docs/diff_runda*.patch`); raman doar local, pe disc.
|
||||
Curatenie: dupa commit se sterg patch-urile de review si backup-urile de lucru
|
||||
(`*.pre_runda*.bak`).
|
||||
2. Comentarii in cod: NU se pun comentarii in corpul codului (nici la functionalitati noi).
|
||||
In ANTETUL fisierului se tine o singura intrare CUMULATIVA per functionalitate, in stilul
|
||||
2. Comentarii in cod: istoricul modificarilor sta DOAR in ANTETUL fisierului, niciodata inline.
|
||||
Se aplica la fel in `.prg` si in package-urile/procedurile PL/SQL Oracle.
|
||||
In corpul codului sunt permise numai comentarii FUNCTIONALE (ce face codul si de ce, acolo
|
||||
unde nu se vede din cod) - niciodata "am adaugat / am modificat / am sters", data sau autor.
|
||||
In ANTET se tine o singura intrare CUMULATIVA per functionalitate, scurta si compacta, in stilul
|
||||
existent (`*!* DD.MM.YYYY` / `*!* autor` / `*!* ce face, 1-2 fraze`): la revenirea pe aceeasi
|
||||
lucrare se rescrie intrarea, nu se adauga alta. Autorul e persoana care semneaza livrarea
|
||||
(ex. `marius.mutu`) - niciodata "claude" sau alt nume de agent.
|
||||
|
||||
16
docs/sold-neexigibil-reportat-jc2007-jv2007.md
Normal file
16
docs/sold-neexigibil-reportat-jc2007-jv2007.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# `jc2007` / `jv2007` — reguli
|
||||
|
||||
Masurat pe date (`MARIUSM_AUTO`, 28.07.2026).
|
||||
|
||||
- **O linie per factura PER PERIOADA**, nu una per factura. Cat timp factura are sold de TVA
|
||||
neexigibil, randul ei se reporteaza luna de luna cu soldul ramas (masurat: acelasi `id_fact` in
|
||||
113-115 perioade). Reportarea e in tabela de baza, nu introdusa de view-uri.
|
||||
- Deci **orice interogare pe sold neexigibil se filtreaza pe `an`/`luna`**. Soldul lunii curente e
|
||||
cel la zi; fara filtru intorci si facturi stinse demult.
|
||||
- Nu cauta si in perioade anterioare "ca sa nu scapi nimic" — o factura din mai apare si pe randul
|
||||
lunii iulie. Ai dubla randurile.
|
||||
- `tva_incasare` **nu exista pe tabele**, doar pe view-uri (`VJC2025`/`VJV2025`, `vjc2010`/`vjv2010`).
|
||||
- Coloanele de sold neexigibil, lista completa: `ro24nb/nt`, `ro20nb/nt`, `ro21nb/nt`, `ro11nb/nt`,
|
||||
`ro19nb/nt`, `ro9nb/nt`, `ro5nb/nt`. **21% si 11% sunt in vigoare din august 2025** si lipsesc din
|
||||
filtre mai vechi — verifica lista inainte de a refolosi un filtru existent.
|
||||
- `vjc2010`/`vjv2010` au si ele coloanele `ro11*`/`ro21*`.
|
||||
@@ -3,6 +3,12 @@
|
||||
*!* 13.08.2024
|
||||
*!* vizImportEFactura + discountfaratva
|
||||
|
||||
*!* 28.07.2026
|
||||
*!* marius.mutu
|
||||
*!* borderoul eFactura, facturi primite: diferenta ignora TVA-ul de taxare inversa (coloana
|
||||
*!* jtva_ti din view-ul anaf_vefactura_primit), ca sa nu mai apara colorate fals facturile
|
||||
*!* cu 4426=4427; degradare automata daca migrarea DB nu a ajuns inca la client
|
||||
|
||||
Procedure importEfacturaPrimite
|
||||
DO vizImportEFactura WITH 'PRIMITE'
|
||||
ENDPROC
|
||||
@@ -18,6 +24,7 @@ PROCEDURE vizImportEFactura
|
||||
Private poFacturi, poFacturiDetalii
|
||||
Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite
|
||||
Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam
|
||||
Local lcExprDiferenta, llAreJtvaTi
|
||||
poFacturi = Null
|
||||
poFacturiDetalii = Null
|
||||
|
||||
@@ -26,6 +33,13 @@ PROCEDURE vizImportEFactura
|
||||
|
||||
lcTabel = IIF(m.lcTip = 'PRIMITE', 'anaf_vefactura_primit', 'anaf_vefactura_trimis')
|
||||
|
||||
llAreJtvaTi = .F.
|
||||
IF goExecutor.oExecuta("select column_name from user_tab_columns where table_name = '" + Upper(m.lcTabel) + "' and column_name = 'JTVA_TI'", 'cColoaneJTva') And Used('cColoaneJTva')
|
||||
llAreJtvaTi = (Reccount('cColoaneJTva') > 0)
|
||||
Use In (Select('cColoaneJTva'))
|
||||
ENDIF
|
||||
lcExprDiferenta = IIF(m.llAreJtvaTi, [NVL(total_cu_tva,0.00) - (NVL(jtotctva,0.00) - NVL(jtva_ti,0.00)) as diferenta], [NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta])
|
||||
|
||||
* FACTURI PRIMITE/TRIMISE
|
||||
lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn))
|
||||
TEXT To lcSchema Noshow
|
||||
@@ -33,7 +47,7 @@ ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xf
|
||||
ENDTEXT
|
||||
|
||||
TEXT To lcSelect TEXTMERGE Noshow
|
||||
SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, '' as detalii, total_fara_tva, total_tva, total_tva_ron, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta, procesat,
|
||||
SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, '' as detalii, total_fara_tva, total_tva, total_tva_ron, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, <<m.lcExprDiferenta>>, procesat,
|
||||
'' as SerieActRoa, CAST(null as Number(14)) as NrActRoa, CAST(null as Number(20)) as idPartRoa, '' as PartenerRoa, '' as codFiscalROA, CAST(null as Number(10)) as idValutaROA, '' as numeValutaROA, CAST(null as Number(16,6)) as cursROA,
|
||||
'' as Cont, '' as acont, 0 as TVAIncasare, '' as Fdoc, CAST(0 as Number(5)) as Id_Fdoc, '' as Nrord, CAST(0 as Number(10)) as id_Lucrare, '' as Contract, CAST(null as Number(10)) as id_ctr,
|
||||
'' Sectie, CAST(0 as Number(10)) as id_Sectie, '' as dst_chlt, CAST(0 as Number(10)) as id_Venchelt, '' as nresp, CAST(0 as Number(10)) as id_responsabil, 0 as completat, 0 as completatdet, creditnote, '' as explicatiaROA
|
||||
|
||||
@@ -49,11 +49,18 @@
|
||||
*!* formularului, daca starea serviciului nu e cunoscuta, pleaca o sonda asincrona care stabileste
|
||||
*!* disponibilitatea fara sa blocheze interfata, iar randul curent asteapta rezultatul ei
|
||||
|
||||
*!* 27.07.2026
|
||||
*!* marius.mutu
|
||||
*!* verificare ANAF: banda de stare arata si perioada de inregistrare in scopuri de TVA, cu eticheta
|
||||
*!* explicita ('inregistrat TVA' / 'cod TVA anulat din'), doar cand starea difera de ROA, partenerul e
|
||||
*!* inactiv sau perioada s-a incheiat deja; F4 arata intotdeauna perioada completa si mesajul primit
|
||||
*!* de la ANAF, inclusiv cand nu exista partener cu codul corect
|
||||
|
||||
*!* #DEFINE CRLF CHR(13) + CHR(10)
|
||||
#INCLUDE COMUN\ROA.H
|
||||
|
||||
Procedure ANAF_StarePartener
|
||||
Lparameters tcCodFiscal, tdData, tlDoarCache, tlNecesitaApel, tlNegasit, tcClasaEsec
|
||||
Lparameters tcCodFiscal, tdData, tlDoarCache, tlNecesitaApel, tlNegasit, tcClasaEsec, tnTipPersoana
|
||||
|
||||
Local lcCodFiscal, lcCui, loRezANAF, lcCheieCache, lnI, llValid, loOut, ldData, llNegasit, lcStareServiciu
|
||||
|
||||
@@ -79,7 +86,8 @@ Procedure ANAF_StarePartener
|
||||
Endif
|
||||
Endfor
|
||||
Endif
|
||||
If m.llValid And Len(m.lcCui) = 13
|
||||
If m.llValid And Len(m.lcCui) = 13 And !(Vartype(m.tnTipPersoana) = 'N' And m.tnTipPersoana = 1)
|
||||
tcClasaEsec = 'CNP'
|
||||
Return .Null.
|
||||
Endif
|
||||
If !m.llValid
|
||||
@@ -141,6 +149,10 @@ Procedure ANAF_StarePartener
|
||||
Addproperty(loOut, "lInactivANAF", loRezANAF.statusInactivi)
|
||||
Addproperty(loOut, "cDenumireANAF", Alltrim(Nvl(loRezANAF.denumire, '')))
|
||||
Addproperty(loOut, "lDiscordanta", (loRezANAF.scpTVA <> loOut.lAreRO) Or loRezANAF.statusInactivi)
|
||||
Addproperty(loOut, "dInceputScpTVA", Iif(Pemstatus(loRezANAF, 'dInceputScpTVA', 5), Nvl(loRezANAF.dInceputScpTVA, {}), {}))
|
||||
Addproperty(loOut, "dSfarsitScpTVA", Iif(Pemstatus(loRezANAF, 'dSfarsitScpTVA', 5), Nvl(loRezANAF.dSfarsitScpTVA, {}), {}))
|
||||
Addproperty(loOut, "dAnulareScpTVA", Iif(Pemstatus(loRezANAF, 'dAnulareScpTVA', 5), Nvl(loRezANAF.dAnulareScpTVA, {}), {}))
|
||||
Addproperty(loOut, "cMesajScpTVA", Iif(Pemstatus(loRezANAF, 'cMesajScpTVA', 5), Alltrim(Nvl(loRezANAF.cMesajScpTVA, '')), ''))
|
||||
Addproperty(loOut, "dData", m.ldData)
|
||||
Return loOut
|
||||
Endproc && ANAF_StarePartener
|
||||
@@ -356,8 +368,10 @@ Procedure ANAF_ComutaVerificare
|
||||
' 3 = ' + ANAF_TextNivel(3) + Chr(13) + ;
|
||||
' 9 = ' + ANAF_TextNivel(9) + Chr(13) + Chr(13) + ;
|
||||
'Valorile 0, 1 si 3 va urmaresc pe orice calculator.'
|
||||
Amessagebox(m.lcMesaj, 0 + 64, lcEticheta)
|
||||
lnNou = aInputBox('Valoarea noua (0, 1, 3 sau 9):', m.lcEticheta, m.lnNivel)
|
||||
If Amessagebox(m.lcMesaj + Chr(13) + Chr(13) + 'Modificati valoarea?', 4 + 32, lcEticheta) <> 6
|
||||
Return
|
||||
Endif
|
||||
lnNou = aInputBox('Valoarea noua (0, 1, 3 sau 9):', m.lcEticheta, Iif(m.lcValIni == '0', 9, m.lnNivel))
|
||||
If Vartype(m.lnNou) <> 'N' Or !Inlist(m.lnNou, 0, 1, 3, 9)
|
||||
Return
|
||||
Endif
|
||||
@@ -597,7 +611,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
This.oStare = .Null.
|
||||
This.cCui = ''
|
||||
This.lNegasit = .F.
|
||||
This.cClasaEsec = ''
|
||||
This.cClasaEsec = 'COD_INVALID'
|
||||
This.SeteazaLabel(m.lcCodInvalid + ' (F4 = detalii)', .T.)
|
||||
goLog.Log('Cod fiscal invalid: ' + m.lcCodInvalid + ' id_part=' + Transform(m.lnId), 'anaf_verif_cautare')
|
||||
Return .F.
|
||||
@@ -610,7 +624,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
lcClasaEsec = ''
|
||||
This.lVerificareInCurs = .T.
|
||||
Try
|
||||
loStare = ANAF_StarePartener(m.lcCodFiscal, This.dDataDoc, !m.tlPermiteApel, @llNecesitaApel, @llNegasit, @lcClasaEsec)
|
||||
loStare = ANAF_StarePartener(m.lcCodFiscal, This.dDataDoc, !m.tlPermiteApel, @llNecesitaApel, @llNegasit, @lcClasaEsec, m.lnTipPersoana)
|
||||
Finally
|
||||
This.lVerificareInCurs = .F.
|
||||
Endtry
|
||||
@@ -645,6 +659,9 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
This.SeteazaLabel('Cod fiscal nenumeric - nu se poate verifica la ANAF', .F., .T.)
|
||||
goLog.Log('Cod fiscal nenumeric: ' + Alltrim(m.lcCodFiscal) + ' id_part=' + Transform(m.lnId), 'anaf_verif_cautare')
|
||||
Return .F.
|
||||
Case Isnull(m.loStare) And m.lcClasaEsec == 'CNP'
|
||||
This.SeteazaLabel('Persoana fizica - CNP corect', .F., .T.)
|
||||
Return .F.
|
||||
Case Isnull(m.loStare)
|
||||
This.AfiseazaPrompt()
|
||||
Return .F.
|
||||
@@ -676,22 +693,61 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE TextStare
|
||||
Lparameters toStare, tcPerioada
|
||||
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Nvl(m.tcPerioada, '') + Iif(toStare.lInactivANAF, ', Inactiv', '')
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE SufixPerioadaTVA
|
||||
Lparameters toStare
|
||||
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Iif(toStare.lInactivANAF, ', Inactiv', '')
|
||||
If !(toStare.lDiscordanta Or !Empty(toStare.dAnulareScpTVA) Or (!Empty(toStare.dSfarsitScpTVA) And toStare.dSfarsitScpTVA < Date()))
|
||||
Return ''
|
||||
Endif
|
||||
Do Case
|
||||
Case !Empty(toStare.dAnulareScpTVA)
|
||||
Return ', cod TVA anulat din ' + Dtoc(toStare.dAnulareScpTVA)
|
||||
Case !Empty(toStare.dSfarsitScpTVA) And !Empty(toStare.dInceputScpTVA)
|
||||
Return ', inregistrat TVA ' + Dtoc(toStare.dInceputScpTVA) + ' - ' + Dtoc(toStare.dSfarsitScpTVA)
|
||||
Case !Empty(toStare.dInceputScpTVA)
|
||||
Return ', inregistrat TVA din ' + Dtoc(toStare.dInceputScpTVA)
|
||||
Endcase
|
||||
Return ''
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE TextAnaf
|
||||
Lparameters toStare, tlCuVirgula, tnMaxLen
|
||||
Local lcCodOk, lcDenANAF, lcDenFull
|
||||
Local lcCodOk, lcDenANAF, lcDenFull, lcPerioada
|
||||
lcCodOk = Iif(toStare.lPlatitorANAF, 'RO', '') + toStare.cCui
|
||||
lcDenFull = Alltrim(Nvl(toStare.cDenumireANAF, ''))
|
||||
lcDenANAF = lcDenFull
|
||||
If Vartype(m.tnMaxLen) = 'N' And m.tnMaxLen > 0 And Len(m.lcDenFull) > m.tnMaxLen
|
||||
lcDenANAF = Left(m.lcDenFull, m.tnMaxLen) + '...'
|
||||
Endif
|
||||
Return 'ANAF: ' + This.TextStare(toStare) + ' (' + ;
|
||||
lcPerioada = This.SufixPerioadaTVA(toStare)
|
||||
Return 'ANAF: ' + This.TextStare(toStare, m.lcPerioada) + ' (' + ;
|
||||
Iif(Empty(m.lcDenANAF), '', m.lcDenANAF + Iif(m.tlCuVirgula, ', ', ' ')) + m.lcCodOk + ')' + ;
|
||||
' la ' + Dtoc(toStare.dData)
|
||||
Iif(Empty(m.lcPerioada), ' la ' + Dtoc(toStare.dData), '')
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE TextPerioadaTVA
|
||||
Lparameters toStare
|
||||
Local lcTxt
|
||||
lcTxt = ''
|
||||
If !Empty(toStare.dInceputScpTVA)
|
||||
lcTxt = m.lcTxt + 'Inceput inregistrare TVA: ' + Dtoc(toStare.dInceputScpTVA) + Chr(13)
|
||||
Endif
|
||||
If !Empty(toStare.dSfarsitScpTVA)
|
||||
lcTxt = m.lcTxt + 'Sfarsit inregistrare TVA: ' + Dtoc(toStare.dSfarsitScpTVA) + Chr(13)
|
||||
Endif
|
||||
If !Empty(toStare.dAnulareScpTVA)
|
||||
lcTxt = m.lcTxt + 'Anulare din oficiu: ' + Dtoc(toStare.dAnulareScpTVA) + Chr(13)
|
||||
Endif
|
||||
If !Empty(toStare.cMesajScpTVA)
|
||||
lcTxt = m.lcTxt + 'Mesaj ANAF: ' + Alltrim(toStare.cMesajScpTVA) + Chr(13)
|
||||
Endif
|
||||
If !Empty(m.lcTxt)
|
||||
lcTxt = m.lcTxt + Chr(13)
|
||||
Endif
|
||||
Return m.lcTxt
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE AntetDialog
|
||||
@@ -786,7 +842,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
|
||||
PROCEDURE Detalii
|
||||
Local lcCursor, lcDenAles, lcCodAles, lcCodOk, lcLista, lcMesaj, lnCandidati, lnCandidat, lcDenPereche
|
||||
Local lnRasp, lnAles, loAles, llEroare
|
||||
Local lnRasp, lnAles, loAles, llEroare, lcPerioadaTVA
|
||||
If Vartype(This.oForm) <> 'O'
|
||||
Return
|
||||
Endif
|
||||
@@ -800,13 +856,17 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + ;
|
||||
Iif(This.lNegasit, 'Codul fiscal nu exista la ANAF.', ;
|
||||
Iif(This.cClasaEsec == 'COD_NENUMERIC', 'Codul fiscal nu este numeric - nu se poate verifica la ANAF.', ;
|
||||
'ANAF nu a raspuns - verificarea a fost sarita.')), ;
|
||||
Iif(This.cClasaEsec == 'CNP', 'Persoana fizica - CNP corect.', ;
|
||||
Iif(This.cClasaEsec == 'COD_INVALID', 'Cod fiscal invalid - nu s-a interogat ANAF. Corectati codul in fisa partenerului.', ;
|
||||
'ANAF nu a raspuns - verificarea a fost sarita.'))))), ;
|
||||
0 + 64, 'Verificare partener ANAF')
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcPerioadaTVA = This.TextPerioadaTVA(This.oStare)
|
||||
|
||||
If This.oStare.lAreRO = This.oStare.lPlatitorANAF
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + ;
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + ;
|
||||
Iif(This.oStare.lInactivANAF, 'Nu exista alta varianta de partener de ales.', 'Codul fiscal corespunde.'), ;
|
||||
0 + 64, 'Verificare partener ANAF')
|
||||
Return
|
||||
@@ -820,20 +880,20 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
||||
This.ListaCorecti(@lnCandidati, @lnCandidat, @lcDenPereche, @llEroare)
|
||||
|
||||
If m.llEroare
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + 'Nu s-a putut citi lista de parteneri.', ;
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + 'Nu s-a putut citi lista de parteneri.', ;
|
||||
0 + 64, 'Verificare partener ANAF')
|
||||
Return
|
||||
Endif
|
||||
|
||||
If m.lnCandidati = 0
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + ;
|
||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + ;
|
||||
'Nu exista partener cu CUI ' + m.lcCodOk + ' (il puteti crea cu butonul Nou).', 0 + 64, 'Verificare partener ANAF')
|
||||
Return
|
||||
Endif
|
||||
|
||||
This.MarcheazaDocumente()
|
||||
lcLista = This.TextListaCandidati()
|
||||
lcMesaj = This.AntetDialog(m.lcDenAles, m.lcCodAles) + 'Parteneri ROA cu CUI ' + m.lcCodOk + ':' + Chr(13) + m.lcLista + Chr(13) + ;
|
||||
lcMesaj = This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + 'Parteneri ROA cu CUI ' + m.lcCodOk + ':' + Chr(13) + m.lcLista + Chr(13) + ;
|
||||
'Da = Pastreaza selectia' + Chr(13) + ;
|
||||
Iif(m.lnCandidati = 1, 'Nu = Alege 1 ' + m.lcDenPereche + ' (ID: ' + Transform(m.lnCandidat) + ')', ;
|
||||
'Nu = Alege din lista (1-' + Transform(m.lnCandidati) + ')') + Chr(13) + ;
|
||||
|
||||
@@ -67,6 +67,12 @@
|
||||
*!* sonda asincrona de disponibilitate (ANAF_SondaPorneste/AuSositRaspunsul/AReusit/Opreste) verifica in
|
||||
*!* fundal, la nevoie, daca serviciul ANAF a revenit, fara sa blocheze interfata
|
||||
|
||||
*!* 27.07.2026
|
||||
*!* marius.mutu
|
||||
*!* ANAF_VerdictDinCursor expune si perioada de inregistrare in scopuri de TVA (inceput, sfarsit,
|
||||
*!* anulare din oficiu) si mesajul ANAF integral (mesaj_ScpTVA), citite din cursorul deja parsat de
|
||||
*!* ParseJsonANAFv8; parsarea esuata a datelor de perioada se logheaza
|
||||
|
||||
*!* http://ec.europa.eu/taxation_customs/vies/viesquer.do
|
||||
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CIF/1879855/MFIN
|
||||
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CNP/1810228134187
|
||||
@@ -1673,6 +1679,10 @@ Function ANAF_VerdictDinCursor
|
||||
Addproperty(loResult, "statusInactivi", Nvl(statusInactivi, .F.))
|
||||
Addproperty(loResult, "denumire", Nvl(denumire, ""))
|
||||
Addproperty(loResult, "mesaj", Nvl(mesaj, ""))
|
||||
Addproperty(loResult, "dInceputScpTVA", Nvl(data_inceput_ScpTVA, {}))
|
||||
Addproperty(loResult, "dSfarsitScpTVA", Nvl(data_sfarsit_ScpTVA, {}))
|
||||
Addproperty(loResult, "dAnulareScpTVA", Nvl(data_anul_imp_ScpTVA, {}))
|
||||
Addproperty(loResult, "cMesajScpTVA", Nvl(mesaj_ScpTVA, ""))
|
||||
Else
|
||||
If m.lnReccountTemp = 1 And Empty(denumire) And Nvl(cui, 0) = m.tnCuiCautat
|
||||
tlNegasit = .T.
|
||||
@@ -2067,6 +2077,15 @@ Define Class VerificareANAF As Custom
|
||||
loDate.data_sfarsit_ScpTVA = CTOD(loInregistrareTVA.perioade_tva[1].data_sfarsit_ScpTVA)
|
||||
loDate.data_anul_imp_ScpTVA = CTOD(loInregistrareTVA.perioade_tva[1].data_anul_imp_ScpTVA)
|
||||
loDate.mesaj_ScpTVA = loInregistrareTVA.perioade_tva[1].mesaj_ScpTVA
|
||||
IF !Empty(loInregistrareTVA.perioade_tva[1].data_inceput_ScpTVA) And Empty(loDate.data_inceput_ScpTVA)
|
||||
goLog.Log('ParseJsonANAFv8: data_inceput_ScpTVA neparsabila (' + loInregistrareTVA.perioade_tva[1].data_inceput_ScpTVA + ')', 'ParseJsonANAF')
|
||||
ENDIF
|
||||
IF !Empty(loInregistrareTVA.perioade_tva[1].data_sfarsit_ScpTVA) And Empty(loDate.data_sfarsit_ScpTVA)
|
||||
goLog.Log('ParseJsonANAFv8: data_sfarsit_ScpTVA neparsabila (' + loInregistrareTVA.perioade_tva[1].data_sfarsit_ScpTVA + ')', 'ParseJsonANAF')
|
||||
ENDIF
|
||||
IF !Empty(loInregistrareTVA.perioade_tva[1].data_anul_imp_ScpTVA) And Empty(loDate.data_anul_imp_ScpTVA)
|
||||
goLog.Log('ParseJsonANAFv8: data_anul_imp_ScpTVA neparsabila (' + loInregistrareTVA.perioade_tva[1].data_anul_imp_ScpTVA + ')', 'ParseJsonANAF')
|
||||
ENDIF
|
||||
CATCH TO loEx
|
||||
ENDTRY
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user