From cac9273fe1fd480941843bd2f9a5df2781e07c29 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Thu, 27 Mar 2025 11:55:12 +0000 Subject: [PATCH] BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen svn path=/Database/trunk/; revision=68563 --- CNT/CNT_IND.SRC | 2 ++ CNT/CNT_PAC.SRC | 20 ++++++++++++++++++++ CNT/CNT_TAB.SRC | 12 ++++++++++++ _UP/DB50to51.src | 14 ++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/CNT/CNT_IND.SRC b/CNT/CNT_IND.SRC index 52785bd4..f4dc73b5 100644 --- a/CNT/CNT_IND.SRC +++ b/CNT/CNT_IND.SRC @@ -27,6 +27,8 @@ CREATE UNIQUE INDEX cnt_i_cnt_factuurschema1 ON cnt_factuurschema(cnt_contract_k CREATE INDEX cnt_i_cnt_srtkenmerk1 ON cnt_srtkenmerk(cnt_srtkenmerk_code); CREATE INDEX cnt_i_cnt_kenmerk1 ON cnt_kenmerk(cnt_kenmerk_code); +CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key); + REGISTERONCE('$Id$') #endif // CNT diff --git a/CNT/CNT_PAC.SRC b/CNT/CNT_PAC.SRC index c62f0d49..fc5a089a 100644 --- a/CNT/CNT_PAC.SRC +++ b/CNT/CNT_PAC.SRC @@ -272,6 +272,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS ); tracking VARCHAR2(4000); + next_termijn cnt_termijn.cnt_termijn_key%TYPE; + next_einddatum cnt_contract.cnt_contract_looptijd_tot%TYPE; BEGIN FOR cnt_verloopt IN c_verleng LOOP @@ -284,6 +286,24 @@ CREATE OR REPLACE PACKAGE BODY cnt AS , '{1}', TO_CHAR(cnt_verloopt.dtnieuw,'dd-mm-yyyy') ); fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking); + -- Heeft dit automatisch verlengbaar contract een verlengschema? + -- Dan volgende verlengtermijn uit verlengschema naar het veld verlengtermijn verplaatsen. + BEGIN + SELECT cnt_verlengschema_verlengtermijn + , cnt_verlengschema_einddatum + INTO next_termijn + , next_einddatum + FROM cnt_verlengschema + WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key + AND cnt_verlengschema_einddatum = cnt_verloopt.dtnieuw; + -- + UPDATE cnt_contract + SET cnt_contract_verleng_termijn = next_termijn + , cnt_contract_looptijd_tot = next_einddatum + WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key; + EXCEPTION + WHEN NO_DATA_FOUND THEN NULL; + END; END LOOP; END; diff --git a/CNT/CNT_TAB.SRC b/CNT/CNT_TAB.SRC index 3dc67b36..f523209a 100644 --- a/CNT/CNT_TAB.SRC +++ b/CNT/CNT_TAB.SRC @@ -455,6 +455,18 @@ CREATE_TABLE(cnt_factuurschema , 0) DEFAULT SYSDATE ); +CREATE TABLE(cnt_verlengschema, 0) +( + cnt_contract_key + NUMBER(10) + CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key), + cnt_verlengschema_einddatum + DATE, + cnt_verlengschema_verlengtermijn + NUMBER(10) + CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key) +); + REGISTERONCE('$Id$') diff --git a/_UP/DB50to51.src b/_UP/DB50to51.src index 31f027be..6185f1bb 100644 --- a/_UP/DB50to51.src +++ b/_UP/DB50to51.src @@ -32,6 +32,20 @@ ALTER TABLE fac_imp_cnt , ruimtecode VARCHAR2 (20) ); +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000 +CREATE TABLE cnt_verlengschema +( + cnt_contract_key + NUMBER(10) + CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key), + cnt_verlengschema_einddatum + DATE, + cnt_verlengschema_verlengtermijn + NUMBER(10) + CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key) +); +CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key); + /////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000 REGISTERONCE('$Id$')