MDUX#45047 afhankelijk van punchout andere prijs te gebruiken
svn path=/Database/trunk/; revision=36365
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user