Merge branch 'claude/todos-roacont'

This commit is contained in:
2026-08-07 00:00:58 +03:00
8 changed files with 583 additions and 44 deletions

View File

@@ -609,12 +609,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ;
Caption = "Trimise (cu diferente Reg. Vz.)", ;
Height = 25, ;
Left = 522, ;
Left = 687, ;
Name = "chkDiferente", ;
Style = 0, ;
Top = 151, ;
Value = .F., ;
Width = 197
Width = 238
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkErori' AS _checkbox WITH ;
@@ -625,12 +625,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ;
Caption = "Trimise (cu raspuns Erori)", ;
Height = 25, ;
Left = 346, ;
Left = 470, ;
Name = "chkErori", ;
Style = 0, ;
Top = 151, ;
Value = .F., ;
Width = 170
Width = 211
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkFortareRaspunsuri' AS _checkbox WITH ;
@@ -655,12 +655,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ;
Caption = "Netrimise", ;
Height = 25, ;
Left = 112, ;
Left = 154, ;
Name = "chkNetrimise", ;
Style = 0, ;
Top = 151, ;
Value = .F., ;
Width = 79
Width = 117
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkPersFizice' AS _checkbox WITH ;
@@ -690,7 +690,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
Style = 0, ;
Top = 151, ;
Value = .F., ;
Width = 98
Width = 141
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkTrimis' AS _checkbox WITH ;
@@ -716,12 +716,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ;
Caption = "Trimise (fara raspuns)", ;
Height = 25, ;
Left = 195, ;
Left = 277, ;
Name = "chkTrimise", ;
Style = 0, ;
Top = 151, ;
Value = .F., ;
Width = 147
Width = 187
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkValidareOnline' AS _checkbox WITH ;
@@ -5363,7 +5363,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
PROCEDURE do_cauta
LOCAL lcfiltru, lcFiltru2, lcFiltru3, lcval1, lcColoana, ldData1, ldData2
Local lcData1, lcData2, llErori, llNetrimise, llPJ, llTrimise, llDiferente, lnActivePage, lcCond, lcDif2, lcDif3, lcLipsa
Local lcData1, lcData2, llErori, llNetrimise, llPJ, llTrimise, llDiferente, lnActivePage, lcCond, lcDif1, lcDif2, lcDif3, lcLipsa, lcFiltruBaza1, lcFiltruBaza2, lcFiltruBaza3, lcPJ, lcNetrimise, lcTrimise, lcErori
WAIT WINDOW 'Selectie inregistrari...' NOWAIT
@@ -5411,19 +5411,25 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
lcFiltru3 = m.lcFiltru3 + " and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF
* Filtrul de baza (fara bifele paginii 1), pentru numarul independent din caption (NumaraDiferente)
lcFiltruBaza1 = m.lcFiltru
lcPJ = [(tip_persoana=1)]
lcNetrimise = [(NVL(trimis,0) = 0)]
lcTrimise = [(trimis = 1 and data_raspuns IS NULL)]
lcErori = [(trimis = 1 and tip_mesaj_raspuns = 'ERORI FACTURA')]
IF m.llPJ
lcFiltru = m.lcfiltru + " and (tip_persoana=1)"
lcFiltru = m.lcfiltru + " and " + m.lcPJ
ENDIF
IF m.llDiferente
lcFiltru = m.lcFiltru + " and (jtotctva is null or ABS(decode(creditnote,0,1,-1) * ROUND(NVL(xtotal_cu_tva , 0.00) * decode(in_valuta,1,curs,1), 2)-NVL(jtotctva, 0.00)) > 0.15)"
ENDIF
* Bifele Diferente / Lipsa din registrul de TVA de pe paginile Primite si Trimise
* Bifele Diferente / Lipsa din registrul de TVA, folosite si de NumaraDiferente pentru numarul din caption
lcLipsa = [(jtotctva is null)]
lcDif1 = [(jtotctva is null or ABS(decode(creditnote,0,1,-1) * ROUND(NVL(xtotal_cu_tva , 0.00) * decode(in_valuta,1,curs,1), 2)-NVL(jtotctva, 0.00)) > 0.15)]
lcDif2 = [(jtotctva is not null and (NVL(nume_valuta,'RON') <> 'RON' or ABS(decode(creditnote,0,1,-1) * NVL(total_cu_tva, 0.00)-(NVL(jtotctva, 0.00)-NVL(jtva_ti, 0.00))) > 0.15))]
lcDif3 = [(jtotctva is not null and (NVL(nume_valuta,'RON') <> 'RON' or ABS(decode(creditnote,0,1,-1) * NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00)) > 0.15))]
lcFiltruBaza2 = m.lcFiltru2
lcCond = []
WITH this.pgfeFactura.page2
IF .chkDiferente.Value
@@ -5437,6 +5443,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
lcFiltru2 = m.lcFiltru2 + [ and (] + m.lcCond + [)]
ENDIF
lcFiltruBaza3 = m.lcFiltru3
lcCond = []
WITH this.pgfeFactura.page3
IF .chkDiferente.Value
@@ -5455,14 +5462,18 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
IF m.llErori
lcFiltru = m.lcfiltru + " and (NVL(trimis,0) = 0 or tip_mesaj_raspuns = 'ERORI FACTURA')"
ELSE
lcFiltru = m.lcfiltru + " and (NVL(trimis,0) = 0)"
lcFiltru = m.lcfiltru + " and " + m.lcNetrimise
ENDIF
CASE m.llTrimise
lcFiltru = m.lcfiltru + " and (trimis = 1 and data_raspuns IS NULL)"
lcFiltru = m.lcfiltru + " and " + m.lcTrimise
CASE m.llErori
lcFiltru = m.lcfiltru + " and (trimis = 1 and tip_mesaj_raspuns = 'ERORI FACTURA')"
lcFiltru = m.lcfiltru + " and " + m.lcErori
ENDCASE
IF m.llDiferente
lcFiltru = m.lcFiltru + " and (" + m.lcDif1 + ")"
ENDIF
If Empty(m.lcFiltru)
aMessagebox("Alegeti un criteriu!",0+48,"Atentie")
Return
@@ -5512,6 +5523,8 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
This.pgfeFactura.page2._grdfooter1.calctotal()
This.pgfeFactura.page3._grdfooter1.calctotal()
This.NumaraDiferente(m.lcFiltruBaza1, m.lcFiltruBaza2, m.lcFiltruBaza3, m.lcDif1, m.lcDif2, m.lcDif3, m.lcLipsa, m.lcNetrimise, m.lcTrimise, m.lcErori, m.lcPJ)
WAIT CLEAR
Return m.lcFiltru
@@ -6032,6 +6045,16 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
* Mesajul era trunchiat la 41 de caractere
This.cMesajFurnizor = SPACE(200)
* Caption de baza pentru bifele Diferente/Lipsa, refolosit de NumaraDiferente/SeteazaCaptionDiferente
This.pgfeFactura.page1.chkPJ.Tag = This.pgfeFactura.page1.chkPJ.Caption
This.pgfeFactura.page1.chkNetrimise.Tag = This.pgfeFactura.page1.chkNetrimise.Caption
This.pgfeFactura.page1.chkTrimise.Tag = This.pgfeFactura.page1.chkTrimise.Caption
This.pgfeFactura.page1.chkErori.Tag = This.pgfeFactura.page1.chkErori.Caption
This.pgfeFactura.page1.chkDiferente.Tag = This.pgfeFactura.page1.chkDiferente.Caption
This.pgfeFactura.page2.chkDiferente.Tag = This.pgfeFactura.page2.chkDiferente.Caption
This.pgfeFactura.page2.chkLipsaRegistru.Tag = This.pgfeFactura.page2.chkLipsaRegistru.Caption
This.pgfeFactura.page3.chkDiferente.Tag = This.pgfeFactura.page3.chkDiferente.Caption
This.pgfeFactura.page3.chkLipsaRegistru.Tag = This.pgfeFactura.page3.chkLipsaRegistru.Caption
DODEFAULT()
ENDPROC
@@ -6044,6 +6067,147 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
Thisform.oAnaf.AnafeFacturaServer.lTest = m.tlTest
ENDPROC
PROCEDURE NumaraDiferente
LPARAMETERS tcFiltruBaza1, tcFiltruBaza2, tcFiltruBaza3, tcDif1, tcDif2, tcDif3, tcLipsa, tcNetrimise, tcTrimise, tcErori, tcPJ
LOCAL lnActivePage, lcView, lcFiltruBaza, lcDif, llLipsa, lcSql, llSucces, lnDif, lnLipsa, lnNetrimise, lnTrimise, lnErori, lnPJ, lcCursor, llFaraBife, lnSelect, lnRec
lnActivePage = This.pgfeFactura.ActivePage
lnDif = 0
lnLipsa = 0
*!* fara nicio bifa, cursorul afisat e chiar setul de baza: numaram local, fara interogare
DO CASE
CASE m.lnActivePage = 1
lcCursor = 'crsFacturiEmise'
llFaraBife = EMPTY(This.pgfeFactura.page1.chkPJ.Value) AND EMPTY(This.pgfeFactura.page1.chkNetrimise.Value) ;
AND EMPTY(This.pgfeFactura.page1.chkTrimise.Value) AND EMPTY(This.pgfeFactura.page1.chkErori.Value) ;
AND EMPTY(This.pgfeFactura.page1.chkDiferente.Value)
CASE m.lnActivePage = 2
lcCursor = 'crsFacturiTrimise'
llFaraBife = EMPTY(This.pgfeFactura.page3.chkDiferente.Value) AND EMPTY(This.pgfeFactura.page3.chkLipsaRegistru.Value)
CASE m.lnActivePage = 3
lcCursor = 'crsFacturiPrimite'
llFaraBife = EMPTY(This.pgfeFactura.page2.chkDiferente.Value) AND EMPTY(This.pgfeFactura.page2.chkLipsaRegistru.Value)
OTHERWISE
RETURN
ENDCASE
IF m.llFaraBife AND USED(m.lcCursor)
lnSelect = SELECT()
lnRec = RECNO(m.lcCursor)
IF m.lnActivePage = 1
SELECT SUM(IIF(NVL(tip_persoana,1) = 1, 1, 0)) as npj, ;
SUM(IIF(NVL(trimis,0) = 0, 1, 0)) as nnetrimise, ;
SUM(IIF(NVL(trimis,0) = 1 AND EMPTY(NVL(data_raspuns, {})), 1, 0)) as ntrimise, ;
SUM(IIF(NVL(trimis,0) = 1 AND ALLTRIM(NVL(tip_mesaj_raspuns,'')) == 'ERORI FACTURA', 1, 0)) as nerori, ;
SUM(IIF(ISNULL(jtotctva) OR ABS(NVL(diferenta,0)) > 0.15, 1, 0)) as ndif ;
FROM crsFacturiEmise INTO CURSOR crsNumarBifeLocal NOFILTER
lnPJ = NVL(crsNumarBifeLocal.npj,0)
lnNetrimise = NVL(crsNumarBifeLocal.nnetrimise,0)
lnTrimise = NVL(crsNumarBifeLocal.ntrimise,0)
lnErori = NVL(crsNumarBifeLocal.nerori,0)
lnDif = NVL(crsNumarBifeLocal.ndif,0)
USE IN (SELECT('crsNumarBifeLocal'))
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkNetrimise, m.lnNetrimise)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkTrimise, m.lnTrimise)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkErori, m.lnErori)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkPJ, m.lnPJ)
ELSE
SELECT SUM(IIF(!ISNULL(jtotctva) AND (ALLTRIM(NVL(nume_valuta,'RON')) <> 'RON' OR ABS(NVL(diferenta,0)) > 0.15), 1, 0)) as ndif, ;
SUM(IIF(ISNULL(jtotctva), 1, 0)) as nlipsa ;
FROM (m.lcCursor) INTO CURSOR crsNumarBifeLocal NOFILTER
lnDif = NVL(crsNumarBifeLocal.ndif,0)
lnLipsa = NVL(crsNumarBifeLocal.nlipsa,0)
USE IN (SELECT('crsNumarBifeLocal'))
IF m.lnActivePage = 2
This.SeteazaCaptionDiferente(This.pgfeFactura.page3.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page3.chkLipsaRegistru, m.lnLipsa)
ELSE
This.SeteazaCaptionDiferente(This.pgfeFactura.page2.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page2.chkLipsaRegistru, m.lnLipsa)
ENDIF
ENDIF
SELECT (m.lcCursor)
IF m.lnRec > 0 AND m.lnRec <= RECCOUNT()
GO m.lnRec
ENDIF
SELECT (m.lnSelect)
RETURN
ENDIF
* Pagina 1: fiecare bifa se numara independent pe filtrul de baza, indiferent de celelalte bife
IF m.lnActivePage = 1
lnNetrimise = 0
lnTrimise = 0
lnErori = 0
lnPJ = 0
IF !EMPTY(NVL(m.tcFiltruBaza1,''))
lcSql = "select count(case when " + m.tcDif1 + " then 1 end) as ndif" + ;
", count(case when " + m.tcNetrimise + " then 1 end) as nnetrimise" + ;
", count(case when " + m.tcTrimise + " then 1 end) as ntrimise" + ;
", count(case when " + m.tcErori + " then 1 end) as nerori" + ;
", count(case when " + m.tcPJ + " then 1 end) as npj" + ;
" from anaf_vefactura_emis where 1=1 " + m.tcFiltruBaza1
llSucces = goExecutor.oExecuta(m.lcSql, 'crsNumarDiferente')
IF m.llSucces
lnDif = NVL(crsNumarDiferente.ndif,0)
lnNetrimise = NVL(crsNumarDiferente.nnetrimise,0)
lnTrimise = NVL(crsNumarDiferente.ntrimise,0)
lnErori = NVL(crsNumarDiferente.nerori,0)
lnPJ = NVL(crsNumarDiferente.npj,0)
ENDIF
ENDIF
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkNetrimise, m.lnNetrimise)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkTrimise, m.lnTrimise)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkErori, m.lnErori)
This.SeteazaCaptionDiferente(This.pgfeFactura.page1.chkPJ, m.lnPJ)
RETURN
ENDIF
DO CASE
CASE m.lnActivePage = 2
lcView = 'anaf_vefactura_trimis'
lcFiltruBaza = m.tcFiltruBaza3
lcDif = m.tcDif3
llLipsa = .T.
CASE m.lnActivePage = 3
lcView = 'anaf_vefactura_primit'
lcFiltruBaza = m.tcFiltruBaza2
lcDif = m.tcDif2
llLipsa = .T.
OTHERWISE
RETURN
ENDCASE
* Numarul se reseteaza pe 0 (caption fara paranteza) cand filtrul e gol sau interogarea esueaza
IF !EMPTY(NVL(m.lcFiltruBaza,'')) AND !EMPTY(NVL(m.lcDif,''))
lcSql = "select count(case when " + m.lcDif + " then 1 end) as ndif" + ;
IIF(m.llLipsa, ", count(case when " + m.tcLipsa + " then 1 end) as nlipsa", "") + ;
" from " + m.lcView + " where 1=1 " + m.lcFiltruBaza
llSucces = goExecutor.oExecuta(m.lcSql, 'crsNumarDiferente')
IF m.llSucces
lnDif = NVL(crsNumarDiferente.ndif,0)
IF m.llLipsa
lnLipsa = NVL(crsNumarDiferente.nlipsa,0)
ENDIF
ENDIF
ENDIF
DO CASE
CASE m.lnActivePage = 2
This.SeteazaCaptionDiferente(This.pgfeFactura.page3.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page3.chkLipsaRegistru, m.lnLipsa)
CASE m.lnActivePage = 3
This.SeteazaCaptionDiferente(This.pgfeFactura.page2.chkDiferente, m.lnDif)
This.SeteazaCaptionDiferente(This.pgfeFactura.page2.chkLipsaRegistru, m.lnLipsa)
ENDCASE
ENDPROC
PROCEDURE refreshdetaliifacturi
Lparameters tcTip
* tcTip: EMISE/TRIMISE/PRIMITE
@@ -6119,6 +6283,13 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE SeteazaCaptionDiferente
LPARAMETERS toCheck, tnNumar
LOCAL lcBaza
lcBaza = IIF(EMPTY(NVL(toCheck.Tag,'')), toCheck.Caption, toCheck.Tag)
toCheck.Caption = ALLTRIM(lcBaza) + IIF(NVL(tnNumar,0) > 0, ' (' + ALLTRIM(STR(tnNumar)) + ')', '')
ENDPROC
PROCEDURE Show
LPARAMETERS nStyle
DODEFAULT(nStyle)
@@ -6165,6 +6336,8 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
this.pgfeFactura.page2.grdFacturiPrimite.HeaderHeight = 35
this.pgfeFactura.page3.grdFacturiTrimise.HeaderHeight = 35
*!* numerele de pe bife apar de la deschidere, numarate local din cursorul deja adus
This.NumaraDiferente()
ENDPROC
@@ -8884,6 +9057,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
*m: importmodifica
*m: listarenir
*m: modificanote
*m: numaradiferenteimport
*m: scrienote
*p: lprimite
*p: nidborderou
@@ -9098,12 +9272,12 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ;
Caption = "Cu diferente Reg. TVA", ;
Height = 18, ;
Left = 180, ;
Left = 190, ;
Name = "chkDiferente", ;
Style = 0, ;
Top = 35, ;
Value = .F., ;
Width = 159
Width = 191
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkDistribuieDiscount' AS _checkbox WITH ;
@@ -9136,7 +9310,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
Style = 0, ;
Top = 35, ;
Value = .F., ;
Width = 159
Width = 174
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkTVAIncasare' AS _checkbox WITH ;
@@ -11531,7 +11705,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE do_cauta
Local lcCond, lcDif, lcLipsa
Local lcCond, lcDif, lcLipsa, lcFiltruBaza
lcFiltru = '' && filtru facturi primite
* DACA FILTRUL NU CONTINE DATA_ACT, SELECTEZ DOAR INREGISTRARILE DIN LUNA CURENTA PANA LA ZI
@@ -11547,6 +11721,14 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
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
IF LEN(THISFORM.filtru_pretty)>0
lcFiltru = m.lcFiltru + " and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF
* Filtrul de baza (fara chkDiferente/chkLipsaRegistru), pentru numarul independent din caption
lcFiltruBaza = m.lcFiltru
* Bifele Diferente / Lipsa din registrul de TVA
lcLipsa = [(jtotctva is null)]
lcDif = [(jtotctva is not null and (NVL(nume_valuta,'RON') <> 'RON' or ABS(decode(creditnote,0,1,-1) * NVL(total_cu_tva,0.00) - (NVL(jtotctva,0.00) - NVL(jtva_ti,0.00))) > 0.15))]
@@ -11561,11 +11743,6 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
lcFiltru = m.lcFiltru + [ and (] + m.lcCond + [)]
ENDIF
* Filtre buton cautare
IF LEN(THISFORM.filtru_pretty)>0
lcFiltru = m.lcFiltru + " and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF
If Empty(m.lcFiltru)
aMessagebox("Alegeti un criteriu!",0+48,"Atentie")
Return
@@ -11584,6 +11761,8 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDIF
This.NumaraDiferenteImport(m.lcFiltruBaza, m.lcDif, m.lcLipsa)
Return m.lcFiltru
ENDPROC
@@ -12988,6 +13167,10 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
this.grdFacturi.SetAll("DynamicForeColor","IIF(creditnote = 1, RGB(225,0,0), RGB(0,0,0))", "Column")
this.gridextra1.setup()
this.gridextra2.setup()
* Caption de baza pentru bifele Diferente/Lipsa, refolosit de NumaraDiferenteImport
This.chkDiferente.Tag = This.chkDiferente.Caption
This.chkLipsaRegistru.Tag = This.chkLipsaRegistru.Caption
ENDPROC
PROCEDURE KeyPress
@@ -13179,6 +13362,51 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE NumaraDiferenteImport
LPARAMETERS tcFiltruBaza, tcDif, tcLipsa
LOCAL lcView, lcSql, llSucces, lnDif, lnLipsa, lnSelect, lnRec
lnDif = 0
lnLipsa = 0
*!* fara nicio bifa, cursorul afisat e chiar setul de baza: numaram local, fara interogare
IF EMPTY(This.chkDiferente.Value) AND EMPTY(This.chkLipsaRegistru.Value) AND USED('crsFacturi')
lnSelect = SELECT()
lnRec = RECNO('crsFacturi')
SELECT SUM(IIF(!ISNULL(jtotctva) AND (ALLTRIM(NVL(nume_valuta,'RON')) <> 'RON' OR ABS(NVL(diferenta,0)) > 0.15), 1, 0)) as ndif, ;
SUM(IIF(ISNULL(jtotctva), 1, 0)) as nlipsa ;
FROM crsFacturi INTO CURSOR crsNumarBifeLocal NOFILTER
lnDif = NVL(crsNumarBifeLocal.ndif,0)
lnLipsa = NVL(crsNumarBifeLocal.nlipsa,0)
USE IN (SELECT('crsNumarBifeLocal'))
This.chkDiferente.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkDiferente.Tag,'')), This.chkDiferente.Caption, This.chkDiferente.Tag)) + IIF(m.lnDif > 0, ' (' + ALLTRIM(STR(m.lnDif)) + ')', '')
This.chkLipsaRegistru.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkLipsaRegistru.Tag,'')), This.chkLipsaRegistru.Caption, This.chkLipsaRegistru.Tag)) + IIF(m.lnLipsa > 0, ' (' + ALLTRIM(STR(m.lnLipsa)) + ')', '')
SELECT crsFacturi
IF m.lnRec > 0 AND m.lnRec <= RECCOUNT()
GO m.lnRec
ENDIF
SELECT (m.lnSelect)
RETURN
ENDIF
lcView = IIF(This.lPrimite, 'anaf_vefactura_primit', 'anaf_vefactura_trimis')
* Numarul se reseteaza pe 0 (caption fara paranteza) cand filtrul e gol sau interogarea esueaza
IF !EMPTY(NVL(m.tcFiltruBaza,'')) AND !EMPTY(NVL(m.tcDif,''))
lcSql = "select count(case when " + m.tcDif + " then 1 end) as ndif" + ;
", count(case when " + m.tcLipsa + " then 1 end) as nlipsa" + ;
" from " + m.lcView + " where 1=1 " + m.tcFiltruBaza
llSucces = goExecutor.oExecuta(m.lcSql, 'crsNumarDiferenteImport')
IF m.llSucces
lnDif = NVL(crsNumarDiferenteImport.ndif,0)
lnLipsa = NVL(crsNumarDiferenteImport.nlipsa,0)
ENDIF
ENDIF
This.chkDiferente.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkDiferente.Tag,'')), This.chkDiferente.Caption, This.chkDiferente.Tag)) + IIF(m.lnDif > 0, ' (' + ALLTRIM(STR(m.lnDif)) + ')', '')
This.chkLipsaRegistru.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkLipsaRegistru.Tag,'')), This.chkLipsaRegistru.Caption, This.chkLipsaRegistru.Tag)) + IIF(m.lnLipsa > 0, ' (' + ALLTRIM(STR(m.lnLipsa)) + ')', '')
ENDPROC
PROCEDURE scrienote
ENDPROC
@@ -13194,6 +13422,8 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
Thisform.CompleteazaFactura() && cap factura
Thisform.actualizeaza_grid2()
Thisform.CompleteazaDetaliiFactura() && detalii factura
*!* numerele de pe bife apar de la deschidere, numarate local din cursorul deja adus
This.NumaraDiferenteImport()
ENDPROC

