YASK#90843 Opdrachten toevoegen voor contractmutaties in Facilitor
svn path=/Customer/trunk/; revision=70602
This commit is contained in:
214
YASK/yask.sql
214
YASK/yask.sql
@@ -61,6 +61,8 @@ AS
|
||||
|
||||
PROCEDURE self_register_hook (p_perslid_key IN NUMBER);
|
||||
|
||||
PROCEDURE checkopdracht (p_opdr_key IN NUMBER);
|
||||
|
||||
FUNCTION altrecht_get_mld_stdmelding (p_meldingtype VARCHAR,
|
||||
p_categorie VARCHAR,
|
||||
p_subcategorie VARCHAR)
|
||||
@@ -1025,6 +1027,102 @@ AS
|
||||
|
||||
END;
|
||||
|
||||
PROCEDURE checkopdracht (p_opdr_key IN NUMBER)
|
||||
AS
|
||||
v_kenmerk_key MLD_KENMERK.MLD_KENMERK_KEY%TYPE;
|
||||
v_typeopdr_code MLD_TYPEOPDR.MLD_TYPEOPDR_CODE%TYPE;
|
||||
v_typeopdr_key MLD_TYPEOPDR.MLD_TYPEOPDR_KEY%TYPE;
|
||||
v_statusopdr_key MLD_OPDR.MLD_STATUSOPDR_KEY%TYPE;
|
||||
v_melding_key MLD_OPDR.MLD_MELDING_KEY%TYPE;
|
||||
v_kostensoort_key MLD_OPDR.PRS_KOSTENSOORT_KEY%TYPE;
|
||||
v_kostensoort_key_new MLD_OPDR.PRS_KOSTENSOORT_KEY%TYPE;
|
||||
v_srtdiscipline_prefix INS_SRTDISCIPLINE.INS_SRTDISCIPLINE_PREFIX%TYPE;
|
||||
v_kostensoort_oms PRS_KOSTENSOORT.PRS_KOSTENSOORT_OMS%TYPE;
|
||||
v_kostensoort_oms_new PRS_KOSTENSOORT.PRS_KOSTENSOORT_OMS%TYPE;
|
||||
v_kostensoort_opm PRS_KOSTENSOORT.PRS_KOSTENSOORT_OPMERKING%TYPE;
|
||||
v_kostensoort_opm_new PRS_KOSTENSOORT.PRS_KOSTENSOORT_OPMERKING%TYPE;
|
||||
v_opdr_bedrijfopdr_volgnr MLD_OPDR.MLD_OPDR_BEDRIJFOPDR_VOLGNR%TYPE;
|
||||
v_action FAC_TRACKING.FAC_TRACKING_OMS%TYPE;
|
||||
v_kosten NUMBER;
|
||||
v_verkoopprijs NUMBER;
|
||||
v_klantoffertelimiet NUMBER;
|
||||
v_regio_key ALG_REGIO.ALG_REGIO_KEY%TYPE;
|
||||
v_inkoopnummer_opdracht VARCHAR2(100);
|
||||
v_inkoopnummer_melding VARCHAR2(100);
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
-- Eerst de generieke procedure aftrappen
|
||||
vbxx.checkopdracht(p_opdr_key);
|
||||
|
||||
-- Even wat algemene gegevens ophalen
|
||||
SELECT ot.mld_typeopdr_code, ot.mld_typeopdr_key, o.mld_statusopdr_key, o.mld_melding_key, d.alg_regio_key, o.prs_kostensoort_key, ks.prs_kostensoort_oms, ks.prs_kostensoort_opmerking, sd.ins_srtdiscipline_prefix, o.mld_opdr_bedrijfopdr_volgnr
|
||||
INTO v_typeopdr_code, v_typeopdr_key, v_statusopdr_key, v_melding_key, v_regio_key, v_kostensoort_key, v_kostensoort_oms, v_kostensoort_opm, v_srtdiscipline_prefix, v_opdr_bedrijfopdr_volgnr
|
||||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, mld_stdmelding std, mld_discipline d, ins_srtdiscipline sd, prs_kostensoort ks, alg_locatie l, alg_district d
|
||||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND o.mld_opdr_key = p_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key (+)
|
||||
AND l.alg_district_key = d.alg_district_key(+);
|
||||
|
||||
-- Bij de subcategorie wordt de NEN code ingevuld (aspect fac_usrdata_omschr2 in eigen tabel)
|
||||
|
||||
-- Is er een subcategorie ingevuld
|
||||
v_errorhint := 'Op zoek naar de subcategorie';
|
||||
BEGIN
|
||||
SELECT prs_kostensoort_key, prs_kostensoort_oms, prs_kostensoort_opmerking
|
||||
INTO v_kostensoort_key_new, v_kostensoort_oms_new, v_kostensoort_opm_new
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k, fac_usrdata ud, prs_kostensoort ks
|
||||
WHERE ko.mld_opdr_key = p_opdr_key
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_kenmerk_code = 'RABO_SUBCAT'
|
||||
AND FAC.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
||||
AND ud.fac_usrdata_omschr2 = ks.prs_kostensoort_upper
|
||||
AND prs_kostensoort_verwijder IS NULL;
|
||||
|
||||
IF COALESCE(v_kostensoort_key_new, -1) <> COALESCE(v_kostensoort_key, -1) AND v_kostensoort_key_new IS NOT NULL
|
||||
THEN
|
||||
IF v_kostensoort_oms IS NOT NULL THEN
|
||||
v_kostensoort_oms := v_kostensoort_oms || '-' || v_kostensoort_opm;
|
||||
END IF;
|
||||
v_kostensoort_oms_new := v_kostensoort_oms_new || '-' || v_kostensoort_opm_new;
|
||||
v_action := 'Opdracht ' || v_srtdiscipline_prefix || v_melding_key || '/' || v_opdr_bedrijfopdr_volgnr || ' is gewijzigd.' || CHR(10)
|
||||
|| 'Afwijkende kostensoort: ' || COALESCE(v_kostensoort_oms, '(leeg)') || ' --> ' || v_kostensoort_oms_new;
|
||||
fac.trackaction('ORDUPD', p_opdr_key, NULL, NULL, v_action);
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET prs_kostensoort_key = v_kostensoort_key_new
|
||||
WHERE mld_opdr_key = p_opdr_key;
|
||||
END IF;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
-- Als het kenmerk niet bestaat of niet gevuld is hoeven we niets te doen.
|
||||
END;
|
||||
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.writelog ('YASK.checkopdracht', 'E', SUBSTR (v_errormsg, 1, 1000), v_errorhint || ' - opdracht_key:' || p_opdr_key);
|
||||
END;
|
||||
|
||||
FUNCTION altrecht_get_mld_stdmelding (p_meldingtype VARCHAR,
|
||||
p_categorie VARCHAR,
|
||||
p_subcategorie VARCHAR)
|
||||
@@ -4669,6 +4767,116 @@ END;
|
||||
|
||||
-- Einde VEZA exact export
|
||||
|
||||
|
||||
-- Rapportage voor contractmutaties. Het is nog niet bekend of dit Rabo/Yask specifiek is of dat dit rapport ooit eens naar
|
||||
-- de VBXX package gaat. YASK#90843
|
||||
CREATE OR REPLACE VIEW yask_v_rap_contractmutaties
|
||||
AS
|
||||
SELECT mld_melding_key,
|
||||
status,
|
||||
alg_gebouw_upper,
|
||||
prs_bedrijf_naam,
|
||||
dienst,
|
||||
subcat,
|
||||
kantineregeling,
|
||||
ruimtekantineregeling,
|
||||
nencode,
|
||||
grootboek,
|
||||
bedrag_ex,
|
||||
opslagperc,
|
||||
verkoopprijs,
|
||||
btw,
|
||||
vk_bedrag_inc_btw,
|
||||
ingangsdatum,
|
||||
startverrekening,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 1, vk_bedrag_inc_btw /12) jan,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 2, vk_bedrag_inc_btw /12) feb,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 3, vk_bedrag_inc_btw /12) mrt,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 4, vk_bedrag_inc_btw /12) apr,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 5, vk_bedrag_inc_btw /12) mei,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 6, vk_bedrag_inc_btw /12) jun,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 7, vk_bedrag_inc_btw /12) jul,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 8, vk_bedrag_inc_btw /12) aug,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 9, vk_bedrag_inc_btw /12) sep,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 10, vk_bedrag_inc_btw /12) okt,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 11, vk_bedrag_inc_btw /12) nov,
|
||||
vbxx.vk_bepaal_maandbedrag(ingangsdatum, startverrekening, 12, vk_bedrag_inc_btw /12) dec
|
||||
FROM (
|
||||
SELECT m.mld_melding_key, --Contractmutatie nummer
|
||||
ms.mld_statuses_omschrijving status,
|
||||
g.alg_gebouw_upper, --PRP-nummer
|
||||
u.prs_bedrijf_naam, --Uitvoerende leverancier
|
||||
(SELECT fac_usrdata_omschr
|
||||
FROM fac_usrdata ud, mld_kenmerk k
|
||||
WHERE ud.fac_usrdata_key = FAC.safe_to_number (flx.getflex ('OPD', k.mld_kenmerk_key, o.mld_opdr_key))
|
||||
AND k.mld_kenmerk_code = 'RABO_DIENST'
|
||||
AND k.mld_typeopdr_key = o.mld_typeopdr_key) dienst, --Dienst
|
||||
(SELECT fac_usrdata_omschr
|
||||
FROM fac_usrdata ud, mld_kenmerk k
|
||||
WHERE ud.fac_usrdata_key = FAC.safe_to_number (flx.getflex ('OPD', k.mld_kenmerk_key, o.mld_opdr_key))
|
||||
AND k.mld_kenmerk_code = 'RABO_SUBCAT'
|
||||
AND k.mld_typeopdr_key = o.mld_typeopdr_key) subcat, -- Subcategorie
|
||||
ks.prs_kostensoort_oms nencode, -- NEN-code
|
||||
ks.prs_kostensoort_refcode grootboek, --Grootboekrekening
|
||||
(SELECT DECODE(flx.getflex ('OPD', k.mld_kenmerk_key, o.mld_opdr_key), '1', 'Ja', 'Nee')
|
||||
FROM mld_kenmerk k
|
||||
WHERE k.mld_kenmerk_code = 'KANTINEREGELING'
|
||||
AND k.mld_typeopdr_key = o.mld_typeopdr_key) kantineregeling, --Kantine regeling
|
||||
(SELECT fac_usrdata_omschr
|
||||
FROM fac_usrdata ud, mld_kenmerk k
|
||||
WHERE ud.fac_usrdata_key = FAC.safe_to_number (flx.getflex ('OPD', k.mld_kenmerk_key, o.mld_opdr_key))
|
||||
AND k.mld_kenmerk_code = 'RUIMTEKANTINEREGELING'
|
||||
AND k.mld_typeopdr_key = o.mld_typeopdr_key) ruimtekantineregeling, --Ruimte kantine regeling
|
||||
o.mld_opdr_totaal_ex bedrag_ex, -- Inkoopwaarde bedrag per jaar ex BTW
|
||||
k_o.opslagperc, -- NIET VOOR PBI EXTERN EBIT %
|
||||
o.mld_opdr_totaal_ex * (1 + k_o.opslagperc / 100) verkoopprijs, --Verkoopwaarde per jaar
|
||||
o.btw, --BTW %
|
||||
o.mld_opdr_totaal_ex * (1 + k_o.opslagperc / 100) * (1 + btw / 100) vk_bedrag_inc_btw, --Bedrag per jaar incl BTW
|
||||
(SELECT fac.safe_to_date (ko.mld_kenmerkopdr_waarde, 'dd-mm-yyyy')
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_kenmerk_code = 'STARTMUT'
|
||||
AND ko.mld_opdr_key = o.mld_opdr_key) ingangsdatum,
|
||||
(SELECT fac.safe_to_date (ko.mld_kenmerkopdr_waarde, 'dd-mm-yyyy')
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_kenmerk_code = 'STARTVEREKENING'
|
||||
AND ko.mld_opdr_key = o.mld_opdr_key) startverrekening
|
||||
FROM (SELECT DECODE (ko.mld_kenmerk_code, 'BEDRAGHOOG', 21, 'BEDRAGLAAG', 9, 'BEDRAGNUL', 0, 21)
|
||||
btw,
|
||||
COALESCE (fac.safe_to_number (ko.mld_kenmerkopdr_waarde), mld_opdr_kosten)
|
||||
mld_opdr_totaal_ex,
|
||||
o.*
|
||||
FROM mld_opdr o,
|
||||
(SELECT *
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_kenmerk_code IN ('BEDRAGHOOG', 'BEDRAGLAAG', 'BEDRAGNUL')) ko
|
||||
WHERE ko.mld_opdr_key(+) = o.mld_opdr_key) o,
|
||||
mld_typeopdr ot,
|
||||
mld_melding m,
|
||||
mld_statuses ms,
|
||||
prs_kostensoort ks,
|
||||
alg_v_onroerendgoed_gegevens og,
|
||||
alg_gebouw g,
|
||||
prs_bedrijf u,
|
||||
(SELECT ko.mld_opdr_key, fac.safe_to_number (ko.mld_kenmerkopdr_waarde) opslagperc
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_code = 'OPSLAGPERC') k_o,
|
||||
(SELECT ko.mld_opdr_key, fac.safe_to_number (ko.mld_kenmerkopdr_waarde) verkoopprijs
|
||||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_code = 'VERKOOPPRIJS') k_v
|
||||
WHERE o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||||
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND o.mld_opdr_key = k_o.mld_opdr_key(+)
|
||||
AND o.mld_opdr_key = k_v.mld_opdr_key(+)
|
||||
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_code = 'CONTRACTMUTATIE'
|
||||
AND m.mld_melding_status = ms.mld_statuses_key);
|
||||
|
||||
CREATE OR REPLACE VIEW yask_v_noti_fin_factuur_note
|
||||
(
|
||||
code,
|
||||
@@ -7309,11 +7517,12 @@ AS
|
||||
|
||||
IF v_k_type = 'N'
|
||||
THEN
|
||||
v_k_waarde_new := REPLACE(v_k_waarde_new, ',', '.');
|
||||
v_k_num := FAC.safe_to_number(v_k_waarde_new);
|
||||
v_k_waarde_new := TO_CHAR(v_k_num, 'FM999999.90');
|
||||
ELSIF v_k_type = 'D'
|
||||
THEN
|
||||
v_k_waarde_new := TO_CHAR(FAC.safe_to_date(v_k_waarde_new, 'dd-mm-yyyy'), 'dd-mm-yyyy');
|
||||
v_k_waarde_new := TO_CHAR(FAC.safe_to_date(v_k_waarde_new, 'yyyy-mm-dd'), 'dd-mm-yyyy');
|
||||
END IF;
|
||||
|
||||
IF COALESCE(v_k_waarde_new, '(leeg)') <> COALESCE(v_k_waarde, '(leeg)')
|
||||
@@ -7691,6 +7900,9 @@ BEGIN
|
||||
WHERE fac_notificatie_key = rec.fac_notificatie_key;
|
||||
END IF;
|
||||
END LOOP;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL; -- Als de srtnotificatie niet bestaat
|
||||
END yask_pre_putorders;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user