AAXX#91083 Contract notificatie houdt geen rekening met fiatteren

svn path=/Database/trunk/; revision=70621
This commit is contained in:
Jos Groot Lipman
2025-10-15 13:14:55 +00:00
parent 8f7d4260e7
commit 517d50a462
2 changed files with 67 additions and 65 deletions

View File

@@ -39,7 +39,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AS AS
currentstatus cnt_contract.cnt_contract_status%TYPE; currentstatus cnt_contract.cnt_contract_status%TYPE;
newstatus cnt_contract.cnt_contract_status%TYPE; newstatus cnt_contract.cnt_contract_status%TYPE;
eventcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE; eventcode VARCHAR(7); -- fac_srtnotificatie.fac_srtnotificatie_code%TYPE is te klein voor '@CNTNEW'
BEGIN BEGIN
SELECT cnt_contract_status SELECT cnt_contract_status
INTO currentstatus INTO currentstatus
@@ -52,11 +52,12 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL IF currentstatus IS NULL
THEN THEN
newstatus := pstatus; newstatus := pstatus;
eventcode := 'CNTNEW'; eventcode := 'CNTNEW'; -- direct ook notificeren
ELSIF currentstatus = 2 OR currentstatus = 3 -- Het kan ook zijn dat er geen fiattering nodig is. ELSIF currentstatus = 2 OR currentstatus = 3 -- Het kan ook zijn dat er geen fiattering nodig is.
THEN THEN
newstatus := pstatus; newstatus := pstatus;
eventcode := 'CNTFIT'; eventcode := 'CNTFIT';
fac.notifytrackingbedrijven('CNTNEW', pcontractkey); -- Nu alsnog notificeren, we zijn helemaal klaar met fiatteren
END IF; END IF;
WHEN 1 -- Gesloten WHEN 1 -- Gesloten
THEN THEN
@@ -70,7 +71,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL IF currentstatus IS NULL
THEN THEN
newstatus := pstatus; newstatus := pstatus;
eventcode := 'CNTNEW'; eventcode := '@CNTNEW'; -- nog niet notificeren
ELSIF currentstatus = 3 ELSIF currentstatus = 3
THEN THEN
newstatus := pstatus; newstatus := pstatus;

View File