View File

@@ -13065,13 +13065,16 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE do_modifica_explicatie_tva
LOCAL lnCotaFiltru
If tact.cu_tva = 1
*!* modificare ROACONT v 2.4.4
*!* filtreaza explicatiile dupa cota TVA a liniei curente; proc_tva e in forma 1.19, cota 0/gol = fara filtru
lnCotaFiltru = Round((Nvl(tact.proc_tva,0) - 1) * 100, 2)
If TYPE('tact.tipnota') = 'N' AND tact.tipnota = 1
*!* explicatii TVA exigibile din JC ( 1 ), JV ( 3 ) sau toate ( 5 )
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1),,,iif(tact.scc=[4428],1,iif(tact.scd=[4428],3,5)))
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1),,,iif(tact.scc=[4428],1,iif(tact.scd=[4428],3,5)),lnCotaFiltru)
Else
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1))
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1),,,,lnCotaFiltru)
Endif
*!* locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1))
*!* modificare ROACONT v 2.4.4 ^

View File

@@ -3063,6 +3063,31 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
*< OBJECTDATA: ObjPath="_grdbase1.cDataOraV.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cUtilV.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cUtilV.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataOravAnaf.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataOravAnaf.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cTvaIncasare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cTvaIncasare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cTvaIncasare._checkbox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cSplitTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cSplitTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cSplitTva._checkbox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cInactiv.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cInactiv.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cInactiv._checkbox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInceputScpTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInceputScpTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataSfarsitScpTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataSfarsitScpTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataAnulImpScpTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataAnulImpScpTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInceputTvaInc.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInceputTvaInc.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataSfarsitTvaInc.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataSfarsitTvaInc.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInactivare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataInactivare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataReactivare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cDataReactivare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Gridextra1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblInfo" UniqueID="" Timestamp="" />
@@ -3112,7 +3137,7 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
ADD OBJECT '_grdbase1' AS _grdbase WITH ;
Anchor = 15, ;
ColumnCount = 16, ;
ColumnCount = 27, ;
DeleteMark = .F., ;
HeaderHeight = 32, ;
Height = 190, ;
@@ -3157,19 +3182,19 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column6.ControlSource = "codpostal", ;
Column6.Name = "cCodPostal", ;
Column6.ReadOnly = .T., ;
Column6.Visible = .T., ;
Column6.Visible = .F., ;
Column6.Width = 75, ;
Column7.ColumnOrder = 11, ;
Column7.ControlSource = "telefon", ;
Column7.Name = "cTelefon", ;
Column7.ReadOnly = .T., ;
Column7.Visible = .T., ;
Column7.Visible = .F., ;
Column7.Width = 75, ;
Column8.ColumnOrder = 12, ;
Column8.ControlSource = "fax", ;
Column8.Name = "cFax", ;
Column8.ReadOnly = .T., ;
Column8.Visible = .T., ;
Column8.Visible = .F., ;
Column8.Width = 75, ;
Column9.ColumnOrder = 6, ;
Column9.ControlSource = "platitortvavies", ;
@@ -3177,7 +3202,7 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column9.Name = "cPlatitorTVAVies", ;
Column9.ReadOnly = .T., ;
Column9.Sparse = .F., ;
Column9.Visible = .T., ;
Column9.Visible = .F., ;
Column9.Width = 54, ;
Column10.ColumnOrder = 5, ;
Column10.ControlSource = "datatvamfin", ;
@@ -3210,7 +3235,57 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column16.ControlSource = "utilv", ;
Column16.Name = "cUtilV", ;
Column16.ReadOnly = .T., ;
Column16.Width = 114
Column16.Width = 114, ;
Column17.ControlSource = "dataorav_anaf", ;
Column17.Name = "cDataOravAnaf", ;
Column17.ReadOnly = .T., ;
Column17.Width = 85, ;
Column18.ControlSource = "tvaincasare", ;
Column18.CurrentControl = "_checkbox1", ;
Column18.Name = "cTvaIncasare", ;
Column18.ReadOnly = .T., ;
Column18.Sparse = .F., ;
Column18.Width = 54, ;
Column19.ControlSource = "splittva", ;
Column19.CurrentControl = "_checkbox1", ;
Column19.Name = "cSplitTva", ;
Column19.ReadOnly = .T., ;
Column19.Sparse = .F., ;
Column19.Width = 54, ;
Column20.ControlSource = "inactiv", ;
Column20.CurrentControl = "_checkbox1", ;
Column20.Name = "cInactiv", ;
Column20.ReadOnly = .T., ;
Column20.Sparse = .F., ;
Column20.Width = 54, ;
Column21.ControlSource = "data_inceput_scptva", ;
Column21.Name = "cDataInceputScpTva", ;
Column21.ReadOnly = .T., ;
Column21.Width = 85, ;
Column22.ControlSource = "data_sfarsit_scptva", ;
Column22.Name = "cDataSfarsitScpTva", ;
Column22.ReadOnly = .T., ;
Column22.Width = 85, ;
Column23.ControlSource = "data_anul_imp_scptva", ;
Column23.Name = "cDataAnulImpScpTva", ;
Column23.ReadOnly = .T., ;
Column23.Width = 85, ;
Column24.ControlSource = "data_inceput_tvainc", ;
Column24.Name = "cDataInceputTvaInc", ;
Column24.ReadOnly = .T., ;
Column24.Width = 85, ;
Column25.ControlSource = "data_sfarsit_tvainc", ;
Column25.Name = "cDataSfarsitTvaInc", ;
Column25.ReadOnly = .T., ;
Column25.Width = 85, ;
Column26.ControlSource = "data_inactivare", ;
Column26.Name = "cDataInactivare", ;
Column26.ReadOnly = .T., ;
Column26.Width = 85, ;
Column27.ControlSource = "data_reactivare", ;
Column27.Name = "cDataReactivare", ;
Column27.ReadOnly = .T., ;
Column27.Width = 85
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT '_grdbase1.cAdresa.Header1' AS header WITH ;
@@ -3261,6 +3336,70 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataAnulImpScpTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Anulare scutire TVA", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataAnulImpScpTva.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataInactivare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data inactivare", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataInactivare.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataInceputScpTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Inceput scutire TVA", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataInceputScpTva.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataInceputTvaInc.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Inceput TVA incasare", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataInceputTvaInc.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataOra.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Creat la", ;
@@ -3289,6 +3428,69 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataOravAnaf.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data ANAF", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataOravAnaf.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataReactivare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data reactivare", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataReactivare.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataSfarsitScpTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Sfarsit scutire TVA", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataSfarsitScpTva.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataSfarsitTvaInc.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Sfarsit TVA incasare", ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cDataSfarsitTvaInc.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cDataTVAMfin.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data TVA MFIN", ;
@@ -3337,6 +3539,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cInactiv._checkbox1' AS _checkbox WITH ;
Alignment = 2, ;
Caption = "", ;
Left = 19, ;
Name = "_checkbox1", ;
ReadOnly = .T., ;
Top = 96
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT '_grdbase1.cInactiv.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Inactiv", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cInactiv.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cJudet.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Judet", ;
@@ -3418,6 +3643,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cSplitTva._checkbox1' AS _checkbox WITH ;
Alignment = 2, ;
Caption = "", ;
Left = 19, ;
Name = "_checkbox1", ;
ReadOnly = .T., ;
Top = 120
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT '_grdbase1.cSplitTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Split TVA", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cSplitTva.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cStare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Stare", ;
@@ -3448,6 +3696,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cTvaIncasare._checkbox1' AS _checkbox WITH ;
Alignment = 2, ;
Caption = "", ;
Left = 19, ;
Name = "_checkbox1", ;
ReadOnly = .T., ;
Top = 144
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT '_grdbase1.cTvaIncasare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "TVA incasare", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grdbase1.cTvaIncasare.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT '_grdbase1.cUtil.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Creat de", ;

