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, ; BackStyle = 1, ;
Caption = "Trimise (cu diferente Reg. Vz.)", ; Caption = "Trimise (cu diferente Reg. Vz.)", ;
Height = 25, ; Height = 25, ;
Left = 522, ; Left = 687, ;
Name = "chkDiferente", ; Name = "chkDiferente", ;
Style = 0, ; Style = 0, ;
Top = 151, ; Top = 151, ;
Value = .F., ; Value = .F., ;
Width = 197 Width = 238
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkErori' AS _checkbox WITH ; ADD OBJECT 'pgfeFactura.Page1.chkErori' AS _checkbox WITH ;
@@ -625,12 +625,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ; BackStyle = 1, ;
Caption = "Trimise (cu raspuns Erori)", ; Caption = "Trimise (cu raspuns Erori)", ;
Height = 25, ; Height = 25, ;
Left = 346, ; Left = 470, ;
Name = "chkErori", ; Name = "chkErori", ;
Style = 0, ; Style = 0, ;
Top = 151, ; Top = 151, ;
Value = .F., ; Value = .F., ;
Width = 170 Width = 211
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkFortareRaspunsuri' AS _checkbox WITH ; ADD OBJECT 'pgfeFactura.Page1.chkFortareRaspunsuri' AS _checkbox WITH ;
@@ -655,12 +655,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ; BackStyle = 1, ;
Caption = "Netrimise", ; Caption = "Netrimise", ;
Height = 25, ; Height = 25, ;
Left = 112, ; Left = 154, ;
Name = "chkNetrimise", ; Name = "chkNetrimise", ;
Style = 0, ; Style = 0, ;
Top = 151, ; Top = 151, ;
Value = .F., ; Value = .F., ;
Width = 79 Width = 117
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkPersFizice' AS _checkbox WITH ; ADD OBJECT 'pgfeFactura.Page1.chkPersFizice' AS _checkbox WITH ;
@@ -690,7 +690,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
Style = 0, ; Style = 0, ;
Top = 151, ; Top = 151, ;
Value = .F., ; Value = .F., ;
Width = 98 Width = 141
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkTrimis' AS _checkbox WITH ; ADD OBJECT 'pgfeFactura.Page1.chkTrimis' AS _checkbox WITH ;
@@ -716,12 +716,12 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ; BackStyle = 1, ;
Caption = "Trimise (fara raspuns)", ; Caption = "Trimise (fara raspuns)", ;
Height = 25, ; Height = 25, ;
Left = 195, ; Left = 277, ;
Name = "chkTrimise", ; Name = "chkTrimise", ;
Style = 0, ; Style = 0, ;
Top = 151, ; Top = 151, ;
Value = .F., ; Value = .F., ;
Width = 147 Width = 187
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'pgfeFactura.Page1.chkValidareOnline' AS _checkbox WITH ; 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 PROCEDURE do_cauta
LOCAL lcfiltru, lcFiltru2, lcFiltru3, lcval1, lcColoana, ldData1, ldData2 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 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) + ")" lcFiltru3 = m.lcFiltru3 + " and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF 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 IF m.llPJ
lcFiltru = m.lcfiltru + " and (tip_persoana=1)" lcFiltru = m.lcfiltru + " and " + m.lcPJ
ENDIF ENDIF
IF m.llDiferente * Bifele Diferente / Lipsa din registrul de TVA, folosite si de NumaraDiferente pentru numarul din caption
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
lcLipsa = [(jtotctva is null)] 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))] 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))] 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 = [] lcCond = []
WITH this.pgfeFactura.page2 WITH this.pgfeFactura.page2
IF .chkDiferente.Value IF .chkDiferente.Value
@@ -5437,6 +5443,7 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
lcFiltru2 = m.lcFiltru2 + [ and (] + m.lcCond + [)] lcFiltru2 = m.lcFiltru2 + [ and (] + m.lcCond + [)]
ENDIF ENDIF
lcFiltruBaza3 = m.lcFiltru3
lcCond = [] lcCond = []
WITH this.pgfeFactura.page3 WITH this.pgfeFactura.page3
IF .chkDiferente.Value IF .chkDiferente.Value
@@ -5455,14 +5462,18 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
IF m.llErori IF m.llErori
lcFiltru = m.lcfiltru + " and (NVL(trimis,0) = 0 or tip_mesaj_raspuns = 'ERORI FACTURA')" lcFiltru = m.lcfiltru + " and (NVL(trimis,0) = 0 or tip_mesaj_raspuns = 'ERORI FACTURA')"
ELSE ELSE
lcFiltru = m.lcfiltru + " and (NVL(trimis,0) = 0)" lcFiltru = m.lcfiltru + " and " + m.lcNetrimise
ENDIF ENDIF
CASE m.llTrimise CASE m.llTrimise
lcFiltru = m.lcfiltru + " and (trimis = 1 and data_raspuns IS NULL)" lcFiltru = m.lcfiltru + " and " + m.lcTrimise
CASE m.llErori CASE m.llErori
lcFiltru = m.lcfiltru + " and (trimis = 1 and tip_mesaj_raspuns = 'ERORI FACTURA')" lcFiltru = m.lcfiltru + " and " + m.lcErori
ENDCASE ENDCASE
IF m.llDiferente
lcFiltru = m.lcFiltru + " and (" + m.lcDif1 + ")"
ENDIF
If Empty(m.lcFiltru) If Empty(m.lcFiltru)
aMessagebox("Alegeti un criteriu!",0+48,"Atentie") aMessagebox("Alegeti un criteriu!",0+48,"Atentie")
Return Return
@@ -5512,6 +5523,8 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
This.pgfeFactura.page2._grdfooter1.calctotal() This.pgfeFactura.page2._grdfooter1.calctotal()
This.pgfeFactura.page3._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 WAIT CLEAR
Return m.lcFiltru Return m.lcFiltru
@@ -6032,6 +6045,16 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
* Mesajul era trunchiat la 41 de caractere * Mesajul era trunchiat la 41 de caractere
This.cMesajFurnizor = SPACE(200) 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() DODEFAULT()
ENDPROC ENDPROC
@@ -6044,6 +6067,147 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
Thisform.oAnaf.AnafeFacturaServer.lTest = m.tlTest Thisform.oAnaf.AnafeFacturaServer.lTest = m.tlTest
ENDPROC 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 PROCEDURE refreshdetaliifacturi
Lparameters tcTip Lparameters tcTip
* tcTip: EMISE/TRIMISE/PRIMITE * tcTip: EMISE/TRIMISE/PRIMITE
@@ -6119,6 +6283,13 @@ DEFINE CLASS anaf_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC 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 PROCEDURE Show
LPARAMETERS nStyle LPARAMETERS nStyle
DODEFAULT(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.page2.grdFacturiPrimite.HeaderHeight = 35
this.pgfeFactura.page3.grdFacturiTrimise.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 ENDPROC
@@ -8884,6 +9057,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
*m: importmodifica *m: importmodifica
*m: listarenir *m: listarenir
*m: modificanote *m: modificanote
*m: numaradiferenteimport
*m: scrienote *m: scrienote
*p: lprimite *p: lprimite
*p: nidborderou *p: nidborderou
@@ -9098,12 +9272,12 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
BackStyle = 1, ; BackStyle = 1, ;
Caption = "Cu diferente Reg. TVA", ; Caption = "Cu diferente Reg. TVA", ;
Height = 18, ; Height = 18, ;
Left = 180, ; Left = 190, ;
Name = "chkDiferente", ; Name = "chkDiferente", ;
Style = 0, ; Style = 0, ;
Top = 35, ; Top = 35, ;
Value = .F., ; Value = .F., ;
Width = 159 Width = 191
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkDistribuieDiscount' AS _checkbox WITH ; ADD OBJECT 'chkDistribuieDiscount' AS _checkbox WITH ;
@@ -9136,7 +9310,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
Style = 0, ; Style = 0, ;
Top = 35, ; Top = 35, ;
Value = .F., ; Value = .F., ;
Width = 159 Width = 174
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" /> *< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkTVAIncasare' AS _checkbox WITH ; ADD OBJECT 'chkTVAIncasare' AS _checkbox WITH ;
@@ -11531,7 +11705,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC ENDPROC
PROCEDURE do_cauta PROCEDURE do_cauta
Local lcCond, lcDif, lcLipsa Local lcCond, lcDif, lcLipsa, lcFiltruBaza
lcFiltru = '' && filtru facturi primite lcFiltru = '' && filtru facturi primite
* DACA FILTRUL NU CONTINE DATA_ACT, SELECTEZ DOAR INREGISTRARILE DIN LUNA CURENTA PANA LA ZI * 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')))] 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 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 * Bifele Diferente / Lipsa din registrul de TVA
lcLipsa = [(jtotctva is null)] 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))] 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 + [)] lcFiltru = m.lcFiltru + [ and (] + m.lcCond + [)]
ENDIF ENDIF
* Filtre buton cautare
IF LEN(THISFORM.filtru_pretty)>0
lcFiltru = m.lcFiltru + " and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF
If Empty(m.lcFiltru) If Empty(m.lcFiltru)
aMessagebox("Alegeti un criteriu!",0+48,"Atentie") aMessagebox("Alegeti un criteriu!",0+48,"Atentie")
Return Return
@@ -11584,6 +11761,8 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDIF ENDIF
This.NumaraDiferenteImport(m.lcFiltruBaza, m.lcDif, m.lcLipsa)
Return m.lcFiltru Return m.lcFiltru
ENDPROC 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.grdFacturi.SetAll("DynamicForeColor","IIF(creditnote = 1, RGB(225,0,0), RGB(0,0,0))", "Column")
this.gridextra1.setup() this.gridextra1.setup()
this.gridextra2.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 ENDPROC
PROCEDURE KeyPress PROCEDURE KeyPress
@@ -13179,6 +13362,51 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
ENDPROC 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 PROCEDURE scrienote
ENDPROC ENDPROC
@@ -13194,6 +13422,8 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
Thisform.CompleteazaFactura() && cap factura Thisform.CompleteazaFactura() && cap factura
Thisform.actualizeaza_grid2() Thisform.actualizeaza_grid2()
Thisform.CompleteazaDetaliiFactura() && detalii factura Thisform.CompleteazaDetaliiFactura() && detalii factura
*!* numerele de pe bife apar de la deschidere, numarate local din cursorul deja adus
This.NumaraDiferenteImport()
ENDPROC ENDPROC