@@ -2273,7 +2273,7 @@ BEGIN
THEN THEN
BEGIN BEGIN
v_errormsg := 'Fout bij wegschrijven importregel'; v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO fac_imp_onrgoed1 INSERT INTO fac_imp_onrgoed1
( alg_regio_omschrijving, ( alg_regio_omschrijving,
alg_district_omschrijving, alg_district_omschrijving,
alg_locatie_code, alg_locatie_code,
@@ -2681,7 +2681,7 @@ BEGIN
IF (v_count = 0) IF (v_count = 0)
THEN THEN
INSERT INTO alg_regio INSERT INTO alg_regio
( alg_regio_omschrijving) ( alg_regio_omschrijving)
VALUES ( recRegio.alg_regio_omschrijving); VALUES ( recRegio.alg_regio_omschrijving);
@@ -2732,11 +2732,11 @@ BEGIN
IF (v_count = 0) IF (v_count = 0)
THEN THEN
INSERT INTO alg_district INSERT INTO alg_district
( alg_regio_key, ( alg_regio_key,
alg_district_omschrijving alg_district_omschrijving
) )
VALUES ( v_regio_key, VALUES ( v_regio_key,
recDistrict.alg_district_omschrijving recDistrict.alg_district_omschrijving
); );
@@ -2796,7 +2796,7 @@ BEGIN
IF (v_count = 0) IF (v_count = 0)
THEN THEN
INSERT INTO alg_locatie INSERT INTO alg_locatie
( alg_district_key, ( alg_district_key,
alg_locatie_code, alg_locatie_code,
alg_locatie_omschrijving, alg_locatie_omschrijving,
@@ -2971,7 +2971,7 @@ BEGIN
IF (v_count = 0) IF (v_count = 0)
THEN THEN
INSERT INTO alg_gebouw INSERT INTO alg_gebouw
( alg_locatie_key, ( alg_locatie_key,
alg_srtgebouw_key, alg_srtgebouw_key,
alg_gebouw_code, alg_gebouw_code,
@@ -11718,7 +11718,7 @@ BEGIN
'Catalogus ' || v_res_discipline_oms || ' is nieuw' 'Catalogus ' || v_res_discipline_oms || ' is nieuw'
); );
END; END;
ELSE ELSE
fac.imp_writelog (p_import_key, 'E', fac.imp_writelog (p_import_key, 'E',
v_aanduiding, v_aanduiding,
'Catalogus ontbreekt' 'Catalogus ontbreekt'
@@ -11765,8 +11765,8 @@ BEGIN
'Artikelomschrijving wordt afgebroken tot [' || v_res_artikel_omschrijving || ']' 'Artikelomschrijving wordt afgebroken tot [' || v_res_artikel_omschrijving || ']'
); );
END IF; END IF;
IF v_res_artikel_omschrijving IS NULL IF v_res_artikel_omschrijving IS NULL
THEN THEN
fac.imp_writelog (p_import_key, 'W', fac.imp_writelog (p_import_key, 'W',
v_aanduiding, v_aanduiding,
'Artikelomschrijving ontbreekt' 'Artikelomschrijving ontbreekt'
@@ -18687,7 +18687,7 @@ BEGIN
FROM cnt_discipline FROM cnt_discipline
WHERE ins_discipline_verwijder IS NULL WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_omschrijving = rec.cnt_discipline; AND ins_discipline_omschrijving = rec.cnt_discipline;
END IF; END IF;
v_desc := rec.srtkenmerk_omschrijving || ' (' || rec.cnt_discipline || ')'; v_desc := rec.srtkenmerk_omschrijving || ' (' || rec.cnt_discipline || ')';
-- Bestaat dit kenmerk al? -- Bestaat dit kenmerk al?
@@ -19216,7 +19216,7 @@ BEGIN
v_ins_srtcontrole_periode := TRIM (v_ins_srtcontrole_periode); v_ins_srtcontrole_periode := TRIM (v_ins_srtcontrole_periode);
IF ( v_ins_srtcontrole_periode IS NULL IF ( v_ins_srtcontrole_periode IS NULL
OR LENGTH (v_ins_srtcontrole_periode) > 7 OR LENGTH (v_ins_srtcontrole_periode) > 7
OR VALIDATE_CONVERSION(v_ins_srtcontrole_periode AS NUMBER) = 0 OR VALIDATE_CONVERSION(v_ins_srtcontrole_periode AS NUMBER) = 0
) )
THEN THEN
@@ -19273,7 +19273,7 @@ BEGIN
'W', 'W',
v_aanduiding, v_aanduiding,
'Controle Bits [' 'Controle Bits ['
|| v_ins_srtcontrole_bits || v_ins_srtcontrole_bits
|| '] is te lang of geen getal'); || '] is te lang of geen getal');
END IF; END IF;
@@ -20270,31 +20270,31 @@ AS
, fac_imp_csv_col30 VERDIEPINGCODE , fac_imp_csv_col30 VERDIEPINGCODE
, fac_imp_csv_col31 RUIMTECODE , fac_imp_csv_col31 RUIMTECODE
, fac_imp_csv_col32 VERLENGEN , fac_imp_csv_col32 VERLENGEN
, fac_imp_csv_col33 flex_01 , fac_imp_csv_col33 flex_01
, fac_imp_csv_col34 flex_02 , fac_imp_csv_col34 flex_02
, fac_imp_csv_col35 flex_03 , fac_imp_csv_col35 flex_03
, fac_imp_csv_col36 flex_04 , fac_imp_csv_col36 flex_04
, fac_imp_csv_col37 flex_05 , fac_imp_csv_col37 flex_05
, fac_imp_csv_col38 flex_06 , fac_imp_csv_col38 flex_06
, fac_imp_csv_col39 flex_07 , fac_imp_csv_col39 flex_07
, fac_imp_csv_col40 flex_08 , fac_imp_csv_col40 flex_08
, fac_imp_csv_col41 flex_09 , fac_imp_csv_col41 flex_09
, fac_imp_csv_col42 flex_10 , fac_imp_csv_col42 flex_10
, fac_imp_csv_col43 flex_11 , fac_imp_csv_col43 flex_11
, fac_imp_csv_col44 flex_12 , fac_imp_csv_col44 flex_12
, fac_imp_csv_col45 flex_13 , fac_imp_csv_col45 flex_13
, fac_imp_csv_col46 flex_14 , fac_imp_csv_col46 flex_14
, fac_imp_csv_col47 flex_15 , fac_imp_csv_col47 flex_15
, fac_imp_csv_col48 flex_16 , fac_imp_csv_col48 flex_16
, fac_imp_csv_col49 flex_17 , fac_imp_csv_col49 flex_17
, fac_imp_csv_col50 flex_18 , fac_imp_csv_col50 flex_18
, fac_imp_csv_col51 flex_19 , fac_imp_csv_col51 flex_19
, fac_imp_csv_col52 flex_20 , fac_imp_csv_col52 flex_20
, fac_imp_csv_col53 flex_21 , fac_imp_csv_col53 flex_21
, fac_imp_csv_col54 flex_22 , fac_imp_csv_col54 flex_22
, fac_imp_csv_col55 flex_23 , fac_imp_csv_col55 flex_23
, fac_imp_csv_col56 flex_24 , fac_imp_csv_col56 flex_24
, fac_imp_csv_col57 flex_25 , fac_imp_csv_col57 flex_25
FROM fac_imp_csv FROM fac_imp_csv
WHERE fac_imp_csv_index > 1 WHERE fac_imp_csv_index > 1
AND fac_import_key = p_import_key; AND fac_import_key = p_import_key;
@@ -20333,13 +20333,13 @@ AS
v_contactnaam prs_contactpersoon.prs_contactpersoon_email%TYPE; --VARCHAR2(200) --> cnt_contract.prs_contactpersoon_key v_contactnaam prs_contactpersoon.prs_contactpersoon_email%TYPE; --VARCHAR2(200) --> cnt_contract.prs_contactpersoon_key
v_kpn_code prs_kostenplaats.prs_kostenplaats_nr%TYPE; --VARCHAR2(30) --> cnt_contract.prs_kostenplaats_key v_kpn_code prs_kostenplaats.prs_kostenplaats_nr%TYPE; --VARCHAR2(30) --> cnt_contract.prs_kostenplaats_key
v_kostensoort_code prs_kostensoort.prs_kostensoort_oms%TYPE; --VARCHAR2(60) --> cnt_contract.prs_kostensoort_key v_kostensoort_code prs_kostensoort.prs_kostensoort_oms%TYPE; --VARCHAR2(60) --> cnt_contract.prs_kostensoort_key
v_bedrag cnt_contract.cnt_contract_kosten%TYPE; --NUMBER(11,2) v_bedrag cnt_contract.cnt_contract_kosten%TYPE; --NUMBER(11,2)
v_bedrag_termijn cnt_contract.cnt_contract_termijnkosten%TYPE; --NUMBER(11,2) v_bedrag_termijn cnt_contract.cnt_contract_termijnkosten%TYPE; --NUMBER(11,2)
v_uurtarief cnt_contract.cnt_contract_uurloon%TYPE; --NUMBER(6,2) v_uurtarief cnt_contract.cnt_contract_uurloon%TYPE; --NUMBER(6,2)
v_korting cnt_contract.cnt_contract_korting%TYPE; --NUMBER(5,2) v_korting cnt_contract.cnt_contract_korting%TYPE; --NUMBER(5,2)
v_locatiecode alg_locatie.alg_locatie_code%TYPE; --VARCHAR2(10) v_locatiecode alg_locatie.alg_locatie_code%TYPE; --VARCHAR2(10)
v_terreincode alg_terreinsector.alg_terreinsector_code%TYPE; --VARCHAR2(12) v_terreincode alg_terreinsector.alg_terreinsector_code%TYPE; --VARCHAR2(12)
v_gebouwcode alg_gebouw.alg_gebouw_code%TYPE; --VARCHAR2(12) v_gebouwcode alg_gebouw.alg_gebouw_code%TYPE; --VARCHAR2(12)
v_verdiepingcode alg_verdieping.alg_verdieping_volgnr%TYPE; --NUMBER(3) v_verdiepingcode alg_verdieping.alg_verdieping_volgnr%TYPE; --NUMBER(3)
v_ruimtecode alg_ruimte.alg_ruimte_nr%TYPE; --VARCHAR2(20) v_ruimtecode alg_ruimte.alg_ruimte_nr%TYPE; --VARCHAR2(20)
v_verlengen cnt_contract.cnt_contract_verlenging%TYPE; --NUMBER(1) v_verlengen cnt_contract.cnt_contract_verlenging%TYPE; --NUMBER(1)
@@ -20524,14 +20524,14 @@ BEGIN
, fac_imp_csv_col53, fac_imp_csv_col54, fac_imp_csv_col55, fac_imp_csv_col56, fac_imp_csv_col57 , fac_imp_csv_col53, fac_imp_csv_col54, fac_imp_csv_col55, fac_imp_csv_col56, fac_imp_csv_col57
INTO v_header_csv -- standaard header INTO v_header_csv -- standaard header
, v_flex_naam_01, v_flex_naam_02, v_flex_naam_03, v_flex_naam_04, v_flex_naam_05 -- kenmerk kolom namen , v_flex_naam_01, v_flex_naam_02, v_flex_naam_03, v_flex_naam_04, v_flex_naam_05 -- kenmerk kolom namen
, v_flex_naam_06, v_flex_naam_07, v_flex_naam_08, v_flex_naam_09, v_flex_naam_10 , v_flex_naam_06, v_flex_naam_07, v_flex_naam_08, v_flex_naam_09, v_flex_naam_10
, v_flex_naam_11, v_flex_naam_12, v_flex_naam_13, v_flex_naam_14, v_flex_naam_15 , v_flex_naam_11, v_flex_naam_12, v_flex_naam_13, v_flex_naam_14, v_flex_naam_15
, v_flex_naam_16, v_flex_naam_17, v_flex_naam_18, v_flex_naam_19, v_flex_naam_20 , v_flex_naam_16, v_flex_naam_17, v_flex_naam_18, v_flex_naam_19, v_flex_naam_20
, v_flex_naam_21, v_flex_naam_22, v_flex_naam_23, v_flex_naam_24, v_flex_naam_25 , v_flex_naam_21, v_flex_naam_22, v_flex_naam_23, v_flex_naam_24, v_flex_naam_25
FROM fac_imp_csv FROM fac_imp_csv
WHERE fac_imp_csv_index = 1 WHERE fac_imp_csv_index = 1
AND fac_import_key = p_import_key; AND fac_import_key = p_import_key;
-- Eerst opruiming -- Eerst opruiming
DELETE FROM fac_imp_cnt; DELETE FROM fac_imp_cnt;
@@ -20603,7 +20603,7 @@ BEGIN
THEN THEN
fac.imp_writelog( p_import_key, 'W' fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Beschrijving - Is niet ingevuld' , v_aanduiding || 'Beschrijving - Is niet ingevuld'
, rec.fac_imp_csv_index || ' - Regel wordt overgeslagen' , rec.fac_imp_csv_index || ' - Regel wordt overgeslagen'
); );
v_ongeldig := 1; v_ongeldig := 1;
END IF; END IF;
@@ -20997,7 +20997,7 @@ BEGIN
-- flex<n> gevuld met <waarde>! -- flex<n> gevuld met <waarde>!
-- NB. Een NULL-waarde resulteert NIET in het wissen van een -- NB. Een NULL-waarde resulteert NIET in het wissen van een
-- kenmerkveld (bijwerken kan wel, maar wissen dus niet)! -- kenmerkveld (bijwerken kan wel, maar wissen dus niet)!
INSERT INTO fac_imp_cnt INSERT INTO fac_imp_cnt
( nummer_intern ( nummer_intern
, versie , versie
, nummer_extern , nummer_extern
@@ -21314,7 +21314,7 @@ AS
v_count_tot NUMBER; v_count_tot NUMBER;
v_count_cntnew NUMBER; v_count_cntnew NUMBER;
v_count_cntupd NUMBER; v_count_cntupd NUMBER;
v_srtnoti_code VARCHAR2(6); v_srtnoti_code VARCHAR2(7); -- ook ruimte voor '@' prefix
v_scope_code VARCHAR2(1); v_scope_code VARCHAR2(1);
v_scope_key NUMBER(10); v_scope_key NUMBER(10);
v_scope_err VARCHAR2(100); v_scope_err VARCHAR2(100);
@@ -21362,13 +21362,13 @@ AS
THEN -- afronden op jaren THEN -- afronden op jaren
v_type := 'Y'; v_type := 'Y';
v_aantal := ROUND(v_aantal / 365); v_aantal := ROUND(v_aantal / 365);
WHEN v_aantal > (30 * min_maand) WHEN v_aantal > (30 * min_maand)
THEN -- afronden op maanden THEN -- afronden op maanden
v_type := 'M'; v_type := 'M';
v_aantal := ROUND(v_aantal / 30); v_aantal := ROUND(v_aantal / 30);
WHEN v_aantal > (7 * min_week) WHEN v_aantal > (7 * min_week)
THEN -- afronden op weken THEN -- afronden op weken
v_type := 'W'; v_type := 'W';
v_aantal := ROUND(v_aantal / 7); v_aantal := ROUND(v_aantal / 7);
END CASE; END CASE;
END IF; END IF;
@@ -21831,7 +21831,7 @@ BEGIN
WHEN NO_DATA_FOUND THEN WHEN NO_DATA_FOUND THEN
-- Contractsoort bestaat gewoon niet; toevoegen. -- Contractsoort bestaat gewoon niet; toevoegen.
v_errormsg := 'Fout bij toevoegen contractsoort:' || rec.cnt_soort; v_errormsg := 'Fout bij toevoegen contractsoort:' || rec.cnt_soort;
INSERT INTO ins_tab_discipline INSERT INTO ins_tab_discipline
( ins_discipline_module ( ins_discipline_module
, ins_discipline_omschrijving , ins_discipline_omschrijving
) )
@@ -21842,7 +21842,7 @@ BEGIN
INTO v_cnt_discipline_key; INTO v_cnt_discipline_key;
-- Type Leverancier, geen kostensoort, geen factuurmarges. -- Type Leverancier, geen kostensoort, geen factuurmarges.
INSERT INTO cnt_disc_params INSERT INTO cnt_disc_params
( cnt_ins_discipline_key ( cnt_ins_discipline_key
, cnt_srtcontract_type , cnt_srtcontract_type
) )
@@ -21852,7 +21852,7 @@ BEGIN
fac.imp_writelog( p_import_key, 'I' fac.imp_writelog( p_import_key, 'I'
, v_aanduiding || 'Contractsoort "' || rec.cnt_soort || '" aangemaakt' , v_aanduiding || 'Contractsoort "' || rec.cnt_soort || '" aangemaakt'
, 'Nieuwe contractsoort' , 'Nieuwe contractsoort'
); );
END; END;
ELSE ELSE
@@ -21876,7 +21876,7 @@ BEGIN
WHEN NO_DATA_FOUND THEN WHEN NO_DATA_FOUND THEN
-- Contactpersoon bestaat gewoon niet; toevoegen. -- Contactpersoon bestaat gewoon niet; toevoegen.
v_errormsg := 'Fout bij toevoegen contactpersoon:' || rec.contact_naam; v_errormsg := 'Fout bij toevoegen contactpersoon:' || rec.contact_naam;
INSERT INTO prs_contactpersoon INSERT INTO prs_contactpersoon
( prs_contactpersoon_naam ( prs_contactpersoon_naam
, prs_bedrijf_key , prs_bedrijf_key
) )
@@ -21911,7 +21911,7 @@ BEGIN
EXCEPTION EXCEPTION
WHEN NO_DATA_FOUND THEN WHEN NO_DATA_FOUND THEN
v_errormsg := 'Fout bij toevoegen opzegtermijn'; v_errormsg := 'Fout bij toevoegen opzegtermijn';
INSERT INTO cnt_termijn INSERT INTO cnt_termijn
( cnt_termijn_omschrijving ( cnt_termijn_omschrijving
, cnt_termijn_type , cnt_termijn_type
, cnt_termijn_aantal , cnt_termijn_aantal
@@ -21944,7 +21944,7 @@ BEGIN
EXCEPTION EXCEPTION
WHEN NO_DATA_FOUND THEN WHEN NO_DATA_FOUND THEN
v_errormsg := 'Toevoegen rappeltermijn'; v_errormsg := 'Toevoegen rappeltermijn';
INSERT INTO cnt_termijn INSERT INTO cnt_termijn
( cnt_termijn_omschrijving ( cnt_termijn_omschrijving
, cnt_termijn_type , cnt_termijn_type
, cnt_termijn_aantal , cnt_termijn_aantal
@@ -21979,11 +21979,13 @@ BEGIN
IF fac.getSetting('cnt_contract_approval') = 1 AND rec.bedrag > fac.getSetting('cnt_contract_limit1') IF fac.getSetting('cnt_contract_approval') = 1 AND rec.bedrag > fac.getSetting('cnt_contract_limit1')
THEN THEN
v_cnt_status := 2; v_cnt_status := 2;
v_srtnoti_code := '@CNTNEW'; -- nog niet direct versturen
ELSE ELSE
v_cnt_status := 0; v_cnt_status := 0;
v_srtnoti_code := 'CNTNEW';
END IF; END IF;
INSERT INTO cnt_contract INSERT INTO cnt_contract
( cnt_contract_nummer ( cnt_contract_nummer
, cnt_contract_omschrijving , cnt_contract_omschrijving
, cnt_contract_looptijd_tot , cnt_contract_looptijd_tot
@@ -22041,7 +22043,6 @@ BEGIN
RETURNING cnt_contract_key RETURNING cnt_contract_key
INTO v_contract_key; INTO v_contract_key;
v_srtnoti_code := 'CNTNEW';
v_count_cntnew := v_count_cntnew + 1; v_count_cntnew := v_count_cntnew + 1;
ELSE -- Contract bestaat al --> bijwerken. ELSE -- Contract bestaat al --> bijwerken.
SELECT c.cnt_contract_key SELECT c.cnt_contract_key
@@ -22104,7 +22105,7 @@ BEGIN
IF (v_count = 0) -- Scope komt nog niet voor, dus toevoegen. IF (v_count = 0) -- Scope komt nog niet voor, dus toevoegen.
THEN THEN
v_errormsg := 'Fout bij toevoegen scope'; v_errormsg := 'Fout bij toevoegen scope';
INSERT INTO cnt_contract_plaats INSERT INTO cnt_contract_plaats
( cnt_contract_key ( cnt_contract_key
, cnt_alg_plaats_key , cnt_alg_plaats_key
, cnt_alg_plaats_code , cnt_alg_plaats_code
@@ -23189,7 +23190,7 @@ BEGIN
fac.imp_writelog( p_import_key, 'E', 'BTW-tarief taak niet goed ingevuld - Regel wordt niet verwerkt.. ' fac.imp_writelog( p_import_key, 'E', 'BTW-tarief taak niet goed ingevuld - Regel wordt niet verwerkt.. '
, rec.fac_imp_csv_index || ' - ' || rec.objectidentificatie || 'Kosten csv: ' || rec.taakbtw); , rec.fac_imp_csv_index || ' - ' || rec.objectidentificatie || 'Kosten csv: ' || rec.taakbtw);
v_ongeldig := 1; v_ongeldig := 1;
ELSE ELSE
IF v_taakbtw_str IS NOT NULL IF v_taakbtw_str IS NOT NULL
THEN THEN
BEGIN BEGIN
@@ -23585,7 +23586,7 @@ AS
BEGIN BEGIN
BEGIN BEGIN
FOR rec IN c_n FOR rec IN c_n
LOOP LOOP
BEGIN BEGIN
v_count_verwerk := v_count_verwerk + 1; v_count_verwerk := v_count_verwerk + 1;