Files
roacontracte/Teste/oproceduri_roacontracte.prg
Marius Mutu 7cc3bff358 Initial: flux text FoxBin2Prg (git urmareste .??2 in-arbore, binarele VFP git-ignored)
Inrolare ROACONTRACTE conform COMUN\docs\inrolare-proiect-git-text.md:
- .gitignore/.gitattributes dupa modelul ROACONT (COMUN/ exclus, are repo propriu)
- 439 texte FoxBin2Prg generate in arbore (vc2/sc2/fr2/mn2/pj2/db2)
- Clase\registry.vcx ramane binar: memo .vct corupt (Error 41), nu se poate converti
- Clase\ferestre_contracte.vcx: text generat, roundtrip scutit (fara write-back)
- CLAUDE.md, docs/README.md, roa_sync.bat

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
2026-08-03 01:51:36 +03:00

1490 lines
54 KiB
Plaintext

Procedure actualizari_schimbare_firma
gofundal.pagefr1.page2.ct_contracte1.grid_contracte.salveaza_grid()
Do start_firma In ostartfirma.prg
viz_contracte()
Select cContracte
Scatter Name goContract Blank
gofundal.pagefr1.page2.ct_contracte1.grid_contracte.incarca_grid()
gofundal.pagefr1.page2.ct_contracte1.nireg = Reccount('cContracte')
verifica_drepturi('gofundal','pagefr1')
actualizeaza_drepturi_roacontracte()
Endproc
*-----------------------------------------------------------------------------------------------------------------
Procedure viz_contracte
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
lcSchema = [id_ctr N(5), ids_articol C(100), id_part N(10), denumire C(70), contract C(30), data D(8), numar C(20), numar_aa C(20), numar_ult_aa c(20), ]+;
[id_tip_ctr N(4), denumire_tip C(30), tata C(200), ]+;
[id_util N(8), dataora t, valftva N(20,4), valctva N(20,4), id_valuta N(10), nume_val C(4), val_discount N(20,4), proc_tva N(6,2), incetat N(1), ]+;
[data_inceput D(8), data_sfarsit D(8), scadenta_incasare N(3), coef_penalitati N(5,2), ]+;
[id_responsabil N(10), responsabil C(70), id_sectie N(10), sectie C(30), durata N(2), data_incetat D(8), motiv_incetat C(200), semnat N(1), inactiv N(1), observatii M, ]+;
[opt_facturare N(4), text_standard N(1), id_nota N(10), descriere C(100), id_selectie N(4), selectie C(100), ]+;
[grnt_proc_ret N(2), grnt_val_ret N(10,4), grnt_alerta1 N(4), grnt_proc_alerta1 N(3), grnt_pv_nr N(10), grnt_pv_data D, grnt_perioada n(2), ]+;
[numar_intern C(20), data_intern D(8), ofertanti C(200), tip_istoric C(1), id_tata N(10), activ N(1), suspendat N(1), are_link n(1), cod_fiscal c(30), id_sucursala n(5), sucursala c(50), ] + ;
[afisare_scadenta N(1),moneda_nationala N(1)]
lcSelect = [select c.id_ctr,c.ids_articol, c.id_part, c.denumire, c.contract, c.data, c.numar, ]+;
[c.numar_aa, c.numar_ult_aa, c.id_tip_ctr, c.denumire_tip, c.tata, c.id_util, c.dataora, c.valftva, c.valctva, c.id_valuta, c.nume_val, c.val_discount, c.proc_tva, c.incetat,]+;
[c.data_inceput, c.data_sfarsit, c.scadenta_incasare, c.coef_penalitati, ]+;
[c.id_responsabil, c.responsabil, c.id_sectie, c.sectie, c.durata, c.data_incetat, c.motiv_incetat, c.semnat, c.inactiv, NVL(c.observatii,to_clob(' ')) as observatii, ]+;
[c.opt_facturare, c.text_standard, c.id_nota, c.descriere, c.id_selectie, c.selectie, ] +;
[c.grnt_proc_ret, c.grnt_val_ret, c.grnt_alerta1, c.grnt_proc_alerta1, c.grnt_pv_nr, c.grnt_pv_data, c.grnt_perioada, ]+;
[c.numar_intern, c.data_intern, c.ofertanti, c.tip_istoric, c.id_tata, c.activ, c.suspendat, c.are_link,c.cod_fiscal, c.id_sucursala, c.sucursala, c.afisare_scadenta, c.moneda_nationala ]+;
[ from vcontracte_toate c ]
lcOrder = [c.denumire, c.id_tata, c.activ desc, c.id_ctr desc]
lcgroup = []
lcFiltru = [1=2] && [c.tip_istoric='C' and c.incetat=0 and c.inactiv=0]
Do Case
Case gnParametru_prog=1
lcFiltruOriginal = [substr(c.tata,2,6)='CLIENT']
Case gnParametru_prog=2
lcFiltruOriginal = [substr(c.tata,2,6)='FURNIZ']
Otherwise
lcFiltruOriginal = []
Endcase
llModParam = .T.
llAfiseaza = .F.
gencursor('poCtr','cContracte', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poCtr.ca_baza1.afisare()
Endproc && viz_contracte
*!* ***-----------------------------------------------------------------------------------------------------------------------------
Procedure update_ctr_art
Parameters tcTabelArticole
Local lcTabelArticole
lcTabelArticole = tcTabelArticole
Private pnGasit, pnId_ctr_art, pnId_ctr, pnId_art, pnPret_cu_tva, pnPret_unitar, pnCant, pnValoare,pnDiscount, pnValcdiscount, pcUM, pnId_valuta_art
Store 0 To pnGasit, pnId_ctr_art, pnId_ctr, pnId_art, pnPret_cu_tva, pnPret_unitar, pnCant, pnValoare, pnDiscount, pnValcdiscount, pnId_valuta_art
Store "" To pcUM
&& update articole
lcDeleted = Set("Deleted")
Set Deleted Off
Select (lcTabelArticole)
Scan
pnId_ctr_art = id_ctr_art
pnId_ctr = id_ctr
pnId_art = id_art
pnPret_cu_tva = pret_cu_tva
pnPret_unitar = pret_unitar
pnCant = cant
pnValoare = valoare
pnDiscount = discount
pnValcdiscount = valcdiscount
pcUM = Alltrim(um)
pnId_valuta_art = id_valuta
If Deleted()
llsters = .T.
Else
llsters = .F.
Endif
lcSql = [begin pack_crm.cauta_ctr_art(?gcS, ?pnId_ctr, ?pnId_art, ?@pnGasit); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If pnGasit = 0
lcSql = [begin pack_crm.adauga_ctr_art(?gcS, ?pnId_ctr, ?pnId_art, ?pnPret_cu_tva, ?pnPret_unitar, ?pnCant, ?pnValoare, ?pnDiscount, ?pnValcdiscount, ?pcUM, ?pnId_valuta_art); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Else
If llsters && sterge_rata
lcSql = [begin pack_crm.sterge_ctr_art(?gcS, ?pnId_ctr_art); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Else
lcSql = [begin pack_crm.modifica_ctr_art(?gcS, ?pnId_ctr_art, ?pnId_ctr, ?Id_art, ?pnPret_cu_tva, ?pnPret_unitar, ?pnCant, ?pnValoare, ?pnDiscount, ?pnValcdiscount, ?pcUM, ?pnId_valuta_art); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Endif
Endif
Select (lcTabelArticole)
Endscan
Set Deleted &lcDeleted
Endproc && update_ctr_art
***-----------------------------------------------------------------------------------------------------------------------------
***-----------------------------------------------------------------------------------------------------------------------------
Procedure update_ctr_doc
Parameters tcTabelDocumente
Local lcTabelDocumente
lcTabelDocumente = tcTabelDocumente
Private pnGasit, pnId_ctr_doc, pnId_ctr, pcDenumire, pcLink
Store 0 To pnGasit, pnId_ctr_doc, pnId_ctr
Store "" To pcDenumire, pcLink
&& update documente
lcDeleted = Set("Deleted")
Set Deleted Off
Select (lcTabelDocumente)
Scan
pnId_ctr_doc = id_ctr_doc
pnId_ctr = id_ctr
pcDenumire = denumire
pcLink = Link
If Deleted()
llsters = .T.
Else
llsters = .F.
Endif
lcSql = [begin pack_crm.cauta_ctr_doc(?gcS, ?pnId_ctr_doc, ?@pnGasit); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If pnGasit = 0
lcSql = [begin pack_crm.adauga_ctr_doc(?gcS, ?pnId_ctr, ?pcDenumire, ?pcLink); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Else
If llsters && sterge_doc
lcSql = [begin pack_crm.sterge_ctr_doc(?gcS, ?pnId_ctr_doc); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Else
lcSql = [begin pack_crm.modifica_ctr_doc(?gcS, ?pnId_ctr_doc, ?pnId_ctr, ?pcDenumire, ?pcLink); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Endif
Endif
Select (lcTabelDocumente)
Endscan
Set Deleted &lcDeleted
Endproc && update_ctr_doc
***-----------------------------------------------------------------------------------------------------------------------------
*****************************************************************************
Function cauta_politica_preturi
Lparameters tnIdPol,tcNumePolitica,tnIdValuta,tcNumeValuta
Local locauta,llReturn
Store "" To locauta
Store .F. To llReturn
pcselect = [select id_pol, nume_lista_preturi, datai, datas, id_valuta, nume_val from vcrm_politici_preturi]
pcfiltru = [1=2]
pcschema = []
pcorder = [2]
pccoloane = [nume_lista_preturi, datai, datas, nume_val]
pcTitlu = [Politici de preturi actuale]
pcTitluColoane = [Nume lista preturi,Data inceput,Data sfarsit,Valuta]
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"")
If !Empty(locauta.id_pol)
tnIdPol=locauta.id_pol
tcNumePolitica=Alltrim(locauta.nume_lista_preturi)
tnIdValuta=locauta.id_valuta
tcNumeValuta=Alltrim(locauta.nume_val)
llReturn=.T.
Endif
Return llReturn
Endfunc && cauta_politica_preturi
*****************************************************************************
*****************************************************************************
Procedure update_articole_politica_pret
Lparameters tnIdPol
If Used('crsarticole')
Use In crsarticole
Endif
lcSql=[select id_articol, id_pol_art, nume_articol, um, pret, nume_val, id_valuta, 0 as ales from ] + gcS + [.vcrm_politici_pret_art ]+;
[where id_pol=]+Alltrim(Str(tnIdPol))+[ order by 2]
lnSucces=goExecutor.oExecute(lcSql,'crsarticole')
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Endif
goExecutor.oReset()
Return lnSucces
Endproc && update_articole_politica_pret
***-----------------------------------------------------------------------------------------------------------------------------
Procedure modifica_ctr_dg
Parameters toContract
Local loContract
loContract = toContract
Private pcId_ctr, pcId_part, pcData, pcNumar, pcId_tip_ctr, pcInactiv,pcSuspendat, pcValftva, pcvalctva, pcId_valuta, pcVal_discount
Private pcProc_tva, pcIncetat, pcData_inceput, pcData_sfarsit, pcScadenta_incasare, pcCoef_penalitati, pcId_responsabil, pcId_sectie
Private pcDurata, pcData_incetat, pcMotiv_incetat, pcSemnat, pcObservatii, pcId_nota, pcDescriere, pcId_selectie
Private pcGrnt_proc_ret, pcGrnt_val_ret, pcGrnt_alerta1, pcGrnt_proc_alerta1, pcGrnt_pv_nr, pcGrnt_pv_data, pcGrnt_perioada
Private pcData_intern, pcNumar_intern, pcOfertanti
Local lnSucces
lnSucces = -1
pcId_ctr = Alltrim(Str(loContract.id_ctr))
pcId_part = Nvl(Alltrim(Str(loContract.id_part)),"0")
pcData = Dtos(loContract.Data)
pcNumar = Nvl(Alltrim(loContract.numar),"")
pcId_tip_ctr = Iif(Empty(Nvl(loContract.id_tip_ctr,0)),'NULL',Alltrim(Str(loContract.id_tip_ctr)))
pcInactiv = Nvl(Alltrim(Str(loContract.Inactiv)),"0")
If loContract.valftva*0=0
pcValftva = Nvl(Alltrim(Str(loContract.valftva,20,gnPA)),"NULL")
Else
pcValftva = "0"
Endif
If loContract.valctva *0=0
pcvalctva = Nvl(Alltrim(Str(loContract.valctva,20,gnPA)),"NULL")
Else
pcvalctva = "0"
Endif
pcId_valuta = Nvl(Alltrim(Str(loContract.id_valuta)),"NULL")
If loContract.val_discount*0=0
pcVal_discount = Nvl(Alltrim(Str(loContract.val_discount,20,gnPA)),"NULL")
Else
pcVal_discount = "0"
Endif
pcProc_tva = Nvl(Alltrim(Str(loContract.proc_tva)),"NULL")
pcIncetat = Nvl(Alltrim(Str(loContract.Incetat)),"0")
pcData_inceput = Nvl(Dtos(loContract.data_inceput),"")
pcData_sfarsit = Nvl(Dtos(loContract.data_sfarsit),"")
pcScadenta_incasare = Nvl(Alltrim(Str(loContract.scadenta_incasare)),"NULL")
pcAfisareScadenta = NVL(ALLTRIM(STR(loContract.afisare_scadenta)),"1")
pcCoef_penalitati = Nvl(Alltrim(Str(loContract.coef_penalitati,6,gnPA)),"NULL")
pcId_responsabil = Nvl(Alltrim(Str(loContract.id_responsabil)),"NULL")
pcId_sectie = Nvl(Alltrim(Str(loContract.id_sectie)),"NULL")
pcDurata = Nvl(Alltrim(Str(loContract.durata)),"NULL")
pcData_incetat = Nvl(Dtos(loContract.data_incetat),"")
pcMotiv_incetat = Nvl(Alltrim(loContract.motiv_incetat),"")
pcSemnat = Nvl(Alltrim(Str(loContract.semnat)),"0")
lcIdUtil = Alltrim(Str(gnIdUtil))
pcObservatii = Nvl(Alltrim(loContract.observatii)," ")
pcOpt_facturare = Nvl(Alltrim(Str(loContract.opt_facturare)),"0")
pcText_standard = Nvl(Alltrim(Str(loContract.text_standard)),"0")
pcId_nota = Nvl(Alltrim(Str(loContract.id_nota)),"NULL")
pcDescriere = Nvl(Alltrim(loContract.descriere),"")
pcId_selectie = Iif(Empty(Nvl(loContract.id_selectie,0)),'NULL',Alltrim(Str(loContract.id_selectie))) && Nvl(Alltrim(Str(loContract.id_selectie)),"NULL")
pcGrnt_proc_ret = Nvl(Alltrim(Str(loContract.grnt_proc_ret)),"NULL")
pcGrnt_val_ret = Nvl(Alltrim(Str(loContract.grnt_val_ret)),"NULL")
pcGrnt_alerta1 = Nvl(Alltrim(Str(loContract.grnt_alerta1)),"NULL")
pcGrnt_proc_alerta1 = Nvl(Alltrim(Str(loContract.grnt_proc_alerta1)),"NULL")
pcGrnt_pv_nr = Nvl(Alltrim(Str(loContract.grnt_pv_nr)),"NULL")
pcGrnt_pv_data = Nvl(Dtos(loContract.grnt_pv_data),"")
pcGrnt_perioada = Nvl(Alltrim(Str(loContract.grnt_perioada)),"NULL")
pcData_intern = Nvl(Dtos(loContract.Data_intern),"")
pcNumar_intern = Nvl(Alltrim(loContract.numar_intern),"")
pcOfertanti = Nvl(Alltrim(loContract.ofertanti),"")
pcSuspendat = Nvl(Alltrim(Str(loContract.suspendat)),"0")
lcSql = [begin pack_crm.modifica_contract(] + pcId_ctr + [,] + pcId_part + ;
[, TO_DATE(]+Iif(!Empty(pcData) And !Isnull(pcData),[']+pcData+['],[NULL])+[,'YYYY-MM-DD'),']+pcNumar + [',]+;
pcId_tip_ctr + [,] + pcInactiv +[,]+;
pcValftva + [,] + pcvalctva + [,] + pcId_valuta + [,] + pcVal_discount + [,] + pcProc_tva + [,] + ;
pcIncetat + ;
[,to_date(]+Iif(!Empty(pcData_inceput) And !Isnull(pcData_inceput),[']+pcData_inceput+['],[NULL])+ [,'YYYY-MM-DD')]+;
[,to_date(]+Iif(!Empty(pcData_sfarsit) And !Isnull(pcData_sfarsit),[']+pcData_sfarsit+['],[NULL])+ [,'YYYY-MM-DD'),]+;
pcScadenta_incasare + [,] + pcAfisareScadenta + [,] + pcCoef_penalitati + [,] + ;
pcId_responsabil + [,] + pcId_sectie + [,] + pcDurata + ;
[,to_date(]+Iif(!Empty(pcData_incetat) And !Isnull(pcData_incetat),[']+pcData_incetat+['],[NULL])+ [,'YYYY-MM-DD'),']+;
pcMotiv_incetat + [',] + pcSemnat + [,'] + pcObservatii + [',] + pcOpt_facturare + [,] + pcText_standard + [,] + pcId_nota + [,] + lcIdUtil + ;
[,'] + pcDescriere + [',] + pcId_selectie + ;
[,] + pcGrnt_proc_ret + [,] + pcGrnt_val_ret + [,] + pcGrnt_alerta1 + [,] + pcGrnt_proc_alerta1 + [,] + pcGrnt_pv_nr + ;
[,to_date(]+Iif(!Empty(pcGrnt_pv_data) And !Isnull(pcGrnt_pv_data),[']+pcGrnt_pv_data+['],[NULL])+ [,'YYYY-MM-DD')]+;
[,]+ pcGrnt_perioada +;
[, TO_DATE(]+Iif(!Empty(pcData_intern) And !Isnull(pcData_intern),[']+pcData_intern+['],[NULL])+[,'YYYY-MM-DD'),']+pcNumar_intern + [',]+pcSuspendat + [,']+pcOfertanti +['); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Endif
Return lnSucces
Endproc && modifica_ctr_dg
***-----------------------------------------------------------------------------------------------------------------------------
Procedure adauga_contract
Parameters tcAlias, tcNumar
Local lcAlias
lcAlias = tcAlias
Private pnId_ctr, pnId_tip_ctr, pcNumar
Store 0 To pnId_ctr
pcNumar = tcNumar
pnId_tip_ctr = Iif(gnParametru_prog=1,'-1','-2')
**---------------------
lcSql = [begin pack_crm.adauga_contract(?pnId_tip_ctr,?gnIdSucursala,?@pnId_ctr, ?pcNumar); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
**---------------------
Return pnId_ctr
Endproc && adauga_contract
***-----------------------------------------------------------------------------------------------------------------------------
Procedure facturi_atasate
Do make_cCtrScadentar
Private poFact_atas
Store '' To poFact_atas
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza
lcSchema1 = []
lcSelect1 = [select rf.*, ip.NRACT, ip.DATAACT, ip.EXPLICATIA ]+;
[ from vctr_rate_facturi rf ]+;
[ left join vctr_scadentar s on s.id_rata = rf.id_rata ]+;
[ left join (select distinct id_fact, nract, dataact, explicatia from vireg_parteneri) ip ]+;
[ on ip.id_fact = rf.ID_FACT ]
lcOrder1 = []
lcgroup = []
lcFiltru1 = []
lcFiltruOriginal = [s.id_ctr=] + Alltrim(Str(goContract.id_ctr))
llModParam = .T.
llAfiseaza = .F.
gencursor('poFact_atas','cFactAtas', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poFact_atas.ca_baza1.afisare()
lofa = Createobject("frm_atasare_facturi")
lofa.Show(1)
If Used('cCtrScadentar')
Use In cCtrScadentar
Endif
Endproc && facturi_atasate
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_cursoare_ctr
Parameters tlToate,tcFiltruCtr
&& creeaza cursoarele pt. modificare date generale contract
Local llToate && pt. toate contractele (folosesc la listare fisa contractului)
llToate = tlToate
Do make_cCtrScadentar With llToate
Do make_crsAtasamente In oproceduri_atasamente.prg
Do make_cCtrArt With llToate
Do make_cCtrFactGarant With llToate
Do make_cCtrFacturatIncasat With llToate,tcFiltruCtr
Endproc && make_cursoare_ctr
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_cursoare_ctr
Do inchide_cCtrScadentar
Do inchide_crsAtasamente In oproceduri_atasamente.prg
Do inchide_cCtrArt
Do inchide_cCtrFactGarant
Do inchide_cCtrFacturatIncasat
Endproc && inchide_cursoare_ctr
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_cCtrScadentar
Parameters tlToate
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, llToate
llToate = tlToate
Store '' To lcgroup, lcFiltru, lcFiltruOriginal
*!* lcSchema1 = [id_ctr N(8), id_rata N(5), nr_rata N(10), data_rata D(8), data_scadenta D(8), valrata N(16,2), valfact N(16,2), den_rata C(80), procent N(5,2), id_valuta N(5), nume_val C(10), lid_fact N(1)]
*!* lcSelect1 = [select id_ctr, id_rata, nr_rata, data_rata, data_scadenta, valrata, valfact, den_rata, procent, id_valuta, nume_val, 0 as lid_fact ]+;
*!* [ from vctr_scadentar]
lcSchema = [valvaluta N(16,2), valvalutactva N(16,2), id_ctr N(8), id_rata N(5), nr_rata N(10), data_rata D(8), data_scadenta D(8), ]+;
[ pret_cu_tva n(1), proc_tva N(6,2), valrata N(16,2), valrataftva N(16,2), valratactva N(16,2), den_rata C(80), procent N(5,2), id_valuta N(5), nume_val C(10), moneda_nationala N(1), lid_fact N(1)]
lcSelect = [select nvl(rf.VALVALUTA, 0) as valvaluta, ]+;
[ rf.valvalutactva as valvalutactva, ]+;
[ s.id_ctr, s.id_rata, s.nr_rata, s.data_rata, s.data_scadenta, s.pret_cu_tva, s.proc_tva, s.valrata, ]+;
[ decode(s.pret_cu_tva,0,s.valrata,s.valrata/(1+s.proc_tva/100)) as valrataftva, ]+;
[ decode(s.pret_cu_tva,0,s.valrata*(1+s.proc_tva/100),s.valrata) as valratactva, ]+;
[s.den_rata, s.procent, s.id_valuta, s.nume_val, s.moneda_nationala, 0 as lid_fact ]+;
[ from (select * from vctr_scadentar s where id_ctr = ]+ Alltrim(Str(goContract.id_ctr)) +[) s ]+;
[ left join (select id_rata, sum(valvaluta) as valvaluta, ]+;
[sum(valvalutactva) as valvalutactva ] +;
[ from vctr_rate_facturi where id_ctr = ] + Alltrim(Str(goContract.id_ctr)) +;
[ group by id_rata) rf on rf.ID_RATA = s.id_rata ]
&& lid_fact - ca sa pot sa colorez ratele care sunt acoperite de o factura
lcOrder = [s.nr_rata, s.data_rata]
lcgroup = []
lcFiltru = []
If llToate
lcSelect = [select nvl(rf.VALVALUTA, 0) as valvaluta, ]+;
[ rf.valvalutactva as valvalutactva, ]+;
[ s.id_ctr, s.id_rata, s.nr_rata, s.data_rata, s.data_scadenta, s.pret_cu_tva, s.proc_tva, s.valrata, ]+;
[ decode(s.pret_cu_tva,0,s.valrata,s.valrata/(1+s.proc_tva/100)) as valrataftva, ]+;
[ decode(s.pret_cu_tva,0,s.valrata*(1+s.proc_tva/100),s.valrata) as valratactva, ]+;
[s.den_rata, s.procent, s.id_valuta, s.nume_val, s.moneda_nationala, 0 as lid_fact ]+;
[ from vctr_scadentar s ]+;
[ left join (select id_rata, sum(valvaluta) as valvaluta, ]+;
[sum(valvalutactva) as valvalutactva ] +;
[ from vctr_rate_facturi ]+;
[ group by id_rata) rf on rf.ID_RATA = s.id_rata ]
Endif
llModParam = .T.
llAfiseaza = .F.
gencursor('poCtrScadentar','cCtrScadentarI', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poCtrScadentar.ca_baza1.afisare()
Select * From cCtrScadentarI With (Buffering = .T.) ;
INTO Cursor cCtrScadentar Readwrite
If Used('cCtrScadentarI')
Use In cCtrScadentarI
Endif
Endproc && make_cCtrScadentar
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_cCtrScadentar
If Used('cCtrScadentar')
Use In cCtrScadentar
Endif cCtrScadentar
Endproc && inchide_cCtrScadentar
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_cCtrArt
Parameters tlToate
Local llToate
llToate = tlToate
If llToate
lcSel = 'select * from vctr_articole order by nume_articol'
Else
lcSel = 'select * from vctr_articole where id_ctr = '+ Alltrim(Str(goContract.id_ctr)) + ' order by nume_articol'
Endif
lcCursor = 'cCtrArtI'
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Select * From cCtrArtI With (Buffering = .T.) Into Cursor cCtrArt Readwrite
If Used('cCtrArtI')
Use In cCtrArtI
Endif
Endproc && make_cCtrArt
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_cCtrArt
If Used('cCtrArt')
Use In cCtrArt
Endif
Endproc && cCtrArt
***-----------------------------------------------------------------------------------------------------------------------------
Procedure viz_incasari
lcSel = [{call pack_crm.get_incasari(] + Alltrim(Str(gnParametru_prog)) + [,] + Alltrim(Str(goContract.id_part)) + [)}]
lcCursor = 'cIncasari'
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Select cIncasari
lofi = Createobject('frm_incasari')
Do Case
Case gnParametru_prog = 1
lofi.lb_titlu_alb_b121.Caption = 'Incasari '+ Alltrim(goContract.denumire)
Case gnParametru_prog = 2
lofi.lb_titlu_alb_b121.Caption = 'Plati '+ Alltrim(goContract.denumire)
Endcase
lofi.Show(1)
If Used('cIncasari')
Use In cIncasari
Endif
Endproc && viz_incasari
***-----------------------------------------------------------------------------------------------------------------------------
********************************** INCEPUT: rap_fact_grup_ctr **************************
Procedure rap_fact_grup_ctr
Parameters tcCont, tlActiv
Private pnId_ctr, pnId_part, pcCont
pnIdLucrare = 0
If Empty(tcCont)
pcCont = []
Else
pcCont = Alltrim(tcCont)
Endif
plActiv = tlActiv
pnId_part = goContract.id_part
pcselect = [select id_ctr, contract from vcontracte]
pcfiltru = [1=2]
pcschema = []
pcorder = [contract]
pccoloane = [contract]
pcTitlu = [Alegeti contractul]
Do Case
Case gnParametru_prog = 1
pcFiltruOriginal = [substr(tata,2,6)='CLIENT' ]
Case gnParametru_prog = 2
pcFiltruOriginal = [substr(tata,2,6)='FURNIZ' ]
Otherwise
pcFiltruOriginal = []
Endcase
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitlu,[],.T.,pcFiltruOriginal)
pnId_ctr = Iif(Empty(locauta.id_ctr), 0, locauta.id_ctr)
If gnButon = 2
Return
Endif
pcCondCtr = Iif(Empty(pnId_ctr), [1=1], [id_ctr = ?pnId_ctr ])
*!* lcSelect = [select dataact, datascad, nract, nume, id_part, id_ctr, contract, SUM(] + IIF(plActiv,[debit + precdeb],[credit + preccred]) + [) as tot_fact, ] +;
*!* [ SUM(] + IIF(plActiv,[credit + preccred],[debit + precdeb]) + [) as tot_achit, ] +;
*!* [ 00000000000000.0000 as sold_contract, 00000000000000.0000 as sold_part ] +;
*!* [ from vireg_parteneri ] + ;
*!* [ where id_part = ?pnId_part and cont = ?pcCont and ] + pcCondCtr + ;
*!* [ group by dataact, datascad, nract, nume, id_part, id_ctr, contract ] + ;
*!* [ order by contract, id_ctr, dataact, nract ]
lcSelect = [select dataact, datascad, nract, nume, id_part, id_ctr, contract, SUM(] + Iif(plActiv,[debit],[credit]) + [) as tot_fact, ] +;
[ SUM(] + Iif(plActiv,[credit],[debit]) + [) as tot_achit, ] +;
[ 00000000000000.0000 as sold_contract, 00000000000000.0000 as sold_part ] +;
[ from vireg_parteneri ] + ;
[ where id_part = ?pnId_part and cont = ?pcCont and ] + pcCondCtr + ;
[ group by dataact, datascad, nract, nume, id_part, id_ctr, contract ] + ;
[ order by contract, id_ctr, dataact, nract ]
lcCursor = [cFacturi]
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Return
Endif
lcTitlu = [Facturi ] + pcCont
pcTitlu = ceretitlu_rap('Titlul Raportului',lcTitlu)
pcdataora = get_Ora(2)
Select (lcCursor)
If Reccount() = 0
AMESSAGEBOX("Nu exista inregistrari pentru listare!",0+48,"Atentie")
Else
Report Form ireg_parteneri_rpt5.frx To Printer Prompt Preview
Endif
If Used(lcCursor)
Use In &lcCursor
Endif
Endproc && rap_fact_grup_ctr
********************************** SFARSIT: rap_fact_grup_ctr **************************
Procedure rateDeFacturat
lorf = Createobject('frm_rateDeFacturat')
lorf.Show(1)
Endproc && rateDeFacturat
***---------------------------------------------------------------------------------------------------------------------------
Procedure viz_selectii
Private poSelectii
Store '' To poSelectii
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
lcSchema = []
lcSelect = [select id_selectie, selectie from vctr_selectii ]
lcOrder = [selectie]
lcgroup = []
lcFiltru = [1=2]
llModParam = .T.
llAfiseaza = .F.
gencursor('poSelectii','cSelectii', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poSelectii.ca_baza1.afisare()
Select cSelectii
ofrm_sel = Createobject('frm_selectii')
ofrm_sel.Show(1)
Release poSelectii
Endproc && viz_selectii
***---------------------------------------------------------------------------------------------------------------------------
Procedure viz_alerte_garantii
Parameters tnPornire
** tnPornire - daca nu am alerte nevalidate, sa nu-mi arate fereastra la intrarea in program
Local lnNr_alerte, lnPornire
Store 0 To lnNr_alerte
If Empty(tnPornire)
lnPornire = 0
Else
lnPornire = tnPornire
Endif
lcSql = [begin pack_crm.insereaza_alerte; end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
*!* lcSql = [{call pack_crm.viz_alerte(] + Alltrim(Str(gnParametru_prog)) + [)}]
*!* lnSucces = goExecutor.oExecute(lcSql,'cAlerte')
*!* If lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
*!* Return
*!* Endif
***-------------
Private poAlerte
Store '' To poAlerte
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
lcSchema = []
Do Case
Case gnParametru_prog=1
lcCondTata = [substr(b.tata,2,6)='CLIENT']
Case gnParametru_prog=2
lcCondTata = [substr(b.tata,2,6)='FURNIZ']
Otherwise
lcCondTata = []
Endcase
lcSelect = [select b.denumire, ]+;
[ b.numar, ]+;
[ b.data, ]+;
[ (case a.nr_alerta ]+;
[ when 1 then to_char(a.data_referinta_alerta) || ' depasire termen contractual' ]+;
[ when 2 then trunc(b.grnt_pv_data + b.grnt_alerta1) || ]+;
[ ' restituire ' || round(a.sumadeplata,2) || ' lei (factura ' || c.nract || ' / ' ]+;
[ || c.dataact || ')' ]+;
[ when 3 then (case when a.sumadeplata is not null or a.sumadeplata <> 0 then ]+;
[ to_char(Add_months(b.grnt_pv_data, b.grnt_perioada)) || ]+;
[ ' restituire ' || round(a.sumadeplata,2)|| ' lei' end) ]+;
[ when 4 then to_char(a.data_referinta_alerta) || ' ultima rata definita ' end) as descriere, ]+;
[ a.nr_alerta, ]+;
[ a.validat, ]+;
[ a.instiintat, ]+;
[ a.id_ctr, ]+;
[ a.id_fact, ]+;
[ a.id ]+;
[ from vcontracte b ]+;
[ join ctr_log_alerte a on a.id_ctr = b.ID_CTR ]+;
[ left join (select id_fact, nract, dataact from ireg_parteneri ]+;
[ where (extract(year from dataireg) * 12 + extract(month from dataireg) = ]+;
[ an * 12 + luna)) c on c.id_fact = a.id_fact ]
lcFiltru = [((((a.nr_alerta in (2, 3)) and ]+;
[ (a.sumadeplata is not null and a.sumadeplata <> 0))) or ]+;
[ (a.nr_alerta in (1, 4))) and ]+ lcCondTata
lcFiltruOriginal = []
llModParam = .T.
llAfiseaza = .F.
gencursor('poAlerte','cAlerte', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poAlerte.ca_baza1.afisare()
***-------------
Select cAlerte
Set Filter To Validat = 0
Select Count(*) As nr_alerte From cAlerte Where Validat = 0 Into Cursor cNrAlerte
Select cNrAlerte
lnNr_alerte = nr_alerte
If Used('cNrAlerte')
Use In cNrAlerte
Endif
If lnPornire <> 0
If lnNr_alerte > 0
Select cAlerte
loa = Createobject('frm_alerte')
loa.Show(1)
Endif
Else
Select cAlerte
loa = Createobject('frm_alerte')
loa.Show(1)
Endif
If Used('cAlerte')
Use In cAlerte
Endif
Endproc && viz_alerte_garantii
***---------------------------------------------------------------------------------------------------------------------------
Procedure make_cCtrFactGarant
Parameters tlToate
Local lcSchema, lcSelect, lcOrder, lcFiltru, llAfiseaza, llToate
llToate = tlToate
lcSchema = [id_ctr N(8), id_fact n(20), id_ctr_fact_garan N(10), nract N(14), dataact D, valftva n(20,2), garantie n(14,2) ]
lcSelect = [select fg.id_ctr, fg.id_fact, fg.id_ctr_fact_garan, ip.nract, ip.dataact, fg.valftva, fg.garantie ]+;
[ from ctr_facturi_garantii fg left join ireg_parteneri ip on fg.id_fact = ip.id_fact ]
lcOrder = [ip.dataact]
lcgroup = []
If llToate
lcFiltru = [extract(year from ip.dataireg) * 12 + extract(month from ip.dataireg) = an * 12 + luna]
Else
lcFiltru = [fg.id_ctr = ]+Alltrim(Str(goContract.id_ctr))+ [ and extract(year from ip.dataireg) * 12 + extract(month from ip.dataireg) = an * 12 + luna]
Endif
Do Case
Case gnParametru_prog=1
lcFiltru = lcFiltru + [ and ip.cont = '4111' ]
Case gnParametru_prog=2
lcFiltru = lcFiltru + [ and (ip.cont = '401' or ip.cont = '404') ]
Endcase
lcFiltruOriginal = []
llModParam = .T.
llAfiseaza = .F.
gencursor('poCtrFactGarant','cCtrFactGarantI', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poCtrFactGarant.ca_baza1.afisare()
Select * From cCtrFactGarantI ;
WITH (Buffering = .T.) ;
INTO Cursor cCtrFactGarant Readwrite
If Used('cCtrFactGarantI')
Use In cCtrFactGarantI
Endif
Endproc && make_cCtrFactGarant
***---------------------------------------------------------------------------------------------------------------------------
Procedure inchide_cCtrFactGarant
If Used('cCtrFactGarant')
Use In cCtrFactGarant
Endif
Endproc && inchide_cCtrFactGarant
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_cCtrActeAditionale
Parameters tlToate
Private poCtrActeAditionale
Store '' To poCtrActeAditionale
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza, llToate
llToate = tlToate
lcSchema1 = [numar c(20), data D, descriere c(100), id_tata N(8)]
lcSelect1 = [select numar, data, descriere, id_tata ]+;
[ from vcontracte_toate]
lcOrder1 = [data desc]
lcgroup = []
lcFiltru1 = [2=2]
If llToate
lcFiltruOriginal = [tip_istoric = 'A']
Else
lcFiltruOriginal = [tip_istoric = 'A' and id_tata = ]+Alltrim(Str(goContract.id_ctr))
Endif
llModParam = .T.
llAfiseaza = .F.
gencursor('poCtrActeAditionale','cCtrActeAditionale', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poCtrActeAditionale.ca_baza1.afisare()
Endproc && make_cCtrActeAditionale
***-----------------------------------------------------------------------------------------------------------------------------
Procedure declarare_generator_numere
If Type('poGeneratorNumere') = 'U'
Public poGeneratorNumere
poGeneratorNumere = Createobject('oGeneratorNumere')
Endif
Endproc && declarare_generator_numere
***-----------------------------------------------------------------------------------------------------------------------------
Procedure restdefacturat
Private pcfiltru
Store "1=1" To pcfiltru
lorf = Createobject('frm_restdefacturat')
lorf.Show(1)
Endproc && restdefacturat
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_crsNote
Private poNote
Store '' To poNote
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal
lcSchema1 = []
lcSelect1 = [select denumire, id_nota from vcrm_note_vanzari nv]
lcOrder1 = [denumire]
lcgroup = []
lcFiltru1 = []
lcFiltruOriginal = []
llModParam = .T.
llAfiseaza = .F.
gencursor('poNote','crsNote', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poNote.ca_baza1.afisare()
Select crsNote
Endproc && make_crsNote
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_crsValute
lcSql = [select id_valuta, nume_val, moneda_nationala FROM vnom_valute where inactiv = 0 order by nume_val]
lnSucces=goExecutor.oExecute(lcSql,'crsValute')
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsValute
Endproc && make_crsValute
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_crsSectii
Create Cursor crsSectii(id_sectie N(5), sectie c(50))
Insert Into crsSectii (id_sectie, sectie) Values (0, '')
lcSql = [select id_sectie, sectie FROM vnom_sectii where inactiv = 0] + gcCondSucursala + [ order by sectie]
lnSucces=goExecutor.oExecute(lcSql,'crsSectiiI')
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsSectii
Append From Dbf('crsSectiiI')
If Used('crsSectiiI')
Use In crsSectiiI
Endif
Endproc && make_crsSectii
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_crsTip_ctr
Do Case
Case gnParametru_prog=1
lcWhere = [ where substr(tata,2,6)='CLIENT']
Case gnParametru_prog=2
lcWhere = [ where substr(tata,2,6)='FURNIZ']
Otherwise
lcWhere = []
Endcase
lcSql = [select id_tip_ctr, denumire_tip FROM vtipuri_contracte]+lcWhere + [ order by denumire_tip]
lnSucces=goExecutor.oExecute(lcSql,'crsTip_ctr')
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsTip_ctr
Endproc && make_crsTip_ctr
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_crsSelectii
Create Cursor crsSelectii(id_selectie N(4), selectie c(100))
Insert Into crsSelectii(id_selectie , selectie ) Values (0, '')
lcSql = [select id_selectie, selectie FROM vctr_selectii]
lnSucces=goExecutor.oExecute(lcSql,'crsSelectiiI')
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsSelectii
Append From Dbf('crsSelectiiI')
If Used('crsSelectiiI')
Use In crsSelectiiI
Endif
Endproc && make_crsSelectii
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_crsNote
If Used('crsNote')
Use In crsNote
Endif
Endproc && inchide_crsNote
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_crsValute
If Used('crsValute')
Use In crsValute
Endif
Endproc && inchide_crsValute
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_crsSectii
If Used('crsSectii')
Use In crsSectii
Endif
Endproc && inchide_crsSectii
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_crsTip_ctr
If Used('crsTip_ctr')
Use In crsTip_ctr
Endif
Endproc && inchide_crsTip_ctr
***-----------------------------------------------------------------------------------------------------------------------------
Procedure inchide_crsSelectii
If Used('crsSelectii')
Use In crsSelectii
Endif
Endproc && inchide_crsSelectii
***-----------------------------------------------------------------------------------------------------------------------------
Procedure salveaza_obiectul
Parameters tcTabel
Local lcTabel
lcTabel = tcTabel
lcSel = 'select * from vctr_articole where id_ctr = '+ Alltrim(Str(goContract.id_ctr)) + ' order by nume_articol'
lcCursor = 'cCtrArt_server'
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
* daca exista id_pol_art pe server, care nu mai sunt pe local, sterg
Select * From cCtrArt_server ;
Where id_ctr_art Not In (Select id_ctr_art From (lcTabel)) ;
INTO Cursor cArt_sters
Select cArt_sters
Scan
pcId_pol_art = Nvl(Alltrim(Str(id_pol_art)),'NULL')
pcId_articol = Nvl(Alltrim(Str(id_articol)),'NULL')
lcSql = [begin pack_crm.sterge_ctr_art(] + Alltrim(Str(gnParametru_prog)) + [,] + pcId_ctr + [,] + Iif(gnParametru_prog=1,pcId_pol_art,pcId_articol) + [); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cArt_sters
Endscan
If Used('cArt_sters')
Use In cArt_sters
Endif
* daca exista id_ctr_art in plus in cursorul de pe local, adaug pe server
Select * From (lcTabel) Where Empty(id_ctr_art) ;
INTO Cursor cArt_nou
Select cArt_nou
Scan
pcId_pol_art = Iif(Empty(id_pol_art) Or Isnull(id_pol_art),'NULL',Alltrim(Str(id_pol_art)))
pcId_articol = Nvl(Alltrim(Str(id_articol)),'NULL')
pcPret_cu_tva = Alltrim(Str(pret_cu_tva))
pcPret_unitar = Nvl(Alltrim(Str(pret_unitar,20,gnPC)),"0")
pcCant = Alltrim(Str(cant,10,gnPCant))
pcCoef_discount = Nvl(Alltrim(Str(coef_discount,10,gnPC)),"0")
pcVal_discount = Nvl(Alltrim(Str(val_discount,20,gnPC)),"0")
pcId_valuta = Alltrim(Str(id_valuta))
pcUM = Nvl(Alltrim(um),'')
pcExplicatie = "" && ALLTRIM(explicatie)
lcSql = [begin pack_crm.adauga_ctr_art(] + pcId_ctr + [,] + pcId_pol_art + [,] + pcId_articol + [,] + pcPret_cu_tva + [,] + pcPret_unitar + [,] + ;
pcCant + [,] + pcCoef_discount + [,] + ;
pcVal_discount + [,] + pcId_valuta + [,'] + pcUM + [','] + pcExplicatie +['); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cArt_nou
Endscan
If Used('cArt_nou')
Use In cArt_nou
Endif
* pentru articolele care au deja id_ctr_art, fac update pe server
Select * From (lcTabel) Where !Empty(id_ctr_art) ;
INTO Cursor cArt_modi
Select cArt_modi
Scan
pcId_pol_art = Nvl(Alltrim(Str(id_pol_art)),'NULL')
pcId_articol = Nvl(Alltrim(Str(id_articol)),'NULL')
pcCant = Nvl(Alltrim(Str(cant,10,gnPCant)),"")
pcPret_cu_tva = Alltrim(Str(pret_cu_tva))
pcPret_unitar = Alltrim(Str(pret_unitar,20,gnPC))
pcCoef_discount = Alltrim(Str(coef_discount,10,gnPC))
pcVal_discount = Alltrim(Str(val_discount,20,gnPC))
pcId_valuta = Alltrim(Str(id_valuta))
lcSql = [begin pack_crm.modifica_ctr_art(] + pcParametru_prog + [,] + pcId_ctr + [,] + pcId_pol_art + [,] + pcId_articol + [,] + pcCant + [,] + ;
pcPret_cu_tva + [,] + pcPret_unitar + [,] + pcCoef_discount + [,] + pcVal_discount + [,] + pcId_valuta + [); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cArt_modi
Endscan
If Used('cArt_modi')
Use In cArt_modi
Endif
If Used('cCtrArt_server')
Use In cCtrArt_server
Endif
Return lnSucces
Endproc && salveaza_obiectul
***-----------------------------------------------------------------------------------------------------------------------------
Procedure salveaza_rate
Parameters tcTabel
Local lcTabel, lcId_scadentar, lcNr_rata, lcData_rata, lcData_scadenta, lcPret_cu_tva, lcProc_tva, lcValrata, lcId_valuta, lcDen_rata, lcProcent
lcTabel = tcTabel
lcSel = 'select id_rata from vctr_scadentar where id_ctr = '+ Alltrim(Str(goContract.id_ctr)) + ' order by nr_rata, data_rata'
lcCursor = 'cCtrScadentar_server'
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
* daca exista id_rata in plus in cursorul de pe local, adaug pe server
Select * From (lcTabel) Where (Empty(id_rata) Or Isnull(id_rata)) ;
INTO Cursor cRate_nou
Select cRate_nou
Scan
lcId_scadentar = Alltrim(Str(id_rata))
lcNr_rata = Nvl(Alltrim(Str(nr_rata)),'0')
lcData_rata = Alltrim(Dtos(data_rata))
lcData_scadenta = Alltrim(Dtos(data_scadenta))
lcPret_cu_tva = Nvl(Alltrim(Str(pret_cu_tva,20,gnPC)),'0')
lcProc_tva = Nvl(Alltrim(Str(proc_tva,20,gnPC)),'0')
lcValrata = Nvl(Alltrim(Str(valrata,20,gnPC)),'0')
lcId_valuta = Nvl(Alltrim(Str(id_valuta)),'0')
lcDen_rata = Nvl(Alltrim(den_rata),'')
lcProcent = Nvl(Alltrim(Str(procent,5,gnPC)),'0')
lcSql = [begin pack_crm.adauga_scadentar(] + pcId_ctr + [,] + lcNr_rata + ;
[,'] + lcDen_rata + [']+;
[,to_date(]+Iif(!Empty(lcData_rata) And !Isnull(lcData_rata),[']+lcData_rata+['],[NULL])+[,'YYYYMMDD')] + ;
[,to_date(]+Iif(!Empty(lcData_scadenta) And !Isnull(lcData_scadenta),[']+lcData_scadenta+['],[NULL])+[,'YYYYMMDD'),] + ;
lcPret_cu_tva + [,] + lcProc_tva + [,] + lcValrata + [,] + lcProcent + [,] + lcId_valuta + [,] + Alltrim(Str(gnIdUtil)) +[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cRate_nou
Endscan
If Used('cRate_nou')
Use In cRate_nou
Endif
* daca exista id_rata pe server, care nu mai sunt pe local, sterg
Select * From cCtrScadentar_server ;
Where id_rata Not In (Select id_rata From &lcTabel) ;
INTO Cursor cRate_sters
Select cRate_sters
Scan
pcId_rata = Alltrim(Str(id_rata))
lcSql = [begin pack_crm.sterge_scadentar(] + pcId_rata + [,] + Alltrim(Str(gnIdUtil)) + [); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cRate_sters
Endscan
If Used('cRate_sters')
Use In cRate_sters
Endif
* pentru ratele care au deja id_rata, fac update pe server
Select * From (lcTabel) Where !Empty(id_rata) ;
INTO Cursor cRate_modi
Select cRate_modi
Scan
lcId_scadentar = Alltrim(Str(id_rata))
lcNr_rata = Nvl(Alltrim(Str(nr_rata)),'0')
lcData_rata = Alltrim(Dtos(data_rata))
lcData_scadenta = Alltrim(Dtos(data_scadenta))
lcPret_cu_tva = Nvl(Alltrim(Str(pret_cu_tva,20,gnPC)),'0')
lcProc_tva = Nvl(Alltrim(Str(proc_tva,20,gnPC)),'0')
lcValrata = Nvl(Alltrim(Str(valrata,20,gnPC)),'0')
lcId_valuta = Nvl(Alltrim(Str(id_valuta)),'0')
lcDen_rata = Nvl(Alltrim(den_rata),'')
lcProcent = Nvl(Alltrim(Str(procent,5,gnPC)),'0')
lcSql = [begin pack_crm.modifica_scadentar(] + lcId_scadentar + [,] + lcNr_rata + ;
[,to_date(]+Iif(!Empty(lcData_rata) And !Isnull(lcData_rata),[']+lcData_rata+['],[NULL])+[,'YYYYMMDD')] + ;
[,to_date(]+Iif(!Empty(lcData_scadenta) And !Isnull(lcData_scadenta),[']+lcData_scadenta+['],[NULL])+[,'YYYYMMDD'),] + ;
lcPret_cu_tva + [,] + lcProc_tva + [,] + lcValrata + [,] + lcId_valuta + [,'] + lcDen_rata + [',] + lcProcent + [); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select cRate_modi
Endscan
If Used('cRate_modi')
Use In cRate_modi
Endif
If Used('cCtrScadentar_server')
Use In cCtrScadentar_server
Endif
Return lnSucces
Endproc && salveaza_rate
***-----------------------------------------------------------------------------------------------------------------------------
*!* modificare v 2.0.41 : am mutat-o in oproceduri_atasamente.prg
*!* Procedure salveaza_atasamente
*!* Parameters tcTabel
*!* Local lcTabel
*!* lcTabel = tcTabel
*!* lcSql = [select ar.id_referinta ]+;
*!* [ from VATAS_REFERINTE ar ]+;
*!* [ where ar.nume_fisier is not null and ar.id_tip_entitate = 2 and ar.id_entitate=]+Alltrim(Str(goContract.id_ctr))
*!* lcCursor = 'crsAtasamente_server'
*!* lnSucces = goExecutor.oExecute(lcSql, lcCursor)
*!* If lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Return lnSucces
*!* Endif
*!* * daca exista id_referinta in plus in cursorul de pe local, adaug pe server
*!* Private pnId_entitate, pnTip_entitate, pcLink, pcDescriere, pcFis_name, pcFisier, pnId_atas
*!* Store 0 To pnId_entitate, pnTip_entitate, pnId_atas
*!* Store "" To pcDescriere, pcFis_name, pcFisier, pcLink
*!* pnId_entitate = goContract.id_ctr
*!* pnTip_entitate = 2
*!* Select * From (lcTabel) ;
*!* Where (Empty(id_referinta) Or Isnull(id_referinta)) ;
*!* INTO Cursor cAtasamente_nou
*!* Select cAtasamente_nou
*!* Scan
*!* pcDescriere = Upper(Alltrim(descriere))
*!* pcFis_name = Upper(Alltrim(nume_fisier))
*!* *!* If Empty(pcLink)
*!* *!* Return
*!* *!* Endif
*!* * pcFisier = Filetostr(pcLink)
*!* pcFisier = fisier
*!* lcSql = [insert into atas_atasamente(fisier, nume_fisier, descriere, id_util) ]+;
*!* [values (?pcFisier, ?pcFis_name, ?pcDescriere, ?gnIdUtil) ] + ;
*!* [ returning id_atas into ?@pnId_atas]
*!* lnSucces = goExecutor.oExecute(lcSql)
*!* If lnSucces < 0
*!* aMessagebox(goExecutor.cEroare,0+16,'Eroare')
*!* Endif
*!* lcSql = [insert into atas_referinte(id_atas, id_tip_entitate, id_entitate, id_util) ]+;
*!* [values (?pnId_atas, ?pnTip_entitate, ?pnId_entitate, ?gnIdUtil) ]
*!* lnSucces = goExecutor.oExecute(lcSql)
*!* If lnSucces < 0
*!* aMessagebox(goExecutor.cEroare,0+16,'Eroare')
*!* Return lnSucces
*!* Endif
*!* Select cAtasamente_nou
*!* Endscan
*!* If Used('cAtasamente_nou')
*!* Use In cAtasamente_nou
*!* Endif
*!* * daca exista id_referinta pe server, care nu mai sunt pe local, sterg
*!* *!* Select id_referinta From crsAtasamente_server ;
*!* *!* Where id_referinta Not In (Select id_referinta From cId_ref) ;
*!* *!* INTO Cursor cAtasamente_sters
*!* lcDeleted = Set("Deleted")
*!* Set Deleted Off
*!* Select * From (lcTabel) Where Deleted() And !Empty(id_referinta);
*!* INTO Cursor cAtasamente_sters
*!* Select cAtasamente_sters
*!* Scan
*!* *pcId_atas = Alltrim(Str(id_atas))
*!* lcId_referinta = Alltrim(Str(id_referinta))
*!* lcSql = [update atas_referinte set sters = 1, dataoras = SYSDATE, id_utils = ] + Alltrim(Str(gnIdUtil)) + ;
*!* [ WHERE id_referinta = ] + lcId_referinta
*!* *[ WHERE id_atas = ] + pcId_atas
*!* *lcSql = lcSql + [ and id_tip_entitate=2 and id_entitate=]+Alltrim(Str(goContract.id_ctr))
*!* lnSucces = goExecutor.oExecute(lcSql)
*!* If lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Return lnSucces
*!* Endif
*!* Select cAtasamente_sters
*!* Endscan
*!* If Used('cAtasamente_sters')
*!* Use In cAtasamente_sters
*!* Endif
*!* Set Deleted &lcDeleted
*!* If Used('cAtasamente_sters')
*!* Use In cAtasamente_sters
*!* Endif
*!* If Used('crsAtasamente_server')
*!* Use In crsAtasamente_server
*!* Endif
*!* Return lnSucces
*!* Endproc && salveaza_atasamente
*!* modificare v 2.0.41 ^
***-----------------------------------------------------------------------------------------------------------------------------
Procedure salveaza_garantii
Parameters tcTabel
Local lcTabel
lcTabel = tcTabel
lcSql = [select fg.id_ctr, fg.id_ctr_fact_garan, ip.nract, ip.dataact, fg.valftva, fg.garantie ]+;
[ from ctr_facturi_garantii fg ]+;
[ left join ireg_parteneri ip ]+;
[ on fg.id_fact = ip.id_fact ]+;
[ where fg.id_ctr = ]+Alltrim(Str(goContract.id_ctr))+ [ and extract(year from ip.dataireg) * 12 + extract(month from ip.dataireg) = an * 12 + luna]
Do Case
Case gnParametru_prog=1
lcSql = lcSql+ [ and ip.cont = '4111' ]
Case gnParametru_prog=2
lcSql = lcSql+ [ and (ip.cont = '401' or ip.cont = '404') ]
Endcase
lcCursor = 'crsFactGarant_server'
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
* daca exista id_ctr_fact_garan in plus in cursorul de pe local, adaug pe server
Select * From (lcTabel) ;
Where Empty(Nvl(id_ctr_fact_garan,0)) ;
INTO Cursor crsFactGarant_nou
Select crsFactGarant_nou
Scan
lnId_fact = id_fact
lnFactValftva = valftva
lnGarantieRetinuta = garantie
lcSql = [begin pack_crm.adauga_factura_garantie(]+Alltrim(Str(goContract.id_ctr))+[,] + Alltrim(Str(lnId_fact))+[,]+;
ALLTRIM(Str(lnFactValftva,20,gnPA))+[,]+Alltrim(Str(lnGarantieRetinuta,20,gnPA))+[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select crsFactGarant_nou
Endscan
If Used('crsFactGarant_nou')
Use In crsFactGarant_nou
Endif
* daca exista id_ctr_fact_garan pe server, care nu mai sunt pe local, sterg
Select id_ctr_fact_garan From crsFactGarant_server;
Where id_ctr_fact_garan Not In (Select id_ctr_fact_garan From (lcTabel)) ;
INTO Cursor crsFactGarant_sters
*!* lcDeleted = Set("Deleted")
*!* Set Deleted Off
*!* Select * From (lcTabel) Where Deleted() And !Empty(id_referinta);
*!* INTO Cursor cAtasamente_sters
Select crsFactGarant_sters
Scan
lnId_ctr_fact_garan = id_ctr_fact_garan
lcSql = [begin pack_crm.sterge_factura_garantie(]+Alltrim(Str(lnId_ctr_fact_garan))+[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select crsFactGarant_sters
Endscan
If Used('crsFactGarant_sters')
Use In crsFactGarant_sters
Endif
*Set Deleted &lcDeleted
* pentru garantiile care au deja id_ctr_fact_garan, fac update pe server
Select * From (lcTabel) Where !Empty(Nvl(id_ctr_fact_garan,0)) ;
INTO Cursor crsFactGarant_modi
Select crsFactGarant_modi
Scan
lnId_ctr_fact_garan = id_ctr_fact_garan
lnFactValftva = valftva
lnGarantieRetinuta = garantie
lcSql = [begin pack_crm.modifica_factura_garantie(]+Alltrim(Str(lnId_ctr_fact_garan))+[,]+;
ALLTRIM(Str(lnFactValftva,20,gnPA))+[,]+Alltrim(Str(lnGarantieRetinuta,20,gnPA))+[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
Return lnSucces
Endif
Select crsFactGarant_modi
Endscan
If Used('crsFactGarant_modi')
Use In crsFactGarant_modi
Endif
If Used('crsFactGarant_server')
Use In crsFactGarant_server
Endif
Return lnSucces
Endproc && salveaza_garantii
***-----------------------------------------------------------------------------------------------------------------------------
Procedure make_cCtrFacturatIncasat
Parameters tlToate, tcFiltruCtr
Local llToate
llToate = tlToate
If llToate
lcSelect = [select i.dataact, i.datascad, i.nract, i.nume, i.id_part, i.id_ctr, i.contract,c.numar,c.data,i.id_responsabil,i.nresp,c.nume_val,c.valftva, SUM(] + Iif(gnParametru_prog = 1,[debit],[credit]) + [) as tot_fact, ] +;
[ SUM(] + Iif(gnParametru_prog = 1,[credit],[debit]) + [) as tot_achit, ] +;
[ 00000000000000.0000 as sold_contract, 00000000000000.0000 as sold_part ] +;
[ from vireg_parteneri i join vcontracte_toate c on i.id_ctr=c.id_ctr] + ;
IIF(!Empty(tcFiltruCtr),[ where ]+ tcFiltruCtr,[]) +;
[ group by i.dataact, i.datascad, i.nract, i.nume, i.id_part, i.id_ctr, i.contract,c.numar,c.data,i.id_responsabil,i.nresp,c.nume_val,c.valftva ] + ;
[ order by c.nume_val,c.data,c.numar]
Else
lcSelect = [select i.dataact, i.datascad, i.nract, i.nume, i.id_part, i.id_ctr, i.contract,c.numar,c.data,i.id_responsabil,i.nresp,c.nume_val,c.valftva, SUM(] + Iif(gnParametru_prog = 1,[debit],[credit]) + [) as tot_fact, ] +;
[ SUM(] + Iif(gnParametru_prog = 1,[credit],[debit]) + [) as tot_achit, ] +;
[ 00000000000000.0000 as sold_contract, 00000000000000.0000 as sold_part ] +;
[ from vireg_parteneri i join vcontracte_toate c on i.id_ctr=c.id_ctr] + ;
[ where i.id_ctr = ]+ Alltrim(Str(goContract.id_ctr)) +;
[ group by i.dataact, i.datascad, i.nract, i.nume, i.id_part, i.id_ctr, i.contract,c.numar,c.data,i.id_responsabil,i.nresp,c.nume_val,c.valftva ] + ;
[ order by c.nume_val,c.data,c.numar]
Endif
lcCursor = [cCtrFacturatIncasatI]
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Return
Endif
Select * From cCtrFacturatIncasatI With (Buffering = .T.) Into Cursor cCtrFacturatIncasat Readwrite
If Used('cCtrFacturatIncasatI')
Use In cCtrFacturatIncasatI
Endif
Endproc
Procedure inchide_cCtrFacturatIncasat
If Used('cCtrFacturatIncasat')
Use In cCtrFacturatIncasat
Endif
Endproc
****************************************************************************************
Procedure actualizeaza_drepturi_roacontracte
If gnParametru_prog = 2
With gofundal.pagefr1
.page1.cw2.visible = .F.
.page1.cw6.visible = .F.
.page4.cw4.visible = .F.
.page4.cw5.visible = .F.
Endwith
Endif
Endproc
****************************************************************************************