Files
Database/_UP/127TO128.SRC
1998-09-23 08:56:36 +00:00

85 lines
2.9 KiB
Plaintext

SPOOL 127to128
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\127TO128.SQL]
--
-- Update script van Facilitor 2.0 versie 1.27 naar 1.28
--
-- Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
-- om #ifdef's te gebruiken voor de diverse modules.
--
-- Revisie:
--
-- 22-04-97 KTH Aangemaakt
--
-- LOG#.... Bugfixes lijst 970424.TXT en 970505.txt van KTH
#ifdef HUI
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'INV_SRTDEEL';
DEF_FAC_ENTITY ('INV_SRTDEEL', 'Artikel', 'Artikelen', 'het');
#endif
DELETE FROM fac_message
WHERE fac_message_code IN ('INV_M005', 'INV_M006', 'LEV_M026');
DEF_FAC_MESSAGE ('INV_M005', 'De omschrijving voor het artikeltype is niet ingevuld.');
DEF_FAC_MESSAGE ('INV_M006', 'Het artikeltype is niet ingevuld.');
DEF_FAC_MESSAGE ('LEV_M026', 'Er zijn geen leveringregels bij deze levering.');
-- 05-05-97 AH LEV_LEVERREGEL boekt niets op ALG_KOSTENPOST_BESTEED
-- In LEV_T_LEV_LEVERREGEL_B_IU aangepast.
CREATE OR REPLACE TRIGGER lev_t_lev_leverregel_B_IU
BEFORE INSERT OR UPDATE ON lev_leverregel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(lev_leverregel_key, lev_s_lev_leverregel_key);
/* Ver het veld ALG_KOSTENPOST_BESTEED bij met aantal_geleverd*Prijs.
* Wijzigen van een leverregel is eigenlijk niet mogelijk, maar toch
* gedeeltelijk aangepast.
* Hier wordt bij wijzigen geen rekening gehouden met :
* - Wijzigen van INS_SRTDEEL_KEY.
* - Wijzigen van de prijs van INS_SRTDEEL
*/
IF :old.lev_leverregel_aantal IS NULL
OR (:old.lev_leverregel_aantal <> :new.lev_leverregel_aantal)
THEN
DECLARE
Kostenpost NUMBER(10);
ExtraBesteed alg_kostenpost.alg_kostenpost_besteed%TYPE;
Prijs ins_srtdeel.inv_srtdeel_prijs%TYPE;
BEGIN
SELECT ALG_K.alg_kostenpost_key
INTO Kostenpost
FROM lev_bestelregel LEV_BR, lev_bestelling LEV_B,
alg_kostenpost ALG_K
WHERE LEV_BR.lev_bestelling_key = LEV_B.lev_bestelling_key
AND LEV_B.lev_alg_kostenpost_key = ALG_K.alg_kostenpost_key
AND LEV_BR.lev_bestelregel_key = :new.lev_bestelregel_key;
SELECT inv_srtdeel_prijs
INTO Prijs
FROM inv_v_aanwezigsrtdeel
WHERE ins_srtdeel_key = :new.lev_ins_srtdeel_key;
ExtraBesteed := (:new.lev_leverregel_aantal - NVL(:old.lev_leverregel_aantal,0))
* NVL(Prijs, 0);
UPDATE alg_kostenpost
SET alg_kostenpost_besteed = NVL(alg_kostenpost_besteed, 0) +
ExtraBesteed
WHERE alg_kostenpost_key = Kostenpost;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
END;
/
DEF_FAC_MESSAGE ('LEV_M072', 'Het bestelnummer is niet ingevuld.');
COMMIT;
PROMPT Vergeet niet te committen!
SPOOL OFF