View File

@@ -13065,13 +13065,16 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC ENDPROC
PROCEDURE do_modifica_explicatie_tva PROCEDURE do_modifica_explicatie_tva
LOCAL lnCotaFiltru
If tact.cu_tva = 1 If tact.cu_tva = 1
*!* modificare ROACONT v 2.4.4 *!* 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 If TYPE('tact.tipnota') = 'N' AND tact.tipnota = 1
*!* explicatii TVA exigibile din JC ( 1 ), JV ( 3 ) sau toate ( 5 ) *!* 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 Else
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1)) locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1),,,,lnCotaFiltru)
Endif Endif
*!* locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1)) *!* locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1))
*!* modificare ROACONT v 2.4.4 ^ *!* 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.cDataOraV.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cUtilV.Header1" UniqueID="" Timestamp="" /> *< OBJECTDATA: ObjPath="_grdbase1.cUtilV.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdbase1.cUtilV.Text1" 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="Gridextra1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblInfo" 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 ; ADD OBJECT '_grdbase1' AS _grdbase WITH ;
Anchor = 15, ; Anchor = 15, ;
ColumnCount = 16, ; ColumnCount = 27, ;
DeleteMark = .F., ; DeleteMark = .F., ;
HeaderHeight = 32, ; HeaderHeight = 32, ;
Height = 190, ; Height = 190, ;
@@ -3157,19 +3182,19 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column6.ControlSource = "codpostal", ; Column6.ControlSource = "codpostal", ;
Column6.Name = "cCodPostal", ; Column6.Name = "cCodPostal", ;
Column6.ReadOnly = .T., ; Column6.ReadOnly = .T., ;
Column6.Visible = .T., ; Column6.Visible = .F., ;
Column6.Width = 75, ; Column6.Width = 75, ;
Column7.ColumnOrder = 11, ; Column7.ColumnOrder = 11, ;
Column7.ControlSource = "telefon", ; Column7.ControlSource = "telefon", ;
Column7.Name = "cTelefon", ; Column7.Name = "cTelefon", ;
Column7.ReadOnly = .T., ; Column7.ReadOnly = .T., ;
Column7.Visible = .T., ; Column7.Visible = .F., ;
Column7.Width = 75, ; Column7.Width = 75, ;
Column8.ColumnOrder = 12, ; Column8.ColumnOrder = 12, ;
Column8.ControlSource = "fax", ; Column8.ControlSource = "fax", ;
Column8.Name = "cFax", ; Column8.Name = "cFax", ;
Column8.ReadOnly = .T., ; Column8.ReadOnly = .T., ;
Column8.Visible = .T., ; Column8.Visible = .F., ;
Column8.Width = 75, ; Column8.Width = 75, ;
Column9.ColumnOrder = 6, ; Column9.ColumnOrder = 6, ;
Column9.ControlSource = "platitortvavies", ; Column9.ControlSource = "platitortvavies", ;
@@ -3177,7 +3202,7 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column9.Name = "cPlatitorTVAVies", ; Column9.Name = "cPlatitorTVAVies", ;
Column9.ReadOnly = .T., ; Column9.ReadOnly = .T., ;
Column9.Sparse = .F., ; Column9.Sparse = .F., ;
Column9.Visible = .T., ; Column9.Visible = .F., ;
Column9.Width = 54, ; Column9.Width = 54, ;
Column10.ColumnOrder = 5, ; Column10.ColumnOrder = 5, ;
Column10.ControlSource = "datatvamfin", ; Column10.ControlSource = "datatvamfin", ;
@@ -3210,7 +3235,57 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Column16.ControlSource = "utilv", ; Column16.ControlSource = "utilv", ;
Column16.Name = "cUtilV", ; Column16.Name = "cUtilV", ;
Column16.ReadOnly = .T., ; 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" /> *< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT '_grdbase1.cAdresa.Header1' AS header WITH ; 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. Visible = .T.
*< END OBJECT: BaseClass="textbox" /> *< 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 ; ADD OBJECT '_grdbase1.cDataOra.Header1' AS header WITH ;
Alignment = 2, ; Alignment = 2, ;
Caption = "Creat la", ; Caption = "Creat la", ;
@@ -3289,6 +3428,69 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Name = "Text1" Name = "Text1"
*< END OBJECT: BaseClass="textbox" /> *< 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 ; ADD OBJECT '_grdbase1.cDataTVAMfin.Header1' AS header WITH ;
Alignment = 2, ; Alignment = 2, ;
Caption = "Data TVA MFIN", ; Caption = "Data TVA MFIN", ;
@@ -3337,6 +3539,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T. Visible = .T.
*< END OBJECT: BaseClass="textbox" /> *< 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 ; ADD OBJECT '_grdbase1.cJudet.Header1' AS header WITH ;
Alignment = 2, ; Alignment = 2, ;
Caption = "Judet", ; Caption = "Judet", ;
@@ -3418,6 +3643,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T. Visible = .T.
*< END OBJECT: BaseClass="textbox" /> *< 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 ; ADD OBJECT '_grdbase1.cStare.Header1' AS header WITH ;
Alignment = 2, ; Alignment = 2, ;
Caption = "Stare", ; Caption = "Stare", ;
@@ -3448,6 +3696,29 @@ DEFINE CLASS frm_verificare_parteneri_istoric AS _frmbase OF "_frm_base.vcx"
Visible = .T. Visible = .T.
*< END OBJECT: BaseClass="textbox" /> *< 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 ; ADD OBJECT '_grdbase1.cUtil.Header1' AS header WITH ;
Alignment = 2, ; Alignment = 2, ;
Caption = "Creat de", ; Caption = "Creat de", ;

