Borderou eFactura: potrivire cu registrul de TVA rapida si corecta
Potrivirea pe numar compara nract cu grupurile de cifre extrase din xnumar_act, in loc sa aplice un regex peste nract. Predicatul devine sargabil, deci foloseste IDX_JC2007_003/IDX_JV2007_003 in loc sa scaneze toata luna din jurnal pentru fiecare factura: borderoul de facturi trimise trece de la 97 de secunde la sub una (masurat pe o firma cu 6006 facturi si 6466 randuri in jurnal). Rezerva pe suma egala se pastreaza, dar in view se leaga prin COALESCE, nu prin OR: se evalueaza doar pentru facturile pe care numarul nu le-a gasit. Legata prin OR, potrivea nediferentiat orice document cu aceeasi suma la acelasi partener in aceeasi zi - pana la 49 de documente pentru o factura - si afisa o "Diferenta" gresita. jcnt si coloana "Pot." se elimina: dupa corectarea potrivirii numarul de documente potrivite e practic intotdeauna 1, iar starea "nu e in registru" se citeste din jtotctva IS NULL. jtotctva se declara nullable in cursor, altfel NULL-ul devine 0 si randurile fara potrivire nu s-ar mai colora. Pragul de la care un rand devine galben urca de la 0.01 la 0.15 lei: la 0.01 ieseau 841 de randuri galbene din 6006, toate diferente de rotunjire sub 0.11 lei. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FW7zDopcHo2fHq5L53MjMM
This commit is contained in:
@@ -5295,7 +5295,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
PROCEDURE do_cauta
|
||||
LOCAL lcfiltru, lcFiltru2, lcFiltru3, lcval1, lcColoana, ldData1, ldData2
|
||||
Local lcData1, llErori, llNetrimise, llPJ, llTrimise, llDiferente, lnActivePage
|
||||
Local lcData1, lcData2, llErori, llNetrimise, llPJ, llTrimise, llDiferente, lnActivePage
|
||||
|
||||
WAIT WINDOW 'Selectie inregistrari...' NOWAIT
|
||||
|
||||
@@ -5322,9 +5322,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
IF !('DATA_ACT'$upper(THISFORM.filtru_pretty) OR 'DATA_TRIMIS'$upper(THISFORM.filtru_pretty) )
|
||||
lcData1 = '01' + PADL(INT(m.gnLuna),2,'0') + ALLTRIM(STR(m.gnAn))
|
||||
*!* data_act pe interval (nu extract(year/month...)) ca sa poata folosi IDX_ANAF_EFACTURA_1(FACTURA_EMISA,XDATA_ACT,DATA_RASPUNS)
|
||||
ldData1 = GOMONTH(m.ldData1, 1)
|
||||
lcData2 = '01' + PADL(MONTH(m.ldData1),2,'0') + ALLTRIM(STR(YEAR(m.ldData1)))
|
||||
lcFiltru = m.lcFiltru + [ and ((extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) OR (trimis = 1 and tip_mesaj_raspuns is null and extract(year from data_act) >=2023))]
|
||||
lcFiltru2 = m.lcFiltru2 + [ and ((extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
lcFiltru3 = m.lcFiltru3 + [ and ((extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
lcFiltru2 = m.lcFiltru2 + [ and ((data_act >= to_date('] + m.lcData1 + [','ddmmyyyy') and data_act < to_date('] + m.lcData2 + [','ddmmyyyy')) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
lcFiltru3 = m.lcFiltru3 + [ and ((data_act >= to_date('] + m.lcData1 + [','ddmmyyyy') and data_act < to_date('] + m.lcData2 + [','ddmmyyyy')) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -6031,12 +6034,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
ENDWITH
|
||||
|
||||
WITH this.pgfeFactura.page3.grdFacturiTrimise
|
||||
.SetAll("DynamicBackColor","IIF(diferenta <> 0, RGB(225,225,225), RGB(255,255,255))", "Column")
|
||||
.SetAll("DynamicBackColor","IIF(ISNULL(jtotctva), RGB(225,225,225), IIF(ISNULL(diferenta) OR ABS(NVL(diferenta,0)) > 0.15, RGB(255,235,180), RGB(255,255,255)))", "Column")
|
||||
.SetAll("DynamicForeColor","IIF(creditnote = 1, RGB(225,0,0), RGB(0,0,0))", "Column")
|
||||
ENDWITH
|
||||
|
||||
WITH this.pgfeFactura.page2.grdFacturiPrimite
|
||||
.SetAll("DynamicBackColor","IIF(diferenta <> 0, RGB(225,225,225), RGB(255,255,255))", "Column")
|
||||
.SetAll("DynamicBackColor","IIF(ISNULL(jtotctva), RGB(225,225,225), IIF(ISNULL(diferenta) OR ABS(NVL(diferenta,0)) > 0.15, RGB(255,235,180), RGB(255,255,255)))", "Column")
|
||||
.SetAll("DynamicForeColor","IIF(creditnote = 1, RGB(225,0,0), RGB(0,0,0))", "Column")
|
||||
ENDWITH
|
||||
|
||||
@@ -11385,8 +11388,10 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
IF !('DATA_ACT'$upper(THISFORM.filtru_pretty) OR 'DATA_TRIMIS'$upper(THISFORM.filtru_pretty) )
|
||||
lcData1 = '01' + PADL(INT(m.gnLuna),2,'0') + ALLTRIM(STR(m.gnAn))
|
||||
|
||||
lcFiltru = m.lcFiltru + [ and ((extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
*!* data_act pe interval (nu extract(year/month...)) ca sa poata folosi IDX_ANAF_EFACTURA_1(FACTURA_EMISA,XDATA_ACT,DATA_RASPUNS)
|
||||
ldData1 = GOMONTH(m.ldData1, 1)
|
||||
lcData2 = '01' + PADL(MONTH(m.ldData1),2,'0') + ALLTRIM(STR(YEAR(m.ldData1)))
|
||||
lcFiltru = m.lcFiltru + [ and ((data_act >= to_date('] + m.lcData1 + [','ddmmyyyy') and data_act < to_date('] + m.lcData2 + [','ddmmyyyy')) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy')))]
|
||||
ENDIF
|
||||
|
||||
* Filtre buton cautare
|
||||
|
||||
Reference in New Issue
Block a user