483 lines
16 KiB
SQL
483 lines
16 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Correctie op huurlijst: het huurarchief is wel juist aangemaakt maar er is geen exportbestand aangemaakt
|
||
--
|
||
DEFINE thisfile = 'NYBU#60032.SQL'
|
||
DEFINE dbuser = '^NYBU'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
PROMPT &fcltcusterr
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
-- alle foutief aangemaakte huurregels verwijderen
|
||
DELETE nybu_huur_archief a
|
||
WHERE a.datum_export >= TO_DATE ('31-10-2019', 'dd-mm-yyyy')
|
||
AND PERIODE <> 201911;
|
||
|
||
|
||
-- omdat alle vinkjes al verwijderd zijn door een foutieve definitieve export kunnen we niet alles opnieuw doen
|
||
-- de data in het archief is goed dus alleen die opnieuw klaarzetten voor een export
|
||
CREATE OR REPLACE PROCEDURE nybu_select_correctie_huur (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- Individuele facturen voor debiteuren; ook voor sommatieregel met totaalbedrag
|
||
-- Bedragen zijn incl BTW
|
||
CURSOR c_deb
|
||
IS
|
||
SELECT deb_nr,
|
||
achternaam,
|
||
SUM (bedrag) bedrag,
|
||
betreft,
|
||
periode
|
||
FROM nybu_huur_archief
|
||
WHERE naar_coda IS NULL
|
||
AND deb_nr NOT LIKE 'P%'
|
||
AND deb_nr != 'salaris'
|
||
GROUP BY deb_nr,
|
||
achternaam,
|
||
betreft,
|
||
periode
|
||
ORDER BY deb_nr;
|
||
|
||
-- Individuele facturen per contract voor fin_verkoopfactuur
|
||
-- Bedragen zijn incl BTW
|
||
CURSOR c_deb_cnt
|
||
IS
|
||
SELECT deb_nr,
|
||
achternaam,
|
||
SUM (bedrag) bedrag,
|
||
betreft,
|
||
cnt_contract_nr,
|
||
periode
|
||
FROM nybu_huur_archief
|
||
WHERE naar_coda IS NULL
|
||
AND deb_nr NOT LIKE 'P%'
|
||
AND deb_nr != 'salaris'
|
||
GROUP BY deb_nr,
|
||
achternaam,
|
||
betreft,
|
||
cnt_contract_nr,
|
||
periode
|
||
ORDER BY deb_nr;
|
||
|
||
-- Factuurregels voor deze factuur
|
||
CURSOR regels (in_deb_nr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM nybu_huur_archief
|
||
WHERE deb_nr = in_deb_nr AND naar_coda IS NULL
|
||
ORDER BY datum_export, omschrijving, bedrag;
|
||
|
||
-- Individuele facturen voor interne kostenplaatsen; ook voor sommatieregel met totaalbedrag
|
||
-- Bedragen zijn INCLUSIEF BTW (NYBU#31139)
|
||
CURSOR c_kpn
|
||
IS
|
||
SELECT deb_nr,
|
||
achternaam,
|
||
COALESCE (TRIM (SUBSTR (kg.prs_kostenplaatsgrp_oms, 1, 7)),
|
||
'ONB')
|
||
kpn_grp,
|
||
kpn_code_afd,
|
||
kpn_code_proj,
|
||
SUM (bedrag) bedrag,
|
||
betreft
|
||
FROM nybu_huur_archief ha,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostenplaatsgrp kg
|
||
WHERE naar_coda IS NULL
|
||
AND deb_nr LIKE 'P%'
|
||
AND ak.prs_kostenplaats_nr = deb_nr
|
||
AND kg.prs_kostenplaatsgrp_key(+) = ak.prs_kostenplaatsgrp_key
|
||
GROUP BY deb_nr,
|
||
achternaam,
|
||
prs_kostenplaatsgrp_oms,
|
||
kpn_code_afd,
|
||
kpn_code_proj,
|
||
betreft
|
||
ORDER BY deb_nr, betreft;
|
||
|
||
CURSOR c_salaris
|
||
IS
|
||
SELECT COALESCE (prs_perslid_nr, prs_perslid_email) personeelsnr,
|
||
achternaam,
|
||
kpn_code_afd,
|
||
kpn_code_proj,
|
||
bedrag,
|
||
btw_perc,
|
||
omschrijving
|
||
FROM nybu_huur_archief b, prs_perslid p
|
||
WHERE naar_coda IS NULL
|
||
AND deb_nr = 'salaris'
|
||
AND p.prs_perslid_key = b.prs_perslid_key
|
||
ORDER BY achternaam, omschrijving;
|
||
|
||
v_teller NUMBER;
|
||
v_rap_count NUMBER;
|
||
v_run DATE;
|
||
v_lastPeriode VARCHAR (6);
|
||
v_periode VARCHAR (6);
|
||
v_periodeNaam VARCHAR2 (20);
|
||
v_last_period VARCHAR (6);
|
||
BEGIN
|
||
v_teller := 0;
|
||
v_rap_count := 0;
|
||
|
||
v_aanduiding := 'Init';
|
||
v_errormsg := 'Periode bepalen';
|
||
|
||
|
||
DELETE imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = p_applname;
|
||
|
||
-- Genereer sommatie- en specificatieregels voor debiteuren tbv CODA export
|
||
FOR rec IN c_deb
|
||
LOOP
|
||
v_aanduiding :=
|
||
v_teller || ': ' || rec.deb_nr || '/' || rec.achternaam;
|
||
v_errormsg := 'Sommatieregel aanmaken';
|
||
v_teller := v_teller + 1;
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
-- Sommatieregel
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
v_teller
|
||
|| ';'
|
||
|| '10;'
|
||
|| '13000;'
|
||
|| REPLACE (rec.deb_nr, 'CON', 'DC')
|
||
|| ';'
|
||
|| ';'
|
||
|| TRIM(TO_CHAR (ABS (rec.bedrag),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.'))
|
||
|| ';'
|
||
|| CASE
|
||
WHEN rec.bedrag < 0 THEN 'C;'
|
||
WHEN rec.bedrag >= 0 THEN 'D;'
|
||
END
|
||
|| ';'
|
||
|| rec.betreft
|
||
|| ' '
|
||
|| v_periodeNaam
|
||
|| ' '
|
||
|| rec.achternaam
|
||
|| ';'
|
||
|| 'Summary;'
|
||
|| 'K91200;'
|
||
|| 'P991210',
|
||
0);
|
||
|
||
|
||
-- Specificatieregels
|
||
FOR reg IN regels (rec.deb_nr)
|
||
LOOP
|
||
v_errormsg := 'Specificatieregel aanmaken';
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
v_teller
|
||
|| ';'
|
||
|| '12;'
|
||
|| reg.prs_kostensoort_refcode
|
||
|| ';'
|
||
|| reg.kpn_code_afd
|
||
|| ';'
|
||
|| reg.kpn_code_proj
|
||
|| ';'
|
||
|| TRIM(TO_CHAR (ABS (reg.bedrag),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.'))
|
||
|| ';'
|
||
|| CASE
|
||
WHEN reg.bedrag < 0 THEN 'D;'
|
||
WHEN reg.bedrag >= 0 THEN 'C;'
|
||
END
|
||
|| reg.btw_code
|
||
|| ';'
|
||
|| reg.omschrijving
|
||
|| ' #'
|
||
|| reg.kamer
|
||
|| ';'
|
||
|| 'Analysis;'
|
||
|| ';'
|
||
|| '',
|
||
0);
|
||
|
||
END LOOP;
|
||
END LOOP;
|
||
|
||
-- Scheidingsregel
|
||
v_errormsg := 'Scheidingsregel aanmaken';
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
'INTERNE KOSTENPLAATSEN;;;;;;;;;;;',
|
||
0);
|
||
|
||
v_teller := 0;
|
||
|
||
-- Genereer sommatie- en specificatieregels voor interne kostenplaatsen
|
||
FOR rec IN c_kpn
|
||
LOOP
|
||
v_aanduiding :=
|
||
v_teller || ': ' || rec.deb_nr || '/' || rec.achternaam;
|
||
v_errormsg := 'Sommatieregel KPN aanmaken';
|
||
v_teller := v_teller + 1;
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
-- Sommatieregel
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
v_teller
|
||
|| ';'
|
||
|| ';'
|
||
|| '56000;'
|
||
|| rec.kpn_grp
|
||
|| ';'
|
||
|| rec.deb_nr
|
||
|| ';'
|
||
|| TRIM(TO_CHAR (ABS (rec.bedrag),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.'))
|
||
|| ';'
|
||
|| CASE
|
||
WHEN rec.bedrag < 0 THEN 'C;'
|
||
WHEN rec.bedrag >= 0 THEN 'D;'
|
||
END
|
||
|| ';'
|
||
|| rec.betreft
|
||
|| ' '
|
||
|| v_periodeNaam
|
||
|| ' '
|
||
|| rec.achternaam
|
||
|| ';'
|
||
|| ';'
|
||
|| ';'
|
||
|| '',
|
||
0);
|
||
|
||
-- Tegenboeking
|
||
v_errormsg := 'Tegenboeking aanmaken';
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
v_teller
|
||
|| ';'
|
||
|| ';'
|
||
|| '76000;'
|
||
|| rec.kpn_code_afd
|
||
|| ';'
|
||
|| rec.kpn_code_proj
|
||
|| ';'
|
||
|| TRIM(TO_CHAR (ABS (rec.bedrag),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.'))
|
||
|| ';'
|
||
|| CASE
|
||
WHEN rec.bedrag < 0 THEN 'D;'
|
||
WHEN rec.bedrag >= 0 THEN 'C;'
|
||
END
|
||
|| ';'
|
||
|| rec.betreft
|
||
|| ' '
|
||
|| v_periodeNaam
|
||
|| ' '
|
||
|| rec.achternaam
|
||
|| ';'
|
||
|| ';'
|
||
|| ';'
|
||
|| '',
|
||
0);
|
||
END LOOP;
|
||
|
||
-- Scheidingsregel
|
||
v_errormsg := 'Scheidingsregel aanmaken';
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
'SALARISADMINISTRATIE;;;;;;;;;;;',
|
||
0);
|
||
|
||
v_teller := 0;
|
||
|
||
-- Genereer specificatieregels voor salarisadministratie
|
||
FOR rec IN c_salaris
|
||
LOOP
|
||
v_aanduiding :=
|
||
v_teller || ': ' || rec.personeelsnr || '/' || rec.achternaam;
|
||
v_errormsg := 'Sommatieregel salarisadministratie aanmaken';
|
||
v_teller := v_teller + 1;
|
||
v_rap_count := v_rap_count + 1;
|
||
|
||
-- Sommatieregel
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES (p_applname,
|
||
v_rap_count,
|
||
v_teller
|
||
|| ';'
|
||
|| rec.personeelsnr
|
||
|| ';'
|
||
|| rec.achternaam
|
||
|| ';'
|
||
|| rec.kpn_code_afd
|
||
|| ';'
|
||
|| rec.kpn_code_proj
|
||
|| ';'
|
||
|| TRIM(TO_CHAR (ABS (rec.bedrag),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.'))
|
||
|| ';'
|
||
|| rec.btw_perc
|
||
|| ';'
|
||
|| rec.omschrijving
|
||
|| ';'
|
||
|| ';'
|
||
|| ';'
|
||
|| ';'
|
||
|| '',
|
||
0);
|
||
END LOOP;
|
||
|
||
|
||
COMMIT;
|
||
|
||
END nybu_select_correctie_huur;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW NYBU_V_EXPORT_CORRECTIE_HUUR
|
||
(
|
||
RESULT,
|
||
RESULT_ORDER
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel result, fac_rapport_volgnr result_order
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'HUUR_CODA'
|
||
ORDER BY fac_rapport_volgnr;
|
||
|
||
CREATE OR REPLACE PROCEDURE nybu_export_correctie_huur (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_run DATE;
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_run := TO_DATE (p_applrun, 'YYYY-MM-DD HH24:MI:SS');
|
||
|
||
v_aanduiding := 'Init';
|
||
v_errormsg := 'Init';
|
||
|
||
-- Alleen als er iets ge<67>xporteerd is!
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_applname;
|
||
|
||
IF (v_count > 0)
|
||
THEN
|
||
v_errormsg := 'Exportdatum zetten';
|
||
|
||
-- Exportdatum van alle regels van de laatste export zetten
|
||
UPDATE nybu_huur_archief
|
||
SET naar_coda = v_run
|
||
WHERE naar_coda IS NULL;
|
||
END IF;
|
||
|
||
fac.writelog (p_applname,
|
||
'S',
|
||
'Factuurregels ge<67>xporteerd',
|
||
v_run);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Onbekende fout!');
|
||
COMMIT;
|
||
END nybu_export_correctie_huur;
|
||
/
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||
|