expsigladb.Package.UTIL_BILANCIO_BODY.sql Maven / Gradle / Ivy
--------------------------------------------------------
-- DDL for Package Body UTIL_BILANCIO
--------------------------------------------------------
CREATE OR REPLACE PACKAGE BODY "UTIL_BILANCIO" is
PROCEDURE STORNO_SP_FINALE_RIAPERTO_2005 (aES In NUMBER, aCDS In VARCHAR2) Is
NUMERO NUMBER;
BEGIN
For testate in (SELECT T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC,
NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)-NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0) im_movimento
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA and
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
cd_voce_ep = 'X.01.002' And
T.CD_CAUSALE_COGE = 'RIAPERTURA_CONTI' AND
T.ESERCIZIO = aEs And
T.CD_CDS = Nvl(aCds, T.CD_CDS)
Group BY T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC) Loop
NUMERO := CNRCTB200.getNextProgressivo(aEs, testate.CD_Cds, testate.Cd_Unita_Organizzativa, 'COGE',
'STORNO_SP_FINALE', Trunc(SYSDATE));
Insert Into scrittura_partita_doppia (
CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO, IM_SCRITTURA,
TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA,
ATTIVA, DACR, UTCR, DUVA, UTUV, PG_VER_REC)
Values
(testate.CD_CDS, aEs, testate.CD_UNITA_ORGANIZZATIVA, numero, 'CAUSALE', 0, ABS(TESTATE.IM_MOVIMENTO),
'P', TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D', 'Storno scritture riapertura S.P. Finale nel 2006 ',
'Y', Sysdate, 'STORNO_SP_FINALE', Sysdate, 'STORNO_SP_FINALE', 1);
If TESTATE.im_movimento < 0 Then -- SALDO DARE
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
Sysdate, 'STORNO_SP_FINALE', Sysdate, 'STORNO_SP_FINALE', 1,
TESTATE.ti_istituz_commerc);
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0, 'X.01.001', ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
Sysdate, 'STORNO_SP_FINALE', Sysdate, 'STORNO_SP_FINALE', 1,
TESTATE.ti_istituz_commerc);
Elsif TESTATE.im_movimento > 0 Then -- SALDO AVERE
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
Sysdate, 'STORNO_SP_FINALE', Sysdate, 'STORNO_SP_FINALE', 1,
TESTATE.ti_istituz_commerc);
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0, 'X.01.001', ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
Sysdate, 'STORNO_SP_FINALE', Sysdate, 'STORNO_SP_FINALE', 1,
TESTATE.ti_istituz_commerc);
End If;
End Loop;
--commit;
End;
PROCEDURE STORNO_SP_FINALE_A_UT_ES_PREC (aES In NUMBER, aCDS In VARCHAR2) Is
NUMERO NUMBER;
aVoceSA varchar2(45);
begin
aVoceSA:=CNRCTB015.getVal02PerChiave(aEs, 'VOCEEP_SPECIALE','UTILE_PERDITA_ESERCIZIO');
For testate in (SELECT T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC,
NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)-NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0) im_movimento
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA and
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
cd_voce_ep = 'X.01.002' And -- STATO PATRIMONIALE FINALE RIAPERTO
T.CD_CAUSALE_COGE = 'RIAPERTURA_CONTI' AND
T.ESERCIZIO = aEs And
T.CD_CDS = Nvl(aCds, T.CD_CDS)
Group BY T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC) Loop
NUMERO := CNRCTB200.getNextProgressivo(aEs, testate.CD_Cds, testate.Cd_Unita_Organizzativa, 'COGE',
'STO_AV_ES_PREC_'||aEs, Trunc(SYSDATE));
Insert Into scrittura_partita_doppia (
CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO, IM_SCRITTURA,
TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA,
ATTIVA, DACR, UTCR, DUVA, UTUV, PG_VER_REC)
Values
(testate.CD_CDS, aEs, testate.CD_UNITA_ORGANIZZATIVA, numero, 'CAUSALE', 0, ABS(TESTATE.IM_MOVIMENTO),
'P', TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), 'D', 'Storno S.P. Finale riaperto '||aEs||' a Avanzo Esercizi Precedenti',
'Y', Sysdate, 'STO_AV_ES_PREC_'||aEs, Sysdate, 'STO_AV_ES_PREC_'||aEs, 1);
If TESTATE.im_movimento < 0 Then -- SALDO DARE
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), 'D',
Sysdate, 'STO_AV_ES_PREC_'||aEs, Sysdate, 'STO_AV_ES_PREC_'||aEs, 1,
TESTATE.ti_istituz_commerc);
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0,aVoceSA, ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), 'D',
Sysdate, 'STO_AV_ES_PREC_'||aEs, Sysdate, 'STO_AV_ES_PREC_'||aEs, 1,
TESTATE.ti_istituz_commerc);
Elsif TESTATE.im_movimento > 0 Then -- SALDO AVERE
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), 'D',
Sysdate, 'STO_AV_ES_PREC_'||aEs, Sysdate, 'STO_AV_ES_PREC_'||aEs, 1,
TESTATE.ti_istituz_commerc);
Insert INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, aEs, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0, aVoceSA, ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), TO_DATE('01/01/'||aEs, 'DD/MM/YYYY'), 'D',
Sysdate, 'STO_AV_ES_PREC_'||aEs, Sysdate, 'STO_AV_ES_PREC_'||aEs, 1,
TESTATE.ti_istituz_commerc);
End If;
CANCELLA_SALDI(aEs,TESTATE.CD_CDS);
AGGIORNA_SALDI(aEs,TESTATE.CD_CDS);
End Loop;
Commit;
End;
PROCEDURE Storno_Scritture_2005 IS
NUMERO NUMBER;
BEGIN
FOR testate IN (SELECT T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC,t.esercizio,
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)-NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0) im_movimento
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
t.ESERCIZIO=2005 AND
cd_causale_coge ='RIAPERTURA_CONTI' AND
D.CD_VOCE_EP = 'P.01.004'
GROUP BY T.CD_cds, T.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC,t.esercizio) LOOP
NUMERO := Cnrctb200.getNextProgressivo(testate.esercizio, testate.CD_Cds, testate.Cd_Unita_Organizzativa, 'COGE',
'CED', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA (
CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO, IM_SCRITTURA,
TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA,
ATTIVA, DACR, UTCR, DUVA, UTUV, PG_VER_REC)
VALUES
(testate.CD_CDS, testate.esercizio, testate.CD_UNITA_ORGANIZZATIVA, numero, 'CAUSALE', 0, ABS(TESTATE.IM_MOVIMENTO),
'P', TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D', 'Storno scritture riapertura S.P. iniziale nel 2005 ',
'Y', SYSDATE, 'CED', SYSDATE, 'CED', 1);
IF TESTATE.im_movimento < 0 THEN -- SALDO DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, testate.esercizio, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
SYSDATE, 'CED', SYSDATE, 'CED', 1,TESTATE.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, testate.esercizio, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0, 'X.01.001', ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
SYSDATE, 'CED', SYSDATE, 'CED', 1,TESTATE.ti_istituz_commerc);
ELSIF TESTATE.im_movimento > 0 THEN -- SALDO AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, testate.esercizio, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 1,
0, testate.CD_VOCE_EP, ABS(TESTATE.IM_MOVIMENTO), 'D',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
SYSDATE, 'CED', SYSDATE, 'CED', 1,TESTATE.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(TESTATE.CD_CDS, testate.esercizio, TESTATE.CD_UNITA_ORGANIZZATIVA, NUMERO, 2,
0, 'X.01.001', ABS(TESTATE.IM_MOVIMENTO), 'A',
TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
SYSDATE, 'CED', SYSDATE, 'CED', 1,
TESTATE.ti_istituz_commerc);
END IF;
END LOOP;
--commit;
END;
/*
PROCEDURE STORNA_AV_ES_PREC (aes in number) is
NUMERO NUMBER;
BEGIN
------------------ AVANZO DA STORNARE AD AVANZO ES. PRECEDENTE
FOR SALDI IN
(SELECT * FROM STORNI_AVANZO
Order By 1, 2 ) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'STORNO_AVANZO',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aEs, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.DIFF), 'P', TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', 'Storno Avanzo / Avanzo Esercizi Precedenti',
'Y', TRUNC(SYSDATE), 'STORNO_AVANZO', TRUNC(SYSDATE), 'STORNO_AVANZO', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.DIFF > 0 Then -- QUINDI E' MAGGIORE DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, Aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_AVANZO', TRUNC(SYSDATE), 'STORNO_AVANZO', 1, SALDI.TI_ISTITUZ_COMMERC);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'N.02.003',
ABS(SALDI.DIFF), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_AVANZO', TRUNC(SYSDATE), 'STORNO_AVANZO', 1, SALDI.TI_ISTITUZ_COMMERC);
ELSIF SALDI.DIFF < 0 Then -- SE INVECE E' MAGGIORE AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_AVANZO', TRUNC(SYSDATE), 'STORNO_AVANZO', 1, SALDI.TI_ISTITUZ_COMMERC);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'N.02.003',
ABS(SALDI.DIFF), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_AVANZO', TRUNC(SYSDATE), 'STORNO_AVANZO', 1, SALDI.TI_ISTITUZ_COMMERC);
END IF;
END LOOP;
--commit;
END;
*/
PROCEDURE storna_att_pass_es_chiuso_2 (aes in NUMBER, CDS_IN VARCHAR2) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
cd_unita_organizzativa = Decode (CDS_IN, '*', cd_unita_organizzativa, CDS_IN) And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
For SALDI IN
(SELECT D.CD_CDS,
D.CD_UNITA_ORGANIZZATIVA,
CD_VOCE_EP,
TI_ISTITUZ_COMMERC,
NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0) DARE,
NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0) AVERE,
NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0)-NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0) DIFF
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA And
T.CD_cds = ACDS.CD_UNITA_ORGANIZZATIVA And
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ESERCIZIO = AES AND
T.ATTIVA = 'Y' AND
TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY') > aes AND
TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY') != aes and
(CD_VOCE_EP) IN (SELECT CD_VOCE_EP FROM CNR_ASS_CONTO_GRUPPO_EP WHERE ESERCIZIO = AES AND
CD_PIANO_GRUPPI != 'CE') AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA'))
GROUP BY D.CD_CDS, D.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC) LOOP
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI_2', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', 0, ABS(SALDI.diff), 'P', TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', 'Storno post-chiusura attivita'' competenza esercizio precedente SCRITTURA',
'Y', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.CD_CDS,
SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
-------------------------------- STORNO DELLA SCRITTURA --------------------------------
IF SALDI.DIFF > 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN AVERE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2002', 'DD/MM/YYYY'), TO_DATE('31/12/2002', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN DARE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2002', 'DD/MM/YYYY'), TO_DATE('31/12/2002', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
END IF;
----------------------------- STORNO DELLA CHIUSURA --------------------------------
------- SIA DELLO STATO PATRIMONIALE INIZIALE CHE DELL'ATTIVITA/PASSIVITA --------
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI_2', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA, CD_CAUSALE_COGE,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', 0, ABS(SALDI.diff), 'P', TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', 'Storno post-chiusura attivita'' competenza esercizio precedente CHIUSURA',
'Y', 'CHIUSURA_STATO_PATRIMONIALE', Trunc(SYSDATE), 'STORNO_POST_CHI_2', Trunc(SYSDATE),
'STORNO_POST_CHI_2', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
IF SALDI.DIFF > 0 THEN
-- D ATTIVITA'/PASSIVITA'
-- A SPF
-- D SPF
-- A SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- A ATTIVITA'/PASSIVITA'
-- D SPF
-- A SPF
-- D SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
END IF;
------------------------------- STORNO DELLA RIAPERTURA -------------------------------
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes+1, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI_2', Trunc(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO, 'CAUSALE', 0, ABS(SALDI.diff), 'P',
TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
'Storno post-chiusura attivita'' competenza esercizio precedente RIAPERTURA',
'Y', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.CD_CDS,
SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
-- ESATTAMENTE IDENTICA (MA INVERTITA ALLA CHIUSURA)
IF SALDI.DIFF > 0 THEN
-- A ATTIVITA'/PASSIVITA'
-- D SPF
-- A SPF
-- D SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- D ATTIVITA'/PASSIVITA'
-- A SPF
-- D SPF
-- A SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI_2', TRUNC(SYSDATE), 'STORNO_POST_CHI_2', 1, SALDI.ti_istituz_commerc);
END IF;
End Loop;
--Commit;
END LOOP;
END;
PROCEDURE storna_att_pass_es_chiuso (aes in NUMBER, CDS_IN VARCHAR2) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
cd_unita_organizzativa = Decode (CDS_IN, '*', cd_unita_organizzativa, CDS_IN) And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
For SALDI IN
(SELECT D.CD_CDS,
D.CD_UNITA_ORGANIZZATIVA,
CD_VOCE_EP,
TI_ISTITUZ_COMMERC,
NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0) DARE,
NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0) AVERE,
NVL(sum(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0)-NVL(sum(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0) DIFF
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA And
T.CD_cds = ACDS.CD_UNITA_ORGANIZZATIVA And
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ESERCIZIO = AES AND
T.ATTIVA = 'Y' AND
TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY') < AES AND
TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY') < AES AND
(CD_VOCE_EP) IN (SELECT CD_VOCE_EP FROM CNR_ASS_CONTO_GRUPPO_EP WHERE ESERCIZIO = AES AND
CD_PIANO_GRUPPI != 'CE') AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA'))
GROUP BY D.CD_CDS, D.CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, TI_ISTITUZ_COMMERC) LOOP
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', 0, ABS(SALDI.diff), 'P', TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', 'Storno post-chiusura attivita'' competenza esercizio precedente SCRITTURA',
'Y', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.CD_CDS,
SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
-------------------------------- STORNO DELLA SCRITTURA --------------------------------
IF SALDI.DIFF > 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN AVERE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2002', 'DD/MM/YYYY'), TO_DATE('31/12/2002', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN DARE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2002', 'DD/MM/YYYY'), TO_DATE('31/12/2002', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
END IF;
----------------------------- STORNO DELLA CHIUSURA --------------------------------
------- SIA DELLO STATO PATRIMONIALE INIZIALE CHE DELL'ATTIVITA/PASSIVITA --------
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA, CD_CAUSALE_COGE,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', 0, ABS(SALDI.diff), 'P', TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', 'Storno post-chiusura attivita'' competenza esercizio precedente CHIUSURA',
'Y', 'CHIUSURA_STATO_PATRIMONIALE', Trunc(SYSDATE), 'STORNO_POST_CHI', Trunc(SYSDATE),
'STORNO_POST_CHI', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
IF SALDI.DIFF > 0 THEN
-- D ATTIVITA'/PASSIVITA'
-- A SPF
-- D SPF
-- A SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- A ATTIVITA'/PASSIVITA'
-- D SPF
-- A SPF
-- D SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
END IF;
------------------------------- STORNO DELLA RIAPERTURA -------------------------------
If SALDI.DIFF != 0 Then
NUMERO := CNRCTB200.getNextProgressivo(aes+1, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'STORNO_POST_CHI', Trunc(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO, 'CAUSALE', 0, ABS(SALDI.diff), 'P',
TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
'Storno post-chiusura attivita'' competenza esercizio precedente RIAPERTURA',
'Y', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.CD_CDS,
SALDI.CD_UNITA_ORGANIZZATIVA);
End If;
-- ESATTAMENTE IDENTICA (MA INVERTITA ALLA CHIUSURA)
IF SALDI.DIFF > 0 THEN
-- A ATTIVITA'/PASSIVITA'
-- D SPF
-- A SPF
-- D SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.DIFF < 0 THEN
-- D ATTIVITA'/PASSIVITA'
-- A SPF
-- D SPF
-- A SPI
-- ATTIVITA'/PASSIVITA'
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, 0, SALDI.CD_VOCE_EP,
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, 0, 'X.01.002',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 3, 0, 'X.01.001',
ABS(SALDI.DIFF), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
-- STATO PATRIMONIALE FINALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes+1, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 4, 0, 'X.01.002',
ABS(SALDI.DIFF), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'STORNO_POST_CHI', TRUNC(SYSDATE), 'STORNO_POST_CHI', 1, SALDI.ti_istituz_commerc);
END IF;
End Loop;
--Commit;
END LOOP;
END;
PROCEDURE CONTAB_DOC_PAG (INES NUMBER, INTIPO VARCHAR2, INCDS VARCHAR2, INUO VARCHAR2,
INNUMDOC NUMBER) IS
aDocTst V_DOC_ULT_COGE_TSTA%rowtype;
BEGIN
SELECT *
INTO ADOCTST
from V_DOC_ULT_COGE_TSTA
where esercizio = INES and
CD_CDS = INCDS and
CD_UNITA_ORGANIZZATIVA = INUO AND
CD_TIPO_DOCUMENTO_CONT = INTIPO
And PG_DOCUMENTO_CONT = INNUMDOC;
CNRCTB205.regDocPagCoge(aDocTst, 'STA', sysdate);
END;
PROCEDURE CONTAB_DOC_AMM (INES NUMBER, INTIPO VARCHAR2, INCDS VARCHAR2, INUO VARCHAR2,
INNUMDOC NUMBER) IS
aTsta V_DOC_AMM_COGE_TSTA%rowtype;
Begin
Select * into aTsta from V_DOC_AMM_COGE_TSTA where
esercizio = INES
And cd_tipo_documento = INTIPO
and cd_cds = INCDS
and cd_unita_organizzativa = INUO
and pg_numero_documento = INNUMDOC;
CNRCTB205.regDocAmmCoge(aTsta, 'STA', sysdate);
END;
PROCEDURE chiudi_provv_all_cds (aes in number) is
pg_exec number;
job number:=null;
next_date date:=sysdate;
begin
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
begin
pg_exec:=IBMUTL210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
CNRCTB206.JOB_CHIUSURACOGECOAN(job,pg_exec,next_date,'Y',aes,acds.cd_unita_organizzativa);
EXCEPTION
WHEN OTHERS THEN ROLLBACK;
IBMUTL200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
END;
end loop;
END;
PROCEDURE Chiudi_Cds (aes in number, ACDS IN VARCHAR2) IS
pg_exec NUMBER;
job NUMBER:=NULL;
next_date DATE:=SYSDATE;
BEGIN
pg_exec:=Ibmutl210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
Cnrctb206.JOB_CHIUSURACOGECOAN(job,pg_exec,next_date,'Y', aes,ACDS);
--EXCEPTION
-- WHEN OTHERS THEN
-- DBMS_OUTPUT.PUT_LINE ('WHEN OTHERS NELLA PROCEDURA');
-- ROLLBACK;
-- Ibmutl200.logErr(pg_exec,SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
END;
PROCEDURE CANCELLA_SALDI_GRUPPO (AES IN NUMBER) IS
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y' AND
CD_UNITA_ORGANIZZATIVA IN (
'000',
'002',
'003',
'007',
'014',
'016',
'018',
'019',
'020',
'022',
'023',
'024',
'026',
'028',
'029',
'032',
'036',
'041',
'042',
'043',
'044',
'045',
'046',
'048',
'051',
'052',
'053',
'055',
'056',
'057',
'059',
'063',
'064',
'066',
'067',
'068',
'071',
'073',
'074',
'075',
'077',
'078',
'080',
'091',
'094',
'096',
'097',
'099',
'100',
'101',
'102',
'103',
'104',
'106',
'107',
'317' )
Order by cd_unita_organizzativa) loop
Delete SALDO_COGE Where ESERCIZIO = AES And cd_Cds = acds.cd_unita_organizzativa;
Commit;
End Loop;
END;
PROCEDURE CANCELLA_ALL_SALDI (AES IN NUMBER) IS
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
Delete SALDO_COGE Where ESERCIZIO = AES And cd_Cds = acds.cd_unita_organizzativa;
Commit;
End Loop;
END;
PROCEDURE ANNULLA_CONTABILIZZAZIONE IS
CURSOR C IS
SELECT * FROM CONTABILIZZAZIONE_DA_ANNULLARE
ORDER BY ESERCIZIO,UO,TIPO_BUONO,NR_BUONO;
CUR C%ROWTYPE;
BEGIN
OPEN C;
LOOP
FETCH C INTO CUR;
EXIT WHEN C%NOTFOUND;
Delete FROM MOVIMENTO_COGE Where
(ESERCIZIO,CD_CDS,CD_UNITA_ORGANIZZATIVA,PG_SCRITTURA) IN(SELECT ESERCIZIO,CD_CDS,CD_UNITA_ORGANIZZATIVA,PG_SCRITTURA
FROM SCRITTURA_PARTITA_DOPPIA
WHERE
ESERCIZIO = CUR.ESERCIZIO AND
CD_UNITA_ORGANIZZATIVA = CUR.UO AND
CD_CAUSALE_COGE LIKE '%BENE_DUREVOLE' AND
CD_COMP_DOCUMENTO LIKE TO_CHAR(CUR.PG_INVENTARIO)||'.'||CUR.TIPO_BUONO||'.'||TO_CHAR(CUR.ESERCIZIO)||'.'||TO_CHAR(CUR.NR_BUONO)||'.%');
DELETE
FROM SCRITTURA_PARTITA_DOPPIA
WHERE
ESERCIZIO = CUR.ESERCIZIO AND
CD_UNITA_ORGANIZZATIVA = CUR.UO AND
CD_CAUSALE_COGE LIKE '%BENE_DUREVOLE' AND
CD_COMP_DOCUMENTO LIKE TO_CHAR(CUR.PG_INVENTARIO)||'.'||CUR.TIPO_BUONO||'.'||TO_CHAR(CUR.ESERCIZIO)||'.'||TO_CHAR(CUR.NR_BUONO)||'.%';
END LOOP;
CANCELLA_SALDI(CUR.ESERCIZIO,SUBSTR(CUR.UO,1,3));
AGGIORNA_SALDI(CUR.ESERCIZIO,SUBSTR(CUR.UO,1,3));
END;
PROCEDURE annulla_chiusure_cds_SPORCHI is
pg_exec number;
job number:=null;
next_date date:=sysdate;
Cursor C Is
select DISTINCT CD_CDS
from saldo_coge a
WHERE a.esercizio = 2003
AND CD_VOCE_EP = 'N.02.001'
group by a.esercizio, a.CD_CDS, a.CD_UNITA_ORGANIZZATIVA
having SUM(TOT_DARE) != SUM(TOT_AVERE)
Order By 1;
BEGIN
for rec in c loop
begin
pg_exec:=IBMUTL210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
CNRCTB206.JOB_ANNULLACHIUSURACOGECOAN(job,pg_exec,next_date,2003,rec.cd_cds);
EXCEPTION
WHEN OTHERS THEN ROLLBACK;
IBMUTL200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
end;
end loop;
END;
PROCEDURE Cancella_Saldi (AES IN NUMBER, IN_CDS IN VARCHAR2) IS
BEGIN
DELETE SALDO_COGE WHERE ESERCIZIO = AES AND CD_CDS = IN_CDS;
--COMMIT;
END;
PROCEDURE rettifiche_costi_comp_es_prec (aes in NUMBER, CDS In VARCHAR2, i_c In CHAR) Is
NUMERO NUMBER;
Begin
For aCDS in (Select CD_UNITA_ORGANIZZATIVA
From v_unita_organizzativa_valida
Where esercizio = aEs And
CD_UNITA_ORGANIZZATIVA = Nvl(CDS, CD_UNITA_ORGANIZZATIVA) And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ COSTI 2005 CON COMPETENZA 2004
For SALDI In
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA And
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
M.TI_ISTITUZ_COMMERC = Nvl(i_c, M.TI_ISTITUZ_COMMERC) AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'CE') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('EEC', 'EPC')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc
Having NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) != 0) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_COSTI_0805',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aEs, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2005', 'DD/MM/YYYY'),
'D', 'Rettifica Costi da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_COSTI_0805', TRUNC(SYSDATE), 'RET_COSTI_0805', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA IL COSTO CON UNA SCRITTURA IN AVERE NELL'ESERCIZIO PRECEDENTE (2004)
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, Aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2004', 'DD/MM/YYYY'), TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0905', TRUNC(SYSDATE), 'RET_COSTI_0905', 1, saldi.ti_istituz_commerc);
-- STORNATO CON STESSO CONTO NELL'ANNO IN CORSO (2005)
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_COSTI_0805', TRUNC(SYSDATE), 'RET_COSTI_0805', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2004', 'DD/MM/YYYY'), TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0805', TRUNC(SYSDATE), 'RET_COSTI_0805', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0805', TRUNC(SYSDATE), 'RET_COSTI_0805', 1, saldi.ti_istituz_commerc);
END IF;
END LOOP;
--commit;
end loop;
END;
PROCEDURE rettificHE_costi (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
CD_UNITA_ORGANIZZATIVA In ('000', '005', '035', '056', '078') And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ COSTI 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA And
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
M.TI_ISTITUZ_COMMERC = 'I' AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'CE') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('EEC', 'EPC')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc
Having NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) != 0) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_COSTI_0705',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aEs, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica Costi da esercizio precedente Terzo LUGLIO 05'||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_COSTI_0705', TRUNC(SYSDATE), 'RET_COSTI_0705', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA IL COSTO CON UNA SCRITTURA IN AVERE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, Aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0705', TRUNC(SYSDATE), 'RET_COSTI_0705', 1, saldi.ti_istituz_commerc);
-- STORNATO CON STESSO CONTO NEL 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_COSTI_0705', TRUNC(SYSDATE), 'RET_COSTI_0705', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0705', TRUNC(SYSDATE), 'RET_COSTI_0705', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_COSTI_0705', TRUNC(SYSDATE), 'RET_COSTI_0705', 1, saldi.ti_istituz_commerc);
END IF;
END LOOP;
--commit;
end loop;
END;
PROCEDURE Popola_Sp_Per_Conto_Uo
(INTIPO IN VARCHAR2, -- SP / CE
inEs IN NUMBER, -- obbligatorio
INDATA IN VARCHAR2, -- obbligatorio
IS_CO IN CHAR) IS -- obbligatorio
DARE NUMBER(20,3);
AVERE NUMBER(20,3);
CONTO_AVANZO VOCE_EP.CD_VOCE_EP%TYPE;
STATO_PATR VOCE_EP.CD_VOCE_EP%TYPE;
PROF_PERD VOCE_EP.CD_VOCE_EP%TYPE;
BEGIN
IF INTIPO IS NOT NULL AND inEs IS NOT NULL AND IS_CO IS NOT NULL THEN
DELETE CE_SP_PER_CONTO
WHERE TIPO = INTIPO AND
ESERCIZIO = ines AND
i_c = is_co AND
DATA_ESTR = INDATA;
COMMIT;
SELECT VAL01
INTO CONTO_AVANZO
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'UTILE_PERDITA_ESERCIZIO';
SELECT VAL01
INTO STATO_PATR
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'STATO_PATRIMONIALE';
SELECT VAL01
INTO PROF_PERD
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'CONTO_ECONOMICO';
IF INTIPO = 'SP' THEN
FOR CONTI IN (SELECT ASS.ESERCIZIO, ASS.CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP ASS
WHERE ASS.ESERCIZIO = INES AND
CD_PIANO_GRUPPI IN ('SPATT', 'SPPAS')) LOOP
FOR UO IN (SELECT CD_UNITA_ORGANIZZATIVA
FROM UNITA_ORGANIZZATIVA
WHERE FL_CDS = 'N') LOOP
IF CONTI.CD_VOCE_EP = CONTO_AVANZO THEN
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE = 'DETERMINAZIONE_UTILE_PERDITA' AND CONTI.CD_VOCE_EP = CONTO_AVANZO)) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) OR
NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) AND
D.TI_ISTITUZ_COMMERC = IS_CO
AND EXISTS
(SELECT 1
FROM MOVIMENTO_COGE M2
WHERE M2.CD_CDS = D.CD_CDS AND
M2.ESERCIZIO = D.ESERCIZIO AND
M2.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
M2.PG_SCRITTURA = D.PG_SCRITTURA AND
M2.cd_voce_ep = STATO_PATR);
ELSE
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA')) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
D.TI_ISTITUZ_COMMERC = IS_CO;
END IF;
INSERT INTO CE_SP_PER_CONTO (ESERCIZIO, TIPO, CD_VOCE_EP, UO, I_C, SALDO_DARE, SALDO_AVERE, SALDO_FINALE, DATA_ESTR)
VALUES (Ines, 'SP', CONTI.CD_VOCE_EP, UO.CD_UNITA_ORGANIZZATIVA, IS_CO, DARE, AVERE, DECODE(SUBSTR(CONTI.CD_VOCE_EP, 1, 1), 'A', DARE-AVERE, AVERE-DARE), INDATA);
END LOOP; -- UO SP
COMMIT;
END LOOP; -- CONTO SP
ELSIF INTIPO = 'CE' THEN
FOR CONTI IN (SELECT ASS.ESERCIZIO, ASS.CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP ASS
WHERE ASS.ESERCIZIO = INES AND
CD_PIANO_GRUPPI = 'CE') LOOP
FOR UO IN (SELECT CD_UNITA_ORGANIZZATIVA
FROM V_UNITA_ORGANIZZATIVA_VALIDA
WHERE ESERCIZIO = Ines AND
FL_CDS = 'N') LOOP
IF CONTI.CD_VOCE_EP = CONTO_AVANZO THEN
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE = 'DETERMINAZIONE_UTILE_PERDITA' AND CONTI.CD_VOCE_EP = CONTO_AVANZO)) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) OR
NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) AND
D.TI_ISTITUZ_COMMERC = IS_CO
AND EXISTS
(SELECT 1
FROM MOVIMENTO_COGE M2
WHERE M2.CD_CDS = D.CD_CDS AND
M2.ESERCIZIO = D.ESERCIZIO AND
M2.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
M2.PG_SCRITTURA = D.PG_SCRITTURA AND
M2.cd_voce_ep = PROF_PERD);
ELSE
-- PER CONTI NORMALI
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA')) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
-- ANNO IN CORSO (SOLA COMPETENZA)
((NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) OR
-- A CAVALLO TRA ANNO PRECEDENTE ED ANNO ATTUALE
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES-1) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) OR
-- A CAVALLO TRA ANNO ATTUALE ED ANNO SUCCESSIVO (TANTO CI SONO I RISCONTI)
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1)) OR
-- O COMPLETAMENTE IN ESERCIZIO SUCCESSIVO (TANTO CI SONO I RISCONTI)
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1)) ) AND
D.TI_ISTITUZ_COMMERC = IS_CO;
END IF;
INSERT INTO CE_SP_PER_CONTO (ESERCIZIO, TIPO, CD_VOCE_EP, UO, I_C, SALDO_DARE, SALDO_AVERE, SALDO_FINALE, DATA_ESTR)
VALUES (Ines, 'CE', CONTI.CD_VOCE_EP, UO.CD_UNITA_ORGANIZZATIVA, IS_CO, DARE, AVERE, DECODE(SUBSTR(CONTI.CD_VOCE_EP, 1, 1), 'C', DARE-AVERE, AVERE-DARE), INDATA);
END LOOP; -- UO CE
COMMIT;
END LOOP; -- CONTO COSTO
END IF;
END IF; -- PARAMETRI PIENI
END;
PROCEDURE Popola_Sp_Per_Conto_TOT
(INTIPO IN VARCHAR2, -- SP / CE
inEs IN NUMBER, -- obbligatorio
INDATA IN VARCHAR2, -- obbligatorio
IS_CO IN CHAR) IS -- obbligatorio C/I/*
DARE NUMBER(20,3);
AVERE NUMBER(20,3);
CONTO_AVANZO VOCE_EP.CD_VOCE_EP%TYPE;
STATO_PATR VOCE_EP.CD_VOCE_EP%TYPE;
PROF_PERD VOCE_EP.CD_VOCE_EP%TYPE;
BEGIN
IF INTIPO IS NOT NULL AND inEs IS NOT NULL AND IS_CO IS NOT NULL THEN
DELETE CE_SP_PER_CONTO_TOT
WHERE TIPO = INTIPO AND
ESERCIZIO = ines AND
i_c = is_co AND
DATA_ESTR = INDATA;
COMMIT;
SELECT VAL01
INTO CONTO_AVANZO
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'UTILE_PERDITA_ESERCIZIO';
SELECT VAL01
INTO STATO_PATR
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'STATO_PATRIMONIALE';
SELECT VAL01
INTO PROF_PERD
FROM CONFIGURAZIONE_CNR
WHERE ESERCIZIO = INES AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'VOCEEP_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'CONTO_ECONOMICO';
IF INTIPO = 'SP' THEN
FOR CONTI IN (SELECT ASS.ESERCIZIO, ASS.CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP ASS
WHERE ASS.ESERCIZIO = INES AND
CD_PIANO_GRUPPI IN ('SPATT', 'SPPAS')) LOOP
FOR UO IN (SELECT CD_UNITA_ORGANIZZATIVA
FROM V_UNITA_ORGANIZZATIVA_VALIDA
WHERE ESERCIZIO = Ines AND
FL_CDS = 'N') LOOP
IF CONTI.CD_VOCE_EP = CONTO_AVANZO THEN
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE = 'DETERMINAZIONE_UTILE_PERDITA' AND CONTI.CD_VOCE_EP = CONTO_AVANZO)) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) OR
NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) AND
D.TI_ISTITUZ_COMMERC = DECODE(IS_CO, '*', D.TI_ISTITUZ_COMMERC, IS_CO)
AND EXISTS
(SELECT 1
FROM MOVIMENTO_COGE M2
WHERE M2.CD_CDS = D.CD_CDS AND
M2.ESERCIZIO = D.ESERCIZIO AND
M2.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
M2.PG_SCRITTURA = D.PG_SCRITTURA AND
M2.cd_voce_ep = STATO_PATR);
ELSE
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA')) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
D.TI_ISTITUZ_COMMERC = DECODE(IS_CO, '*', D.TI_ISTITUZ_COMMERC, IS_CO);
END IF;
INSERT INTO CE_SP_PER_CONTO_TOT (ESERCIZIO, TIPO, CD_VOCE_EP, UO, I_C, SALDO_DARE, SALDO_AVERE, SALDO_FINALE, DATA_ESTR)
VALUES (Ines, 'SP', CONTI.CD_VOCE_EP, UO.CD_UNITA_ORGANIZZATIVA, IS_CO, DARE, AVERE, DECODE(SUBSTR(CONTI.CD_VOCE_EP, 1, 1), 'A', DARE-AVERE, AVERE-DARE), INDATA);
End LOOP; -- UO SP
COMMIT;
END LOOP; -- CONTO SP
ELSIF INTIPO = 'CE' THEN
FOR CONTI IN (SELECT ASS.ESERCIZIO, ASS.CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP ASS
WHERE ASS.ESERCIZIO = INES AND
CD_PIANO_GRUPPI = 'CE') LOOP
FOR UO IN (SELECT CD_UNITA_ORGANIZZATIVA
FROM V_UNITA_ORGANIZZATIVA_VALIDA
WHERE ESERCIZIO = Ines AND
FL_CDS = 'N') LOOP
IF CONTI.CD_VOCE_EP = CONTO_AVANZO THEN
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE = 'DETERMINAZIONE_UTILE_PERDITA' AND CONTI.CD_VOCE_EP = CONTO_AVANZO)) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) OR
NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) AND
D.TI_ISTITUZ_COMMERC = DECODE(IS_CO, '*', D.TI_ISTITUZ_COMMERC, IS_CO)
AND EXISTS
(SELECT 1
FROM MOVIMENTO_COGE M2
WHERE M2.CD_CDS = D.CD_CDS AND
M2.ESERCIZIO = D.ESERCIZIO AND
M2.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
M2.PG_SCRITTURA = D.PG_SCRITTURA AND
M2.cd_voce_ep = PROF_PERD);
ELSE
-- PER CONTI NORMALI
SELECT NVL(SUM(DECODE(D.SEZIONE, 'D', D.im_movimento)), 0),
NVL(SUM(DECODE(D.SEZIONE, 'A', D.im_movimento)), 0)
INTO DARE, AVERE
FROM MOVIMENTO_COGE D, SCRITTURA_PARTITA_DOPPIA T
WHERE T.CD_CDS = D.CD_CDS AND
T.ESERCIZIO = D.ESERCIZIO AND
T.CD_UNITA_ORGANIZZATIVA = D.CD_UNITA_ORGANIZZATIVA AND
T.PG_SCRITTURA = D.PG_SCRITTURA AND
T.ATTIVA = 'Y' AND
((T.CD_CAUSALE_COGE IS NULL) OR
(T.CD_CAUSALE_COGE != 'CHIUSURA_CONTO_ECONOMICO' AND
T.CD_CAUSALE_COGE != 'CHIUSURA_STATO_PATRIMONIALE' AND
T.CD_CAUSALE_COGE != 'DETERMINAZIONE_UTILE_PERDITA')) AND
T.ESERCIZIO = INES AND
T.CD_UNITA_ORGANIZZATIVA = UO.CD_UNITA_ORGANIZZATIVA AND
D.CD_VOCE_EP = CONTI.CD_VOCE_EP AND
-- ANNO IN CORSO (SOLA COMPETENZA)
((NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) OR
-- A CAVALLO TRA ANNO PRECEDENTE ED ANNO ATTUALE
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES-1) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES)) OR
-- A CAVALLO TRA ANNO ATTUALE ED ANNO SUCCESSIVO (TANTO CI SONO I RISCONTI)
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1)) OR
-- O COMPLETAMENTE IN ESERCIZIO SUCCESSIVO (TANTO CI SONO I RISCONTI)
(NVL(TO_CHAR(D.DT_DA_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1) AND NVL(TO_CHAR(D.DT_A_COMPETENZA_COGE, 'YYYY'), D.ESERCIZIO) = TO_CHAR(INES+1)) ) AND
D.TI_ISTITUZ_COMMERC = DECODE(IS_CO, '*', D.TI_ISTITUZ_COMMERC, IS_CO);
END IF;
INSERT INTO CE_SP_PER_CONTO_TOT (ESERCIZIO, TIPO, CD_VOCE_EP, UO, I_C, SALDO_DARE, SALDO_AVERE, SALDO_FINALE, DATA_ESTR)
VALUES (Ines, 'CE', CONTI.CD_VOCE_EP, UO.CD_UNITA_ORGANIZZATIVA, IS_CO, DARE, AVERE, DECODE(SUBSTR(CONTI.CD_VOCE_EP, 1, 1), 'C', DARE-AVERE, AVERE-DARE), INDATA);
End LOOP; -- UO CE
COMMIT;
END LOOP; -- CONTO COSTO
END IF;
END IF; -- PARAMETRI PIENI
END;
PROCEDURE Setta_A_X_Nuovi_Cds IS
BEGIN
FOR DOC IN (SELECT *
FROM V_DOC_AMM_COGE_TSTA
WHERE ESERCIZIO = 2006 AND
CD_CDS_ORIGINE IN ('110', '111', '112') AND
TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY') < 2006 AND
(STATO_COGE IN ('N', 'R') OR STATO_COAN IN ('N', 'R'))) LOOP
IF doc.CD_TIPO_DOCUMENTO = 'ANTICIPO' THEN
NULL;
ELSIF doc.CD_TIPO_DOCUMENTO = 'COMPENSO' THEN
UPDATE COMPENSO
SET stato_coge = 'X', STATO_COAN = 'X'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_COMPENSO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'FATTURA_P' THEN
UPDATE FATTURA_PASSIVA
SET stato_coge = 'X', STATO_COAN = 'X'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_FATTURA_PASSIVA = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO IN ('GENERICO_E', 'GENERICO_S', 'GEN_AP_FON', 'GEN_CORA_E', 'GEN_CORA_S', 'GEN_CORV_E',
'GEN_CORV_S', 'GEN_IVA_E', 'TRASF_E', 'TRASF_S') THEN
UPDATE DOCUMENTO_GENERICO
SET stato_coge = 'X', STATO_COAN = 'X'
WHERE CD_TIPO_DOCUMENTO_AMM = DOC.CD_TIPO_DOCUMENTO AND
CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_DOCUMENTO_GENERICO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'MISSIONE' THEN
UPDATE MISSIONE
SET stato_coge = 'X', STATO_COAN = 'X'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_MISSIONE = DOC.PG_NUMERO_DOCUMENTO;
END IF;
--COMMIT;
END LOOP;
END;
PROCEDURE Rettifiche_Ricavi_comp_es_prec (aes IN NUMBER, inCds IN VARCHAR2, i_c IN CHAR) IS
NUMERO NUMBER;
BEGIN
FOR aCDS IN (SELECT CD_UNITA_ORGANIZZATIVA FROM v_unita_organizzativa_valida
WHERE ESERCIZIO = aEs AND
CD_UNITA_ORGANIZZATIVA = NVL(inCds, CD_UNITA_ORGANIZZATIVA) AND
fl_cds = 'Y'
ORDER BY cd_unita_organizzativa) LOOP
------------------ RICAVI 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(SUM(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(SUM(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(SUM(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(SUM(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) SALDO
FROM MOVIMENTO_COGE m, SCRITTURA_PARTITA_DOPPIA t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa AND
t.CD_CDS = m.CD_CDS AND
t.ESERCIZIO = m.ESERCIZIO AND
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA AND
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
M.TI_ISTITUZ_COMMERC = NVL(i_c, M.TI_ISTITUZ_COMMERC) AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'CE') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('EER', 'EPR')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc
HAVING NVL(SUM(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(SUM(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) != 0) LOOP
NUMERO := Cnrctb200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_RICAVI_0905',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2005', 'DD/MM/YYYY'),
'D', 'Rettifica Ricavi da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_RICAVI_0905', TRUNC(SYSDATE), 'RET_RICAVI_0905', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA IL RICAVO CON UNA SCRITTURA IN DARE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2004', 'DD/MM/YYYY'), TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0905', TRUNC(SYSDATE), 'RET_RICAVI_0905', 1, saldi.ti_istituz_commerc);
-- NUOVO RICAVO AVERE MA 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0905', TRUNC(SYSDATE), 'RET_RICAVI_0905', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2004', 'DD/MM/YYYY'), TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0905', TRUNC(SYSDATE), 'RET_RICAVI_0905', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2005', 'DD/MM/YYYY'), TO_DATE('01/01/2005', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0905', TRUNC(SYSDATE), 'RET_RICAVI_0905', 1, saldi.ti_istituz_commerc);
END IF;
END LOOP;
--commit;
END LOOP;
END;
PROCEDURE rettifiche_ricavi (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
-- CD_UNITA_ORGANIZZATIVA = '005' And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ RICAVI 2004 CON COMPETENZA 2003
For SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' And
M.TI_ISTITUZ_COMMERC = 'I' AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'CE') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('EER', 'EPR')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc
Having NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) != 0) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_RICAVI_0705',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica Ricavi da esercizio precedente Terzo LUGLIO 05'||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_RICAVI_0705', TRUNC(SYSDATE), 'RET_RICAVI_0705', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA IL RICAVO CON UNA SCRITTURA IN DARE 2003
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0705', TRUNC(SYSDATE), 'RET_RICAVI_0705', 1, saldi.ti_istituz_commerc);
-- NUOVO RICAVO AVERE MA 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', Trunc(SYSDATE), 'RET_RICAVI_0705', TRUNC(SYSDATE), 'RET_RICAVI_0705', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0705', TRUNC(SYSDATE), 'RET_RICAVI_0705', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_RICAVI_0705', TRUNC(SYSDATE), 'RET_RICAVI_0705', 1, saldi.ti_istituz_commerc);
END IF;
end loop;
--commit;
END LOOP;
END;
PROCEDURE rettifiche_passivita (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ PASSIVITA' 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = '070' AND
-- M.CD_UNITA_ORGANIZZATIVA = '019.001' AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
-- M.TI_ISTITUZ_COMMERC = 'C' AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'SPPAS') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('NUA', 'NUP', 'EEC', 'EPC')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_PASSIVITA',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica PASSIVITA da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_PASSIVITA', TRUNC(SYSDATE), 'RET_PASSIVITA', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA LA PASSIVITA' CON UNA SCRITTURA IN AVERE 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_PASSIVITA', TRUNC(SYSDATE), 'RET_PASSIVITA', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_PASSIVITA', TRUNC(SYSDATE), 'RET_PASSIVITA', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
-- RETTIFICA LA PASSIVITA' CON UNA SCRITTURA IN DARE 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_PASSIVITA', TRUNC(SYSDATE), 'RET_PASSIVITA', 1, saldi.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_PASSIVITA', TRUNC(SYSDATE), 'RET_PASSIVITA', 1, saldi.ti_istituz_commerc);
END IF;
end loop;
commit;
END LOOP;
END;
PROCEDURE rettifiche_iva_debito (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ IVA DEBITO 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa AND
-- M.CD_UNITA_ORGANIZZATIVA = '019.001' AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
-- M.TI_ISTITUZ_COMMERC = 'C' AND
M.CD_VOCE_EP = 'P.05.011' AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, m.ti_istituz_commerc) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_IVA_DEB',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica IVA DEBITO da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_IVA_DEB', TRUNC(SYSDATE), 'RET_IVA_DEB', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- NUOVO DEBITO 2004 IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, 'P.05.011',
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_DEB', TRUNC(SYSDATE), 'RET_IVA_DEB', 1, saldi.ti_istituz_commerc);
-- ATTUALE DEBITO (SPORCO) AVERE 2003 DA CHIUDERE IN DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'P.05.011',
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_IVA_DEB', TRUNC(SYSDATE), 'RET_IVA_DEB', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
-- NUOVO MINOR DEBITO IN DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, 'P.05.011',
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_DEB', TRUNC(SYSDATE), 'RET_IVA_DEB', 1, saldi.ti_istituz_commerc);
-- ATTUALE MINOR DEBITO (SPORCO) DARE 2003 DA CHIUDERE IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'P.05.011',
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_DEB', TRUNC(SYSDATE), 'RET_IVA_DEB', 1, saldi.ti_istituz_commerc);
END IF;
end loop;
commit;
END LOOP;
END;
PROCEDURE rettifiche_iva_credito (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ IVA CREDITO 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = ACDS.CD_UNITA_ORGANIZZATIVA AND
-- M.CD_UNITA_ORGANIZZATIVA = '019.001' AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
-- M.TI_ISTITUZ_COMMERC = 'C' AND
M.CD_VOCE_EP = 'A.06.007' AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, m.ti_istituz_commerc) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_IVA_CRE',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica IVA CREDITO da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_IVA_CRE', TRUNC(SYSDATE), 'RET_IVA_CRE', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- NUOVO CREDITO 2004 IN DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, 'A.06.007',
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_CRE', TRUNC(SYSDATE), 'RET_IVA_CRE', 1, saldi.ti_istituz_commerc);
-- ATTUALE CREDITO DA CHIUDERE IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'A.06.007',
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_IVA_CRE', TRUNC(SYSDATE), 'RET_IVA_CRE', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
-- NUOVO MINOR CREDITO IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, 'A.06.007',
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_CRE', TRUNC(SYSDATE), 'RET_IVA_CRE', 1, saldi.ti_istituz_commerc);
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, 'A.06.007',
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_IVA_CRE', TRUNC(SYSDATE), 'RET_IVA_CRE', 1, saldi.ti_istituz_commerc);
END IF;
end loop;
commit;
END LOOP;
END;
PROCEDURE rettifiche_debiti_fornitori (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ IVA DEBITO 2004 CON COMPETENZA 2003
FOR SALDI In (SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, M.CD_VOCE_EP, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = ACDS.CD_UNITA_ORGANIZZATIVA AND
-- M.CD_UNITA_ORGANIZZATIVA = '019.001' AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
-- M.TI_ISTITUZ_COMMERC = 'C' AND
M.CD_VOCE_EP In ('P.05.005', 'P.05.012') AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_TERZO, M.CD_VOCE_EP, m.ti_istituz_commerc) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE',
'RET_DEBITI', TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica DEBITI da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_DEBITI', TRUNC(SYSDATE), 'RET_DEBITI', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- NUOVO DEBITO 2004 IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_DEBITI', TRUNC(SYSDATE), 'RET_DEBITI', 1, saldi.ti_istituz_commerc);
-- ATTUALE DEBITO (SPORCO) AVERE 2003 DA CHIUDERE IN DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_DEBITI', TRUNC(SYSDATE), 'RET_DEBITI', 1, saldi.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
-- NUOVO MINOR DEBITO IN DARE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_DEBITI', TRUNC(SYSDATE), 'RET_DEBITI', 1, saldi.ti_istituz_commerc);
-- ATTUALE MINOR DEBITO (SPORCO) DARE 2003 DA CHIUDERE IN AVERE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_DEBITI', TRUNC(SYSDATE), 'RET_DEBITI', 1, saldi.ti_istituz_commerc);
END IF;
end loop;
commit;
END LOOP;
END;
PROCEDURE rettifiche_attivita (aes in number) is
NUMERO NUMBER;
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
------------------ COSTI 2004 CON COMPETENZA 2003
FOR SALDI IN
(SELECT M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) DARE,
NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) AVERE,
NVL(sum(DECODE(M.SEZIONE, 'D', m.im_movimento)), 0) - NVL(sum(DECODE(M.SEZIONE, 'A', m.im_movimento)), 0) SALDO
FROM movimento_coge m, scrittura_partita_doppia t
WHERE M.ESERCIZIO = aes AND
M.CD_CDS = acds.cd_unita_organizzativa And
-- M.CD_UNITA_ORGANIZZATIVA = '019.001' AND
t.CD_CDS = m.CD_CDS and
t.ESERCIZIO = m.ESERCIZIO and
t.CD_UNITA_ORGANIZZATIVA = m.CD_UNITA_ORGANIZZATIVA and
t.PG_SCRITTURA = m.PG_SCRITTURA AND
t.attiva = 'Y' AND
-- M.TI_ISTITUZ_COMMERC = 'C' AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM CNR_ASS_CONTO_GRUPPO_EP
WHERE ESERCIZIO = aes AND
CD_PIANO_GRUPPI = 'SPATT') AND
(M.ESERCIZIO, M.CD_VOCE_EP) IN
(SELECT ESERCIZIO, CD_VOCE_EP
FROM VOCE_EP
WHERE ESERCIZIO = aes AND
NATURA_VOCE IN ('NUA', 'NUP', 'EEC', 'EPC')) AND
NVL(TO_CHAR(DT_DA_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO AND
NVL(TO_CHAR(DT_A_COMPETENZA_COGE, 'YYYY'), M.ESERCIZIO) < M.ESERCIZIO
GROUP BY M.CD_CDS, M.CD_UNITA_ORGANIZZATIVA, M.CD_VOCE_EP, M.CD_TERZO, m.ti_istituz_commerc) LOOP
NUMERO := CNRCTB200.getNextProgressivo(aes, SALDI.CD_Cds, SALDI.Cd_Unita_Organizzativa, 'COGE', 'RET_ATTIVITA',
TRUNC(SYSDATE));
INSERT INTO SCRITTURA_PARTITA_DOPPIA
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA , PG_SCRITTURA, ORIGINE_SCRITTURA, CD_TERZO,
IM_SCRITTURA, TI_SCRITTURA, DT_CONTABILIZZAZIONE, STATO, DS_SCRITTURA, ATTIVA,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_CDS_DOCUMENTO, CD_UO_DOCUMENTO)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO,
'CAUSALE', SALDI.CD_TERZO, ABS(SALDI.SALDO), 'P', TO_DATE('31/12/2004', 'DD/MM/YYYY'),
'D', 'Rettifica Costi da esercizio precedente Terzo '||TO_CHAR(SALDI.CD_TERZO),
'Y', TRUNC(SYSDATE), 'RET_ATTIVITA', TRUNC(SYSDATE), 'RET_ATTIVITA', 1, SALDI.CD_CDS, SALDI.CD_UNITA_ORGANIZZATIVA);
IF SALDI.SALDO > 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN DARE 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_ATTIVITA', TRUNC(SYSDATE), 'RET_ATTIVITA', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_ATTIVITA', TRUNC(SYSDATE), 'RET_ATTIVITA', 1, SALDI.ti_istituz_commerc);
ELSIF SALDI.SALDO < 0 THEN
-- RETTIFICA L'ATTIVITA' CON UNA SCRITTURA IN AVERE 2004
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 1, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'A', TO_DATE('01/01/2004', 'DD/MM/YYYY'), TO_DATE('01/01/2004', 'DD/MM/YYYY'),
'D', TRUNC(SYSDATE), 'RET_ATTIVITA', TRUNC(SYSDATE), 'RET_ATTIVITA', 1, SALDI.ti_istituz_commerc);
-- STORNATO CON STATO PATRIMONIALE INIZIALE
INSERT INTO MOVIMENTO_COGE
(CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, PG_SCRITTURA, PG_MOVIMENTO, CD_TERZO, CD_VOCE_EP,
IM_MOVIMENTO, SEZIONE, DT_DA_COMPETENZA_COGE, DT_A_COMPETENZA_COGE, STATO,
DACR, UTCR, DUVA, UTUV, PG_VER_REC, TI_ISTITUZ_COMMERC)
VALUES
(SALDI.CD_CDS, aes, SALDI.CD_UNITA_ORGANIZZATIVA, NUMERO , 2, SALDI.CD_TERZO, SALDI.CD_VOCE_EP,
ABS(SALDI.SALDO), 'D', TO_DATE('31/12/2003', 'DD/MM/YYYY'), TO_DATE('31/12/2003', 'DD/MM/YYYY'), 'D',
TRUNC(SYSDATE), 'RET_ATTIVITA', TRUNC(SYSDATE), 'RET_ATTIVITA', 1, SALDI.ti_istituz_commerc);
END IF;
End Loop;
Commit;
END LOOP;
END;
PROCEDURE Annulla_Chiusura_Gruppo (aes IN NUMBER) IS
pg_exec NUMBER;
job NUMBER:=NULL;
next_date DATE:=SYSDATE;
BEGIN
FOR aCDS IN (SELECT CD_UNITA_ORGANIZZATIVA FROM v_unita_organizzativa_valida
WHERE ESERCIZIO = aEs AND
fl_cds = 'Y' AND
CD_UNITA_ORGANIZZATIVA IN (
'002',
'003',
'010',
'016',
'016',
'020',
'021',
'027',
'033',
'036',
'043',
'044',
'046',
'053',
'055',
'056',
'057',
'057',
'059',
'066',
'066',
'067',
'069',
'069',
'074',
'075',
'079',
'080',
'080',
'082',
'087',
'094',
'096',
'097',
'103',
'103',
'104',
'107')
ORDER BY cd_unita_organizzativa) LOOP
BEGIN
pg_exec:=Ibmutl210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
Cnrctb206.JOB_ANNULLACHIUSURACOGECOAN(job,pg_exec,next_date,aes,ACDS.CD_UNITA_ORGANIZZATIVA);
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
Ibmutl200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,
'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
END;
END LOOP;
END;
PROCEDURE Annulla_Chiusura_Cds (ines in number, ACDS IN VARCHAR2) IS
pg_exec NUMBER;
job NUMBER:=NULL;
next_date DATE:=SYSDATE;
BEGIN
pg_exec:=Ibmutl210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
Cnrctb206.JOB_ANNULLACHIUSURACOGECOAN(job,pg_exec,next_date,ines,ACDS);
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
Ibmutl200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,
'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
END;
PROCEDURE Annulla_All_Chiusure (aes IN NUMBER) IS
pg_exec NUMBER;
job NUMBER:=NULL;
next_date DATE:=SYSDATE;
BEGIN
FOR aCDS IN (SELECT CD_CDS FROM CHIUSURA_COEP
WHERE ESERCIZIO = aEs AND
STATO != 'A'
ORDER BY cd_CDS) LOOP
BEGIN
pg_exec:=Ibmutl210.logStartExecution(job,'$$$$$TESTECONOM$$$$$');
Cnrctb206.JOB_ANNULLACHIUSURACOGECOAN(job,pg_exec,next_date,aEs,ACDS.CD_CDS);
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
Ibmutl200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,
'$$$$$DEFAULT_HANDLER_ERRORI$$$$$');
END;
END LOOP;
END;
PROCEDURE AGGIORNA_STATO_COGE_DOC_2006 IS
BEGIN
FOR DOC IN (Select t.*
From V_DOC_AMM_COGE_TSTA t
Where t.ESERCIZIO = 2006 And
t.STATO_COGE = 'C') LOOP
IF doc.CD_TIPO_DOCUMENTO = 'ANTICIPO' THEN
NULL;
ELSIF doc.CD_TIPO_DOCUMENTO = 'COMPENSO' THEN
UPDATE COMPENSO
SET stato_coge = 'N', STATO_COAN = 'N'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_COMPENSO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'FATTURA_P' THEN
UPDATE FATTURA_PASSIVA
SET stato_coge = 'N', STATO_COAN = 'N'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_FATTURA_PASSIVA = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'FATTURA_A' THEN
UPDATE FATTURA_ATTIVA
SET stato_coge = 'N', STATO_COAN = 'N'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_FATTURA_ATTIVA = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO IN ('GENERICO_E', 'GENERICO_S', 'GEN_AP_FON', 'GEN_CORA_E', 'GEN_CORA_S', 'GEN_CORV_E',
'GEN_CORV_S', 'GEN_IVA_E', 'TRASF_E', 'TRASF_S') THEN
UPDATE DOCUMENTO_GENERICO
SET stato_coge = 'N', STATO_COAN = 'N'
WHERE CD_TIPO_DOCUMENTO_AMM = DOC.CD_TIPO_DOCUMENTO AND
CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_DOCUMENTO_GENERICO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'MISSIONE' THEN
UPDATE MISSIONE
SET stato_coge = 'N', STATO_COAN = 'N'
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_MISSIONE = DOC.PG_NUMERO_DOCUMENTO;
END IF;
--COMMIT;
END LOOP;
END;
PROCEDURE AGGIORNA_SALDI_GRUPPO IS
BEGIN
FOR SALDI IN (SELECT CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP,
CD_TERZO, TI_ISTITUZ_COMMERC,
SUM(DECODE(SEZIONE, 'D', IM_MOVIMENTO, 0)) DARE,
SUM(DECODE(SEZIONE, 'A', IM_MOVIMENTO, 0)) AVERE
FROM MOVIMENTO_COGE
WHERE ESERCIZIO = 2004 AND
CD_CDS IN (
'000',
'002',
'003',
'007',
'014',
'016',
'018',
'019',
'020',
'022',
'023',
'024',
'026',
'028',
'029',
'032',
'036',
'041',
'042',
'043',
'044',
'045',
'046',
'048',
'051',
'052',
'053',
'055',
'056',
'057',
'059',
'063',
'064',
'066',
'067',
'068',
'071',
'073',
'074',
'075',
'077',
'078',
'080',
'091',
'094',
'096',
'097',
'099',
'100',
'101',
'102',
'103',
'104',
'106',
'107',
'317' )
GROUP BY CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, CD_TERZO, TI_ISTITUZ_COMMERC) LOOP
INSERT INTO SALDO_COGE VALUES
(SALDI.CD_CDS, SALDI.ESERCIZIO, SALDI.CD_UNITA_ORGANIZZATIVA, SALDI.CD_VOCE_EP,
SALDI.CD_TERZO, SALDI.DARE, SALDI.AVERE, TRUNC(SYSDATE), 'CED_SF',
TRUNC(SYSDATE), 'CED_SF', 1, SALDI.TI_ISTITUZ_COMMERC);
END LOOP;
COMMIT;
END;
PROCEDURE Aggiorna_Saldi (AES IN NUMBER, IN_CDS IN VARCHAR2) IS
BEGIN
FOR SALDI IN (SELECT CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP,
CD_TERZO, TI_ISTITUZ_COMMERC,
SUM(DECODE(SEZIONE, 'D', IM_MOVIMENTO, 0)) DARE,
SUM(DECODE(SEZIONE, 'A', IM_MOVIMENTO, 0)) AVERE
FROM MOVIMENTO_COGE
WHERE ESERCIZIO = AES AND
CD_CDS = IN_CDS
GROUP BY CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, CD_TERZO, TI_ISTITUZ_COMMERC) LOOP
INSERT INTO SALDO_COGE VALUES
(SALDI.CD_CDS, SALDI.ESERCIZIO, SALDI.CD_UNITA_ORGANIZZATIVA, SALDI.CD_VOCE_EP,
SALDI.CD_TERZO, SALDI.DARE, SALDI.AVERE, TRUNC(SYSDATE), 'CED_SF',
TRUNC(SYSDATE), 'CED_SF', 1, SALDI.TI_ISTITUZ_COMMERC);
END LOOP;
--COMMIT;
END;
PROCEDURE AGGIORNA_COMPETENZA_DOC_2006 IS
BEGIN
FOR DOC IN (Select t.*
From V_DOC_AMM_COGE_TSTA t, V_DOC_AMM_COGE_riga r
Where t.ESERCIZIO = 2006 And
t.STATO_COGE = 'C' And
r.CD_TIPO_DOCUMENTO = t.CD_TIPO_DOCUMENTO and
r.CD_CDS = t.CD_CDS and
r.CD_UNITA_ORGANIZZATIVA = t.CD_UNITA_ORGANIZZATIVA and
r.ESERCIZIO = t.ESERCIZIO and
r.PG_NUMERO_DOCUMENTO = t.PG_NUMERO_DOCUMENTO And
(r.ESERCIZIO_EV, r.TI_APPARTENENZA_EV, r.TI_GESTIONE_EV, r.CD_ELEMENTO_VOCE_EV) In
(Select ESERCIZIO, TI_APPARTENENZA, TI_GESTIONE, CD_ELEMENTO_VOCE
From CATEGORIA_GRUPPO_VOCE)) LOOP
IF doc.CD_TIPO_DOCUMENTO = 'ANTICIPO' THEN
UPDATE ANTICIPO
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_ANTICIPO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'COMPENSO' THEN
UPDATE COMPENSO
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_COMPENSO = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO = 'FATTURA_P' THEN
UPDATE FATTURA_PASSIVA
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_FATTURA_PASSIVA = DOC.PG_NUMERO_DOCUMENTO;
UPDATE FATTURA_PASSIVA_RIGA
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_FATTURA_PASSIVA = DOC.PG_NUMERO_DOCUMENTO;
ELSIF doc.CD_TIPO_DOCUMENTO IN ('GENERICO_E', 'GENERICO_S', 'GEN_AP_FON', 'GEN_CORA_E', 'GEN_CORA_S', 'GEN_CORV_E',
'GEN_CORV_S', 'GEN_IVA_E', 'TRASF_E', 'TRASF_S') THEN
UPDATE DOCUMENTO_GENERICO
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_TIPO_DOCUMENTO_AMM = DOC.CD_TIPO_DOCUMENTO AND
CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_DOCUMENTO_GENERICO = DOC.PG_NUMERO_DOCUMENTO;
UPDATE DOCUMENTO_GENERICO_RIGA
SET DT_DA_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE,
DT_A_COMPETENZA_COGE = DOC.DT_REGISTRAZIONE
WHERE CD_TIPO_DOCUMENTO_AMM = DOC.CD_TIPO_DOCUMENTO AND
CD_CDS = DOC.CD_CDS AND
CD_UNITA_ORGANIZZATIVA = DOC.CD_UNITA_ORGANIZZATIVA AND
ESERCIZIO = DOC.ESERCIZIO AND
PG_DOCUMENTO_GENERICO = DOC.PG_NUMERO_DOCUMENTO;
END IF;
--COMMIT;
END LOOP;
END;
PROCEDURE AGGIORNA_ALL_SALDI (AES IN NUMBER) IS
BEGIN
For aCDS in (select CD_UNITA_ORGANIZZATIVA from v_unita_organizzativa_valida
Where esercizio = aEs And
fl_cds = 'Y'
Order by cd_unita_organizzativa) loop
FOR SALDI IN (SELECT CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP,
CD_TERZO, TI_ISTITUZ_COMMERC,
SUM(DECODE(SEZIONE, 'D', IM_MOVIMENTO, 0)) DARE,
SUM(DECODE(SEZIONE, 'A', IM_MOVIMENTO, 0)) AVERE
FROM MOVIMENTO_COGE
WHERE ESERCIZIO = AES AND
CD_CDS = ACDS.CD_UNITA_ORGANIZZATIVA
GROUP BY CD_CDS, ESERCIZIO, CD_UNITA_ORGANIZZATIVA, CD_VOCE_EP, CD_TERZO, TI_ISTITUZ_COMMERC) LOOP
INSERT INTO SALDO_COGE VALUES
(SALDI.CD_CDS, SALDI.ESERCIZIO, SALDI.CD_UNITA_ORGANIZZATIVA, SALDI.CD_VOCE_EP,
SALDI.CD_TERZO, SALDI.DARE, SALDI.AVERE, TRUNC(SYSDATE), 'CED_SF',
TRUNC(SYSDATE), 'CED_SF', 1, SALDI.TI_ISTITUZ_COMMERC);
END LOOP;
COMMIT;
End Loop;
END;
end;
© 2015 - 2024 Weber Informatics LLC | Privacy Policy