View File

@@ -16,6 +16,13 @@ Reguli confirmate de Marius (24.07.2026):
final (conventia existenta).
- Aplicarea prin ODBC/`goExecutor`: sintaxa SQL*Plus `exec pachet.procedura(...)` nu functioneaza
— foloseste `begin pachet.procedura(...); end;`.
- **Rularea manuala se face conectat pe schema tinta** (`CONTAFIN_ORACLE` pentru `co_`, schema firmei
pentru `ff_`), niciodata cu un user de lucru. DDL-ul neprefixat (`create or replace package ...`)
merge pe schema conexiunii: pe alt user iese `PLS-00304` si ramane un obiect orfan, iar pachetul
tinta ramane neschimbat. In acelasi script, DML-ul pe tabele cu sinonim public nimereste tabela
reala si pare ca totul a mers — verifica intotdeauna iesirea sqlplus si `all_objects`.
`PACK_UPDATE` face `CONNECT <schema>/<parola>@ROA` real per schema (`UpdateSchemaSQLPLUS`, parola
din `SERVER_INFO`), deci scriptul neprefixat e corect pentru livrare.
## Sursa de referinta pentru DDL: MARIUSM_AUTO, nu productia
@@ -52,6 +59,8 @@ Marius ce nu e aplicat. Exportul sursei de referinta: `oracle_export.md`.
- **Fara `select` de raportare in script** — nu-l citeste nimeni la aplicare si poate da eroare.
Verificarile se fac inainte, separat, pe schema de lucru.
- **Idempotent**: rulat de doua ori nu mai schimba nimic (`merge`, `where <coloana> is null`).
- **Un pachet sta singur in scriptul lui**, fara alt DDL sau DML alaturi: modificarile de tabele si
curateniile de date merg in scripturi separate, cu numar propriu.
## Compatibilitate cu serverele clientilor

