YASK#87601 Opslagpercentage en verkoopprijs RABO catering rapportage toevoegen
svn path=/Customer/trunk/; revision=67974
This commit is contained in:
268
VBXX/vbxx.sql
268
VBXX/vbxx.sql
@@ -30,6 +30,8 @@ AS
|
||||
|
||||
PROCEDURE set_opslag_perc (p_opdr_key IN NUMBER);
|
||||
|
||||
PROCEDURE set_opslag_perc_cat (p_rsv_artikel_key IN NUMBER);
|
||||
|
||||
FUNCTION get_opslag_perc (p_opdr_key IN NUMBER)
|
||||
RETURN NUMBER;
|
||||
|
||||
@@ -271,6 +273,114 @@ AS
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
PROCEDURE set_opslag_perc_cat (p_rsv_artikel_key IN NUMBER)
|
||||
AS
|
||||
|
||||
v_geen_opslag NUMBER;
|
||||
v_opslag NUMBER;
|
||||
|
||||
v_locatie_key ALG_LOCATIE.ALG_LOCATIE_KEY%TYPE;
|
||||
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
|
||||
v_rsv_ruimte_van RES_RSV_RUIMTE.RES_RSV_RUIMTE_VAN%TYPE;
|
||||
v_opslag_kenmerk_key RES_KENMERK.RES_KENMERK_KEY%TYPE;
|
||||
|
||||
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER, p_opslag IN NUMBER)
|
||||
AS
|
||||
v_kenmerkartikel_key RES_KENMERKARTIKEL.RES_KENMERKARTIKEL_KEY%TYPE;
|
||||
BEGIN
|
||||
SELECT res_kenmerkartikel_key
|
||||
INTO v_kenmerkartikel_key
|
||||
FROM res_kenmerkartikel
|
||||
WHERE res_kenmerkartikel_verwijder IS NULL
|
||||
AND res_kenmerk_key = p_kenmerk_key
|
||||
AND res_rsv_artikel_key = p_rsv_artikel_key;
|
||||
|
||||
UPDATE res_kenmerkartikel
|
||||
SET res_kenmerkartikel_waarde = TO_CHAR(p_opslag)
|
||||
WHERE res_kenmerkartikel_key = v_kenmerkartikel_key;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key, res_kenmerk_key, res_kenmerkartikel_waarde)
|
||||
VALUES (p_rsv_artikel_key, p_kenmerk_key, TO_CHAR(p_opslag));
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
|
||||
-- Bepaal de locatie en de catalogus
|
||||
SELECT ab.alg_locatie_key, ra.res_discipline_key, rrr.res_rsv_ruimte_van
|
||||
INTO v_locatie_key, v_discipline_key, v_rsv_ruimte_van
|
||||
FROM res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
res_rsv_ruimte rrr,
|
||||
res_v_rsv_ruimte_2_alg_ruimte r2a,
|
||||
alg_v_onrgoed_boom ab
|
||||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||||
AND ab.alg_ruimte_key = COALESCE(rrr.alg_ruimte_key, r2a.alg_ruimte_key)
|
||||
AND rra.res_rsv_artikel_key = p_rsv_artikel_key;
|
||||
|
||||
BEGIN
|
||||
SELECT res_kenmerk_key
|
||||
INTO v_opslag_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_discipline_key = v_discipline_key
|
||||
AND res_kenmerk_niveau = 'D'
|
||||
AND res_kenmerk_code = 'OPSLAGPERC';
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_opslag_kenmerk_key := NULL;
|
||||
END;
|
||||
|
||||
-- Controleer of het locatienummer en de catalogus is ingevuld in de opslag tabel. Dan
|
||||
-- geldt deze als eerste.
|
||||
SELECT MAX(opslag)
|
||||
INTO v_opslag
|
||||
FROM vbxx_imp_opslag
|
||||
WHERE alg_locatie_key = v_locatie_key
|
||||
AND ins_discipline_key = v_discipline_key
|
||||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_rsv_ruimte_van >= ingangsdatum)
|
||||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_rsv_ruimte_van < einddatum+1)
|
||||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_rsv_ruimte_van BETWEEN ingangsdatum AND einddatum+1)
|
||||
)
|
||||
AND imp_opslag_verwijder IS NULL;
|
||||
|
||||
IF v_opslag IS NOT NULL
|
||||
THEN
|
||||
UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = (1 + v_opslag / 100) * res_rsv_artikel_inkoopprijs WHERE res_rsv_artikel_key = p_rsv_artikel_key;
|
||||
upsertkenmerk (v_opslag_kenmerk_key, v_opslag);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- Controleer of de catalogus is ingevuld in de opslag tabel.
|
||||
SELECT MAX(opslag)
|
||||
INTO v_opslag
|
||||
FROM vbxx_imp_opslag
|
||||
WHERE ins_discipline_key = v_discipline_key
|
||||
AND alg_locatie_key IS NULL
|
||||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_rsv_ruimte_van >= ingangsdatum)
|
||||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_rsv_ruimte_van < einddatum+1)
|
||||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_rsv_ruimte_van BETWEEN ingangsdatum AND einddatum+1)
|
||||
)
|
||||
AND imp_opslag_verwijder IS NULL;
|
||||
|
||||
IF v_opslag IS NOT NULL
|
||||
THEN
|
||||
UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = (1 + v_opslag / 100) * res_rsv_artikel_inkoopprijs WHERE res_rsv_artikel_key = p_rsv_artikel_key;
|
||||
upsertkenmerk (v_opslag_kenmerk_key, v_opslag);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
RETURN;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = res_rsv_artikel_inkoopprijs WHERE res_rsv_artikel_key = p_rsv_artikel_key;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
FUNCTION get_opslag_perc (p_opdr_key IN NUMBER)
|
||||
RETURN NUMBER
|
||||
@@ -1617,6 +1727,7 @@ AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_skipfield VARCHAR2 (100);
|
||||
v_ongeldig NUMBER;
|
||||
-- De importvelden
|
||||
v_imp_opslag_key NUMBER (10);
|
||||
v_begin_txt VARCHAR2 (100);
|
||||
@@ -1649,6 +1760,7 @@ BEGIN
|
||||
BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_aanduiding := v_newline;
|
||||
v_ongeldig := 0;
|
||||
|
||||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||||
THEN
|
||||
@@ -1706,74 +1818,95 @@ BEGIN
|
||||
|| ' | '
|
||||
|| v_eind_txt;
|
||||
|
||||
v_errorhint := 'Controleer locatie';
|
||||
v_errorhint := 'Locatie niet gevonden: ' || v_locatie_code;
|
||||
v_locatie_key := NULL;
|
||||
IF v_locatie_code IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM alg_locatie
|
||||
WHERE alg_locatie_verwijder IS NULL
|
||||
AND UPPER (alg_locatie_code) =
|
||||
UPPER (TRIM (v_locatie_code));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
SELECT alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM alg_locatie
|
||||
WHERE alg_locatie_verwijder IS NULL
|
||||
AND UPPER (alg_locatie_code) =
|
||||
UPPER (TRIM (v_locatie_code));
|
||||
v_errorhint := 'Vakgroeptype niet gevonden: ' || v_srtdiscipline_omschrijving;
|
||||
v_srtdiscipline_key := NULL;
|
||||
IF v_srtdiscipline_omschrijving IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT ins_srtdiscipline_key
|
||||
INTO v_srtdiscipline_key
|
||||
FROM ins_srtdiscipline
|
||||
WHERE ins_srtdiscipline_verwijder IS NULL
|
||||
AND UPPER (ins_srtdiscipline_omschrijving) =
|
||||
UPPER (TRIM (v_srtdiscipline_omschrijving));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Controleer vakgroeptype';
|
||||
v_errorhint := 'Vakgroep niet gevonden: ' || v_discipline_omschrijving;
|
||||
v_discipline_key := NULL;
|
||||
IF v_discipline_omschrijving IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT ins_discipline_key
|
||||
INTO v_discipline_key
|
||||
FROM ins_tab_discipline
|
||||
WHERE ins_discipline_verwijder IS NULL
|
||||
AND (ins_srtdiscipline_key = v_srtdiscipline_key OR v_srtdiscipline_key IS NULL)
|
||||
AND UPPER (ins_discipline_omschrijving) =
|
||||
UPPER (TRIM (v_discipline_omschrijving));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
SELECT ins_srtdiscipline_key
|
||||
INTO v_srtdiscipline_key
|
||||
FROM ins_srtdiscipline
|
||||
WHERE ins_srtdiscipline_verwijder IS NULL
|
||||
AND UPPER (ins_srtdiscipline_omschrijving) =
|
||||
UPPER (TRIM (v_srtdiscipline_omschrijving));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_srtdiscipline_key := NULL;
|
||||
END;
|
||||
v_errorhint := 'NEN code niet gevonden: ' || v_kostensoort_refcode;
|
||||
v_kostensoort_key := NULL;
|
||||
IF v_kostensoort_refcode IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT prs_kostensoort_key
|
||||
INTO v_kostensoort_key
|
||||
FROM prs_kostensoort
|
||||
WHERE UPPER (prs_kostensoort_refcode) =
|
||||
UPPER (TRIM (v_kostensoort_refcode));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Controleer vakgroep';
|
||||
|
||||
SELECT ins_discipline_key
|
||||
INTO v_discipline_key
|
||||
FROM ins_tab_discipline
|
||||
WHERE ins_discipline_verwijder IS NULL
|
||||
AND ins_srtdiscipline_key = v_srtdiscipline_key
|
||||
AND UPPER (ins_discipline_omschrijving) =
|
||||
UPPER (TRIM (v_discipline_omschrijving));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_discipline_key := NULL;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Controleer nen code';
|
||||
|
||||
SELECT prs_kostensoort_key
|
||||
INTO v_kostensoort_key
|
||||
FROM prs_kostensoort
|
||||
WHERE UPPER (prs_kostensoort_refcode) =
|
||||
UPPER (TRIM (v_kostensoort_refcode));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_kostensoort_key := NULL;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Controleer leverancier';
|
||||
|
||||
SELECT prs_bedrijf_key
|
||||
v_errorhint := 'Leverancier niet gevonden: ' || v_leverancier_nr;
|
||||
v_bedrijf_key := NULL;
|
||||
IF v_leverancier_nr IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT prs_bedrijf_key
|
||||
INTO v_bedrijf_key
|
||||
FROM prs_bedrijf
|
||||
WHERE prs_bedrijf_verwijder IS NULL
|
||||
AND UPPER (prs_leverancier_nr) =
|
||||
UPPER (TRIM (v_leverancier_nr));
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_bedrijf_key := NULL;
|
||||
END;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errorhint, '');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Controleer opslag';
|
||||
v_opslag_txt := REPLACE (v_opslag_txt, ',', '.');
|
||||
@@ -1785,6 +1918,8 @@ BEGIN
|
||||
v_errorhint := 'Controleer vervaldatum';
|
||||
v_eind := TO_DATE (v_eind_txt, 'dd-mm-yyyy');
|
||||
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
INSERT INTO vbxx_imp_opslag (
|
||||
imp_opslag_key,
|
||||
alg_locatie_key,
|
||||
@@ -1806,6 +1941,7 @@ BEGIN
|
||||
v_begin,
|
||||
v_eind,
|
||||
SYSDATE);
|
||||
END IF;
|
||||
ELSE
|
||||
IF rec1.fac_imp_file_index = 1 THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
@@ -1882,7 +2018,7 @@ AS
|
||||
FROM vbxx_imp_opslag o,
|
||||
alg_locatie l,
|
||||
ins_srtdiscipline sd,
|
||||
mld_discipline d,
|
||||
ins_tab_discipline d,
|
||||
prs_kostensoort k,
|
||||
prs_bedrijf b
|
||||
WHERE o.alg_locatie_key = l.alg_locatie_key(+)
|
||||
@@ -5350,11 +5486,11 @@ BEGIN
|
||||
AND fin_kenmerk_verwijder IS NULL;
|
||||
|
||||
-- CUST: Voor vullen van het gebouwkenmerk op factuurregelniveau
|
||||
SELECT MIN (fin_kenmerk_key)
|
||||
INTO c_kenmerk_key_gebouw
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_code = 'GEBOUW'
|
||||
AND fin_kenmerk_verwijder IS NULL;
|
||||
SELECT MIN (fin_kenmerk_key)
|
||||
INTO c_kenmerk_key_gebouw
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_code = 'GEBOUW'
|
||||
AND fin_kenmerk_verwijder IS NULL;
|
||||
|
||||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||||
FOR rec IN cfactuur
|
||||
@@ -5572,7 +5708,7 @@ BEGIN
|
||||
SET fr.fin_factuurregel_referentie = v_locatie_code
|
||||
WHERE fr.fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
|
||||
IF v_gebouw_key IS NOT NULL
|
||||
IF v_gebouw_key IS NOT NULL AND c_kenmerk_key_gebouw IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
||||
fin_factuurregel_key,
|
||||
|
||||
Reference in New Issue
Block a user