BLCC#70821 Splitsen Soft Services Cleaning contracten per 01-03-2022

svn path=/Customer/; revision=54913
This commit is contained in:
Maarten van der Heide
2022-02-10 07:44:20 +00:00
parent 076c6f92e5
commit fb82374ac8

89
onces/BLCC/BLCC#70821.sql Normal file
View File

@@ -0,0 +1,89 @@
--
-- $Id$
--
-- Customer specific once-script BLCC#70821.sql.
DEFINE thisfile = 'BLCC#70821.sql'
DEFINE dbuser = '^BLCC'
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 ------
-- BLCC#70821: Splits de 2501=Soft Services Cleaning contracten per 28-02-2022!
SET SERVEROUTPUT ON size 1000000;
DECLARE
CURSOR ccnt (p_splitsindexdatum DATE)
IS
SELECT '[' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || '] '
aanduiding,
c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_tot einddatum
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (2501) -- Soft Services Cleaning
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_looptijd_tot > p_splitsindexdatum
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
ORDER BY TO_NUMBER (c.cnt_contract_nummer_intern);
c_splitsindexdatum DATE := TO_DATE ('01032022', 'ddmmyyyy');
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
BEGIN
v_count := 0;
FOR rec IN ccnt (c_splitsindexdatum)
LOOP
BEGIN
v_errormsg := 'Fout splitsen contract.';
cnt.splitscontract (rec.cnt_contract_key, c_splitsindexdatum, NULL, NULL);
COMMIT;
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
DBMS_OUTPUT.PUT_LINE ('E: ' || rec.aanduiding || v_errormsg);
COMMIT;
END;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count) || ' contracten gesplitst');
COMMIT;
END;
/
------ 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