View File

@@ -33,3 +33,9 @@ Ca sa vand un articol, trebuie sa il introduc in nomenclatorul de articole oblig
Am vazut la SAGA (alt ERP popular) ca in nomenclatorul de articole au cateva coloane de multe preturi, probabil pentru mai multe liste de preturi (todos-articole-preturi-saga.png)
Ideea este sa se poata face configurarea mult mai repede, eficient, dintr-un singur loc, ca sa se poata face factura mai rapid. Acum este nevoie de mult suport tehnic/instructaj si configurari pana se ajunge la facturare, si daca apare un articol diferit (ex: vanzare auto, in loc de marfa in mod normal), trebuie creata o politica noua de preturi, ca sa ii spun ce nota contabila de vanzare (4111 = 7xx) sa aiba aiba articolul respectiv.
13. ROAFACTURARE - FORMULARUL DE FACTURARE SA INCLUDA SI FORMULARUL DATE_FACTURA/DATE_AVIZ ETC. SI SA NU MAI INCARCE DE PE SERVER TOATE ARTICOLELE DIN TOATE POLITICELE DE PRETURI - INTRUCAT ESTE POSIBIL SA FIE SI MII DE ARTICOLE SI DUREAZA MULT SA LE ADUCA DE PE SERVER. AM INCEPUT DEJA MAI DEMULT UN FORMULAR UNIFICAT, DAR ERA MULT DE INTEGRAT DIN FORMULARUL VECHI.
FRONTEND SIMILAR PE CARE IL DORESC ESTE IN ROAACPRO > FACTURA, SAU IN IMPORTUL DE EFACTURA, IN CARE AM INTEGRAT DATELE FACTURI, DOAR CA FACTURAREA DIN ROAFACTURARE ESTE MAI COMPLEXA - ESTE FOLOSITA SI PENTRU POLITICI DE PRETURI SI PENTRU CONTRACT/COMANDA/AVIZ/RETUR ETC.
INTERESUL MEU ESTE SA SIMPLIFIC INTERFATA, SA FIE MAI EFICIENTA, SA NU FIE 2 FORMULARE PENTRU FACTURA, SA FAC MAI RAPID.
14. ROACONT - efactura se salveaza xml detaliat si xml zip efactura si ocupa mult spatiu. vreau sa stiu cand nu mai este nevoie de xml detaliat si daca se poate curata tabelul ca sa nu mai ocupe spatiu, cel putin pentru facturi mai vechi. este important zip pentru ca este factura originala anaf.

