MDUX#45047 afhankelijk van punchout andere prijs te gebruiken

svn path=/Database/trunk/; revision=36365
This commit is contained in:
Peter Feij
2017-12-13 16:43:35 +00:00
parent 6d50769485
commit 80744e6aa0

View File

@@ -29,7 +29,7 @@ AS
FUNCTION calcopdrachtkortingbedrag (pprs_bedrijf_key IN NUMBER, pbrutoopdrachtbedrag IN NUMBER)
RETURN NUMBER;
FUNCTION calcbesartikelkortingsprijs (pbes_bestelling_item_key IN NUMBER)
FUNCTION calcbesartikelkortingsprijs (pbes_bestelling_item_key IN NUMBER, ppunchout IN NUMBER)
RETURN NUMBER;
FUNCTION calcbesopdrachtkorting (pbes_bestelopdr_key IN NUMBER, pautoupdate IN NUMBER)
@@ -334,12 +334,14 @@ AS
RETURN lkortingsbedrag;
END;
FUNCTION calcbesartikelkortingsprijs (pbes_bestelling_item_key IN NUMBER)
FUNCTION calcbesartikelkortingsprijs (pbes_bestelling_item_key IN NUMBER, ppunchout IN NUMBER)
RETURN NUMBER
AS
lstaffelgroep bes_staffeltabel.bes_staffeltabel_groep%TYPE;
lstaffeltabelkey bes_staffeltabel.bes_staffeltabel_key%TYPE;
lprijs bes_srtdeel_prijs.bes_srtdeel_prijs_prijs%TYPE;
laanvraagprijs bes_srtdeel_prijs.bes_srtdeel_prijs_prijs%TYPE;
lcatalogusprijs bes_srtdeel_prijs.bes_srtdeel_prijs_prijs%TYPE;
lprijs bes_srtdeel_prijs.bes_srtdeel_prijs_prijs%TYPE;
lstaffeltype bes_staffeltabel.fac_typestaffel_key%TYPE;
lstaffelkorting bes_staffel.bes_staffel_korting%TYPE;
lkortingsprijs NUMBER;
@@ -356,12 +358,14 @@ AS
SELECT st.bes_staffeltabel_groep,
sd.bes_staffeltabel_key,
st.fac_typestaffel_key,
bi.bes_bestelling_item_brutoprijs,
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL) bes_srtdeel_prijs,
bi.bes_bestelling_item_aantal
INTO lstaffelgroep,
lstaffeltabelkey,
lstaffeltype,
lprijs,
laanvraagprijs,
lcatalogusprijs,
laantalbesteld
FROM bes_srtdeel sd, bes_staffeltabel st, bes_bestelling_item bi
WHERE sd.bes_staffeltabel_key = st.bes_staffeltabel_key
@@ -371,14 +375,27 @@ AS
WHEN NO_DATA_FOUND
THEN
BEGIN
SELECT bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL) bes_srtdeel_prijs
INTO lprijs
SELECT bi.bes_bestelling_item_brutoprijs,
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL) bes_srtdeel_prijs
INTO laanvraagprijs,
lcatalogusprijs
FROM bes_srtdeel sd, bes_bestelling_item bi
WHERE sd.bes_srtdeel_key = bi.bes_srtdeel_key
AND bi.bes_bestelling_item_key = pbes_bestelling_item_key;
RETURN lprijs;
IF ppunchout = 1
THEN
RETURN laanvraagprijs;
ELSE
RETURN lcatalogusprijs;
END IF;
END;
END;
IF ppunchout = 1
THEN
lprijs := laanvraagprijs;
ELSE
lprijs := lcatalogusprijs;
END IF;
IF lstaffelgroep = 1
THEN
@@ -757,7 +774,9 @@ AS
factura_key mld_adres.mld_adres_key%TYPE;
bedrijf_email prs_bedrijf.prs_bedrijf_email%TYPE;
bedrijf_telefoon2 prs_bedrijf.prs_bedrijf_telefoon2%TYPE;
itemprijsmetkorting NUMBER (12, 6);
l_item_brutoprijs bes_bestelopdr_item.bes_bestelopdr_item_brutoprijs%TYPE;
l_item_prijs bes_bestelopdr_item.bes_bestelopdr_item_prijs%TYPE;
l_item_inkprijs bes_bestelopdr_item.bes_bestelopdr_item_inkprijs%TYPE;
besopdrachtkorting NUMBER (8, 2);
besopdrachtkosten NUMBER (8, 2);
bedrijfvolgnr NUMBER (3);
@@ -767,6 +786,7 @@ AS
bd.prs_bedrijf_naam,
s.bes_srtdeel_omschrijving,
NVL (s.bes_srtdeel_eenheid, '') bes_srtdeel_eenheid,
bi.bes_bestelling_item_brutoprijs,
bes.getsrtdeelprijs (s.bes_srtdeel_key, NULL) bes_srtdeel_prijs,
s.bes_srtdeel_key,
bi.bes_bestelling_item_key,
@@ -774,24 +794,31 @@ AS
NVL (b.mld_adres_key_lev, abd.mld_adres_key_lev) mld_adres_key_lev,
p.prs_afdeling_key,
abd.mld_adres_key_fac,
bi.bes_bestelling_item_inkprijs,
bes.getsrtdeelinkprijs (s.bes_srtdeel_key, NULL) bes_srtdeel_inkprijs,
b.bes_bestelling_parentkey,
b.prs_perslid_key
b.prs_perslid_key,
bdp.bes_disc_params_punchouturl,
bdp.bes_disc_params_freeartikel
FROM prs_bedrijf bd,
bes_srtdeel s,
bes_srtgroep g,
bes_disc_params bdp,
bes_bestelling_item bi,
bes_bestelling b,
prs_perslid p,
prs_v_afdeling d,
prs_bedrijf abd
WHERE abd.prs_bedrijf_key = d.prs_bedrijf_key
AND p.prs_afdeling_key = d.prs_afdeling_key
AND b.prs_perslid_key = p.prs_perslid_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND s.bes_srtdeel_key = bi.bes_srtdeel_key
AND s.prs_bedrijf_key = bd.prs_bedrijf_key
AND b.bes_bestelling_status IN (1, 2, 3, 4) -- om dubbelen te vermijden
AND b.bes_bestelling_key = bes_key
WHERE abd.prs_bedrijf_key = d.prs_bedrijf_key
AND p.prs_afdeling_key = d.prs_afdeling_key
AND b.prs_perslid_key = p.prs_perslid_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND g.ins_discipline_key = bdp.bes_ins_discipline_key
AND s.bes_srtgroep_key = g.bes_srtgroep_key
AND s.bes_srtdeel_key = bi.bes_srtdeel_key
AND s.prs_bedrijf_key = bd.prs_bedrijf_key
AND b.bes_bestelling_status IN (1, 2, 3, 4) -- om dubbelen te vermijden
AND b.bes_bestelling_key = bes_key
ORDER BY 1, 7;
BEGIN
-- Maakt bestelopdrachten van bestelaanvragen
@@ -910,8 +937,25 @@ AS
);
aantalopdrachtregels := 0;
END IF;
itemprijsmetkorting := bes.calcbesartikelkortingsprijs(rec1.bes_bestelling_item_key);
--DBMS_OUTPUT.put_line ('Bestelregel maken: ' || TO_CHAR (aantalopdrachtregels + 1));
-- Voor punchout gebruiken we de aanvraagprijzen, anders de catalogusprijzen (as was) voor
-- bes_bestelling_item_brutoprijs / bes_bestelopdr_item_brutoprijs
-- bes_bestelling_item_prijs / bes_bestelopdr_item_prijs
-- bes_bestelling_item_inkprijs / bes_bestelopdr_item_inkprijs
IF (rec1.bes_disc_params_punchouturl IS NOT NULL AND rec1.bes_disc_params_freeartikel = 0)
THEN
-- punchout
--DBMS_OUTPUT.put_line ('Punchoutprijzen');
l_item_brutoprijs := rec1.bes_bestelling_item_brutoprijs;
l_item_prijs := bes.calcbesartikelkortingsprijs(rec1.bes_bestelling_item_key, 1);
l_item_inkprijs := rec1.bes_bestelling_item_inkprijs;
ELSE
--DBMS_OUTPUT.put_line ('Catalogusprijzen');
l_item_brutoprijs := rec1.bes_srtdeel_prijs;
l_item_prijs := bes.calcbesartikelkortingsprijs(rec1.bes_bestelling_item_key, 0);
l_item_inkprijs := rec1.bes_srtdeel_inkprijs;
END IF;
INSERT INTO bes_bestelopdr_item
(bes_bestelopdr_item_key, bes_bestelopdr_item_posnr, bes_bestelopdr_key,
bes_bestelopdr_item_aantal, bes_bestelopdr_item_aantalontv, bes_bestelopdr_item_omschrijv,
@@ -920,8 +964,8 @@ AS
)
VALUES (bes_s_bes_bestelopdr_item_key.NEXTVAL, aantalopdrachtregels + 1, lbord_key,
rec1.bes_bestelling_item_aantal, NULL, rec1.bes_srtdeel_omschrijving,
rec1.bes_srtdeel_prijs, NULL, rec1.bes_srtdeel_inkprijs,
itemprijsmetkorting
l_item_brutoprijs, NULL, l_item_inkprijs,
l_item_prijs
);
aantalopdrachtregels := aantalopdrachtregels + 1;
UPDATE bes_bestelling_item