Files
gomag-vending/api/database-scripts/10_PACK_DEF.pck
Claude Agent 115666155b pack_def
2026-03-31 14:09:01 +00:00

2983 lines
131 KiB
Plaintext

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;
/