View File

@@ -197,6 +197,9 @@ Procedure ANAF_StarePartener
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, "lTvaIncasareANAF", Iif(Pemstatus(loRezANAF, 'lTvaIncasare', 5), Nvl(loRezANAF.lTvaIncasare, .F.), .F.))
Addproperty(loOut, "dInceputTvaInc", Iif(Pemstatus(loRezANAF, 'dInceputTvaInc', 5), Nvl(loRezANAF.dInceputTvaInc, {}), {}))
Addproperty(loOut, "dSfarsitTvaInc", Iif(Pemstatus(loRezANAF, 'dSfarsitTvaInc', 5), Nvl(loRezANAF.dSfarsitTvaInc, {}), {}))
Addproperty(loOut, "dData", m.ldData)
Addproperty(loOut, "cSursa", Iif(Pemstatus(loRezANAF, 'cSursa', 5), loRezANAF.cSursa, 'ANAF'))
Addproperty(loOut, "dDataSursa", Iif(Pemstatus(loRezANAF, 'dDataSursa', 5), Nvl(loRezANAF.dDataSursa, {}), {}))
@@ -233,6 +236,9 @@ Procedure ANAF_CitesteDinIstoric
Addproperty(loRez, "dSfarsitScpTVA", Nvl(data_sfarsit_ScpTVA, {}))
Addproperty(loRez, "dAnulareScpTVA", Nvl(data_anul_imp_ScpTVA, {}))
Addproperty(loRez, "cMesajScpTVA", Nvl(mesaj_ScpTVA, ""))
Addproperty(loRez, "lTvaIncasare", Nvl(statusTvaIncasare, .F.))
Addproperty(loRez, "dInceputTvaInc", Nvl(dataInceputTvaInc, {}))
Addproperty(loRez, "dSfarsitTvaInc", Nvl(dataSfarsitTvaInc, {}))
Addproperty(loRez, "cSursa", m.tcSursa)
Addproperty(loRez, "dDataSursa", Nvl(data_sursa, {}))
Endif
@@ -844,7 +850,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
PROCEDURE TextStare
Lparameters toStare, tcPerioada
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Nvl(m.tcPerioada, '') + Iif(toStare.lInactivANAF, ', Inactiv', '')
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Nvl(m.tcPerioada, '') + Iif(toStare.lInactivANAF, ', Inactiv', '') + Iif(toStare.lTvaIncasareANAF, ', TVA la incasare', '')
ENDPROC
PROCEDURE SufixPerioadaTVA
@@ -913,6 +919,11 @@ DEFINE CLASS anaf_verif_cautare AS Custom
If !Empty(toStare.cMesajScpTVA)
lcTxt = m.lcTxt + 'Mesaj ANAF: ' + Alltrim(toStare.cMesajScpTVA) + Chr(13)
Endif
If toStare.lTvaIncasareANAF
lcTxt = m.lcTxt + 'TVA la incasare' + ;
Iif(!Empty(toStare.dInceputTvaInc), ' din ' + Dtoc(toStare.dInceputTvaInc), '') + ;
Iif(!Empty(toStare.dSfarsitTvaInc), ' pana la ' + Dtoc(toStare.dSfarsitTvaInc), '') + Chr(13)
Endif
If !Empty(m.lcTxt)
lcTxt = m.lcTxt + Chr(13)
Endif
@@ -3161,7 +3172,7 @@ Endproc && caut_politici_curente_util
************************************** SFARSIT: caut_politici_curente_util **************************************
***************************************** INCEPUT:caut_explicatie_tva *******************************************
Function caut_explicatie_tva
Parameters tnIdJtva, tnPornire, tlDesktop, tlTipEx
Parameters tnIdJtva, tnPornire, tlDesktop, tlTipEx, tnCotaTva
*!* tlTipEx = 0 - toate
*!* = 1 - doar TVA exigibil din JC
*!* = 2 - doar TVA neexigibil din JC
@@ -3207,6 +3218,10 @@ Function caut_explicatie_tva
lcFiltruOriginal = [id_jtva_coloana in (select id_tva from vjtva_coloane where ] + ;
[id_jtva_ex is not null)]
Endcase
*** filtru suplimentar pe cota TVA a liniei curente; fara procent (0/gol) se pastreaza lista completa
If Vartype(tnCotaTva) = 'N' And tnCotaTva > 0
lcFiltruOriginal = lcFiltruOriginal + [ and cota_tva = ] + Alltrim(Str(tnCotaTva, 10, 2))
Endif
*!* *!* If tnIdJtva > 0
*!* *!* lcFiltruOriginal = [jc * 4 + jv * 2 + decode(afisat,0,0,1) in ] + ;
*!* *!* [(select jc * 4 + jv * 2 + decode(afisat,0,0,1) from ] + gcS + [.vjtva_coloane ] + ;

View File

@@ -4618,7 +4618,9 @@ Procedure verificare_parteneri_istoric
Endif
Text To lcSql Noshow
select id, dataora, id_util, dataorav, id_utilv, cod_fiscal, firma, adresa, judet, regcom, codpostal, telefon, fax, datatvamfin, platitortvamfin, stare, platitortvavies, util, utilv
select id, dataora, id_util, dataorav, id_utilv, cod_fiscal, firma, adresa, judet, regcom, codpostal, telefon, fax, datatvamfin, platitortvamfin, stare, platitortvavies,
dataorav_anaf, tvaincasare, splittva, inactiv, data_inceput_scptva, data_sfarsit_scptva, data_anul_imp_scptva, data_inceput_tvainc, data_sfarsit_tvainc, data_inactivare, data_reactivare,
util, utilv
from vistoric_coduri_fiscale
where cod_fiscal = ?pcCodFiscal
Endtext

View File

@@ -1741,6 +1741,9 @@ Function ANAF_VerdictDinCursor
Addproperty(loResult, "dSfarsitScpTVA", Nvl(data_sfarsit_ScpTVA, {}))
Addproperty(loResult, "dAnulareScpTVA", Nvl(data_anul_imp_ScpTVA, {}))
Addproperty(loResult, "cMesajScpTVA", Nvl(mesaj_ScpTVA, ""))
Addproperty(loResult, "lTvaIncasare", Nvl(tvaincasare, .F.))
Addproperty(loResult, "dInceputTvaInc", Nvl(dataInceputTvaInc, {}))
Addproperty(loResult, "dSfarsitTvaInc", Nvl(dataSfarsitTvaInc, {}))
Else
If m.lnReccountTemp = 1 And Empty(denumire) And Nvl(cui, 0) = m.tnCuiCautat
tlNegasit = .T.
@@ -2669,10 +2672,10 @@ Define Class VerificareANAF As Custom
lnRecnoInit = Recno()
Scan For cui <> 0 And Left(Nvl(sursa, ''), 5) <> 'CACHE'
pcCodFiscal = Transform(cui)
pcFirma = Nvl(firma, '')
pcAdresa = Nvl(adresa, '')
pcJudet = Nvl(judet, '')
pcRegCom = Nvl(nrRegCom, '')
pcFirma = Alltrim(Nvl(firma, ''))
pcAdresa = Alltrim(Nvl(adresa, ''))
pcJudet = Alltrim(Nvl(judet, ''))
pcRegCom = Alltrim(Nvl(nrRegCom, ''))
pcCodPostal = ''
pcTelefon = ''
pcFax = ''