From 115666155b3429582ac353582a5a424e11c63ca1 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Tue, 31 Mar 2026 14:09:01 +0000 Subject: [PATCH] pack_def --- api/database-scripts/10_PACK_DEF.pck | 2982 ++++++++++++++++++++++++++ 1 file changed, 2982 insertions(+) create mode 100644 api/database-scripts/10_PACK_DEF.pck diff --git a/api/database-scripts/10_PACK_DEF.pck b/api/database-scripts/10_PACK_DEF.pck new file mode 100644 index 0000000..10e432e --- /dev/null +++ b/api/database-scripts/10_PACK_DEF.pck @@ -0,0 +1,2982 @@ +CREATE OR REPLACE PACKAGE "PACK_DEF" is + + -- Author : PAULA.ROTA + -- Created : 6/22/2006 10:08:46 AM + -- Purpose : + + v_id_moneda_nationala NOM_VALUTE.ID_VALUTA%TYPE; + + nTipPersoanaJuridica NOM_PARTENERI.TIP_PERSOANA%TYPE := 1; + nTipPersoanaFizica NOM_PARTENERI.TIP_PERSOANA%TYPE := 2; + + -- Public type declarations + procedure adauga_categorie_entitate(V_CATEGORIE_ENTITATE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_ID_UTIL IN NUMBER); + + procedure modifica_categorie_entitate(V_ID_CATEGORIE_ENTITATE IN NUMBER, + V_CATEGORIE_ENTITATE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_ID_UTIL IN NUMBER); + + procedure sterge_categorie_entitate(V_ID_CATEGORIE_ENTITATE IN NUMBER, + V_ID_UTIL IN NUMBER); + + procedure adauga_valuta(V_DENUMIRE IN VARCHAR2, + V_ID_VALUTA_ISO IN NUMBER, + V_INACTIV IN NUMBER, + V_MONEDA_NATIONALA IN NUMBER, + V_ID_UTIL IN NUMBER); + + procedure modifica_valuta(V_ID_VALUTA IN NUMBER, + V_DENUMIRE IN VARCHAR2, + V_ID_VALUTA_ISO IN NUMBER, + V_INACTIV IN NUMBER, + V_MONEDA_NATIONALA IN NUMBER, + V_ID_UTIL IN NUMBER); + + procedure sterge_valuta(V_ID_VALUTA IN NUMBER, V_ID_UTIL IN NUMBER); + + function GetIdMonedaNationala return nom_valute.id_valuta%Type; + + procedure actualizeaza_referinte(V_TIP_DOCUMENT IN NUMBER, + V_TIP IN NUMBER, + V_ID_ATAS IN NUMBER, + V_ID_ENTITATE IN NUMBER, + V_ID_REFERINTA IN NUMBER, + V_ID_PROGRAM IN NUMBER, + V_ID_UTIL IN NUMBER); + + PROCEDURE adauga_coresp_delegat(V_ID_DELEGAT IN NUMBER, + V_ID_PART IN NUMBER); + + PROCEDURE actualizeaza_coresp_delegati(V_ID_DELEGAT IN NUMBER, + tcListaIdPart IN VARCHAR2); + + PROCEDURE cauta_partener(tcDenumire IN OUT VARCHAR2, + tcCod_fiscal IN VARCHAR2, + tnTip_persoana IN NUMBER, + tcNume IN OUT VARCHAR2, + tcPrenume IN OUT VARCHAR2, + tcReg_comert IN OUT VARCHAR2, + tnId_loc_inreg IN OUT NUMBER, + tcLocalitate_inreg IN OUT VARCHAR2, + tnId_categorie_entitate IN OUT NUMBER, + tcCategorie_entitate IN OUT VARCHAR2, + tcPrefix IN OUT VARCHAR2, + tcSufix IN OUT VARCHAR2, + tcBanca IN OUT VARCHAR2, + tcCont_banca IN OUT VARCHAR2, + tnInactiv IN OUT NUMBER, + tcMotiv_inactiv IN OUT VARCHAR2); + + procedure adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tnId_Part OUT NUMBER); + + procedure modifica_partener(tnId_part number, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2); + + PROCEDURE adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2); + + procedure adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2, + tnId_Part OUT NUMBER); + + procedure adauga_modifica_partener(tnId_Part IN OUT NUMBER, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcCod_fiscal2 varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2, + tcSwift_banca varchar2 default null, + tcAdresa_banca varchar2 default null, + tnInstitutiePublica number default 0); + + procedure adauga_partener_cod_fiscal(tcDenumire varchar2, + tcNume varchar2 default null, + tcPrenume varchar2 default null, + tcCod_fiscal varchar2, + tnId_Part OUT NUMBER); + + procedure modifica_partener(tnId_part number, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2); + + procedure sterge_partener(tnId_part number, tnId_util number); + + procedure adauga_responsabil(tnId_part number); + + procedure adauga_adresa_partener(tnId_part number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number); + + procedure adauga_adresa_partener(tnId_part number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number, + tnIdAdresa OUT NUMBER); + + procedure adauga_adresa_partener2(tnId_part number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number); + + procedure adauga_adresa_partener2(tnId_part number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number, + tnIdAdresa OUT NUMBER); + + procedure modifica_adresa_partener(tnId_adresa number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number); + + procedure modifica_adresa_partener2(tnId_adresa number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number); + + procedure sterge_adresa_partener(tnId_adresa number, tnId_util number); + + procedure get_partener_tipuri(tnId_part IN NUMBER, + tnIdTipPart IN NUMBER, + tnParent_id IN NUMBER, + p_cursor OUT pack_types.tip_cursor); + + procedure adauga_pers_contact(tnId_part number, + tcNume varchar2, + tcPrenume varchar2, + tcApelativ varchar2, + tcFunctia varchar2, + tcTelefon varchar2, + tcEmail varchar2, + tnPrincipal number, + tnInactiv number, + tnId_util number); + + procedure modifica_pers_contact(tnId_pers number, + tcNume varchar2, + tcPrenume varchar2, + tcApelativ varchar2, + tcFunctia varchar2, + tcTelefon varchar2, + tcEmail varchar2, + tnPrincipal number, + tnInactiv number, + tnId_util number); + + procedure sterge_pers_contact(tnId_pers number, tnId_util number); + + procedure adauga_lucrare(V_NRORD IN VARCHAR2, + V_ID_TATA IN NUMBER, + V_INACTIV IN NUMBER); + + procedure modifica_lucrare(V_ID_LUCRARE IN NUMBER, + V_NRORD IN VARCHAR2, + V_ID_TATA IN NUMBER, + V_INACTIV IN NUMBER); + + procedure adauga_contract(tnId_part IN NUMBER, + tcNumar IN VARCHAR2, + tdData IN DATE, + tnId_tip_ctr IN NUMBER, + tnInactiv IN NUMBER, + tcTipIstoric IN VARCHAR2, + tnIdTata IN NUMBER, + tnValftva IN NUMBER, + tnProcTVA IN NUMBER, + tnIdValuta IN NUMBER, + tnIdResponsabil IN NUMBER, + tnIdUtil IN NUMBER); + + procedure adauga_contract(tnId_part IN NUMBER, + tcNumar IN VARCHAR2, + tdData IN DATE, + tnId_tip_ctr IN NUMBER, + tnInactiv IN NUMBER, + tcTipIstoric IN VARCHAR2, + tcDescriere IN VARCHAR2, + tnIdTata IN NUMBER, + tnValftva IN NUMBER, + tnProcTVA IN NUMBER, + tnCurs IN NUMBER, + tnIdValuta IN NUMBER, + tnIdResponsabil IN NUMBER, + tnIdUtil IN NUMBER); + + procedure modifica_contract(tnId_ctr number, + tcNumar varchar2, + tdData date, + tnId_tip_ctr number, + tnInactiv number, + tnId_util number); + + procedure adauga_modifica_contract(tnIdCtr IN OUT CONTRACTE.ID_CTR%TYPE, + tnIdPart IN CONTRACTE.ID_PART%TYPE, + tcNumar IN CONTRACTE.NUMAR%TYPE, + tdData IN CONTRACTE.DATA%TYPE, + tdDataInceput IN CONTRACTE.DATA_INCEPUT%TYPE, + tdDataSfarsit IN CONTRACTE.DATA_SFARSIT%TYPE, + tnIdTipCtr IN CONTRACTE.ID_TIP_CTR%TYPE, + tnInactiv IN CONTRACTE.INACTIV%TYPE, + tcTipIstoric IN CONTRACTE.TIP_ISTORIC%TYPE, + tcDescriere IN CONTRACTE.DESCRIERE%TYPE, + tnIdTata IN CONTRACTE.ID_TATA%TYPE, + tnValftva IN CONTRACTE.VALFTVA%TYPE, + tnProcTVA IN CONTRACTE.PROC_TVA%TYPE, + tnCurs IN CONTRACTE.CURS%TYPE, + tnIdValuta IN CONTRACTE.ID_VALUTA%TYPE, + tnTipCurs IN CONTRACTE.TIP_CURS%TYPE, + tnIdResponsabil IN CONTRACTE.ID_RESPONSABIL%TYPE, + tnZileScadenta IN CONTRACTE.SCADENTA_INCASARE%TYPE, + tnCoefPenalitati IN CONTRACTE.COEF_PENALITATI%TYPE, + tnCoefPenalitati2 IN CONTRACTE.COEF_PENALITATI2%TYPE, + tnZilePenalitati IN CONTRACTE.ZILE_PENALITATI%TYPE, + tnZilePenalitati2 IN CONTRACTE.ZILE_PENALITATI2%TYPE, + tnZileGratiePenalitati IN CONTRACTE.ZILE_GRATIE_PENALITATI%TYPE, + tnIdUtil IN CONTRACTE.ID_UTIL%TYPE); + + procedure sterge_contract(tnId_ctr number, tnId_util number); + + procedure get_conturi_tip_part(tnIdTip number, + tcSirId_tip_part out varchar2); + + procedure adauga_coresp_tip_part(tnIdPart IN CORESP_TIP_PART.ID_PART%TYPE, + tnIdTipPart IN CORESP_TIP_PART.ID_TIP_PART%TYPE); + + procedure adauga_gestiune(tcNumeGestiune IN nom_gestiuni.nume_gestiune%type, + tcGest IN nom_gestiuni.nume_gestiune%type, + tcCont IN nom_gestiuni.nume_gestiune%type default null, + tnNr_Pag IN nom_gestiuni.nume_gestiune%type, + tcAcont IN nom_gestiuni.nume_gestiune%type default null, + tnInactiv IN nom_gestiuni.nume_gestiune%type, + tnId_Sucursala IN nom_gestiuni.nume_gestiune%type default null, + tnId_Responsabil IN nom_gestiuni.nume_gestiune%type default null, + tnId_Sectie IN nom_gestiuni.nume_gestiune%type default null, + tcAcontCheltuiala IN nom_gestiuni.nume_gestiune%type default null, + tcAcontAdaos IN nom_gestiuni.nume_gestiune%type default null, + tnId_Lucrare IN nom_gestiuni.nume_gestiune%type default null, + tcGestionar IN nom_gestiuni.gestionar%type default null, + tcReceptie1 IN nom_gestiuni.comisie_receptie1%type default null, + tcReceptie2 IN nom_gestiuni.comisie_receptie2%type default null, + tcReceptie3 IN nom_gestiuni.comisie_receptie3%type default null); + + procedure modifica_gestiune(tnIdGestiune IN nom_gestiuni.id_gestiune%type, + tcNumeGestiune IN nom_gestiuni.nume_gestiune%type, + tcGest IN nom_gestiuni.nume_gestiune%type, + tcCont IN nom_gestiuni.nume_gestiune%type default null, + tnNr_Pag IN nom_gestiuni.nume_gestiune%type, + tcAcont IN nom_gestiuni.nume_gestiune%type default null, + tnInactiv IN nom_gestiuni.nume_gestiune%type, + tnId_Sucursala IN nom_gestiuni.nume_gestiune%type default null, + tnId_Responsabil IN nom_gestiuni.nume_gestiune%type default null, + tnId_Sectie IN nom_gestiuni.nume_gestiune%type default null, + tcAcontCheltuiala IN nom_gestiuni.nume_gestiune%type default null, + tcAcontAdaos IN nom_gestiuni.nume_gestiune%type default null, + tnId_Lucrare IN nom_gestiuni.nume_gestiune%type default null, + tcGestionar IN nom_gestiuni.gestionar%type default null, + tcReceptie1 IN nom_gestiuni.comisie_receptie1%type default null, + tcReceptie2 IN nom_gestiuni.comisie_receptie2%type default null, + tcReceptie3 IN nom_gestiuni.comisie_receptie3%type default null); + + procedure sterge_gestiune(tnIdGestiune IN NUMBER, tnIdUtil IN NUMBER); + + procedure adauga_asociere_part_sect(tnId_part number, + tnId_sectie number, + tnId_util number, + tnId_tip number); + procedure modifica_asociere_part_sect(tnId_asociere number, + tnId_part number, + tnId_sectie number, + tnId_util number); + procedure sterge_asociere_part_sect(tnId_asociere number); + + procedure adauga_sectie(V_SECTIE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_CSECTIE IN VARCHAR2, + V_ID_SUCURSALA IN NUMBER); + + procedure modifica_sectie(V_ID_SECTIE IN NUMBER, + V_SECTIE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_CSECTIE IN VARCHAR2, + V_ID_SUCURSALA IN NUMBER); + procedure asociere_part_gest(tnIdAsociere asociere_parteneri_gestiuni.id_asociere%Type, + tnIdPart asociere_parteneri_gestiuni.id_part%Type, + tnIdGestiune asociere_parteneri_gestiuni.id_gestiune%Type, + tcCont asociere_parteneri_gestiuni.cont%Type, + tnIdUtil asociere_parteneri_gestiuni.id_util%Type, + tnIdTip asociere_parteneri_gestiuni.id_tip%Type); + procedure sterge_asociere_part_gest(tnIdAsociere asociere_parteneri_gestiuni.id_asociere%Type); + + procedure modifica_date_firma(V_ID_FIRMA IN SYN_NOM_FIRME.ID_FIRMA%TYPE, + V_FIRMA IN SYN_NOM_FIRME.FIRMA%TYPE, + V_ANTET IN SYN_NOM_FIRME.ANTET%TYPE, + V_COD_FISCAL IN SYN_NOM_FIRME.COD_FISCAL%TYPE, + V_REG_COMERT IN SYN_NOM_FIRME.REG_COMERT%TYPE, + V_BANCA1 IN SYN_NOM_FIRME.BANCA1%TYPE, + V_CONT_BANCA1 IN SYN_NOM_FIRME.CONT_BANCA1%TYPE, + V_BANCA2 IN SYN_NOM_FIRME.BANCA2%TYPE, + V_CONT_BANCA2 IN SYN_NOM_FIRME.CONT_BANCA2%TYPE, + V_BANCA3 IN SYN_NOM_FIRME.BANCA3%TYPE, + V_CONT_BANCA3 IN SYN_NOM_FIRME.CONT_BANCA3%TYPE, + V_BANCA4 IN SYN_NOM_FIRME.BANCA4%TYPE, + V_CONT_BANCA4 IN SYN_NOM_FIRME.CONT_BANCA4%TYPE, + V_BANCA5 IN SYN_NOM_FIRME.BANCA5%TYPE, + V_CONT_BANCA5 IN SYN_NOM_FIRME.CONT_BANCA5%TYPE, + V_BANCA6 IN SYN_NOM_FIRME.BANCA6%TYPE, + V_CONT_BANCA6 IN SYN_NOM_FIRME.CONT_BANCA6%TYPE, + V_BANCA7 IN SYN_NOM_FIRME.BANCA7%TYPE, + V_CONT_BANCA7 IN SYN_NOM_FIRME.CONT_BANCA7%TYPE, + V_BANCA8 IN SYN_NOM_FIRME.BANCA8%TYPE, + V_CONT_BANCA8 IN SYN_NOM_FIRME.CONT_BANCA8%TYPE, + V_BANCA9 IN SYN_NOM_FIRME.BANCA9%TYPE, + V_CONT_BANCA9 IN SYN_NOM_FIRME.CONT_BANCA9%TYPE, + V_BANCA10 IN SYN_NOM_FIRME.BANCA10%TYPE, + V_CONT_BANCA10 IN SYN_NOM_FIRME.CONT_BANCA10%TYPE, + V_ADRESA IN SYN_NOM_FIRME.ADRESA%TYPE, + V_COD_FIRMA IN SYN_NOM_FIRME.COD_FIRMA%TYPE, + V_PERS_JUR IN SYN_NOM_FIRME.PERSOANA_JURIDICA%TYPE, + V_CODANG IN SYN_NOM_FIRME.CODANG%TYPE, + V_NUME IN SYN_NOM_FIRME.NUME%TYPE, + V_PRENUME IN SYN_NOM_FIRME.PRENUME%TYPE, + V_TELEFON1 IN SYN_NOM_FIRME.TELEFON%TYPE, + V_TELEFON2 IN SYN_NOM_FIRME.TELEFON2%TYPE, + V_TELEFON3 IN SYN_NOM_FIRME.TELEFON3%TYPE, + V_FAX IN SYN_NOM_FIRME.FAX%TYPE, + V_EMAIL IN SYN_NOM_FIRME.EMAIL%TYPE, + V_OASP IN SYN_NOM_FIRME.OASP%TYPE, + V_CAP_SOC_VAR IN SYN_NOM_FIRME.CAPITAL_SOC_VAR%TYPE, + V_CAP_SOC_SUB IN SYN_NOM_FIRME.CAPITAL_SOC_SUB%TYPE, + V_PUNCT_LUCRU IN SYN_NOM_FIRME.PUNCT_LUC%TYPE, + V_CAEN IN SYN_NOM_FIRME.CAEN%TYPE, + V_SCHEMA IN SYN_NOM_FIRME.SCHEMA%TYPE, + V_JUDET IN SYN_NOM_FIRME.JUDET%TYPE, + V_LOCALITATE IN SYN_NOM_FIRME.LOCALITATE%TYPE, + V_STRADA IN SYN_NOM_FIRME.STRADA%TYPE, + V_NUMAR IN SYN_NOM_FIRME.NUMAR%TYPE, + V_BLOC IN SYN_NOM_FIRME.BLOC%TYPE, + V_SCARA IN SYN_NOM_FIRME.SCARA%TYPE, + V_APART IN SYN_NOM_FIRME.APART%TYPE, + V_COD_POSTAL IN SYN_NOM_FIRME.COD_POSTAL%TYPE, + V_ID_MAMA IN SYN_NOM_FIRME.ID_MAMA%TYPE, + V_E_MAMA IN SYN_NOM_FIRME.E_MAMA%TYPE, + V_ID_LOC IN SYN_NOM_FIRME.ID_LOC%TYPE, + V_ID_UTIL IN SYN_NOM_FIRME.ID_UTILOP%TYPE, + V_ID_FORMAJ IN SYN_NOM_FIRME.ID_FORMA_JURIDICA%TYPE, + V_ID_FORMAO IN SYN_NOM_FIRME.ID_FORMA_ORGANIZARE%TYPE, + V_ID_FORMAP IN SYN_NOM_FIRME.ID_FORMA_PROP%TYPE, + V_ID_TIP_SOC IN SYN_NOM_FIRME.ID_TIP_SOC%TYPE, + V_INDICATIV IN SYN_NOM_FIRME.INDICATIV%TYPE, + V_DECLARANT IN SYN_NOM_FIRME.DECLARANT%TYPE, + V_FUNCTIE IN SYN_NOM_FIRME.FUNCTIE%TYPE, + V_INDICE_ITM IN SYN_NOM_FIRME.INDICE_ITM%TYPE, + V_TIP_MODIFICARE IN NUMBER, + V_CAEN_REVIZIE IN SYN_NOM_FIRME.CAEN_REVIZIE%TYPE DEFAULT NULL); + + procedure citesteNumeEnt(tnIdUtil IN NUMBER, tcNumeEnt OUT VARCHAR2); + +end PACK_DEF; +/ +CREATE OR REPLACE PACKAGE BODY "PACK_DEF" is + -- ultima eroare atribuita DEF-001 + -- 20.07.2006 + -- MARIUS MUTU + -- MODIFICA_PARTENER - AM STERS DIN CORESP_TIP_PART IN LOC DE UPDATE STERS = 1 + -- adauga partener + + -- 24.03.2010 + -- MARIUS MUTU + -- ADAUGA_GESTIUNE, MODIFICA_GESTIUNE (+ACONT_CHELTUIALA, ACONT_ADAOS) + + -- 28.06.2013 + -- MARIUS MUTU + -- ADAUGA_GESTIUNE, MODIFICA_GESTIUNE (+id_lucrare) + + -- 16.09.2016 + -- marius.mutu + -- + adauga_partener_cod_fiscal + -- cauta partener dupa cod fiscal si il adauga (denumire, cod fiscal) + -- intoarce id_part daca exista sau nou daca se adauga + -- folositoare la import din alte programe in ROA + + -- 08.10.2019 + -- marius.mutu + -- adauga_adresa_partener2, modifica_adresa_partener2 - nu se adauga localitate daca incepe cu <(ALEGETI LOCALITATE>) + + -- 29.10.2019 + -- marius.mutu + -- adauga_modifica_contract campuri noi + + -- 31.12.2019 + -- marius.mutu + -- PACK_DEF.modifica_gestiune, adauga_gestiune COMISIE_RECEPTIE, GESTIONAR + + -- 07.01.2020 + -- marius.mutu + -- adauga_modifica_contract: data_inceput, data_sfarsit + + -- 15.01.2020 + -- adauga_modifica_partener in loc de adauga_partener/modifica_partener + -- nu se permite adaugarea unui partener cu acelasi (cod fiscal, nume). inainte intorcea Id_part si intra in modificare + + -- 09.09.2021 + -- adauga_modifica_partener + swift_banca, adresa_banca + + -- 23.06.2022 + -- adauga_modifica_partener + institutie_publica + + -- 18.01.2024 + -- sterge_adresa_partener - stergere. dadea eroare string_agg() la verificarea adreselor din comenzi daca erau prea multe comenzi + + -- 17.02.2025 + -- modifica_date_firma + caen_revizie + + -- 27.06.2025 + -- modifica_date_firma + conturi bancare + + procedure adauga_categorie_entitate(V_CATEGORIE_ENTITATE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_ID_UTIL IN NUMBER) IS + V_NR_INREGISTRARI NUMBER(10); + BEGIN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_CATEGORII_ENTITATI + WHERE CATEGORIE_ENTITATE = V_CATEGORIE_ENTITATE + AND STERS = 0; + + IF V_NR_INREGISTRARI > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o categorie cu aceasta denumire!'); + END IF; + + INSERT INTO NOM_CATEGORII_ENTITATI + (CATEGORIE_ENTITATE, INACTIV, ID_UTIL) + VALUES + (V_CATEGORIE_ENTITATE, V_INACTIV, V_ID_UTIL); + + END adauga_categorie_entitate; + ---------------------------------------------------------------------- + procedure modifica_categorie_entitate(V_ID_CATEGORIE_ENTITATE IN NUMBER, + V_CATEGORIE_ENTITATE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_ID_UTIL IN NUMBER) IS + V_NR_INREGISTRARI NUMBER(10); + BEGIN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_CATEGORII_ENTITATI + WHERE CATEGORIE_ENTITATE = V_CATEGORIE_ENTITATE + AND STERS = 0 + AND ID_CATEGORIE_ENTITATE <> V_ID_CATEGORIE_ENTITATE; + + IF V_NR_INREGISTRARI > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o categorie cu aceasta denumire!'); + END IF; + + UPDATE NOM_CATEGORII_ENTITATI + SET CATEGORIE_ENTITATE = V_CATEGORIE_ENTITATE, INACTIV = V_INACTIV + WHERE ID_CATEGORIE_ENTITATE = V_ID_CATEGORIE_ENTITATE; + END modifica_categorie_entitate; + ---------------------------------------------------------------------- + procedure sterge_categorie_entitate(V_ID_CATEGORIE_ENTITATE IN NUMBER, + V_ID_UTIL IN NUMBER) IS + V_NR_INREGISTRARI NUMBER(10); + BEGIN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_PARTENERI + WHERE ID_CATEGORIE_ENTITATE = V_ID_CATEGORIE_ENTITATE + AND STERS = 0; + + CASE + WHEN V_NR_INREGISTRARI > 1 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta categorie nu poate fi stearsa,' || + 'deoarece este asociata unui numar de ' || + V_NR_INREGISTRARI || ' entitati!'); + WHEN V_NR_INREGISTRARI = 1 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta categorie nu poate fi stearsa,' || + 'deoarece este asociata unei entitati!'); + ELSE + UPDATE NOM_CATEGORII_ENTITATI + SET STERS = 1, DATAORAS = SYSDATE, ID_UTILS = V_ID_UTIL + WHERE ID_CATEGORIE_ENTITATE = V_ID_CATEGORIE_ENTITATE; + END CASE; + + END sterge_categorie_entitate; + ---------------------------------------------------------------------- + procedure adauga_valuta(V_DENUMIRE IN VARCHAR2, + V_ID_VALUTA_ISO IN NUMBER, + V_INACTIV IN NUMBER, + V_MONEDA_NATIONALA IN NUMBER, + V_ID_UTIL IN NUMBER) is + V_NR_INREGISTRARI NUMBER(20); + V_NR_INREGISTRARI2 NUMBER(20); + begin + SELECT SUM(DECODE(NUME_VAL, V_DENUMIRE, 1, 0)), + SUM(NVL2(ID_VALUTA_ISO, + DECODE(ID_VALUTA_ISO + INACTIV, V_ID_VALUTA_ISO, 1, 0), + 0)) + INTO V_NR_INREGISTRARI, V_NR_INREGISTRARI2 + FROM NOM_VALUTE + WHERE STERS = 0; + + CASE + WHEN V_NR_INREGISTRARI > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o valuta cu acest nume!'); + WHEN V_NR_INREGISTRARI2 > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o valuta cu acest simbol!'); + ELSE + V_NR_INREGISTRARI := 0; + END CASE; + + INSERT INTO NOM_VALUTE + (NUME_VAL, INACTIV, MONEDA_NATIONALA, ID_VALUTA_ISO) + VALUES + (V_DENUMIRE, V_INACTIV, V_MONEDA_NATIONALA, V_ID_VALUTA_ISO); + end adauga_valuta; + ---------------------------------------------------------------------------- + procedure modifica_valuta(V_ID_VALUTA IN NUMBER, + V_DENUMIRE IN VARCHAR2, + V_ID_VALUTA_ISO IN NUMBER, + V_INACTIV IN NUMBER, + V_MONEDA_NATIONALA IN NUMBER, + V_ID_UTIL IN NUMBER) is + V_NR_INREGISTRARI NUMBER(20); + V_NR_INREGISTRARI2 NUMBER(20); + begin + SELECT SUM(DECODE(NUME_VAL, V_DENUMIRE, 1, 0)), + SUM(NVL2(ID_VALUTA_ISO, + DECODE(ID_VALUTA_ISO + INACTIV, V_ID_VALUTA_ISO, 1, 0), + 0)) + INTO V_NR_INREGISTRARI, V_NR_INREGISTRARI2 + FROM NOM_VALUTE + WHERE STERS = 0 + AND ID_VALUTA <> V_ID_VALUTA; + + CASE + WHEN V_NR_INREGISTRARI > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o valuta cu acest nume!'); + WHEN V_NR_INREGISTRARI2 > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o valuta cu acest simbol!'); + ELSE + V_NR_INREGISTRARI := 0; + END CASE; + + UPDATE NOM_VALUTE + SET NUME_VAL = V_DENUMIRE, + INACTIV = V_INACTIV, + MONEDA_NATIONALA = V_MONEDA_NATIONALA, + ID_VALUTA_ISO = V_ID_VALUTA_ISO + WHERE ID_VALUTA = V_ID_VALUTA; + end modifica_valuta; + ---------------------------------------------------------------------------- + procedure sterge_valuta(V_ID_VALUTA IN NUMBER, V_ID_UTIL IN NUMBER) is + begin + nomdelproc('NOM_VALUTE', + 'NOM_VALUTE.ID_VALUTA', + V_ID_VALUTA, + 'ACT', + 'ACT.ID_VALUTA'); + end sterge_valuta; + + ------------------------------------------------------------------------ + -- intoarce id-ul monedei nationale + -- daca nu gaseste sau da eroare intoarce 0 + function GetIdMonedaNationala return nom_valute.id_valuta%Type is + lnIdMonedaNationala nom_valute.id_valuta%Type := 0; + begin + + begin + SELECT MIN(ID_VALUTA) + INTO lnIdMonedaNationala + FROM NOM_VALUTE + WHERE STERS = 0 + AND MONEDA_NATIONALA = 1; + EXCEPTION + WHEN OTHERS THEN + lnIdMonedaNationala := 0; + end; + return nvl(lnIdMonedaNationala, 0); + + end; + ---------------------------------------------------------------------------- + procedure actualizeaza_referinte(V_TIP_DOCUMENT IN NUMBER, + V_TIP IN NUMBER, + V_ID_ATAS IN NUMBER, + V_ID_ENTITATE IN NUMBER, + V_ID_REFERINTA IN NUMBER, + V_ID_PROGRAM IN NUMBER, + V_ID_UTIL IN NUMBER) is + V_NR_INREGISTRARI NUMBER(10); + V_NR_INREGISTRARI2 NUMBER(10); + V_NUME_FISIER ATAS_ATASAMENTE.NUME_FISIER%TYPE; + V_DESCRIERE ATAS_ATASAMENTE.DESCRIERE%TYPE; + begin + IF V_TIP_DOCUMENT = 1 THEN + SELECT NUME_FISIER, DESCRIERE + INTO V_NUME_FISIER, V_DESCRIERE + FROM ATAS_ATASAMENTE + WHERE ID_ATAS = V_ID_ATAS; + + SELECT SUM(DECODE(NUME_FISIER, V_NUME_FISIER, 1, 0)), + SUM(DECODE(DESCRIERE, V_DESCRIERE, 1, 0)) + INTO V_NR_INREGISTRARI, V_NR_INREGISTRARI2 + FROM SAL_VDOCUMENTE_RU + WHERE NUME_FISIER = V_NUME_FISIER + OR DESCRIERE = V_DESCRIERE; + + IF V_NR_INREGISTRARI > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista un document cu numele ' || + V_NUME_FISIER || ' !'); + END IF; + + IF V_NR_INREGISTRARI2 > 0 THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista un document cu descrierea ' || + V_DESCRIERE || ' !'); + END IF; + + /* document nou */ + INSERT INTO ATAS_REFERINTE + (ID_ATAS, ID_ENTITATE, ID_UTIL, ID_PROGRAM, ORDINE) + SELECT V_ID_ATAS, + V_ID_ENTITATE, + V_ID_UTIL, + V_ID_PROGRAM, + NVL(MAX(ORDINE), 0) + 1 + FROM ATAS_REFERINTE + WHERE ID_PROGRAM = V_ID_PROGRAM + AND ID_ENTITATE = V_ID_ENTITATE; + ELSE + IF V_TIP = 2 THEN + /* exista deja in firma */ + UPDATE ATAS_ATASAMENTE + SET STERS = 1, ID_UTILS = V_ID_UTIL, DATAORAS = SYSDATE + WHERE ID_ATAS IN (SELECT ID_ATAS + FROM ATAS_REFERINTE + WHERE ID_REFERINTA = V_ID_REFERINTA); + UPDATE ATAS_REFERINTE + SET ID_ATAS = V_ID_ATAS + WHERE ID_REFERINTA = V_ID_REFERINTA; + Else + /* e nou in firma */ + INSERT INTO ATAS_REFERINTE + (ID_REFERINTA, ID_ATAS, ID_ENTITATE, ID_UTIL, ID_PROGRAM, ORDINE) + SELECT V_ID_REFERINTA, + V_ID_ATAS, + V_ID_ENTITATE, + V_ID_UTIL, + V_ID_PROGRAM, + ORDINE + FROM SYN_ATAS_REFERINTE + WHERE ID_REFERINTA = V_ID_REFERINTA; + End IF; + end if; + end actualizeaza_referinte; + ---------------------------------------------------------------------------- + PROCEDURE adauga_coresp_delegat(V_ID_DELEGAT IN NUMBER, + V_ID_PART IN NUMBER) IS + BEGIN + INSERT INTO CORESP_DELEGATI_PART + (ID_DELEGAT, ID_PART) + VALUES + (V_ID_DELEGAT, V_ID_PART); + END adauga_coresp_delegat; + ---------------------------------------------------------------------------- + PROCEDURE actualizeaza_coresp_delegati(V_ID_DELEGAT IN NUMBER, + tcListaIdPart IN VARCHAR2) IS + V_SEPARATOR VARCHAR2(10); + BEGIN + IF tcListaIdPart IS NOT NULL THEN + V_SEPARATOR := ';'; + IF tcListaIdPart = '2=2' THEN + UPDATE CORESP_DELEGATI_PART + SET STERS = 1 + WHERE ID_DELEGAT = V_ID_DELEGAT + AND STERS = 0; + ELSE + MERGE INTO CORESP_DELEGATI_PART A + USING (SELECT x as ID_PART + FROM table(charn2collection(tcListaIdPart, V_SEPARATOR))) B + ON (A.ID_DELEGAT = V_ID_DELEGAT AND A.ID_PART = B.ID_PART) + WHEN MATCHED THEN + UPDATE SET STERS = 1 - STERS + WHEN NOT MATCHED THEN + INSERT /*+ APPEND */ + (ID_DELEGAT, ID_PART) + VALUES + (V_ID_DELEGAT, B.ID_PART); + END IF; + END IF; + END actualizeaza_coresp_delegati; + ---------------------------------------------------------------------------- + PROCEDURE cauta_partener(tcDenumire IN OUT VARCHAR2, + tcCod_fiscal IN VARCHAR2, + tnTip_persoana IN NUMBER, + tcNume IN OUT VARCHAR2, + tcPrenume IN OUT VARCHAR2, + tcReg_comert IN OUT VARCHAR2, + tnId_loc_inreg IN OUT NUMBER, + tcLocalitate_inreg IN OUT VARCHAR2, + tnId_categorie_entitate IN OUT NUMBER, + tcCategorie_entitate IN OUT VARCHAR2, + tcPrefix IN OUT VARCHAR2, + tcSufix IN OUT VARCHAR2, + tcBanca IN OUT VARCHAR2, + tcCont_banca IN OUT VARCHAR2, + tnInactiv IN OUT NUMBER, + tcMotiv_inactiv IN OUT VARCHAR2) IS + BEGIN + BEGIN + IF tcDenumire IS NOT NULL THEN + SELECT NUME, + PRENUME, + REG_COMERT, + ID_LOC_INREG, + LOCALITATE_INREG, + ID_CATEGORIE_ENTITATE, + CATEGORIE_ENTITATE, + PREFIX, + SUFIX, + BANCA, + CONT_BANCA, + INACTIV, + MOTIV_INACTIV + INTO tcNume, + tcPrenume, + tcReg_comert, + tnId_loc_inreg, + tcLocalitate_inreg, + tnId_categorie_entitate, + tcCategorie_entitate, + tcPrefix, + tcSufix, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv + FROM VNOM_PARTENERI + WHERE COD_FISCAL = tcCod_fiscal + AND DENUMIRE = tcDenumire + AND TIP_PERSOANA = tnTip_persoana; + ELSE + SELECT DENUMIRE, + NUME, + PRENUME, + REG_COMERT, + ID_LOC_INREG, + LOCALITATE_INREG, + ID_CATEGORIE_ENTITATE, + CATEGORIE_ENTITATE, + PREFIX, + SUFIX, + BANCA, + CONT_BANCA, + INACTIV, + MOTIV_INACTIV + INTO tcDenumire, + tcNume, + tcPrenume, + tcReg_comert, + tnId_loc_inreg, + tcLocalitate_inreg, + tnId_categorie_entitate, + tcCategorie_entitate, + tcPrefix, + tcSufix, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv + FROM VNOM_PARTENERI + WHERE COD_FISCAL = tcCod_fiscal + AND TIP_PERSOANA = tnTip_persoana; + END IF; + + EXCEPTION + WHEN NO_DATA_FOUND THEN + tcNume := TRIM(tcNume); + tcPrenume := TRIM(tcPrenume); + /* tcReg_comert := NULL; + tnId_loc_inreg := NULL; + tcLocalitate_inreg := NULL; + tnId_categorie_entitate := NULL; + tcCategorie_entitate := NULL; + tcPrefix := NULL; + tcSufix := NULL; + tcBanca := NULL; + tcCont_banca := NULL; + tnInactiv := 0; + tcMotiv_inactiv := NULL;*/ + WHEN TOO_MANY_ROWS THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista parteneri cu acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + END; + END cauta_partener; + ---------------------------------------------------------------------------- + procedure adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tnId_Part OUT NUMBER) IS + BEGIN + -- pentru compatibilitate cu versiunile mai vechi de 12.10.2007 + adauga_partener(tcDenumire, + tcNume, + tcPrenume, + tcCod_fiscal, + tcReg_comert, + tnId_loc, + tnId_categorie_entitate, + tcPrefix, + tcSufix, + tnTip_persoana, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv, + tnId_util, + tcSir_id_tipPart, + NULL, + tnId_Part); + END; + ---------------------------------------------------------------------------- + procedure modifica_partener(tnId_part number, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2) IS + V_NR_INREGISTRARI NUMBER(10); + V_SIR_CORESP_DEL VARCHAR2(10); + BEGIN + -- pentru compatibilitate cu versiunile mai vechi de 12.10.2007 + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM CORESP_TIP_PART + WHERE ID_PART = tnId_part + AND ID_TIP_PART = -44; + + IF V_NR_INREGISTRARI > 0 AND INSTR(tcSir_id_tipPart, '-44', 1) = 0 THEN + V_SIR_CORESP_DEL := '2=2'; + ELSE + V_SIR_CORESP_DEL := NULL; + END IF; + + modifica_partener(tnId_part, + tcDenumire, + tcNume, + tcPrenume, + tcCod_fiscal, + tcReg_comert, + tnId_loc, + tnId_categorie_entitate, + tcPrefix, + tcSufix, + tnTip_persoana, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv, + tnId_util, + tcSir_id_tipPart, + V_SIR_CORESP_DEL); + END; + ---------------------------------------------------------------------------- + PROCEDURE adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2) IS + + tnIdPart NOM_PARTENERI.ID_PART%TYPE := 0; + BEGIN + adauga_partener(tcDenumire, + tcNume, + tcPrenume, + tcCod_fiscal, + tcReg_comert, + tnId_loc, + tnId_categorie_entitate, + tcPrefix, + tcSufix, + tnTip_persoana, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv, + tnId_util, + tcSir_id_tipPart, + tcSir_id_part_del, + tnIdPart); + + END ADAUGA_PARTENER; + + -- adauga partener si intoarce id_part + procedure adauga_partener(tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2, + tnId_Part OUT NUMBER) is + V_ID_TIP_PART NUMBER(10); + V_POZI NUMBER(10); + V_POZF NUMBER(10); + V_SEPARATOR VARCHAR2(100); + V_NR_INREGISTRARI NUMBER(10); + begin + + BEGIN + SELECT ID_PART + INTO tnId_part + FROM NOM_PARTENERI + WHERE DENUMIRE = tcDenumire + AND COD_FISCAL = tcCod_fiscal + AND STERS = 0; + + EXCEPTION + WHEN NO_DATA_FOUND THEN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_PARTENERI + WHERE COD_FISCAL = tcCod_fiscal + and sters = 0; + IF V_NR_INREGISTRARI = 0 THEN + INSERT INTO nom_parteneri + (denumire, + nume, + prenume, + cod_fiscal, + reg_comert, + id_loc, + id_categorie_entitate, + prefix, + sufix, + tip_persoana, + banca, + cont_banca, + inactiv, + motiv_inactiv, + id_util, + dataora) + VALUES + (tcDenumire, + tcNume, + tcPrenume, + tcCod_fiscal, + tcReg_comert, + tnId_loc, + tnId_categorie_entitate, + tcPrefix, + tcSufix, + tnTip_persoana, + tcBanca, + tcCont_banca, + tnInactiv, + tcMotiv_inactiv, + tnId_util, + SYSDATE) + RETURNING id_part INTO tnId_part; + ELSE + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista un partener cu acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + END IF; + + WHEN TOO_MANY_ROWS THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista parteneri cu acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + END; + + V_SEPARATOR := ';'; + MERGE INTO CORESP_TIP_PART A + USING (SELECT X AS ID_TIP_PART + FROM TABLE(charn2collection(tcSir_id_tipPart, V_SEPARATOR))) B + ON (A.ID_TIP_PART = B.ID_TIP_PART AND A.ID_PART = tnId_part) + WHEN NOT MATCHED THEN + INSERT /*+ APPEND */ + (ID_TIP_PART, ID_PART) + VALUES + (B.ID_TIP_PART, tnId_part); + + pack_def.actualizeaza_coresp_delegati(tnId_part, tcSir_id_part_del); + + end adauga_partener; + + -- adauga/modifica partener si intoarce id_part + procedure adauga_modifica_partener(tnId_Part IN OUT NUMBER, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcCod_fiscal2 varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2, + tcSwift_banca varchar2 default null, + tcAdresa_banca varchar2 default null, + tnInstitutiePublica number default 0) is + V_ID_TIP_PART NUMBER(10); + V_POZI NUMBER(10); + V_POZF NUMBER(10); + V_SEPARATOR VARCHAR2(100); + V_NR_INREGISTRARI NUMBER(10); + lnIdPart NUMBER(10); + begin + -- verific daca mai exista aceeasi denumire si/sau cod fiscal doar la adaugare + if nvl(tnId_Part, 0) = 0 then + BEGIN + SELECT ID_PART + INTO lnIdPart + FROM NOM_PARTENERI + WHERE DENUMIRE = tcDenumire + AND COD_FISCAL = tcCod_fiscal + AND STERS = 0; + + -- Nu permit adaugarea partenerilor identici ca nume si cod fiscal + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista un partener cu aceasta denumire si acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + + EXCEPTION + WHEN NO_DATA_FOUND THEN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_PARTENERI + WHERE COD_FISCAL = tcCod_fiscal + and sters = 0; + IF V_NR_INREGISTRARI = 0 THEN + INSERT INTO nom_parteneri + (denumire, + nume, + prenume, + cod_fiscal, + cod_fiscal2, + reg_comert, + id_loc, + id_categorie_entitate, + prefix, + sufix, + tip_persoana, + banca, + cont_banca, + swift_banca, + adresa_banca, + inactiv, + motiv_inactiv, + id_util, + dataora, + institutie_publica) + VALUES + (tcDenumire, + tcNume, + tcPrenume, + tcCod_fiscal, + tcCod_fiscal2, + tcReg_comert, + tnId_loc, + tnId_categorie_entitate, + tcPrefix, + tcSufix, + tnTip_persoana, + tcBanca, + tcCont_banca, + tcSwift_banca, + tcAdresa_banca, + tnInactiv, + tcMotiv_inactiv, + tnId_util, + SYSDATE, + tnInstitutiePublica) + RETURNING id_part INTO tnId_part; + ELSE + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista un partener cu acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + END IF; + + WHEN TOO_MANY_ROWS THEN + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista parteneri cu acest ' || + (CASE tnTip_persoana WHEN 1 THEN + 'cod fiscal' ELSE 'CNP' END) || ' !'); + END; + else + update nom_parteneri + set denumire = tcDenumire, + nume = tcNume, + prenume = tcPrenume, + cod_fiscal = tcCod_fiscal, + cod_fiscal2 = tcCod_fiscal2, + reg_comert = tcReg_comert, + id_loc = tnId_loc, + id_categorie_entitate = tnId_categorie_entitate, + prefix = tcPrefix, + sufix = tcSufix, + tip_persoana = tnTip_persoana, + banca = tcBanca, + cont_banca = tcCont_banca, + swift_banca = tcSwift_banca, + adresa_banca = tcAdresa_banca, + inactiv = tnInactiv, + motiv_inactiv = tcMotiv_inactiv, + id_util = tnId_util, + dataora = SYSDATE, + institutie_publica = tnInstitutiePublica + where id_part = tnId_part; + end if; -- nvl(tnId_Part,0) <> 0 + + -- Corespondente tipuri-parteneri + IF tcSir_id_tipPart is not null and length(tcSir_id_tipPart) > 0 THEN + DELETE FROM CORESP_TIP_PART WHERE ID_PART = tnId_part; + END IF; + + V_SEPARATOR := ';'; + MERGE INTO CORESP_TIP_PART A + USING (SELECT X AS ID_TIP_PART + FROM TABLE(charn2collection(tcSir_id_tipPart, V_SEPARATOR))) B + ON (A.ID_TIP_PART = B.ID_TIP_PART AND A.ID_PART = tnId_part) + WHEN NOT MATCHED THEN + INSERT /*+ APPEND */ + (ID_TIP_PART, ID_PART) + VALUES + (B.ID_TIP_PART, tnId_part); + + -- Delegati partener + pack_def.actualizeaza_coresp_delegati(tnId_part, tcSir_id_part_del); + + end adauga_modifica_partener; + ---------------------------------------------------------------------------- + -- cauta partener dupa cod fiscal si il adauga (denumire, cod fiscal) + -- intoarce id_part daca exista sau nou daca se adauga + ---------------------------------------------------------------------------- + procedure adauga_partener_cod_fiscal(tcDenumire varchar2, + tcNume varchar2 default null, + tcPrenume varchar2 default null, + tcCod_fiscal varchar2, + tnId_Part OUT NUMBER) is + + lnTipPersoana number(1) := CASE + WHEN tcPrenume IS NOT NULL THEN + nTipPersoanaJuridica + ELSE + nTipPersoanaFizica + END; + begin + select id_part + into tnId_Part + from nom_parteneri + where UPPER(TRIM(REPLACE(cod_fiscal, ' ', ''))) = + UPPER(TRIM(REPLACE(tcCod_fiscal, ' ', ''))); + exception + when NO_DATA_FOUND then + + pack_def.adauga_partener(tcdenumire => tcdenumire, + tcnume => tcnume, + tcprenume => tcprenume, + tccod_fiscal => tccod_fiscal, + tcreg_comert => '', + tnid_loc => NULL, + tnid_categorie_entitate => NULL, + tcprefix => '', + tcsufix => '', + tntip_persoana => lnTipPersoana, + tcbanca => '', + tccont_banca => '', + tninactiv => 0, + tcmotiv_inactiv => '', + tnid_util => -3, + tcsir_id_tippart => '16;17', + tnid_part => tnid_part); + end; + + ---------------------------------------------------------------------------- + procedure modifica_partener(tnId_part number, + tcDenumire varchar2, + tcNume varchar2, + tcPrenume varchar2, + tcCod_fiscal varchar2, + tcReg_comert varchar2, + tnId_loc number, + tnId_categorie_entitate number, + tcPrefix varchar2, + tcSufix varchar2, + tnTip_persoana number, + tcBanca varchar2, + tcCont_banca varchar2, + tnInactiv number, + tcMotiv_inactiv varchar2, + tnId_util number, + tcSir_id_tipPart varchar2, + tcSir_id_part_del varchar2) is + + V_ID_TIP_PART NUMBER(10); + V_POZI NUMBER(10); + V_POZF NUMBER(10); + + begin + update nom_parteneri + set denumire = tcDenumire, + nume = tcNume, + prenume = tcPrenume, + cod_fiscal = tcCod_fiscal, + reg_comert = tcReg_comert, + id_loc = tnId_loc, + id_categorie_entitate = tnId_categorie_entitate, + prefix = tcPrefix, + sufix = tcSufix, + tip_persoana = tnTip_persoana, + banca = tcBanca, + cont_banca = tcCont_banca, + inactiv = tnInactiv, + motiv_inactiv = tcMotiv_inactiv, + id_util = tnId_util, + dataora = SYSDATE + where id_part = tnId_part; + + IF tcSir_id_tipPart is not null and length(tcSir_id_tipPart) > 0 THEN + DELETE FROM CORESP_TIP_PART WHERE ID_PART = tnId_part; + END IF; + -- EXECUTE IMMEDIATE 'UPDATE CORESP_TIP_PART SET STERS=1 ' || 'WHERE ID_PART=:1' USING tnId_part; + + MERGE INTO CORESP_TIP_PART A + USING (SELECT X AS ID_TIP_PART + FROM TABLE(charn2collection(tcSir_id_tipPart, ';'))) B + ON (A.ID_TIP_PART = B.ID_TIP_PART AND A.ID_PART = tnId_part) + WHEN NOT MATCHED THEN + INSERT /*+ APPEND */ + (ID_TIP_PART, ID_PART) + VALUES + (B.ID_TIP_PART, tnId_part); + + pack_def.actualizeaza_coresp_delegati(tnId_part, tcSir_id_part_del); + end modifica_partener; + ---------------------------------------------------------------------------- + procedure sterge_partener(tnId_part number, tnId_util number) is + lnAparitii number(10) := 0; + lcMesaj varchar2(1000); + V_LOOKUP VARCHAR2(1000); + begin + V_LOOKUP := 'ACT.ID_PARTD;ACT.ID_PARTC;BALANTA_PARTENERI.ID_PART;DEV_MASINICLIENTI.ID_PARTENER'; + lnAparitii := PACK_NOMENCLATOARE.NOMEXISTA(tnId_part, V_LOOKUP, lcMesaj); + + if lnAparitii <> 0 then + raise_application_error(-20005, lcMesaj); + else + update nom_parteneri + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_part = tnId_part; + /* + TODO: owner="marius.mutu" priority="3 - Low" created="7/19/2006" + text="posibil trebuie sterse adrese, coresp_tip_part si pers_contact" + */ + end if; + + pack_def.actualizeaza_coresp_delegati(tnId_part, '2=2'); + end sterge_partener; + ---------------------------------------------------------------------------- + procedure adauga_responsabil(tnId_part number) is + begin + INSERT INTO CORESP_TIP_PART + (ID_TIP_PART, ID_PART) + VALUES + (-41, tnId_part); + end adauga_responsabil; + ---------------------------------------------------------------------------- + -- se pastreaza pentru compatibilitate cu versiunile vechi + -- in care se transmitea sectorul in loc de denumirea localitatii + procedure adauga_adresa_partener(tnId_part number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number) is + tnIdAdresa ADRESE_PARTENERI.ID_ADRESA%TYPE := 0; + begin + pack_def.adauga_adresa_partener2(tnId_part, + tcDenumire_adresa, + 0, + tcStrada, + tcNumar, + tcBloc, + tcScara, + tcApart, + tnEtaj, + tnId_loc, + '', + tnId_judet, + tnCodpostal, + tnId_tara, + tcTelefon1, + tcTelefon2, + tcFax, + tcEmail, + tcWeb, + tnPrincipala, + tnInactiv, + tnId_util, + tnIdAdresa); + end adauga_adresa_partener; + ---------------------------------------------------------------------------- + -- se pastreaza pentru compatibilitate cu versiunile vechi + -- in care se transmitea sectorul in loc de denumirea localitatii + procedure adauga_adresa_partener(tnId_part number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number, + tnIdAdresa OUT NUMBER) is + begin + pack_def.adauga_adresa_partener2(tnId_part, + tcDenumire_adresa, + 0, + tcStrada, + tcNumar, + tcBloc, + tcScara, + tcApart, + tnEtaj, + tnId_loc, + '', + tnId_judet, + tnCodpostal, + tnId_tara, + tcTelefon1, + tcTelefon2, + tcFax, + tcEmail, + tcWeb, + tnPrincipala, + tnInactiv, + tnId_util, + tnIdAdresa); + end; + ---------------------------------------------------------------------------- + procedure adauga_adresa_partener2(tnId_part number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number) is + tnIdAdresa ADRESE_PARTENERI.ID_ADRESA%TYPE := 0; + begin + pack_def.adauga_adresa_partener2(tnId_part, + tcDenumire_adresa, + tnDA_apare, + tcStrada, + tcNumar, + tcBloc, + tcScara, + tcApart, + tnEtaj, + tnId_loc, + tcLocalitate, + tnId_judet, + tnCodpostal, + tnId_tara, + tcTelefon1, + tcTelefon2, + tcFax, + tcEmail, + tcWeb, + tnPrincipala, + tnInactiv, + tnId_util, + tnIdAdresa); + end adauga_adresa_partener2; + ---------------------------------------------------------------------------- + procedure adauga_adresa_partener2(tnId_part number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number, + tnIdAdresa OUT NUMBER) is + V_ID_LOC SYN_NOM_LOCALITATI.ID_LOC%TYPE; + begin + if tnId_loc is null and tnId_judet is null and tcLocalitate is not null and + tcLocalitate not like '<%' then + V_ID_LOC := syn_pack_def_co.adauga_localitate(tcLocalitate, + null, + null, + tnId_tara); + else + V_ID_LOC := tnId_loc; + end if; + + begin + insert into adrese_parteneri + (id_part, + denumire_adresa, + da_apare, + strada, + numar, + bloc, + scara, + apart, + etaj, + id_loc, + codpostal, + id_tara, + telefon1, + telefon2, + fax, + email, + web, + principala, + inactiv, + id_util, + dataora) + values + (tnId_part, + tcDenumire_adresa, + tnDA_apare, + tcStrada, + tcNumar, + tcBloc, + tcScara, + tcApart, + tnEtaj, + V_ID_LOC, + tnCodpostal, + tnId_tara, + tcTelefon1, + tcTelefon2, + tcFax, + tcEmail, + tcWeb, + tnPrincipala, + tnInactiv, + tnId_util, + SYSDATE) + returning id_adresa into tnIdAdresa; + exception + when dup_val_on_index then + RAISE_APPLICATION_ERROR(-20001, + 'Mai exista o adresa principala pentru acest partener!'); + end; + + end adauga_adresa_partener2; + ---------------------------------------------------------------------------- + procedure modifica_adresa_partener(tnId_adresa number, + tcDenumire_adresa varchar2, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tnSector number, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number) is + begin + pack_def.modifica_adresa_partener2(tnId_adresa, + tcDenumire_adresa, + 0, + tcStrada, + tcNumar, + tcBloc, + tcScara, + tcApart, + tnEtaj, + tnId_loc, + '', + tnId_judet, + tnCodpostal, + tnId_tara, + tcTelefon1, + tcTelefon2, + tcFax, + tcEmail, + tcWeb, + tnPrincipala, + tnInactiv, + tnId_util); + end; + ---------------------------------------------------------------------------- + procedure modifica_adresa_partener2(tnId_adresa number, + tcDenumire_adresa varchar2, + tnDA_apare number, + tcStrada varchar2, + tcNumar varchar2, + tcBloc varchar2, + tcScara varchar2, + tcApart varchar2, + tnEtaj varchar2, + tnId_loc number, + tcLocalitate varchar2, + tnId_judet number, + tnCodpostal number, + tnId_tara number, + tcTelefon1 varchar2, + tcTelefon2 varchar2, + tcFax varchar2, + tcEmail varchar2, + tcWeb varchar2, + tnPrincipala varchar2, + tnInactiv number, + tnId_util number) is + V_ID_LOC SYN_NOM_LOCALITATI.ID_LOC%TYPE; + begin + if tnId_loc is null and tnId_judet is null and tcLocalitate is not null and + tcLocalitate not like '<%' then + V_ID_LOC := syn_pack_def_co.adauga_localitate(tcLocalitate, + null, + null, + tnId_tara); + else + V_ID_LOC := tnId_loc; + end if; + update adrese_parteneri + set denumire_adresa = tcDenumire_adresa, + da_apare = tnDA_apare, + strada = tcStrada, + numar = tcNumar, + bloc = tcBloc, + scara = tcScara, + apart = tcApart, + etaj = tnEtaj, + id_loc = V_ID_LOC, + codpostal = tnCodpostal, + id_tara = tnId_tara, + telefon1 = tcTelefon1, + telefon2 = tcTelefon2, + fax = tcFax, + email = tcEmail, + web = tcWeb, + principala = tnPrincipala, + inactiv = tnInactiv, + id_util = tnId_util, + dataora = SYSDATE + where id_adresa = tnId_adresa; + end modifica_adresa_partener2; + ---------------------------------------------------------------------------- + procedure sterge_adresa_partener(tnId_adresa number, tnId_util number) is + lnNrInregistrari NUMBER(10); + lcExplicatia VARCHAR2(100); + begin + select count(*) + into lnNrInregistrari + from comenzi + where sters = 0 + and (id_livrare = tnId_adresa or id_facturare = tnId_adresa); + + if lnNrInregistrari = 0 then + update adrese_parteneri + set sters = 1, id_utils = tnId_util, dataoras = sysdate + where id_adresa = tnId_adresa; + else + lcExplicatia := (case lnNrInregistrari when 1 then ' o comanda' else to_char(lnNrInregistrari) || ' comenzi' end); + + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta adresa nu poate fi stearsa deoarece a fost selectata pe ' || + lcExplicatia || ' !'); + end if; + + end sterge_adresa_partener; + ---------------------------------------------------------------------------- + + ---------------------------------------------------------------------------- + -- LISTA CU TOATE TIPURILE DE PARTENER + ALES PENTRU UN PARTENER/ + ALES PENTRU UN TIP DE PARTENER + procedure get_partener_tipuri(tnId_part IN NUMBER, + tnIdTipPart IN NUMBER, + tnParent_id IN NUMBER, + p_cursor OUT pack_types.tip_cursor) is + + lcSelect varchar2(4000) := ''; + + begin + -- tnId_part = lista cu toate tipurile de parteneri (pentru partenerul meu, ales = 1) + -- tnIdTipPart = lista cu toate tipurile de parteneri (pentru tipul meu, ales = 1) + IF tnParent_id <> 0 and tnIdTipPart in (16, 17) THEN + -- RoaContracte -- adauga, modifica partener + open p_cursor for + select ntp.id_tip_part, ntp.tip_partener, nvl(s2.ales, 0) AS ALES + from vnom_tip_parteneri ntp + left join (SELECT id_tip_part, tip_partener, 1 as ales + FROM VCORESP_TIP_PART + where id_part = tnId_part) s2 + on s2.id_tip_part = ntp.ID_TIP_PART + where ntp.parent_id = tnParent_id + and (ntp.id_tip_part <> -1 and ntp.id_tip_part <> -2) + order by ntp.tip_partener; + ELSE + -- ROADEF, RoaComenzi, RoaLucrari.... + open p_cursor for + select s1.*, nvl(s2.ales, 0) as ales + from (select ntp.id_tip_part, ntp.tip_partener + from vnom_tip_parteneri ntp + where (ntp.id_tip_part <> -1 and ntp.id_tip_part <> -2)) s1 + left join (select id_tip_part, 1 as ales + from coresp_tip_part + where id_part = tnId_part + union + select id_tip_part, 1 as ales + from vnom_tip_parteneri + where id_tip_part = tnIdTipPart) s2 + on s2.id_tip_part = s1.ID_TIP_PART + order by s1.tip_partener; + END IF; + + end get_partener_tipuri; + ---------------------------------------------------------------- + procedure adauga_pers_contact(tnId_part number, + tcNume varchar2, + tcPrenume varchar2, + tcApelativ varchar2, + tcFunctia varchar2, + tcTelefon varchar2, + tcEmail varchar2, + tnPrincipal number, + tnInactiv number, + tnId_util number) is + begin + insert into pers_contact + (id_part, + nume, + prenume, + apelativ, + functia, + telefon, + email, + principal, + inactiv, + id_util, + dataora) + values + (tnId_part, + tcNume, + tcPrenume, + tcApelativ, + tcFunctia, + tcTelefon, + tcEmail, + tnPrincipal, + tnInactiv, + tnId_util, + SYSDATE); + + end adauga_pers_contact; + ---------------------------------------------------------------- + procedure modifica_pers_contact(tnId_pers number, + tcNume varchar2, + tcPrenume varchar2, + tcApelativ varchar2, + tcFunctia varchar2, + tcTelefon varchar2, + tcEmail varchar2, + tnPrincipal number, + tnInactiv number, + tnId_util number) is + begin + update pers_contact + set nume = tcNume, + prenume = tcPrenume, + apelativ = tcApelativ, + functia = tcFunctia, + telefon = tcTelefon, + email = tcEmail, + principal = tnPrincipal, + inactiv = tnInactiv, + id_util = tnId_util, + dataora = SYSDATE + where id_pers = tnId_pers; + + end modifica_pers_contact; + ---------------------------------------------------------------- + procedure sterge_pers_contact(tnId_pers number, tnId_util number) is + begin + update pers_contact + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_pers = tnId_pers; + end sterge_pers_contact; + ---------------------------------------------------------------- + procedure adauga_lucrare(V_NRORD IN VARCHAR2, + V_ID_TATA IN NUMBER, + V_INACTIV IN NUMBER) is + V_NR_INREGISTRARI NUMBER(10); + begin + IF V_ID_TATA IS NOT NULL THEN + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM CON_LUCRARI + WHERE ID_LUCRARE = V_ID_TATA + AND STERS = 0; + ELSE + V_NR_INREGISTRARI := 0; + END IF; + + IF V_NR_INREGISTRARI = 0 THEN + INSERT INTO NOM_LUCRARI + (NRORD, ID_TATA, INACTIV) + VALUES + (V_NRORD, V_ID_TATA, V_INACTIV); + ELSE + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta lucrare trebuie adaugata prin "Analiza proiectelor", deoarece parintele ei a fost introdus prin acel program!'); + END IF; + end adauga_lucrare; + ---------------------------------------------------------------- + procedure modifica_lucrare(V_ID_LUCRARE IN NUMBER, + V_NRORD IN VARCHAR2, + V_ID_TATA IN NUMBER, + V_INACTIV IN NUMBER) is + V_NR_INREG_T NUMBER(10); + V_NR_INREG_L NUMBER(10); + begin + + IF V_ID_TATA IS NOT NULL THEN + SELECT SUM(DECODE(ID_LUCRARE, V_ID_TATA, 1, 0)), + SUM(DECODE(ID_LUCRARE, V_ID_LUCRARE, 1, 0)) + INTO V_NR_INREG_T, V_NR_INREG_L + FROM CON_LUCRARI + WHERE ID_LUCRARE IN (V_ID_TATA, V_ID_LUCRARE) + AND STERS = 0; + ELSE + V_NR_INREG_T := 0; + V_NR_INREG_L := 0; + END IF; + + CASE + WHEN (V_NR_INREG_T <> 0 AND V_NR_INREG_L = 0) THEN + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta lucrare trebuie adaugata prin "Analiza proiectelor", deoarece parintele ei a fost introdus prin acel program!'); + WHEN (V_NR_INREG_T <> 0 AND V_NR_INREG_L = 0) THEN + RAISE_APPLICATION_ERROR(-20000, + 'Aceasta lucrare a fost adaugata prin "Analiza proiectelor", dar nu si parintele ei!' || + CHR(13) || CHR(10) || + 'Alegeti alt parinte pentru aceasta lucrare sau copiati parintele in "Analiza proiectelor" !'); + ELSE + UPDATE NOM_LUCRARI + SET NRORD = V_NRORD, ID_TATA = V_ID_TATA, INACTIV = V_INACTIV + WHERE ID_LUCRARE = V_ID_LUCRARE; + END CASE; + + end modifica_lucrare; + ---------------------------------------------------------------- + procedure adauga_contract(tnId_part IN NUMBER, + tcNumar IN VARCHAR2, + tdData IN DATE, + tnId_tip_ctr IN NUMBER, + tnInactiv IN NUMBER, + tcTipIstoric IN VARCHAR2, + tnIdTata IN NUMBER, + tnValftva IN NUMBER, + tnProcTVA IN NUMBER, + tnIdValuta IN NUMBER, + tnIdResponsabil IN NUMBER, + tnIdUtil IN NUMBER) is + begin + adauga_contract(tnId_part, + tcNumar, + tdData, + tnId_tip_ctr, + tnInactiv, + tcTipIstoric, + NULL, + tnIdTata, + tnValftva, + tnProcTVA, + 0, + tnIdValuta, + tnIdResponsabil, + tnIdUtil); + end; + ---------------------------------------------------------------- + procedure adauga_contract(tnId_part IN NUMBER, + tcNumar IN VARCHAR2, + tdData IN DATE, + tnId_tip_ctr IN NUMBER, + tnInactiv IN NUMBER, + tcTipIstoric IN VARCHAR2, + tcDescriere IN VARCHAR2, + tnIdTata IN NUMBER, + tnValftva IN NUMBER, + tnProcTVA IN NUMBER, + tnCurs IN NUMBER, + tnIdValuta IN NUMBER, + tnIdResponsabil IN NUMBER, + tnIdUtil IN NUMBER) is + V_ID_ACT_ADITIONAL CONTRACTE.ID_CTR%TYPE; + begin + CASE + WHEN tcTipIstoric = 'C' THEN + INSERT INTO CONTRACTE + (ID_PART, + NUMAR, + DATA, + DESCRIERE, + ID_TIP_CTR, + INACTIV, + TIP_ISTORIC, + VALFTVA, + VALCTVA, + CURS, + PROC_TVA, + ID_VALUTA, + ID_RESPONSABIL, + ID_UTIL, + DATAORA) + VALUES + (tnId_part, + tcNumar, + tdData, + TRIM(tcDescriere), + tnId_tip_ctr, + tnInactiv, + tcTipIstoric, + tnValftva, + ROUND(tnValftva + tnValftva * tnProcTva / 100, 2), + tnCurs, + tnProcTVA, + tnIdValuta, + tnIdResponsabil, + tnIdutil, + SYSDATE); + WHEN tcTipIstoric = 'A' THEN + pack_crm.copie_contract_pt_istoric(tnIdTata, tnIdUtil); + INSERT INTO CONTRACTE + (ID_PART, + NUMAR, + DATA, + DESCRIERE, + ID_TIP_CTR, + INACTIV, + TIP_ISTORIC, + ID_TATA, + VALFTVA, + VALCTVA, + CURS, + PROC_TVA, + ID_VALUTA, + ID_RESPONSABIL, + ID_UTIL, + DATAORA) + VALUES + (tnId_part, + tcNumar, + tdData, + TRIM(tcDescriere), + tnId_tip_ctr, + tnInactiv, + tcTipIstoric, + tnIdTata, + tnValftva, + ROUND(tnValftva + tnValftva * tnProcTva / 100, 2), + tnCurs, + tnProcTVA, + tnIdValuta, + tnIdResponsabil, + tnIdutil, + SYSDATE) + returning id_ctr into V_ID_ACT_ADITIONAL; + + update contracte + set id_tata = tnIdTata, + activ = 1, + id_act_aditional = V_ID_ACT_ADITIONAL + where id_ctr = tnIdTata; + + ELSE + RAISE_APPLICATION_ERROR(-20000, 'Tip istoric invalid ! (DEF-001)'); + END CASE; + + end adauga_contract; + ---------------------------------------------------------------- + procedure modifica_contract(tnId_ctr number, + tcNumar varchar2, + tdData date, + tnId_tip_ctr number, + tnInactiv number, + tnId_util number) is + begin + update contracte + set numar = tcNumar, + data = tdData, + id_tip_ctr = tnId_tip_ctr, + inactiv = tnInactiv, + id_util = tnId_util, + dataora = SYSDATE + where id_ctr = tnId_ctr; + + end modifica_contract; + + procedure adauga_modifica_contract(tnIdCtr IN OUT CONTRACTE.ID_CTR%TYPE, + tnIdPart IN CONTRACTE.ID_PART%TYPE, + tcNumar IN CONTRACTE.NUMAR%TYPE, + tdData IN CONTRACTE.DATA%TYPE, + tdDataInceput IN CONTRACTE.DATA_INCEPUT%TYPE, + tdDataSfarsit IN CONTRACTE.DATA_SFARSIT%TYPE, + tnIdTipCtr IN CONTRACTE.ID_TIP_CTR%TYPE, + tnInactiv IN CONTRACTE.INACTIV%TYPE, + tcTipIstoric IN CONTRACTE.TIP_ISTORIC%TYPE, + tcDescriere IN CONTRACTE.DESCRIERE%TYPE, + tnIdTata IN CONTRACTE.ID_TATA%TYPE, + tnValftva IN CONTRACTE.VALFTVA%TYPE, + tnProcTVA IN CONTRACTE.PROC_TVA%TYPE, + tnCurs IN CONTRACTE.CURS%TYPE, + tnIdValuta IN CONTRACTE.ID_VALUTA%TYPE, + tnTipCurs IN CONTRACTE.TIP_CURS%TYPE, + tnIdResponsabil IN CONTRACTE.ID_RESPONSABIL%TYPE, + tnZileScadenta IN CONTRACTE.SCADENTA_INCASARE%TYPE, + tnCoefPenalitati IN CONTRACTE.COEF_PENALITATI%TYPE, + tnCoefPenalitati2 IN CONTRACTE.COEF_PENALITATI2%TYPE, + tnZilePenalitati IN CONTRACTE.ZILE_PENALITATI%TYPE, + tnZilePenalitati2 IN CONTRACTE.ZILE_PENALITATI2%TYPE, + tnZileGratiePenalitati IN CONTRACTE.ZILE_GRATIE_PENALITATI%TYPE, + tnIdUtil IN CONTRACTE.ID_UTIL%TYPE) is + V_ID_ACT_ADITIONAL CONTRACTE.ID_CTR%TYPE; + begin + CASE + WHEN nvl(tnIdCtr, 0) <> 0 THEN + update contracte + set id_part = tnIdPart, + numar = tcNumar, + data = tdData, + data_inceput = tdDataInceput, + data_sfarsit = tdDataSfarsit, + id_tip_ctr = tnIdTipCtr, + inactiv = tnInactiv, + tip_istoric = tcTipIstoric, + descriere = tcDescriere, + id_tata = tnIdTata, + valftva = tnValftva, + proc_tva = tnProcTVA, + curs = tnCurs, + id_valuta = tnIdValuta, + tip_curs = tnTipCurs, + id_responsabil = tnIdResponsabil, + scadenta_incasare = tnZileScadenta, + coef_penalitati = tnCoefPenalitati, + coef_penalitati2 = tnCoefPenalitati2, + zile_penalitati = tnZilePenalitati, + zile_penalitati2 = tnZilePenalitati2, + zile_gratie_penalitati = tnZileGratiePenalitati, + id_util = tnIdUtil, + dataora = SYSDATE + where id_ctr = tnIdCtr; + + WHEN tcTipIstoric = 'C' THEN + INSERT INTO CONTRACTE + (ID_PART, + NUMAR, + DATA, + DATA_INCEPUT, + DATA_SFARSIT, + DESCRIERE, + ID_TIP_CTR, + INACTIV, + TIP_ISTORIC, + VALFTVA, + VALCTVA, + CURS, + PROC_TVA, + ID_VALUTA, + TIP_CURS, + ID_RESPONSABIL, + SCADENTA_INCASARE, + COEF_PENALITATI, + COEF_PENALITATI2, + ZILE_PENALITATI, + ZILE_PENALITATI2, + ZILE_GRATIE_PENALITATI, + ID_UTIL, + DATAORA) + VALUES + (tnIdPart, + tcNumar, + tdData, + tdDataInceput, + tdDataSfarsit, + TRIM(tcDescriere), + tnIdTipCtr, + tnInactiv, + tcTipIstoric, + tnValftva, + ROUND(tnValftva + tnValftva * tnProcTva / 100, 2), + tnCurs, + tnProcTVA, + tnIdValuta, + tnTipCurs, + tnIdResponsabil, + tnZileScadenta, + tnCoefPenalitati, + tnCoefPenalitati2, + tnZilePenalitati, + tnZilePenalitati2, + tnZileGratiePenalitati, + tnIdutil, + SYSDATE); + WHEN tcTipIstoric = 'A' THEN + pack_crm.copie_contract_pt_istoric(tnIdTata, tnIdUtil); + INSERT INTO CONTRACTE + (ID_PART, + NUMAR, + DATA, + DESCRIERE, + ID_TIP_CTR, + INACTIV, + TIP_ISTORIC, + ID_TATA, + VALFTVA, + VALCTVA, + CURS, + PROC_TVA, + ID_VALUTA, + TIP_CURS, + ID_RESPONSABIL, + SCADENTA_INCASARE, + COEF_PENALITATI, + COEF_PENALITATI2, + ZILE_PENALITATI, + ZILE_PENALITATI2, + ZILE_GRATIE_PENALITATI, + ID_UTIL, + DATAORA) + VALUES + (tnIdPart, + tcNumar, + tdData, + TRIM(tcDescriere), + tnIdTipCtr, + tnInactiv, + tcTipIstoric, + tnIdTata, + tnValftva, + ROUND(tnValftva + tnValftva * tnProcTva / 100, 2), + tnCurs, + tnProcTVA, + tnIdValuta, + tnTipCurs, + tnIdResponsabil, + tnZileScadenta, + tnCoefPenalitati, + tnCoefPenalitati2, + tnZilePenalitati, + tnZilePenalitati2, + tnZileGratiePenalitati, + tnIdutil, + SYSDATE) + returning id_ctr into V_ID_ACT_ADITIONAL; + + update contracte + set id_tata = tnIdTata, + activ = 1, + id_act_aditional = V_ID_ACT_ADITIONAL + where id_ctr = tnIdTata; + + ELSE + RAISE_APPLICATION_ERROR(-20000, 'Tip istoric invalid ! (DEF-001)'); + END CASE; + + end adauga_modifica_contract; + ---------------------------------------------------------------- + procedure sterge_contract(tnId_ctr number, tnId_util number) is + lnAparitii number(10) := 0; + lcMesaj varchar2(1000); + V_LOOKUP VARCHAR2(1000); + lnId_ctr contracte.id_ctr%TYPE; + lcTip_istoric contracte.tip_istoric%TYPE; + lnCount number(4) := 0; + lnId_ctr_dependent contracte.id_ctr%TYPE; + lnId_nou contracte.id_ctr%TYPE; + + cursor crsCopiiContracte is + select c.id_ctr + from contracte c + where c.id_tata = tnId_ctr + and c.id_ctr <> tnId_ctr; + cLinieCopil crsCopiiContracte%rowtype; + + cursor crsContracteDependente is + select c.id_ctr from contracte c where c.id_act_aditional = tnId_ctr; + cLinieCtrDep crsContracteDependente%rowtype; + + begin + + V_LOOKUP := 'ACT.ID_CTR'; + lnAparitii := PACK_NOMENCLATOARE.NOMEXISTA(tnId_ctr, V_LOOKUP, lcMesaj); + + if lnAparitii <> 0 then + raise_application_error(-20005, lcMesaj); + else + + select trim(tip_istoric) + into lcTip_istoric + from contracte + where id_ctr = tnId_ctr; + + if lcTip_istoric = 'A' then + update contracte + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_ctr = tnId_ctr; + -------- + select count(*) + into lnCount + from contracte + where id_act_aditional = tnId_ctr; + if lnCount > 0 then + + ----- + open crsContracteDependente; + loop + fetch crsContracteDependente + into cLinieCtrDep; + exit when crsContracteDependente%notfound; + lnId_ctr_dependent := cLinieCtrDep.id_ctr; + + /*select id_ctr + into lnId_ctr_dependent + from contracte + where id_act_aditional = tnId_ctr;*/ + + select max(id_ctr) + into lnId_nou + from contracte + where sters = 0 + and upper(trim(tip_istoric)) = 'A' + and id_tata = lnId_ctr_dependent; + + update contracte + set id_act_aditional = lnId_nou + where id_ctr = lnId_ctr_dependent; + end loop; + ----- + + end if; + + else + + update contracte + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_ctr = tnId_ctr; + -------- + delete from ctr_articole where id_ctr = tnId_ctr; + + update ctr_linkuri + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_ctr = tnId_ctr; + + update ctr_scadentar + set sters = 1, id_utils = tnId_util, dataoras = SYSDATE + where id_ctr = tnId_ctr; + + open crsCopiiContracte; + loop + fetch crsCopiiContracte + into cLinieCopil; + exit when crsCopiiContracte%notfound; + lnId_ctr := cLinieCopil.id_ctr; + sterge_contract(lnId_ctr, tnId_util); + end loop; + end if; + + end if; + + end sterge_contract; + ---------------------------------------------------------------- + -- SIR CU ID-URI TIP PARTENER PENTRU -1,-2 (CLIENT/FURNIZOR) + procedure get_conturi_tip_part(tnIdTip number, + tcSirId_tip_part out varchar2) is + + cursor_id_tip_part pack_types.tip_cursor; + + lnid_tip_part number(4); + begin + -- Test statements here + + if tnIdTip is null then + tcSirId_tip_part := ''; + return; + end if; + + case tnIdTip + when -1 then + -- Clienti + open cursor_id_tip_part for + select distinct id_tip_part + from coresp_tip_cont + WHERE CONT in (4111, 4118, 418, 419, 461); + loop + fetch cursor_id_tip_part + into lnid_tip_part; + + exit when cursor_id_tip_part%notFound; + tcSirId_tip_part := tcSirId_tip_part || lnid_tip_part || ','; + + end loop; + close cursor_id_tip_part; + + tcSirId_tip_part := substr(tcSirId_tip_part, + 1, + length(tcSirId_tip_part) - 1); + + when -2 then + -- Furnizori + open cursor_id_tip_part for + select distinct id_tip_part + from coresp_tip_cont + WHERE CONT in (401, 404, 408, 409, 462); + loop + fetch cursor_id_tip_part + into lnid_tip_part; + + exit when cursor_id_tip_part%notFound; + tcSirId_tip_part := tcSirId_tip_part || lnid_tip_part || ','; + + end loop; + close cursor_id_tip_part; + + tcSirId_tip_part := substr(tcSirId_tip_part, + 1, + length(tcSirId_tip_part) - 1); + else + tcSirId_tip_part := ''; + end case; + + end get_conturi_tip_part; + ---------------------------------------------------------------- + procedure adauga_coresp_tip_part(tnIdPart IN CORESP_TIP_PART.ID_PART%TYPE, + tnIdTipPart IN CORESP_TIP_PART.ID_TIP_PART%TYPE) IS + BEGIN + MERGE INTO coresp_tip_part + USING dual + on (id_part = tnIdPart and id_tip_part = tnIdTipPart) + WHEN NOT MATCHED THEN + INSERT (id_part, id_tip_part) VALUES (tnIdPart, tnIdTipPart); + + END adauga_coresp_tip_part; + ---------------------------------------------------------------- + procedure adauga_gestiune(tcNumeGestiune IN nom_gestiuni.nume_gestiune%type, + tcGest IN nom_gestiuni.nume_gestiune%type, + tcCont IN nom_gestiuni.nume_gestiune%type default null, + tnNr_Pag IN nom_gestiuni.nume_gestiune%type, + tcAcont IN nom_gestiuni.nume_gestiune%type default null, + tnInactiv IN nom_gestiuni.nume_gestiune%type, + tnId_Sucursala IN nom_gestiuni.nume_gestiune%type default null, + tnId_Responsabil IN nom_gestiuni.nume_gestiune%type default null, + tnId_Sectie IN nom_gestiuni.nume_gestiune%type default null, + tcAcontCheltuiala IN nom_gestiuni.nume_gestiune%type default null, + tcAcontAdaos IN nom_gestiuni.nume_gestiune%type default null, + tnId_Lucrare IN nom_gestiuni.nume_gestiune%type default null, + tcGestionar IN nom_gestiuni.gestionar%type default null, + tcReceptie1 IN nom_gestiuni.comisie_receptie1%type default null, + tcReceptie2 IN nom_gestiuni.comisie_receptie2%type default null, + tcReceptie3 IN nom_gestiuni.comisie_receptie3%type default null) IS + BEGIN + INSERT INTO nom_gestiuni + (nume_gestiune, + cgest, + cont, + nr_pag, + acont, + inactiv, + id_sucursala, + id_responsabil, + id_sectie, + acont_cheltuiala, + acont_adaos, + id_lucrare, + gestionar, + comisie_receptie1, + comisie_receptie2, + comisie_receptie3) + VALUES + (tcNumeGestiune, + tcGest, + tcCont, + tnNr_Pag, + tcAcont, + tnInactiv, + tnId_Sucursala, + tnId_Responsabil, + tnId_Sectie, + tcAcontCheltuiala, + tcAcontAdaos, + tnId_Lucrare, + tcGestionar, + tcReceptie1, + tcReceptie2, + tcReceptie3); + END adauga_gestiune; + ---------------------------------------------------------------- + procedure modifica_gestiune(tnIdGestiune IN nom_gestiuni.id_gestiune%type, + tcNumeGestiune IN nom_gestiuni.nume_gestiune%type, + tcGest IN nom_gestiuni.nume_gestiune%type, + tcCont IN nom_gestiuni.nume_gestiune%type default null, + tnNr_Pag IN nom_gestiuni.nume_gestiune%type, + tcAcont IN nom_gestiuni.nume_gestiune%type default null, + tnInactiv IN nom_gestiuni.nume_gestiune%type, + tnId_Sucursala IN nom_gestiuni.nume_gestiune%type default null, + tnId_Responsabil IN nom_gestiuni.nume_gestiune%type default null, + tnId_Sectie IN nom_gestiuni.nume_gestiune%type default null, + tcAcontCheltuiala IN nom_gestiuni.nume_gestiune%type default null, + tcAcontAdaos IN nom_gestiuni.nume_gestiune%type default null, + tnId_Lucrare IN nom_gestiuni.nume_gestiune%type default null, + tcGestionar IN nom_gestiuni.gestionar%type default null, + tcReceptie1 IN nom_gestiuni.comisie_receptie1%type default null, + tcReceptie2 IN nom_gestiuni.comisie_receptie2%type default null, + tcReceptie3 IN nom_gestiuni.comisie_receptie3%type default null) is + BEGIN + UPDATE nom_gestiuni + SET nume_gestiune = tcNumeGestiune, + cgest = tcGest, + cont = tcCont, + nr_pag = tnNr_Pag, + acont = tcAcont, + inactiv = tnInactiv, + id_sucursala = tnId_Sucursala, + id_responsabil = tnId_Responsabil, + id_sectie = tnId_Sectie, + acont_cheltuiala = tcAcontCheltuiala, + acont_adaos = tcAcontAdaos, + id_lucrare = tnId_Lucrare, + gestionar = tcGestionar, + comisie_receptie1 = tcReceptie1, + comisie_receptie2 = tcReceptie2, + comisie_receptie3 = tcReceptie3 + WHERE id_gestiune = tnIdGestiune; + END modifica_gestiune; + ---------------------------------------------------------------- + procedure sterge_gestiune(tnIdGestiune IN NUMBER, tnIdUtil IN NUMBER) is + lnAparitii number(10) := 0; + lcMesaj varchar2(1000); + V_LOOKUP VARCHAR2(1000); + begin + V_LOOKUP := 'ACT.ID_GESTIN;ACT.ID_GESTOUT;RUL.ID_GESTIUNE;RUL_OBINV.ID_GESTIUNE;'; + lnAparitii := PACK_NOMENCLATOARE.NOMEXISTA(tnIdGestiune, + V_LOOKUP, + lcMesaj); + + if lnAparitii <> 0 then + raise_application_error(-20005, lcMesaj); + else + UPDATE NOM_GESTIUNI SET STERS = 1 WHERE ID_GESTIUNE = tnIdGestiune; + end if; + end sterge_gestiune; + ---------------------------------------------------------------- + procedure adauga_asociere_part_sect(tnId_part number, + tnId_sectie number, + tnId_util number, + tnId_tip number) is + begin + + insert into asociere_parteneri_sectii + (id_part, id_sectie, id_util, dataora, id_tip) + values + (tnId_part, tnId_sectie, tnId_util, sysdate, tnId_tip); + + end adauga_asociere_part_sect; + ---------------------------------------------------------------- + procedure modifica_asociere_part_sect(tnId_asociere number, + tnId_part number, + tnId_sectie number, + tnId_util number) is + begin + + update asociere_parteneri_sectii + set id_part = tnId_part, + id_sectie = tnId_sectie, + id_util = tnId_util, + dataora = sysdate + where id_asociere = tnId_asociere; + + end modifica_asociere_part_sect; + ---------------------------------------------------------------- + procedure sterge_asociere_part_sect(tnId_asociere number) is + begin + + delete from asociere_parteneri_sectii + where id_asociere = tnId_asociere; + + end sterge_asociere_part_sect; + ---------------------------------------------------------------- + procedure adauga_sectie(V_SECTIE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_CSECTIE IN VARCHAR2, + V_ID_SUCURSALA IN NUMBER) is + V_NR_INREGISTRARI NUMBER(10) := 0; + begin + + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_SECTII + WHERE (TRIM(SECTIE) = V_SECTIE OR TRIM(CSECTIE) = V_CSECTIE) + AND STERS = 0; + + if V_NR_INREGISTRARI <> 0 then + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o sectie cu acest nume sau cu acest indicativ!'); + end if; + + INSERT /*+ APPEND */ + INTO NOM_SECTII + (SECTIE, CSECTIE, INACTIV, ID_SUCURSALA) + VALUES + (V_SECTIE, V_CSECTIE, V_INACTIV, V_ID_SUCURSALA); + + end adauga_sectie; + ---------------------------------------------------------------- + procedure modifica_sectie(V_ID_SECTIE IN NUMBER, + V_SECTIE IN VARCHAR2, + V_INACTIV IN NUMBER, + V_CSECTIE IN VARCHAR2, + V_ID_SUCURSALA IN NUMBER) is + V_NR_INREGISTRARI NUMBER(10) := 0; + begin + + SELECT COUNT(*) + INTO V_NR_INREGISTRARI + FROM NOM_SECTII + WHERE (TRIM(SECTIE) = V_SECTIE OR TRIM(CSECTIE) = V_CSECTIE) + AND ID_SECTIE <> V_ID_SECTIE + AND STERS = 0; + + if V_NR_INREGISTRARI <> 0 then + RAISE_APPLICATION_ERROR(-20000, + 'Mai exista o sectie cu acest nume sau cu acest indicativ!'); + end if; + + UPDATE NOM_SECTII + SET SECTIE = V_SECTIE, + CSECTIE = V_CSECTIE, + INACTIV = V_INACTIV, + ID_SUCURSALA = V_ID_SUCURSALA + WHERE ID_SECTIE = V_ID_SECTIE; + end modifica_sectie; + ---------------------------------------------------------------- + procedure asociere_part_gest(tnIdAsociere asociere_parteneri_gestiuni.id_asociere%Type, + tnIdPart asociere_parteneri_gestiuni.id_part%Type, + tnIdGestiune asociere_parteneri_gestiuni.id_gestiune%Type, + tcCont asociere_parteneri_gestiuni.cont%Type, + tnIdUtil asociere_parteneri_gestiuni.id_util%Type, + tnIdTip asociere_parteneri_gestiuni.id_tip%Type) is + begin + -- Adaugare + if nvl(tnIdAsociere, 0) = 0 then + insert into asociere_parteneri_gestiuni + (id_part, id_gestiune, cont, id_tip, id_util, dataora) + values + (tnIdPart, tnIdGestiune, tcCont, tnIdTip, tnIdUtil, sysdate); + else + update asociere_parteneri_gestiuni + set id_part = tnIdPart, + id_gestiune = tnIdGestiune, + cont = tcCont, + id_tip = tnIdTip, + id_util = tnIdUtil, + dataora = sysdate + where id_asociere = tnIdAsociere; + + end if; + + end asociere_part_gest; + ---------------------------------------------------------------- + procedure sterge_asociere_part_gest(tnIdAsociere asociere_parteneri_gestiuni.id_asociere%Type) is + begin + delete from asociere_parteneri_gestiuni + where id_asociere = tnIdAsociere; + end sterge_asociere_part_gest; + ---------------------------------------------------------------- + procedure modifica_date_firma(V_ID_FIRMA IN SYN_NOM_FIRME.ID_FIRMA%TYPE, + V_FIRMA IN SYN_NOM_FIRME.FIRMA%TYPE, + V_ANTET IN SYN_NOM_FIRME.ANTET%TYPE, + V_COD_FISCAL IN SYN_NOM_FIRME.COD_FISCAL%TYPE, + V_REG_COMERT IN SYN_NOM_FIRME.REG_COMERT%TYPE, + V_BANCA1 IN SYN_NOM_FIRME.BANCA1%TYPE, + V_CONT_BANCA1 IN SYN_NOM_FIRME.CONT_BANCA1%TYPE, + V_BANCA2 IN SYN_NOM_FIRME.BANCA2%TYPE, + V_CONT_BANCA2 IN SYN_NOM_FIRME.CONT_BANCA2%TYPE, + V_BANCA3 IN SYN_NOM_FIRME.BANCA3%TYPE, + V_CONT_BANCA3 IN SYN_NOM_FIRME.CONT_BANCA3%TYPE, + V_BANCA4 IN SYN_NOM_FIRME.BANCA4%TYPE, + V_CONT_BANCA4 IN SYN_NOM_FIRME.CONT_BANCA4%TYPE, + V_BANCA5 IN SYN_NOM_FIRME.BANCA5%TYPE, + V_CONT_BANCA5 IN SYN_NOM_FIRME.CONT_BANCA5%TYPE, + V_BANCA6 IN SYN_NOM_FIRME.BANCA6%TYPE, + V_CONT_BANCA6 IN SYN_NOM_FIRME.CONT_BANCA6%TYPE, + V_BANCA7 IN SYN_NOM_FIRME.BANCA7%TYPE, + V_CONT_BANCA7 IN SYN_NOM_FIRME.CONT_BANCA7%TYPE, + V_BANCA8 IN SYN_NOM_FIRME.BANCA8%TYPE, + V_CONT_BANCA8 IN SYN_NOM_FIRME.CONT_BANCA8%TYPE, + V_BANCA9 IN SYN_NOM_FIRME.BANCA9%TYPE, + V_CONT_BANCA9 IN SYN_NOM_FIRME.CONT_BANCA9%TYPE, + V_BANCA10 IN SYN_NOM_FIRME.BANCA10%TYPE, + V_CONT_BANCA10 IN SYN_NOM_FIRME.CONT_BANCA10%TYPE, + V_ADRESA IN SYN_NOM_FIRME.ADRESA%TYPE, + V_COD_FIRMA IN SYN_NOM_FIRME.COD_FIRMA%TYPE, + V_PERS_JUR IN SYN_NOM_FIRME.PERSOANA_JURIDICA%TYPE, + V_CODANG IN SYN_NOM_FIRME.CODANG%TYPE, + V_NUME IN SYN_NOM_FIRME.NUME%TYPE, + V_PRENUME IN SYN_NOM_FIRME.PRENUME%TYPE, + V_TELEFON1 IN SYN_NOM_FIRME.TELEFON%TYPE, + V_TELEFON2 IN SYN_NOM_FIRME.TELEFON2%TYPE, + V_TELEFON3 IN SYN_NOM_FIRME.TELEFON3%TYPE, + V_FAX IN SYN_NOM_FIRME.FAX%TYPE, + V_EMAIL IN SYN_NOM_FIRME.EMAIL%TYPE, + V_OASP IN SYN_NOM_FIRME.OASP%TYPE, + V_CAP_SOC_VAR IN SYN_NOM_FIRME.CAPITAL_SOC_VAR%TYPE, + V_CAP_SOC_SUB IN SYN_NOM_FIRME.CAPITAL_SOC_SUB%TYPE, + V_PUNCT_LUCRU IN SYN_NOM_FIRME.PUNCT_LUC%TYPE, + V_CAEN IN SYN_NOM_FIRME.CAEN%TYPE, + V_SCHEMA IN SYN_NOM_FIRME.SCHEMA%TYPE, + V_JUDET IN SYN_NOM_FIRME.JUDET%TYPE, + V_LOCALITATE IN SYN_NOM_FIRME.LOCALITATE%TYPE, + V_STRADA IN SYN_NOM_FIRME.STRADA%TYPE, + V_NUMAR IN SYN_NOM_FIRME.NUMAR%TYPE, + V_BLOC IN SYN_NOM_FIRME.BLOC%TYPE, + V_SCARA IN SYN_NOM_FIRME.SCARA%TYPE, + V_APART IN SYN_NOM_FIRME.APART%TYPE, + V_COD_POSTAL IN SYN_NOM_FIRME.COD_POSTAL%TYPE, + V_ID_MAMA IN SYN_NOM_FIRME.ID_MAMA%TYPE, + V_E_MAMA IN SYN_NOM_FIRME.E_MAMA%TYPE, + V_ID_LOC IN SYN_NOM_FIRME.ID_LOC%TYPE, + V_ID_UTIL IN SYN_NOM_FIRME.ID_UTILOP%TYPE, + V_ID_FORMAJ IN SYN_NOM_FIRME.ID_FORMA_JURIDICA%TYPE, + V_ID_FORMAO IN SYN_NOM_FIRME.ID_FORMA_ORGANIZARE%TYPE, + V_ID_FORMAP IN SYN_NOM_FIRME.ID_FORMA_PROP%TYPE, + V_ID_TIP_SOC IN SYN_NOM_FIRME.ID_TIP_SOC%TYPE, + V_INDICATIV IN SYN_NOM_FIRME.INDICATIV%TYPE, + V_DECLARANT IN SYN_NOM_FIRME.DECLARANT%TYPE, + V_FUNCTIE IN SYN_NOM_FIRME.FUNCTIE%TYPE, + V_INDICE_ITM IN SYN_NOM_FIRME.INDICE_ITM%TYPE, + V_TIP_MODIFICARE IN NUMBER, + V_CAEN_REVIZIE IN SYN_NOM_FIRME.CAEN_REVIZIE%TYPE DEFAULT NULL) is + begin + syn_pack_drepturi.firmemodinsproc(V_ID_FIRMA, + V_FIRMA, + V_ANTET, + V_COD_FISCAL, + V_REG_COMERT, + V_BANCA1, + V_CONT_BANCA1, + V_BANCA2, + V_CONT_BANCA2, + V_BANCA3, + V_CONT_BANCA3, + V_BANCA4, + V_CONT_BANCA4, + V_BANCA5, + V_CONT_BANCA5, + V_BANCA6, + V_CONT_BANCA6, + V_BANCA7, + V_CONT_BANCA7, + V_BANCA8, + V_CONT_BANCA8, + V_BANCA9, + V_CONT_BANCA9, + V_BANCA10, + V_CONT_BANCA10, + V_ADRESA, + V_COD_FIRMA, + V_PERS_JUR, + V_CODANG, + V_NUME, + V_PRENUME, + V_TELEFON1, + V_TELEFON2, + V_TELEFON3, + V_FAX, + V_EMAIL, + V_OASP, + V_CAP_SOC_VAR, + V_CAP_SOC_SUB, + V_PUNCT_LUCRU, + V_CAEN, + V_SCHEMA, + V_JUDET, + V_LOCALITATE, + V_STRADA, + V_NUMAR, + V_BLOC, + V_SCARA, + V_APART, + V_COD_POSTAL, + V_ID_MAMA, + V_E_MAMA, + V_ID_LOC, + V_ID_UTIL, + V_ID_FORMAJ, + V_ID_FORMAO, + V_ID_FORMAP, + V_ID_TIP_SOC, + V_INDICATIV, + V_DECLARANT, + V_FUNCTIE, + V_INDICE_ITM, + V_CAEN_REVIZIE); + + if to_number(pack_sesiune.getoptiunefirma('SCRIEREGISTRU')) = 1 then + pack_personal.reges_scrie_date_angajator(V_ID_FIRMA, + V_TIP_MODIFICARE, + V_ID_UTIL); + end if; + end; + ---------------------------------------------------------------- + procedure citesteNumeEnt(tnIdUtil IN NUMBER, tcNumeEnt OUT VARCHAR2) is + begin + begin + select denumire + into tcNumeEnt + from nom_parteneri + where sters = 0 + and inactiv = 0 + and id_part in (select id_partener + from utilizatori_rol_intern + where sters = 0 + and id_util = tnIdUtil); + exception + when NO_DATA_FOUND then + select utilizator + into tcNumeEnt + from syn_vutilizatori + where id_util = tnIdUtil; + end; + end citesteNumeEnt; + +end PACK_DEF; +/