From a613a6964e71dd65825bef2336150105e98188e2 Mon Sep 17 00:00:00 2001 From: Jos Groot Lipman Date: Thu, 7 Nov 2024 15:40:02 +0000 Subject: [PATCH] FCLT#85890 Orderqueue en notificatiequeue savepoint svn path=/Database/trunk/; revision=66953 --- FAC/FAC_LCL.SRC | 16 +++++- FAC/FAC_PAC.SRC | 120 ++++++++++++++++++++++++++++++++++++++++++ MLD/MLD_PAC.SRC | 61 ++++++++++++++++++++- PRS/PRS_SEQ.SRC | 1 + PRS/PRS_TAB.SRC | 26 ++++++++- PRS/PRS_TRI.SRC | 8 +++ _UP/DB49to50.src | 87 +++++++++++++++++++++++++++++- _UP/DB49to50_post.src | 21 ++++++++ 8 files changed, 335 insertions(+), 5 deletions(-) create mode 100644 _UP/DB49to50_post.src diff --git a/FAC/FAC_LCL.SRC b/FAC/FAC_LCL.SRC index deaf0ef0..02829c42 100644 --- a/FAC/FAC_LCL.SRC +++ b/FAC/FAC_LCL.SRC @@ -1194,6 +1194,7 @@ FAC_LCL('lcl_ins_frame_algemeen', 'Objectgegevens', 'Object details') FAC_LCL('lcl_ins_object', 'Object', 'Object') FAC_LCL('lcl_ins_objsrt_code', 'Objectsoort code', 'Object type code') FAC_LCL('lcl_ins_parentobject', 'Onderdeel van', 'Part of') +FAC_LCL('lcl_ins_del_parentobject', 'Bovenliggend object wissen?', 'Clear parent object?') FAC_LCL('lcl_ins_manager', 'Objectbeheerder', 'Object manager') FAC_LCL('lcl_ins_object_management', 'Objectenbeheer', 'Objects management') FAC_LCL('lcl_ins_group', 'Groepering', 'Grouping') @@ -3443,10 +3444,12 @@ FAC_LCL('lcl_prs_companies_dienst_locs', 'Locaties', 'Locations') FAC_LCL('lcl_prs_companies_dienst_title', 'Diensten', 'Services') FAC_LCL('lcl_prs_uitvoertijd', 'Uitvoertijd', 'Processing time') FAC_LCL('lcl_prs_bedrijfadres_title', 'Technische adressen', 'Technical addresses') +FAC_LCL('lcl_prs_bedrijfadres_srtnoti_title', 'Notificaties', 'Notifications addresses') FAC_LCL('lcl_prs_bedrijfadres_frame', 'Technisch adres', 'Technical address') FAC_LCL('lcl_prs_bedrijfadres_type', 'Kanaal', 'Channel') FAC_LCL('lcl_prs_bedrijfadres_type_b', 'Bestellingen', 'Purchase orders') -FAC_LCL('lcl_prs_bedrijfadres_type_o', 'Opdrachten', 'Orders') +FAC_LCL('lcl_prs_bedrijfadres_type_o', 'Opdrachten uitvoerende', 'Orders contractor') +FAC_LCL('lcl_prs_bedrijfadres_type_og', 'Opdrachten generiek', 'Orders generic') FAC_LCL('lcl_prs_bedrijfadres_type_o_other', 'Geen/Overige opdrachten', 'No/Misc. Orders') FAC_LCL('lcl_prs_bedrijfadres_type_c', 'Contracten', 'Contracts') FAC_LCL('lcl_prs_bedrijfadres_type_v', 'Voorraad info', 'Stock info') @@ -4587,6 +4590,7 @@ FAC_LCL('lcl_menu_mld_vakgroeptypes', 'Vakgroeptypen', 'Discipline types') FAC_LCL('lcl_menu_mld_vakgroepen', 'Vakgroepen', 'Disciplines') FAC_LCL('lcl_menu_mld_meldingen', 'Standaardmeldingen', 'Standard calls') FAC_LCL('lcl_menu_mld_behandelgroep', 'Behandelgroepen', 'Back office groups') +FAC_LCL('lcl_menu_mld_meldingtag', 'Labels', 'Labels') FAC_LCL('lcl_menu_mld_stdmeldinggroep', 'Meldinggroepen', 'Call groups') FAC_LCL('lcl_menu_mld_dienst_niveaus', 'Dienstniveaus', 'Service levels') FAC_LCL('lcl_menu_mld_meldbron', 'Meldbronnen', 'Sources') @@ -5870,6 +5874,7 @@ FAC_LCL('lcl_puo_order_flexfiles', 'Bijlagen meesturen', 'Send Attachments') FAC_LCL('lcl_puo_willsendnoti', 'Notificatie ''{0}'' wordt zo verstuurd aan {1}', 'Notification ''{0}'' will be sent shortly to {1}') FAC_LCL('lcl_puo_willsendsystem', 'Notificatie ''{0}'' wordt zo verstuurd naar extern systeem', 'Notification ''{0}'' will be sent shortly to external system') +FAC_LCL('lcl_puo_willsendkanaal', 'Notificatie ''{0}'' wordt zo verstuurd naar extern kanaal', 'Notification ''{0}'' will be sent shortly to external channel') FAC_LCL('lcl_puo_failsendsystem', 'Versturen is {0} keer mislukt, het wordt weer geprobeerd na {1}', 'Sending failed {0} time(s). Trying again after {1}') FAC_LCL('lcl_puo_willsendnotimore', ' ... en nog {0}', ' ... and {0} more') @@ -6910,6 +6915,7 @@ FAC_LCL('mld_typeopdr_slamodeLOV', FAC_LCL('lcl_typeopdr_sequential', 'Behandelopties', 'Handling options') FAC_LCL('mld_typeopdr_hold_allowed', 'Mag onderbroken worden (Hold)', 'Interruption allowed') FAC_LCL('mld_typeopdr_accept', 'Kan expliciet geaccepteerd worden', 'Can be explicitly accepted') +FAC_LCL('mld_typeopdr_mld_limiet', 'Standaardopdrachtbedrag', 'Default order amount') FAC_LCL('ins_srtcontrole_seq_strict', 'Strikt opeenvolgend', 'Strictly sequential') FAC_LCL('ins_srtcontrole_halt_start', 'Moet expliciet gestart worden', 'Interrupted start') FAC_LCL('lcl_mld_onderbroken', 'Onderbroken', 'On Hold') @@ -6944,6 +6950,14 @@ FAC_LCL('mld_behandelgroep_m', 'Behandelgroepen', 'Back office groups') FAC_LCL('mld_behandelgroep_naam', 'Behandelgroep', 'Back office group') FAC_LCL('mld_behandelgroep_oms', 'Omschrijving', 'Description') +FAC_LCL('mld_melding_tag', 'Label', 'Label') +FAC_LCL('mld_melding_tag_m', 'Labels', 'Labels') +FAC_LCL('mld_melding_tag_naam', 'Label', 'Label') +FAC_LCL('mld_melding_tag_oms', 'Omschrijving', 'Description') +FAC_LCL('mld_melding_tag_person', 'Verantwoordelijke','Responsible') +FAC_LCL('mld_melding_tag_startdatum', 'Ingangsdatum', 'Start Date') +FAC_LCL('mld_melding_tag_einddatum', 'Einddatum', 'End Date') + FAC_LCL('mld_dienstniveau', 'Dienstniveau', 'Service level') FAC_LCL('mld_dienstniveau_m', 'Dienstniveaus', 'Service levels') FAC_LCL('mld_dienstniveau_omschr', 'Dienstniveau', 'Service level') diff --git a/FAC/FAC_PAC.SRC b/FAC/FAC_PAC.SRC index 4d22465e..2dcbf147 100644 --- a/FAC/FAC_PAC.SRC +++ b/FAC/FAC_PAC.SRC @@ -147,6 +147,20 @@ CREATE OR REPLACE PACKAGE fac PROCEDURE trackaction_withkey (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2, psubjectkey NUMBER, new_fac_tracking_key OUT NUMBER); PROCEDURE backtrackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE); PROCEDURE notifytracking(psrtnotificatiekey NUMBER, pperslid_key NUMBER, ptracking_oms VARCHAR2, prefkey NUMBER, ptrackingkey NUMBER DEFAULT NULL); + PROCEDURE notifybedrijf(pbedrijf_key NUMBER, + pbedrijfadres_type VARCHAR2, + psrtnotificatie_key NUMBER, + prefkey NUMBER, + ptracking_oms VARCHAR2 DEFAULT NULL, + pperslid_key NUMBER DEFAULT NULL, + pxrefkey NUMBER DEFAULT NULL, + preference VARCHAR2 DEFAULT NULL, + psender VARCHAR2 DEFAULT NULL, + ptrackingkey NUMBER DEFAULT NULL, + plocatie_key NUMBER DEFAULT NULL, + pdiscipline_key NUMBER DEFAULT NULL, + ptypeopdr_key NUMBER DEFAULT NULL, + teverzenden_datum DATE DEFAULT SYSDATE); FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date; FUNCTION gettrackinguserkey (peventcode IN VARCHAR2, pkey IN number) RETURN number; PROCEDURE initsession (flcode IN VARCHAR2); @@ -4045,6 +4059,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS bericht := mld.opdrsprintf (loms, prefkey); END IF; + mld.notifyopdrbedrijven(psrtnotificatiekey, prefkey, pperslid_key, ptracking_oms, ptrackingkey); + -- In 4i notificeerden we alleen toekenning aan de uitvoerder -- In 5i tracken we veel meer, en is er dus ook de mogelijkheid -- tot notificeren van tracking @@ -4755,6 +4771,110 @@ CREATE OR REPLACE PACKAGE BODY fac AS NULL; END; + -- Notificeren via een technisch adres + PROCEDURE notifybedrijf (pbedrijf_key NUMBER, + pbedrijfadres_type VARCHAR2, + psrtnotificatie_key NUMBER, + prefkey NUMBER, + ptracking_oms VARCHAR2 DEFAULT NULL, + pperslid_key NUMBER DEFAULT NULL, + pxrefkey NUMBER DEFAULT NULL, + preference VARCHAR2 DEFAULT NULL, + psender VARCHAR2 DEFAULT NULL, + ptrackingkey NUMBER DEFAULT NULL, + plocatie_key NUMBER DEFAULT NULL, + pdiscipline_key NUMBER DEFAULT NULL, + ptypeopdr_key NUMBER DEFAULT NULL, + teverzenden_datum DATE DEFAULT SYSDATE) + AS + l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE; + l_basrt_key prs_bedrijfadres_srtnoti.prs_bedrijfadres_srtnoti_key%TYPE; + l_srtnoti_code fac_srtnotificatie.fac_srtnotificatie_code%TYPE; + nn_noti NUMBER (10); + BEGIN + -- Merk op: per bedrijf notificeren we hooguit één enkel technisch adres + -- Dat adres wordt eerst bepaald op basis van locatie/district/opdrachttype/discipline/bedrijfadres_type + -- *Daarna* wordt pas gekeken of dat adres onze srtnoti ondersteunt + -- Dit is om het begrijpbaar te houden. + -- Ook: je kunt onder een bedrijf een adres maken voor alle locaties maar specifiek opdrachttype + -- en eentje voor specifieke locatie en algemene opdracht + -- Dat ondersteunen we niet en geeft ongedefinieerd gedrag. + BEGIN + SELECT ba.prs_bedrijfadres_key, + (SELECT COUNT (*) + FROM prs_bedrijfadres_srtnoti basrt + WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key) + INTO l_bdradr_key, nn_noti + FROM prs_bedrijfadres ba + WHERE ba.prs_bedrijf_key = pbedrijf_key + AND ba.prs_bedrijfadres_type = pbedrijfadres_type + AND prs_bedrijfadres_startdatum <= SYSDATE + AND (ba.mld_typeopdr_key = ptypeopdr_key OR ba.mld_typeopdr_key IS NULL) + AND (ba.ins_discipline_key = pdiscipline_key OR ba.ins_discipline_key IS NULL) + AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL) + AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL) + AND ( ba.alg_district_key = (SELECT d.alg_district_key + FROM alg_locatie d + WHERE d.alg_locatie_key = plocatie_key) + OR ba.alg_district_key IS NULL) + ORDER BY ba.mld_typeopdr_key NULLS LAST, -- door de NULLS LAST heeft een specifieke altijd voorkeur + ba.ins_discipline_key NULLS LAST, + ba.alg_locatie_key NULLS LAST, + ba.alg_district_key NULLS LAST, + ba.prs_bedrijf_key2 NULLS LAST, + ba.prs_bedrijfadres_startdatum DESC + FETCH FIRST 1 ROW ONLY; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + DBMS_OUTPUT.Put_line ('Geen geschikt technisch adres gevonden onder bedrijf ' || pbedrijf_key); + RETURN; + END; + + DBMS_OUTPUT.Put_line ('Gevonden technisch adres key ' || l_bdradr_key); + + -- Nu de srtnotifictie zoeken + SELECT basrt.prs_bedrijfadres_srtnoti_key, srtnoti.fac_srtnotificatie_code + INTO l_basrt_key, l_srtnoti_code + FROM prs_bedrijfadres_srtnoti basrt, fac_srtnotificatie srtnoti + WHERE basrt.prs_bedrijfadres_key(+) = l_bdradr_key + AND basrt.fac_srtnotificatie_key(+) = srtnoti.fac_srtnotificatie_key + AND srtnoti.fac_srtnotificatie_key = psrtnotificatie_key; + + IF (l_basrt_key IS NULL) + THEN + IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW') + OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BESNEW') + OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW') + OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW') + THEN + NULL; -- backwards compatible: als geen enkel technisch adres dan is er default een xxxNEW + ELSE + DBMS_OUTPUT.Put_line ('Technisch adres luistert niet naar notificatie ' || psrtnotificatie_key); + RETURN; + END IF; + END IF; + + -- Ok, het technisch adres luister naar onze notificatie! + -- Geen putnotificationsrtprio. Die is veel te agressief met ontdubbelen + INSERT INTO fac_notificatie (fac_srtnotificatie_key, + fac_notificatie_oms, + fac_notificatie_refkey, + fac_notificatie_extrakey, + fac_notificatie_sender_email, + fac_notificatie_status, -- don't care + prs_bedrijfadres_key, + fac_notificatie_notbefore) + VALUES (psrtnotificatie_key, + ptracking_oms, + prefkey, + pxrefkey, + psender, + 0, + l_bdradr_key, + teverzenden_datum); + END; + -- Levert de (nieuwste) datum op van een getrackt event op key -- bv de laatste wijzigingsdatum van melding 123 is gettrackingdate('MLDUPD', 123) FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date diff --git a/MLD/MLD_PAC.SRC b/MLD/MLD_PAC.SRC index dddede16..5cecd750 100644 --- a/MLD/MLD_PAC.SRC +++ b/MLD/MLD_PAC.SRC @@ -20,6 +20,11 @@ CREATE OR REPLACE PACKAGE mld AS PROCEDURE notifybehandelaar (pto IN NUMBER, pcode IN VARCHAR2, pmeldingkey IN NUMBER); PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1); PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER); + PROCEDURE notifyopdrbedrijven (psrtnotificatiekey NUMBER, + popdrkey NUMBER, + pperslid_key NUMBER, + ptracking_oms VARCHAR2, + ptrackingkey NUMBER DEFAULT NULL); FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER; PROCEDURE notifyinstemmer (pmldkey IN NUMBER); FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER) @@ -1385,6 +1390,60 @@ CREATE OR REPLACE PACKAGE BODY mld AS END; END; + -- Stuur notificatie psrtnotificatiekey naar diverse bedrijven + -- in het bijzonder de uitvoerende maar het mag ook een + -- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'OG'). + PROCEDURE notifyopdrbedrijven (psrtnotificatiekey NUMBER, + popdrkey NUMBER, + pperslid_key NUMBER, + ptracking_oms VARCHAR2, + ptrackingkey NUMBER DEFAULT NULL) + AS + BEGIN + FOR bedrijfrec + IN (SELECT o.mld_typeopdr_key, + b.prs_bedrijf_key, + CASE WHEN b.prs_bedrijf_key = o.mld_uitvoerende_keys THEN 'O' ELSE 'OG' END bedrijfadres_type, + COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key, + COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email, + o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr reference, + o.mld_opdr_teverzenden_datum, + d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende + FROM mld_opdr o, + mld_melding m, + mld_adres ma, + alg_locatie l1, + alg_locatie l2, + prs_perslid p, + prs_v_afdeling d, + prs_bedrijf b + WHERE o.mld_opdr_key = popdrkey + AND ( b.prs_bedrijf_key = o.mld_uitvoerende_keys + OR EXISTS + (SELECT 1 + FROM prs_bedrijfadres ba + WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'OG')) + AND o.mld_melding_key = m.mld_melding_key + AND m.mld_adres_key = ma.mld_adres_key(+) + AND ma.alg_locatie_key = l1.alg_locatie_key(+) + AND m.mld_alg_locatie_key = l2.alg_locatie_key(+) + AND d.prs_afdeling_key = p.prs_afdeling_key + AND p.prs_perslid_key = m.prs_perslid_key) + LOOP + -- Roep daarmee (en de eigen parameters) fac.notifybedrijf aan + fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key, + pbedrijfadres_type => bedrijfrec.bedrijfadres_type, + psrtnotificatie_key => psrtnotificatiekey, + pperslid_key => pperslid_key, + ptracking_oms => ptracking_oms, + prefkey => popdrkey, + preference => bedrijfrec.reference, + ptypeopdr_key => bedrijfrec.mld_typeopdr_key, + plocatie_key => bedrijfrec.alg_locatie_key, + ptrackingkey => ptrackingkey); + END LOOP; + END; + -- Bepaal de instemmer van een conceptmelding conform de conceptstatus(bitcode) -- Levert NULL als die er niet is of niet bepaald kan worden FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER @@ -4474,7 +4533,7 @@ BEGIN WHERE m.mld_melding_status = 6 -- afgemeld AND BITAND (m.mld_melding_actiecode, p_actiecode) > 0 AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) < (SYSDATE - p_days); - + -- Willen we nog iets tracken of zo? Ik denk zelf van niet END; diff --git a/PRS/PRS_SEQ.SRC b/PRS/PRS_SEQ.SRC index b0ef7d6f..078869ed 100644 --- a/PRS/PRS_SEQ.SRC +++ b/PRS/PRS_SEQ.SRC @@ -16,6 +16,7 @@ CREATE SEQUENCE prs_s_prs_contactpersoon_key MINVALUE 1; CREATE SEQUENCE prs_s_prs_contactpers_loc_key MINVALUE 1; CREATE SEQUENCE prs_s_prs_bedrijfadres_key MINVALUE 1; CREATE SEQUENCE prs_s_prs_bedrijfbedrijf_key MINVALUE 1; +CREATE SEQUENCE prs_s_prs_bedrijfadres_srtnoti_key MINVALUE 1; CREATE SEQUENCE prs_s_prs_prsfaq_key MINVALUE 1; CREATE SEQUENCE prs_s_prs_dienst_key MINVALUE 1; diff --git a/PRS/PRS_TAB.SRC b/PRS/PRS_TAB.SRC index 46b02d90..31739452 100644 --- a/PRS/PRS_TAB.SRC +++ b/PRS/PRS_TAB.SRC @@ -246,8 +246,11 @@ CREATE_TABLE(prs_bedrijfadres, 0) ( alg_locatie_key -- optioneel specifiek voor deze locatie NUMBER(10) CONSTRAINT prs_r_alg_locatie_key REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE, + ins_discipline_key -- optioneel specifiek voor deze discipline + NUMBER(10) + CONSTRAINT ins_r_ins_discipline_key REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE, prs_bedrijfadres_type /* O=Order, B=Bestelling, V=Voorraadinfo, C=Contract, N=Notificatie, I=IOT, R=Catering, E=ERP (Mareon) */ - VARCHAR2(1), + VARCHAR2(2), /* OG=Order generiek enz. */ -- In MLD_TAB.SRC: -- mld_typeopdr_key -- NUMBER(10) CONSTRAINT prs_r_mld_typeopdr_key REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE, @@ -322,6 +325,25 @@ CREATE_TABLE(prs_bedrijfadres, 0) ( NOT NULL ); +CREATE_TABLE(prs_bedrijfadres_srtnoti, 0) +( + prs_bedrijfadres_srtnoti_key + NUMBER(10) + PRIMARY KEY, + prs_bedrijfadres_key + NUMBER(10) + CONSTRAINT prs_r_bedrijfadres_key2 + REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE, + fac_srtnotificatie_key + NUMBER(10) + REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE, + prs_bedrijfadres_url -- optionele overrule endpoint + VARCHAR2(512), + prs_bedrijfadres_srtnoti_aanmaak + DATE + DEFAULT SYSDATE NOT NULL +); + CREATE_TABLE(prs_kostenplaatsgrp,0) ( prs_kostenplaatsgrp_key NUMBER (10) PRIMARY KEY, @@ -1327,7 +1349,7 @@ CONSTRAINT prs_c_prs_bdlbp1 CHECK ((prs_bedrijf_key IS NOT NULL AND prs_perslid_ ALTER TABLE prs_bedrijfdienstlocatie MODIFY prs_bdl_t_uitvoertijd DEFAULT MLD_T_UITVOERTIJD(NULL, NULL); -/* +/* * Om een kennisbankitem afhankelijk te kunnen maken van een afdeling/bedrijf * afdeling is optioneel. Toepassing is melder-afhankelijk maken van faqs * maar mogelijk is dit ooit ook nog wel anders bruikbaar (bv voor leveranciers) diff --git a/PRS/PRS_TRI.SRC b/PRS/PRS_TRI.SRC index 46cc3930..618a4e72 100644 --- a/PRS/PRS_TRI.SRC +++ b/PRS/PRS_TRI.SRC @@ -500,6 +500,14 @@ BEGIN END; / +CREATE_TRIGGER(prs_t_prs_bedrijfadres_srtnoti_B_I) +BEFORE INSERT ON prs_bedrijfadres_srtnoti +FOR EACH ROW +BEGIN + UPDATE_PRIMARY_KEY(prs_bedrijfadres_srtnoti_KEY, prs_s_prs_bedrijfadres_srtnoti_key); +END; +/ + CREATE_TRIGGER(prs_t_prs_prsfaq_B_I) BEFORE INSERT ON prs_prsfaq FOR EACH ROW diff --git a/_UP/DB49to50.src b/_UP/DB49to50.src index 9cea59e9..2d772594 100644 --- a/_UP/DB49to50.src +++ b/_UP/DB49to50.src @@ -8,8 +8,93 @@ COMMIT; SET DEFINE OFF -/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000 +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85890 +RENAME fac_v_orderqueue to fac_v_orderqueue_OLD; +// Tijdelijke dummy die niets oplevert +CREATE OR REPLACE VIEW fac_v_orderqueue +AS + SELECT -1 prs_bedrijf_key, + -1 alg_locatie_key, + 'dontcare' xmlnode, + -1 key, + -1 reference, + '' sender, + SYSDATE teverzenden_datum + FROM DUAL + WHERE 0 = 1; + +CREATE TABLE prs_bedrijfadres_srtnoti +( + prs_bedrijfadres_srtnoti_key + NUMBER(10) + PRIMARY KEY, + prs_bedrijfadres_key + NUMBER(10) + CONSTRAINT prs_r_bedrijfadres_key2 + REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE, + fac_srtnotificatie_key + NUMBER(10) + REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE, + prs_bedrijfadres_url -- optionele overrule endpoint + VARCHAR2(512), + prs_bedrijfadres_srtnoti_aanmaak + DATE + DEFAULT SYSDATE NOT NULL +); + +CREATE SEQUENCE prs_s_prs_bedrijfadres_srtnoti_key MINVALUE 1; + +ALTER TABLE fac_notificatie + ADD fac_notificatie_naam VARCHAR(80); // puur informatief voor logging/support, bijvoorbeeld opdrachtnummer + +ALTER TABLE prs_bedrijfadres + ADD ins_discipline_key NUMBER(10) + REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE; // Scherpere bedrijfadres bepaling, vooral reserveringen? + +ALTER TABLE prs_bedrijfadres + MODIFY prs_bedrijfadres_type VARCHAR2(2); // Ook ruimte voor OG voor Opdrachten Generiek + +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#80469 + + +/////////////////////////////////////////////////////////////////////////////////////////// YAXX#84687 +ALTER TABLE prs_bedrijf + ADD prs_bedrijf_mld_limiet NUMBER(8,2); + +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85970 +CREATE_TABLE(mld_melding_tag,0) /* generiekere opzet voor mld_releases of mld_releasekalender */ +( + mld_melding_tag_key + NUMBER(10) + CONSTRAINT mld_k_melding_tag_key PRIMARY KEY, + mld_melding_tag_naam + VARCHAR2(30) + NOT NULL + CONSTRAINT mld_u_melding_tag_naam UNIQUE, + mld_melding_tag_oms /* korte omschrijving */ + VARCHAR2(1000), + mld_melding_tag_datum_van /* lijkt logisch, maar definieren waarom */ + DATE, + mld_melding_tag_datum_tot /* de releasedatum */ + DATE NOT NULL, + prs_perslid_key /* aanmaker of verantwoordelijke */ + NUMBER(10) + CONSTRAINT mld_r_prs_perslid_key15 REFERENCES prs_perslid(prs_perslid_key), + mld_melding_tag_aanmaakdatum + DATE DEFAULT SYSDATE NOT NULL +); + +CREATE SEQUENCE mld_s_mld_melding_tag_key MINVALUE 1; + +ALTER TABLE mld_melding ADD + mld_melding_tag_key + NUMBER(10) + CONSTRAINT mld_r_mld_melding_tag REFERENCES mld_melding_tag(mld_melding_tag_key); + + +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000 REGISTERONCE('$Id$') +#define POST_RECREATE "DB49to45_post.src" #include "epilogue.inc" diff --git a/_UP/DB49to50_post.src b/_UP/DB49to50_post.src new file mode 100644 index 00000000..194a15fb --- /dev/null +++ b/_UP/DB49to50_post.src @@ -0,0 +1,21 @@ +/* DB49TO45_POST.SRC + * + * Uitgevoerd *na* de recreate zodat we op de nieuwe fac.notifytracking kunnen rekenen + * + * LET OP: De makefile detecteert timestamp van dit bestand niet + * + * $Revision$ + * $Id$ + */ + +/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85545 + +-- TODO: Kijk in fac_v_orderqueue_OLD wat nog een laatste keer een notificatie +-- naar een systeemadres moet krijgen + +// En nu kan hij echt weg +DROP VIEW fac_v_orderqueue_OLD; + +REGISTERONCE('$Id$') + +COMMIT;