Cache ANAF pe ISTORIC_CODURI_FISCALE: verificare din memorie, plasa la tacere ANAF
Verificarile de partener nu mai depind exclusiv de raspunsul ANAF: se citeste intai cache-ul din ISTORIC_CODURI_FISCALE (mutat in CONTAFIN_ORACLE), cu provenienta afisata pe ecrane (sursa / data_sursa) si cu plasa de siguranta cand ANAF tace. Ordinea cache/ANAF e configurabila; cache-ul expira. - programe/validare.prg: verificare single si pe loturi peste cache, contract 404 separat de caderea de serviciu, expirarea cache-ului, corectii la verdictul pe firma si la etichetarea CACHE_INDISP. - programe/ocautare.prg: plasa de siguranta si banda de provenienta la cautarea de partener. - programe/oproceduri_comune.prg: VERIFICA_RTVAI_DATA citeste si cache-ul. - clase/overificari.vc2: propagarea provenientei in interfata. - utile/Teste/: harness-uri de testare headless - echivalenta cache/ANAF pe 200 de coduri reale, marginile pe inactiv si TVA la incasare, mock batch ANAF, baseline D394 si sondele de diagnostic ANAF. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JCzVWfqscv1xyo5uvJiWiW
This commit is contained in:
@@ -1596,6 +1596,8 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
*< OBJECTDATA: ObjPath="_grdbase1.cInactiv.Check1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="_grdbase1.Column26.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="_grdbase1.Column26.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="_grdbase1.Column27.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="_grdbase1.Column27.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="But_verifica1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="Gridextra1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="chkMFIN" UniqueID="" Timestamp="" />
|
||||
@@ -1658,7 +1660,7 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
ADD OBJECT '_grdbase1' AS _grdbase WITH ;
|
||||
Anchor = 15, ;
|
||||
ColumnCount = 26, ;
|
||||
ColumnCount = 27, ;
|
||||
DeleteMark = .F., ;
|
||||
HeaderHeight = 32, ;
|
||||
Height = 283, ;
|
||||
@@ -1835,7 +1837,13 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
Column26.DynamicBackColor = "RGB(255,202,228)", ;
|
||||
Column26.Name = "Column26", ;
|
||||
Column26.ReadOnly = .T., ;
|
||||
Column26.Width = 150
|
||||
Column26.Width = 150, ;
|
||||
Column27.ColumnOrder = 27, ;
|
||||
Column27.ControlSource = "IIF(EMPTY(NVL(sursa,'')),'',IIF(ALLTRIM(sursa)=='ANAF','ANAF','CACHE '+DTOC(NVL(data_sursa,DATE()))+IIF(ALLTRIM(sursa)=='CACHE_INDISP',' (ANAF indisponibil)','')))", ;
|
||||
Column27.Name = "Column27", ;
|
||||
Column27.ReadOnly = .T., ;
|
||||
Column27.Visible = .T., ;
|
||||
Column27.Width = 230
|
||||
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
|
||||
|
||||
ADD OBJECT '_grdbase1.cInactiv.Check1' AS checkbox WITH ;
|
||||
@@ -2170,6 +2178,22 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
SelectedBackColor = 100,185,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT '_grdbase1.Column27.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Provenienta", ;
|
||||
Name = "Header1"
|
||||
*< END OBJECT: BaseClass="header" />
|
||||
|
||||
ADD OBJECT '_grdbase1.Column27.Text1' AS textbox WITH ;
|
||||
BackColor = 255,255,255, ;
|
||||
BorderStyle = 0, ;
|
||||
ForeColor = 0,0,0, ;
|
||||
Margin = 0, ;
|
||||
Name = "Text1", ;
|
||||
ReadOnly = .T., ;
|
||||
SelectedBackColor = 100,185,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT '_grdbase1.Column3.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "CIF/CNP", ;
|
||||
@@ -2695,7 +2719,6 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
lcConditieSuplimentara = Iif(m.llLiniaCurenta, "recno() >= " + Alltrim(Str(m.lnRecord)), ".T.")
|
||||
If m.llServiciuWebANAF
|
||||
SET STEP ON
|
||||
&& verificare serviciu web ANAF
|
||||
SELECT distinct cod_fiscal, IIF(!EMPTY(NVL(data, {})), data, DATE(m.gnAn, m.gnLuna, 1)) as data ;
|
||||
FROM crsVerificareParteneri ;
|
||||
@@ -2722,7 +2745,8 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
LOCATE FOR ALLTRIM(Strtran(cod_fiscal, loVerificare.GetCodTara(cod_fiscal),'')) = ALLTRIM(STR(.cui)) AND (EMPTY(NVL(data, {})) OR data = m.ldData)
|
||||
IF FOUND()
|
||||
Replace firma With .denumire, adresa With .adresa, datatvamfin With TRANSFORM(.data), platitortvamfin With .tva, stare With .mesaj, cod WITH ALLTRIM(STR(.cui)), ;
|
||||
tvaincasare WITH .tvaincasare, splittva WITH .splittva, inactiv WITH .inactiv
|
||||
tvaincasare WITH .tvaincasare, splittva WITH .splittva, inactiv WITH .inactiv, ;
|
||||
sursa WITH NVL(.sursa, 'ANAF'), data_sursa WITH .data_sursa
|
||||
ENDIF
|
||||
ENDWITH
|
||||
ENDSCAN && (m.lcCursorVerificareANAF)
|
||||
@@ -2887,6 +2911,20 @@ DEFINE CLASS frm_verificare_parteneri AS _frmbase OF "_frm_base.vcx"
|
||||
this._grDBASE1.HeaderHeight = 32
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Load
|
||||
*** campurile de provenienta (cache/ANAF) trebuie sa existe INAINTE ca grid-ul sa se construiasca (Load ruleaza inaintea obiectelor din forma);
|
||||
*** ALTER TABLE nu functioneaza pe acest cursor (are campuri peste 10 caractere, ex. platitortvamfin) - se rematerializeaza cu SELECT
|
||||
LOCAL lcAliasTmp
|
||||
IF TYPE('crsVerificareParteneri.sursa') = 'U'
|
||||
lcAliasTmp = 'crsVPTmp' + Sys(2015)
|
||||
SELECT *, SPACE(20) AS sursa, {} AS data_sursa FROM crsVerificareParteneri INTO CURSOR (lcAliasTmp) READWRITE
|
||||
USE IN (SELECT('crsVerificareParteneri'))
|
||||
SELECT * FROM (lcAliasTmp) INTO CURSOR crsVerificareParteneri READWRITE
|
||||
USE IN (SELECT(lcAliasTmp))
|
||||
ENDIF
|
||||
DODEFAULT()
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE meniu_dblclick
|
||||
*** Verificare cod fiscal de pe inregistrarea curenta
|
||||
Local loDate As "empty"
|
||||
|
||||
Reference in New Issue
Block a user