VGLD#85984: Automatische afsluitdatum instellen in contracten mogelijk?

svn path=/Database/trunk/; revision=67607
This commit is contained in:
Maykel Geerdink
2025-01-15 14:39:43 +00:00
parent ef6f395e12
commit 818faabb2e
4 changed files with 49 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ CREATE OR REPLACE PACKAGE cnt AS
FUNCTION cnt_getRappeldatum (pcnt_contract_key IN NUMBER) RETURN DATE;
FUNCTION cnt_contract_status (van IN DATE, rappel IN DATE, opzeg IN DATE, tot IN DATE) RETURN NUMBER;
PROCEDURE autoverleng_contract;
PROCEDURE autoinactiveer_contract;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER);
PROCEDURE generatefactuurschema (pcontractkey IN NUMBER,ptermijnbedrag IN NUMBER DEFAULT NULL);
@@ -277,6 +278,41 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END LOOP;
END;
PROCEDURE autoinactiveer_contract
IS
l_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
tracking VARCHAR2(4000);
CURSOR c_inactiveer IS
SELECT c.cnt_contract_key
FROM cnt_contract c
WHERE c.cnt_contract_inactiveren = 1
AND TRUNC(c.cnt_contract_looptijd_tot) < TRUNC(SYSDATE);
BEGIN
BEGIN
SELECT prs_perslid_key
INTO l_prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = '_SYSTEEM' AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user', 1);
END;
FOR cnt_inactiveer IN c_inactiveer
LOOP
cnt.setcontractstatus(cnt_inactiveer.cnt_contract_key, 1, l_prs_perslid_key); -- Zorgt ook voor tracking en daarmee notificatie.
UPDATE cnt_contract
SET cnt_contract_inactiveren = 0
WHERE cnt_contract_key = cnt_inactiveer.cnt_contract_key;
tracking := lcl.l('lcl_cnt_is_cntupd') || CHR(10) || lcl.l('lcl_cnt_auto_close') || ': ' || lcl.l('lcl_Yes') || lcl.l('lcl_trackto') || lcl.l('lcl_No');
fac.trackaction('CNTUPD', cnt_inactiveer.cnt_contract_key, NULL, NULL, tracking);
END LOOP;
END;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER)
IS
begin1 DATE;

View File

@@ -116,6 +116,10 @@ CREATE_TABLE(cnt_contract,0)
, cnt_contract_looptijd_tot
DATE
CONSTRAINT cnt_c_cnt_contract_tot CHECK(cnt_contract_looptijd_tot IS NOT NULL)
, cnt_contract_inactiveren /* Automatisch sluiten na einddatum (0=nee, 1=ja) */
NUMBER(1)
DEFAULT 0
CONSTRAINT cnt_r_cnt_contract_inactiveren CHECK(cnt_contract_inactiveren IN (0,1))
, cnt_contract_kosten
NUMBER(11,2)
, cnt_contract_termijnkosten

View File

@@ -3324,6 +3324,7 @@ FAC_LCL('lcl_cnt_prolongation_auto', 'Automatisch', 'Automatic')
FAC_LCL('lcl_cnt_prolongation_period', 'Verlengtermijn', 'Prolongation period')
FAC_LCL('lcl_cnt_prolongation_tracking', 'Automatische verlenging met {0} tot {1}', 'Automatic prolongation with {0} to {1}.')
FAC_LCL('lcl_cnt_date_end', 'Einddatum', 'End Date')
FAC_LCL('lcl_cnt_auto_close', 'Automatisch sluiten na einddatum', 'Automatically close after end date')
FAC_LCL('lcl_cnt_effecter', 'Contractpartij', 'Contracting party')
FAC_LCL('lcl_cnt_company', 'Bedrijf', 'Company')
FAC_LCL('lcl_cnt_name', 'Naam', 'Name')

View File

@@ -225,6 +225,13 @@ DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_C' , 'Nieuwe max.waarde van dit kenmerks
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_P' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New max.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_LENGTE', 'De lengte moet tussen 1 en 50 liggen.','Length must be between 1 and 50.');
/////////////////////////////////////////////////////////////////////////////////////////// VGLD#85984
ALTER TABLE cnt_contract
ADD cnt_contract_inactiveren /* Automatisch sluiten na einddatum (0=nee, 1=ja) */
NUMBER(1)
DEFAULT 0
CONSTRAINT cnt_r_cnt_contract_inactiveren CHECK(cnt_contract_inactiveren IN (0,1));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')