Procedure actualizari_schimbare_firma Local llExistaPrinc llExistaPrinc = Iif(Type('oprinc')='O',.T.,.F.) If llExistaPrinc oprinc.pagefr1.page2.ct_contracte1.grid_contracte.salveaza_grid() Endif Do start_firma In ostartfirma.prg viz_contracte() Select cContracte Scatter Name goContract Blank If llExistaPrinc oprinc.pagefr1.page2.ct_contracte1.grid_contracte.incarca_grid() oprinc.pagefr1.page2.ct_contracte1.nireg = Reccount('cContracte') verifica_drepturi('oprinc','pagefr1') actualizeaza_drepturi_roacontracte() Endif 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 oprinc.pagefr1 .page1.cw2.visible = .F. .page1.cw6.visible = .F. .page4.cw4.visible = .F. .page4.cw5.visible = .F. Endwith Endif Endproc ****************************************************************************************