YKPN#63398 -- Functie bes_checkrfo voor controle op valide bestelling
svn path=/Customer/trunk/; revision=48988
This commit is contained in:
@@ -50,6 +50,11 @@ AS
|
||||
p_datum_tot IN DATE,
|
||||
p_volgnr IN NUMBER)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
FUNCTION bes_checkrfo (p_user_key IN NUMBER,
|
||||
p_urole in VARCHAR2,
|
||||
p_srtdeel_keys in VARCHAR2)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
PROCEDURE res_after_insert (p_rsv_ruimte_key IN NUMBER);
|
||||
|
||||
@@ -886,6 +891,86 @@ AS
|
||||
fac.writelog ('YKPN.mld_after_insert', 'E', v_errormsg, v_errorhint);
|
||||
END;
|
||||
|
||||
-- Controleer of er eerder bestellingen van artikelen uit catalogus werkplek zijn gedaan en of er uit groep brureaus niet meerder artikelen zijn besteld
|
||||
FUNCTION bes_checkrfo (p_user_key IN NUMBER,
|
||||
p_urole in VARCHAR2,
|
||||
p_srtdeel_keys in VARCHAR2)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
v_catalog CONSTANT NUMBER:= 3061; -- acc 2981 TEST 3061
|
||||
v_groep CONSTANT NUMBER:= 321; -- acc 287 Test 321
|
||||
CURSOR besteld
|
||||
IS
|
||||
SELECT item.bes_srtdeel_key key, srt.bes_srtgroep_key groep, count(item.bes_bestelling_item_aantal) aantal
|
||||
FROM bes_bestelling bes,
|
||||
bes_bestelling_item item,
|
||||
bes_srtdeel srt,
|
||||
bes_srtgroep grp
|
||||
WHERE bes.prs_perslid_key = p_user_key -- alle bestelingen voor deze user
|
||||
AND item.bes_bestelling_key=bes.bes_bestelling_key -- alle items bij de vreschllende bstelligen
|
||||
AND srt.bes_srtdeel_key = item.bes_srtdeel_key
|
||||
AND grp.bes_srtgroep_key = srt.bes_srtgroep_key
|
||||
AND grp.ins_discipline_key=v_catalog
|
||||
GROUP BY (item.bes_srtdeel_key, srt.bes_srtgroep_key);
|
||||
|
||||
|
||||
v_result VARCHAR2(300);
|
||||
v_count NUMBER;
|
||||
v_srtdeel_key NUMBER;
|
||||
v_bureauCount NUMBER;
|
||||
v_amount NUMBER;
|
||||
v_counter NUMBER;
|
||||
v_currentgroep NUMBER:=0;
|
||||
|
||||
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
BEGIN
|
||||
v_result :='OK';
|
||||
IF UPPER(p_urole) = 'FE'
|
||||
THEN
|
||||
v_bureauCount:=0;
|
||||
v_counter:=0;
|
||||
FOR rec IN besteld LOOP
|
||||
IF rec.groep = v_groep AND rec.aantal>0
|
||||
THEN
|
||||
v_bureauCount:=v_bureauCount+1;
|
||||
END IF;
|
||||
v_counter:=1;
|
||||
LOOP
|
||||
FAC.imp_getField_nr(p_srtdeel_keys,',',v_counter,v_srtdeel_key);
|
||||
|
||||
IF rec.key = v_srtdeel_key
|
||||
THEN
|
||||
v_result:='Artikel is al eerder besteld';
|
||||
|
||||
END IF;
|
||||
v_counter:=v_counter+1;
|
||||
EXIT WHEN v_srtdeel_key IS NULL OR v_counter>20;
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
-- COntrole of er nu meerdere bureau besteld worden
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM bes_srtdeel srt
|
||||
WHERE srt.bes_srtgroep_key = v_groep
|
||||
AND srt.bes_srtdeel_key IN (
|
||||
SELECT regexp_substr(p_srtdeel_keys,'[^,]+', 1, level)
|
||||
FROM DUAL
|
||||
CONNECT BY regexp_substr(p_srtdeel_keys, '[^,]+', 1, level) IS NOT NULL);
|
||||
|
||||
IF (v_count+v_bureauCount>1)
|
||||
THEN
|
||||
v_result:='Er is al een artikel uit de groep bureau besteld.';
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
RETURN v_result;
|
||||
END;
|
||||
|
||||
|
||||
|
||||
FUNCTION res_presave (p_user_key IN NUMBER,
|
||||
p_rsv_ruimte_key IN NUMBER,
|
||||
p_activiteit_key IN NUMBER,
|
||||
@@ -899,7 +984,6 @@ AS
|
||||
v_date DATE;
|
||||
v_count NUMBER;
|
||||
v_discipline_key NUMBER;
|
||||
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
|
||||
Reference in New Issue
Block a user