YASK#85687 -- Updates in de koppeling worden nu ook ondersteund.
svn path=/Customer/trunk/; revision=68181
This commit is contained in:
202
YASK/yask.sql
202
YASK/yask.sql
@@ -5553,6 +5553,14 @@ AS
|
||||
v_ruimte_key NUMBER;
|
||||
v_kenmerk_key NUMBER;
|
||||
v_discipline_key NUMBER;
|
||||
v_rsv_ruimte_omschrijving_prev RES_RSV_RUIMTE.RES_RSV_RUIMTE_OMSCHRIJVING%TYPE;
|
||||
v_ruimte_key_prev NUMBER;
|
||||
v_rsv_ruimte_van_prev DATE;
|
||||
v_rsv_ruimte_tot_prev DATE;
|
||||
v_gebouw_code ALG_GEBOUW.ALG_GEBOUW_CODE%TYPE;
|
||||
v_gebouw_code_prev ALG_GEBOUW.ALG_GEBOUW_CODE%TYPE;
|
||||
v_tracking FAC_TRACKING.FAC_TRACKING_OMS%TYPE;
|
||||
v_status_bo_key NUMBER;
|
||||
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errormsg VARCHAR (200);
|
||||
@@ -5560,25 +5568,58 @@ AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
PROCEDURE add_catering (p_rsv_ruimte_key IN NUMBER, p_artikel_code IN VARCHAR2, p_levering IN DATE, p_bedrag IN NUMBER)
|
||||
PROCEDURE add_catering (p_rsv_ruimte_key IN NUMBER, p_perslid_key IN NUMBER, p_artikel_code IN VARCHAR2, p_levering IN DATE, p_bedrag IN NUMBER)
|
||||
AS
|
||||
v_artikel_key NUMBER;
|
||||
v_artikel_btw res_artikel.res_artikel_btw%TYPE;
|
||||
v_artikel_key NUMBER;
|
||||
v_artikel_btw RES_ARTIKEL.RES_ARTIKEL_BTW%TYPE;
|
||||
v_artikel_omschrijving RES_ARTIKEL.RES_ARTIKEL_OMSCHRIJVING%TYPE;
|
||||
v_rsv_artikel_inkoopprijs RES_RSV_ARTIKEL.RES_RSV_ARTIKEL_INKOOPPRIJS%TYPE;
|
||||
v_rsv_artikel_key NUMBER;
|
||||
BEGIN
|
||||
-- zoek het artikel op.
|
||||
SELECT res_artikel_key, res_artikel_btw
|
||||
INTO v_artikel_key, v_artikel_btw
|
||||
SELECT res_artikel_key, res_artikel_btw, res_artikel_omschrijving
|
||||
INTO v_artikel_key, v_artikel_btw, v_artikel_omschrijving
|
||||
FROM res_artikel
|
||||
WHERE res_artikel_verwijder IS NULL
|
||||
AND res_artikel_externnr = p_artikel_code;
|
||||
|
||||
IF COALESCE(p_bedrag, 0) <> 0
|
||||
|
||||
BEGIN
|
||||
-- Bestaat het artikel al?
|
||||
SELECT res_rsv_artikel_key, res_rsv_artikel_inkoopprijs
|
||||
INTO v_rsv_artikel_key, v_rsv_artikel_inkoopprijs
|
||||
FROM res_rsv_artikel rra
|
||||
WHERE rra.res_artikel_key = v_artikel_key
|
||||
AND rra.res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND rra.res_rsv_artikel_verwijder IS NULL;
|
||||
|
||||
IF COALESCE(p_bedrag, 0) = 0
|
||||
THEN
|
||||
DELETE FROM res_rsv_artikel WHERE res_rsv_artikel_key = v_rsv_artikel_key;
|
||||
fac.trackaction('RESUPD', p_rsv_ruimte_key, p_perslid_key, NULL, 'Artikel: ' || v_artikel_omschrijving || ' is verwijderd.');
|
||||
ELSE
|
||||
IF p_bedrag <> v_rsv_artikel_inkoopprijs
|
||||
THEN
|
||||
UPDATE res_rsv_artikel
|
||||
SET res_rsv_artikel_prijs = p_bedrag,
|
||||
res_rsv_artikel_inkoopprijs = p_bedrag,
|
||||
res_rsv_artikel_levering = p_levering
|
||||
WHERE res_rsv_artikel_key = v_rsv_artikel_key;
|
||||
vbxx.set_opslag_perc_cat(v_rsv_artikel_key);
|
||||
fac.trackaction('RESUPD', p_rsv_ruimte_key, p_perslid_key, NULL, 'Artikel: ' || v_artikel_omschrijving || ' is gewijzigd.' || CHR(10)
|
||||
|| 'Prijs: ' || v_rsv_artikel_inkoopprijs || ' --> ' || p_bedrag);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO res_rsv_artikel (res_rsv_ruimte_key, res_artikel_key, res_rsv_artikel_aantal, res_rsv_artikel_prijs, res_rsv_artikel_inkoopprijs, res_rsv_artikel_btw, res_rsv_artikel_levering, res_status_bo_key, res_rsv_artikel_afgemeld)
|
||||
VALUES (p_rsv_ruimte_key, v_artikel_key, 1, p_bedrag, p_bedrag, v_artikel_btw, p_levering, 5, SYSDATE)
|
||||
RETURNING res_rsv_artikel_key INTO v_rsv_artikel_key;
|
||||
END IF;
|
||||
vbxx.set_opslag_perc_cat(v_rsv_artikel_key);
|
||||
IF COALESCE(p_bedrag, 0) <> 0
|
||||
THEN
|
||||
INSERT INTO res_rsv_artikel (res_rsv_ruimte_key, res_artikel_key, res_rsv_artikel_aantal, res_rsv_artikel_prijs, res_rsv_artikel_inkoopprijs, res_rsv_artikel_btw, res_rsv_artikel_levering, res_status_bo_key, res_rsv_artikel_afgemeld)
|
||||
VALUES (p_rsv_ruimte_key, v_artikel_key, 1, p_bedrag, p_bedrag, v_artikel_btw, p_levering, 5, SYSDATE)
|
||||
RETURNING res_rsv_artikel_key INTO v_rsv_artikel_key;
|
||||
END IF;
|
||||
vbxx.set_opslag_perc_cat(v_rsv_artikel_key);
|
||||
END;
|
||||
END;
|
||||
|
||||
|
||||
@@ -5655,45 +5696,108 @@ BEGIN
|
||||
fac.imp_writelog (p_import_key, 'E', 'Kostenplaatsgroep kan niet gevonden worden.', rec.id);
|
||||
RETURN; -- dan hebben we hier niets meer te zoeken.
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Voeg de reservering toe';
|
||||
INSERT INTO res_reservering (res_reservering_aanmaak) VALUES (SYSDATE)
|
||||
RETURNING res_reservering_key INTO v_reservering_key;
|
||||
|
||||
v_errorhint := 'Voeg de deelreservering toe';
|
||||
INSERT INTO res_rsv_ruimte (res_reservering_key,
|
||||
res_rsv_ruimte_volgnr,
|
||||
res_rsv_ruimte_omschrijving,
|
||||
prs_kostenplaats_key,
|
||||
res_rsv_ruimte_contact_key,
|
||||
res_rsv_ruimte_host_key,
|
||||
alg_ruimte_key,
|
||||
res_rsv_ruimte_cvab_mode,
|
||||
res_activiteit_key,
|
||||
res_rsv_ruimte_van,
|
||||
res_rsv_ruimte_tot,
|
||||
res_status_fo_key)
|
||||
VALUES (v_reservering_key,
|
||||
1,
|
||||
rec.omschrijving,
|
||||
v_kostenplaats_key,
|
||||
v_perslid_key, -- API user
|
||||
v_perslid_key,
|
||||
v_ruimte_key,
|
||||
1,
|
||||
150,
|
||||
rec.datum,
|
||||
rec.einddatum,
|
||||
2)
|
||||
RETURNING res_rsv_ruimte_key INTO v_rsv_ruimte_key;
|
||||
|
||||
-- Kenmerk toevoegen met de externe referentie
|
||||
|
||||
-- Kenmerk key opzoeken van de externe referentie
|
||||
v_errorhint := 'Zoek het kenmerk RABONUMMER';
|
||||
SELECT res_kenmerk_key
|
||||
INTO v_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_kenmerk_code = 'RABONUMMER';
|
||||
|
||||
|
||||
BEGIN
|
||||
-- Kijk of de reservering al bestaat
|
||||
SELECT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_omschrijving, rrr.alg_ruimte_key, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot
|
||||
INTO v_rsv_ruimte_key, v_reservering_key, v_rsv_ruimte_omschrijving_prev, v_ruimte_key_prev, v_rsv_ruimte_van_prev, v_rsv_ruimte_tot_prev
|
||||
FROM res_rsv_ruimte rrr, res_kenmerkwaarde kw
|
||||
WHERE rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
|
||||
AND kw.res_kenmerk_key = v_kenmerk_key
|
||||
AND kw.res_kenmerkreservering_waarde = rec.id
|
||||
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
||||
|
||||
SELECT MAX(res_status_bo_key)
|
||||
INTO v_status_bo_key
|
||||
FROM res_rsv_artikel rra
|
||||
WHERE res_rsv_artikel_verwijder IS NULL
|
||||
AND rra.res_rsv_ruimte_key = v_rsv_ruimte_key;
|
||||
|
||||
-- Controleer of de catering al verwerkt is. Dan accepteren we geen aanpassingen meer.
|
||||
IF v_status_bo_key = 6
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'E', 'Catering is doorgezet naar de leverancier en kan niet meer aangepast worden.', rec.id);
|
||||
RETURN; -- dan hebben we hier niets meer te zoeken.
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Pas de deelreservering aan';
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_omschrijving = rec.omschrijving,
|
||||
prs_kostenplaats_key = v_kostenplaats_key,
|
||||
alg_ruimte_key = v_ruimte_key,
|
||||
res_rsv_ruimte_van = rec.datum,
|
||||
res_rsv_ruimte_tot = rec.einddatum
|
||||
WHERE res_rsv_ruimte_key = v_rsv_ruimte_key;
|
||||
|
||||
-- Voeg tracking toe
|
||||
IF v_rsv_ruimte_omschrijving_prev <> rec.omschrijving
|
||||
THEN
|
||||
v_tracking := CHR(10) || 'Omschrijving: ' || v_rsv_ruimte_omschrijving_prev || ' --> ' || rec.omschrijving;
|
||||
END IF;
|
||||
|
||||
IF v_ruimte_key_prev <> v_ruimte_key
|
||||
THEN
|
||||
SELECT alg_gebouw_upper INTO v_gebouw_code_prev FROM alg_v_ruimte_gegevens WHERE alg_ruimte_key = v_ruimte_key_prev;
|
||||
SELECT alg_gebouw_upper INTO v_gebouw_code FROM alg_v_ruimte_gegevens WHERE alg_ruimte_key = v_ruimte_key;
|
||||
v_tracking := v_tracking || CHR(10) || 'Ruimte: ' || v_gebouw_code_prev || ' --> ' || v_gebouw_code;
|
||||
END IF;
|
||||
|
||||
IF v_rsv_ruimte_van_prev <> rec.datum
|
||||
THEN
|
||||
v_tracking := v_tracking || CHR(10) || 'Van: ' || TO_CHAR(v_rsv_ruimte_van_prev, 'DD-MM-YYYY HH24:MI') || ' --> ' || TO_CHAR(rec.datum, 'DD-MM-YYYY HH24:MI');
|
||||
END IF;
|
||||
|
||||
IF v_rsv_ruimte_tot_prev <> rec.einddatum
|
||||
THEN
|
||||
v_tracking := v_tracking || CHR(10) || 'Van: ' || TO_CHAR(v_rsv_ruimte_tot_prev, 'DD-MM-YYYY HH24:MI') || ' --> ' || TO_CHAR(rec.einddatum, 'DD-MM-YYYY HH24:MI');
|
||||
END IF;
|
||||
IF v_tracking IS NOT NULL
|
||||
THEN
|
||||
fac.trackaction('RESUPD', v_rsv_ruimte_key, v_perslid_key, NULL, 'Reservering ' || v_reservering_key || '/1 is gewijzigd' || v_tracking);
|
||||
END IF;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Voeg de reservering toe';
|
||||
INSERT INTO res_reservering (res_reservering_aanmaak) VALUES (SYSDATE)
|
||||
RETURNING res_reservering_key INTO v_reservering_key;
|
||||
|
||||
v_errorhint := 'Voeg de deelreservering toe';
|
||||
INSERT INTO res_rsv_ruimte (res_reservering_key,
|
||||
res_rsv_ruimte_volgnr,
|
||||
res_rsv_ruimte_omschrijving,
|
||||
prs_kostenplaats_key,
|
||||
res_rsv_ruimte_contact_key,
|
||||
res_rsv_ruimte_host_key,
|
||||
alg_ruimte_key,
|
||||
res_rsv_ruimte_cvab_mode,
|
||||
res_activiteit_key,
|
||||
res_rsv_ruimte_van,
|
||||
res_rsv_ruimte_tot,
|
||||
res_status_fo_key)
|
||||
VALUES (v_reservering_key,
|
||||
1,
|
||||
rec.omschrijving,
|
||||
v_kostenplaats_key,
|
||||
v_perslid_key, -- API user
|
||||
v_perslid_key,
|
||||
v_ruimte_key,
|
||||
1,
|
||||
150,
|
||||
rec.datum,
|
||||
rec.einddatum,
|
||||
2)
|
||||
RETURNING res_rsv_ruimte_key INTO v_rsv_ruimte_key;
|
||||
END;
|
||||
|
||||
-- Kenmerk toevoegen met de externe referentie
|
||||
v_errorhint := 'Zet het kenmerk RABONUMMER';
|
||||
FLX.setflex ('RES', v_kenmerk_key, v_rsv_ruimte_key, NULL, rec.id);
|
||||
|
||||
@@ -5709,9 +5813,9 @@ BEGIN
|
||||
|
||||
-- Nu nog de catering toevoegen
|
||||
v_errorhint := 'Voeg de catering toe';
|
||||
add_catering (v_rsv_ruimte_key, 'RABOCATHOOG', rec.datum, rec.bedrag_hoog);
|
||||
add_catering (v_rsv_ruimte_key, 'RABOCATLAAG', rec.datum, rec.bedrag_laag);
|
||||
add_catering (v_rsv_ruimte_key, 'RABOCATNUL', rec.datum, rec.bedrag_nul);
|
||||
add_catering (v_rsv_ruimte_key, v_perslid_key, 'RABOCATHOOG', rec.datum, rec.bedrag_hoog);
|
||||
add_catering (v_rsv_ruimte_key, v_perslid_key, 'RABOCATLAAG', rec.datum, rec.bedrag_laag);
|
||||
add_catering (v_rsv_ruimte_key, v_perslid_key, 'RABOCATNUL', rec.datum, rec.bedrag_nul);
|
||||
|
||||
END LOOP;
|
||||
EXCEPTION
|
||||
|
||||
Reference in New Issue
Block a user