View File

@@ -16,6 +16,13 @@ Reguli confirmate de Marius (24.07.2026):
final (conventia existenta). final (conventia existenta).
- Aplicarea prin ODBC/`goExecutor`: sintaxa SQL*Plus `exec pachet.procedura(...)` nu functioneaza - Aplicarea prin ODBC/`goExecutor`: sintaxa SQL*Plus `exec pachet.procedura(...)` nu functioneaza
— foloseste `begin pachet.procedura(...); end;`. — 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 ## 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. - **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. Verificarile se fac inainte, separat, pe schema de lucru.
- **Idempotent**: rulat de doua ori nu mai schimba nimic (`merge`, `where <coloana> is null`). - **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 ## Compatibilitate cu serverele clientilor

View File

@@ -32,4 +32,10 @@ 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) 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. 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, "dSfarsitScpTVA", Iif(Pemstatus(loRezANAF, 'dSfarsitScpTVA', 5), Nvl(loRezANAF.dSfarsitScpTVA, {}), {}))
Addproperty(loOut, "dAnulareScpTVA", Iif(Pemstatus(loRezANAF, 'dAnulareScpTVA', 5), Nvl(loRezANAF.dAnulareScpTVA, {}), {})) 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, "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, "dData", m.ldData)
Addproperty(loOut, "cSursa", Iif(Pemstatus(loRezANAF, 'cSursa', 5), loRezANAF.cSursa, 'ANAF')) Addproperty(loOut, "cSursa", Iif(Pemstatus(loRezANAF, 'cSursa', 5), loRezANAF.cSursa, 'ANAF'))
Addproperty(loOut, "dDataSursa", Iif(Pemstatus(loRezANAF, 'dDataSursa', 5), Nvl(loRezANAF.dDataSursa, {}), {})) 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, "dSfarsitScpTVA", Nvl(data_sfarsit_ScpTVA, {}))
Addproperty(loRez, "dAnulareScpTVA", Nvl(data_anul_imp_ScpTVA, {})) Addproperty(loRez, "dAnulareScpTVA", Nvl(data_anul_imp_ScpTVA, {}))
Addproperty(loRez, "cMesajScpTVA", Nvl(mesaj_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, "cSursa", m.tcSursa)
Addproperty(loRez, "dDataSursa", Nvl(data_sursa, {})) Addproperty(loRez, "dDataSursa", Nvl(data_sursa, {}))
Endif Endif
@@ -844,7 +850,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
PROCEDURE TextStare PROCEDURE TextStare
Lparameters toStare, tcPerioada 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 ENDPROC
PROCEDURE SufixPerioadaTVA PROCEDURE SufixPerioadaTVA
@@ -913,6 +919,11 @@ DEFINE CLASS anaf_verif_cautare AS Custom
If !Empty(toStare.cMesajScpTVA) If !Empty(toStare.cMesajScpTVA)
lcTxt = m.lcTxt + 'Mesaj ANAF: ' + Alltrim(toStare.cMesajScpTVA) + Chr(13) lcTxt = m.lcTxt + 'Mesaj ANAF: ' + Alltrim(toStare.cMesajScpTVA) + Chr(13)
Endif 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) If !Empty(m.lcTxt)
lcTxt = m.lcTxt + Chr(13) lcTxt = m.lcTxt + Chr(13)
Endif Endif
@@ -3161,7 +3172,7 @@ Endproc && caut_politici_curente_util
************************************** SFARSIT: caut_politici_curente_util ************************************** ************************************** SFARSIT: caut_politici_curente_util **************************************
***************************************** INCEPUT:caut_explicatie_tva ******************************************* ***************************************** INCEPUT:caut_explicatie_tva *******************************************
Function caut_explicatie_tva Function caut_explicatie_tva
Parameters tnIdJtva, tnPornire, tlDesktop, tlTipEx Parameters tnIdJtva, tnPornire, tlDesktop, tlTipEx, tnCotaTva
*!* tlTipEx = 0 - toate *!* tlTipEx = 0 - toate
*!* = 1 - doar TVA exigibil din JC *!* = 1 - doar TVA exigibil din JC
*!* = 2 - doar TVA neexigibil 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 ] + ; lcFiltruOriginal = [id_jtva_coloana in (select id_tva from vjtva_coloane where ] + ;
[id_jtva_ex is not null)] [id_jtva_ex is not null)]
Endcase 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 *!* *!* If tnIdJtva > 0
*!* *!* lcFiltruOriginal = [jc * 4 + jv * 2 + decode(afisat,0,0,1) in ] + ; *!* *!* 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 ] + ; *!* *!* [(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 Endif
Text To lcSql Noshow 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 from vistoric_coduri_fiscale
where cod_fiscal = ?pcCodFiscal where cod_fiscal = ?pcCodFiscal
Endtext Endtext

View File

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