All Downloads are FREE. Search and download functionalities are using the official Maven repository.

expsigladb.Procedure.popolamento_costo_dip.prc Maven / Gradle / Ivy

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE PROCEDURE         POPOLAMENTO_COSTO_DIP( aEsercizio IN NUMBER,aMese IN NUMBER, aUtente in varchar2) is

aSum1 number := 0;
aSum2 number := 0;
v_conta number :=0;
Begin

 IBMUTL015.SETRBSBIG;
 -- =================================================================================================
 -- Esiste l'indicazione dell'UNITA_ORGANIZZATIVA
 -- =================================================================================================

 select count(*) into v_conta
 from COSTO_DEL_DIPENDENTE
 where esercizio = aEsercizio
 and mese = aMese;

    if v_conta = 0 then

         INSERT INTO COSTO_DEL_DIPENDENTE
               (ESERCIZIO,
                TI_PREV_CONS,
                ID_MATRICOLA,
                TI_APPARTENENZA,
                TI_GESTIONE,
                CD_ELEMENTO_VOCE,
                CD_UNITA_ORGANIZZATIVA,
                IM_A1,
                IM_A2,
                IM_A3,
                DT_SCARICO,
                DACR,
                UTCR,
                DUVA,
                UTUV,
                PG_VER_REC,
                IM_ONERI_CNR_A1,
                IM_ONERI_CNR_A2,
                IM_ONERI_CNR_A3,
                IM_TFR_A1,
                IM_TFR_A2,
                IM_TFR_A3,
                TI_RAPPORTO,
                NOMINATIVO,
                DT_SCAD_CONTRATTO,
                CD_LIVELLO_1,
                CD_LIVELLO_2,
                CD_LIVELLO_3,
                CD_PROFILO,
                DS_PROFILO,
                MESE,
	              ORIGINE_FONTI,
	              FL_RAPPORTO13)
         SELECT A.esercizio,
                A.ti_prev_cons,     -- e' sempre 'C'
                TO_CHAR(A.matricola),
                A.ti_appartenenza,
                A.ti_gestione,
                Rtrim(Ltrim(A.cd_elemento_voce)),
                Rtrim(Ltrim(A.cd_unita_organizzativa)),
                A.importo,
                0,
                0,
                TO_DATE(NULL),
                SYSDATE,
                aUtente,
                SYSDATE,
                aUtente,
                1,
                A.importo_oneri_cnr,
                0,
                0,
                A.importo_tfr,
                0,
                0,
                DECODE(B.rapp_impiego,'01','IND','05','IND','DET'),
                B.nominativo,
                B.data_cessazione,
                B.livello_1,
                B.livello_2,
                B.livello_3,
                B.profilo,
                B.desc_profilo,
                A.mese,
                Decode(ltrim(rtrim(B.TIPO_CONTRATTO)), '01','FIN','11','FIN','00','FIN',null,'FIN','FES'),
	              Decode(ltrim(rtrim(B.RAPP_IMPIEGO)), '13','Y','N')
         FROM   VM_COSTI_DIP_GEST_VIEW A, CNR_ANADIP B
         WHERE  A.esercizio = aEsercizio And
            A.mese = aMese And
                A.cd_unita_organizzativa IS NOT NULL AND
                B.matricola = A.matricola And
                B.anno_rif = aEsercizio And
                B.mese_rif = aMese And
               (A.importo		!=0 or
                 A.importo_oneri_cnr!= 0 or
                 A.importo_tfr!=0) and
                EXISTS
                   (SELECT 1
                    FROM   UNITA_ORGANIZZATIVA C
                    WHERE  C.cd_unita_organizzativa = A.cd_unita_organizzativa);

         -- =================================================================================================
         -- Non esiste l'indicazione dell'UNITA_ORGANIZZATIVA
         -- =================================================================================================
         INSERT INTO COSTO_DEL_DIPENDENTE
               (ESERCIZIO,
                TI_PREV_CONS,
                ID_MATRICOLA,
                TI_APPARTENENZA,
                TI_GESTIONE,
                CD_ELEMENTO_VOCE,
                CD_UNITA_ORGANIZZATIVA,
                IM_A1,
                IM_A2,
                IM_A3,
                DT_SCARICO,
                DACR,
                UTCR,
                DUVA,
                UTUV,
                PG_VER_REC,
                IM_ONERI_CNR_A1,
                IM_ONERI_CNR_A2,
                IM_ONERI_CNR_A3,
                IM_TFR_A1,
                IM_TFR_A2,
                IM_TFR_A3,
                TI_RAPPORTO,
                NOMINATIVO,
                DT_SCAD_CONTRATTO,
                CD_LIVELLO_1,
                CD_LIVELLO_2,
                CD_LIVELLO_3,
                CD_PROFILO,
                DS_PROFILO,
                MESE,
	              ORIGINE_FONTI,
	              FL_RAPPORTO13)
         SELECT  A.ESERCIZIO,
                A.ti_prev_cons,     -- e' sempre 'C'
                TO_CHAR(A.matricola),
                A.ti_appartenenza,
                A.ti_gestione,
                Rtrim(Ltrim(A.cd_elemento_voce)),
                NULL,
                A.importo,
                0,
                0,
                TO_DATE(NULL),
                SYSDATE,
                aUtente,
                SYSDATE,
                aUtente,
                1,
                A.importo_oneri_cnr,
                0,
                0,
                A.importo_tfr,
                0,
                0,
                DECODE(B.rapp_impiego,'01','IND','05','IND','DET'),
                B.nominativo,
                B.data_cessazione,
                B.livello_1,
                B.livello_2,
                B.livello_3,
                B.profilo,
                B.desc_profilo,
                A.mese,
                Decode(ltrim(rtrim(B.TIPO_CONTRATTO)), '01','FIN','11','FIN','00','FIN',null,'FIN','FES'),
	              Decode(ltrim(rtrim(B.RAPP_IMPIEGO)), '13','Y','N')
         FROM   VM_COSTI_DIP_GEST_VIEW A, CNR_ANADIP B
         WHERE  A.esercizio = aEsercizio And
            A.mese = aMese And
                B.matricola = A.matricola And
                B.anno_rif = aEsercizio And
                B.mese_rif = aMese And
                (A.importo		!=0 or
                 A.importo_oneri_cnr!= 0 or
                 A.importo_tfr!=0) and
                NOT EXISTS
                   (SELECT 1
                    FROM   UNITA_ORGANIZZATIVA C
                    WHERE  C.cd_unita_organizzativa = A.cd_unita_organizzativa);

			begin

					select sum ( IMPORTO+ONERI_CNR+TFR) into aSum1
					from cnr_costi_gest
					where cnr_costi_gest.ANNO = aEsercizio
					and MESE = aMese;

            Dbms_Output.put_line('La somma di IMPORTO+ONERI_CNR+TFR ='||aSum1);

					select sum( IM_A1+IM_ONERI_CNR_A1+IM_TFR_A1) into aSum2
					from costo_del_dipendente
					where costo_del_dipendente.ESERCIZIO = aEsercizio
					and costo_del_dipendente.MESE = aMese;

            Dbms_Output.put_line('La somma di IM_A1+IM_ONERI_CNR_A1+IM_TFR_A1='||aSum2);


					if aSum1 = aSum2 then
						commit;
					else
						rollback;
								Dbms_Output.put_line('La somma di IMPORTO+ONERI_CNR+TFR ='||aSum1||' ? diversa dalla somma IM_A1+IM_ONERI_CNR_A1+IM_TFR_A1='||aSum2);
								Dbms_Output.put_line('? stato effettuato il rollback e non la commit!!');
					end if;
			end;

    else
        Dbms_Output.put_line('I dati per l''anno '||aEsercizio||' e per il mese '||aMese||' sono gi? stati inseriti!');
    end if;
end;
/






© 2015 - 2024 Weber Informatics LLC | Privacy Policy