MARX#89738 Systeemfout bij rapport 'Premium Staffelkorting'

svn path=/Mareon/trunk/; revision=69687
This commit is contained in:
Marcel Bourseau
2025-07-07 14:59:24 +00:00
parent 2b6c392f68
commit 3e3f91daa5

234
sql/Onces/MARX89738.sql Normal file
View File

@@ -0,0 +1,234 @@
--
-- $Id$
--
-- Korte beschrijving wat het script doet
-- Voor dbuser invullen: - indien script voor 1 klant is: 'MARX' (de klantcode, zoals vermeld in fac_version_cust)
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
--
DEFINE thisfile = 'MARX89738.SQL'
DEFINE dbuser = '^MARX'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- MARX#89738 Systeemfout bij rapport 'Premium Staffelkorting'
CREATE OR REPLACE VIEW mar_v_basic_premium_lev
AS
SELECT m.mld_melding_key,
o.mld_opdr_key,
so.mld_statusopdr_key,
p.prs_perslid_key,
a.prs_afdeling_key,
b_woco.prs_bedrijf_key
prs_bedrijf_key_opdrachtgever,
b_lev.prs_bedrijf_key
prs_bedrijf_key_opdrachtnemer,
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
mld_opdr_nr,
b_woco.prs_leverancier_nr
opdrachtgever_gln,
b_woco.prs_bedrijf_naam
opdrachtgever_naam,
o.mld_opdr_id,
o.mld_opdr_omschrijving,
b_lev.prs_leverancier_nr
opdrachtnemer_gln,
b_lev.prs_bedrijf_naam
opdrachtnemer_naam,
o.mld_opdr_kosten,
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)
mld_opdr_aanmaak,
o.mld_opdr_verzonden,
o.mld_opdr_datumbegin,
o.mld_opdr_einddatum,
o.mld_opdr_plandatum,
o.mld_opdr_plandatum2,
(SELECT MAX (bb.prs_bedrijf_bedrijf_status)
FROM prs_bedrijf_bedrijf bb
WHERE bb.prs_bedrijf_key2 = b_lev.prs_bedrijf_key)
prs_bedrijf_is_premium,
DECODE ((SELECT MAX (bb.prs_bedrijf_bedrijf_status)
FROM prs_bedrijf_bedrijf bb
WHERE bb.prs_bedrijf_key2 = b_lev.prs_bedrijf_key),
1, 'Ja',
'Nee')
prs_bedrijf_is_premium_janee,
CASE
WHEN bb.prs_bedrijf_bedrijf_startdatum <= TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
AND TRUNC(COALESCE (bb.prs_bedrijf_bedrijf_einddatum, o.mld_opdr_verzonden)) >= TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
THEN
1
ELSE
0
END
mld_opdr_is_premium,
CASE
WHEN bb.prs_bedrijf_bedrijf_startdt2 <= TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
AND TRUNC (COALESCE (bb.prs_bedrijf_bedrijf_einddt2, o.mld_opdr_verzonden)) >= TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
THEN
1
ELSE
0
END
mld_opdr_is_premium_plan,
COALESCE (bb.prs_bedrijf_bedrijf_fee1, 0) prs_woco_premium_tarief,
COALESCE (bb.prs_bedrijf_bedrijf_fee2, 0) prs_bedrijf_premium_tarief,
COALESCE (bb.prs_bedrijf_bedrijf_fee3, 0) prs_woco_premiumplan_tarief,
COALESCE (bb.prs_bedrijf_bedrijf_fee4, 0) prs_bedrijf_premiumplan_tarief,
bb.prs_bedrijf_bedrijf_startdatum prs_bedrijf_premium_start,
bb.prs_bedrijf_bedrijf_einddatum prs_bedrijf_premium_eind,
bb.prs_bedrijf_bedrijf_startdt2 prs_bedrijf_premiumplan_start,
bb.prs_bedrijf_bedrijf_einddt2 prs_bedrijf_premiumplan_eind,
(SELECT fac.safe_to_number (prs_kenmerklink_waarde)
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 61
AND prs_kenmerklink_niveau = 'B'
AND prs_link_key = b_lev.prs_bedrijf_key) planbord_auth_code
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline d,
ins_srtdiscipline sd,
prs_bedrijf b_woco,
prs_afdeling a,
prs_perslid p,
mld_opdr o,
mld_statusopdr so,
prs_bedrijf b_lev,
prs_bedrijf_bedrijf bb
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
AND d.ins_discipline_key = sm.mld_ins_discipline_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND b_woco.prs_bedrijf_key = a.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND so.mld_statusopdr_key = o.mld_statusopdr_key
AND o.mld_uitvoerende_keys = b_lev.prs_bedrijf_key
AND bb.prs_bedrijf_key1 = b_woco.prs_bedrijf_key
AND bb.prs_bedrijf_key2 = b_lev.prs_bedrijf_key;
CREATE OR REPLACE VIEW mar_v_tmp_premium_staffelkorting
AS
SELECT mld_melding_key,
mld_opdr_key,
mld_statusopdr_key,
prs_perslid_key,
prs_afdeling_key,
prs_bedrijf_key_opdrachtgever,
prs_bedrijf_key_opdrachtnemer,
mld_opdr_nr,
opdrachtgever_gln,
opdrachtgever_naam,
mld_opdr_id,
mld_opdr_omschrijving,
opdrachtnemer_gln,
opdrachtnemer_naam,
mld_opdr_kosten,
mld_opdr_aanmaak,
mld_opdr_verzonden,
mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_opdr_plandatum,
mld_opdr_plandatum2,
prs_bedrijf_is_premium,
prs_bedrijf_is_premium_janee,
mld_opdr_is_premium,
mld_opdr_is_premium_plan,
prs_woco_premium_tarief,
prs_bedrijf_premium_tarief,
prs_woco_premiumplan_tarief,
prs_bedrijf_premiumplan_tarief,
prs_bedrijf_premium_start,
prs_bedrijf_premium_eind,
prs_bedrijf_premiumplan_start,
prs_bedrijf_premiumplan_eind,
planbord_auth_code,
prs_bedrijf_premium_tarief * mld_opdr_is_premium mld_opdr_is_premium_bedrag,
prs_woco_premium_tarief * mld_opdr_is_premium mld_opdr_woco_premium_bedrag,
prs_bedrijf_premiumplan_tarief * mld_opdr_is_premium_plan mld_opdr_premiumplan_bedrag,
prs_woco_premiumplan_tarief * mld_opdr_is_premium_plan mld_woco_premiumplan_bedrag,
CASE
WHEN planbord_auth_code IN (1,2) THEN (SELECT fac.safe_to_number (fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 25)
ELSE 0
END prs_bedrijf_planbord_tarief,
CASE
WHEN planbord_auth_code = 2 AND prs_bedrijf_premiumplan_tarief > 0 THEN 'Mareon Planbord + Premium Planning + Groene Planning'
WHEN planbord_auth_code = 1 AND prs_bedrijf_premiumplan_tarief > 0 THEN 'Mareon Planbord + Premium Planning'
WHEN planbord_auth_code = 0 AND prs_bedrijf_premiumplan_tarief > 0 THEN 'Mareon Premium Planning'
WHEN planbord_auth_code = 2 THEN 'Mareon Planbord + Groene Planning'
WHEN planbord_auth_code = 1 THEN 'Mareon Planbord'
ELSE ''
END prs_bedrijf_planmodules
FROM mar_v_basic_premium_lev;
CREATE OR REPLACE VIEW mar_v_premium_staffelkorting
AS
SELECT opdrachtnemer_gln,
opdrachtnemer_naam,
TO_CHAR (mld_opdr_aanmaak, 'YYYY-Q')
AS mld_opdr_aanmaak_kwartaal,
SUM (mld_opdr_is_premium)
AS mld_opdr_aantal_premium,
prs_woco_premium_tarief,
prs_bedrijf_premium_tarief,
SUM (mld_opdr_is_premium_bedrag)
AS mld_premium_bedrag_excl_kort,
prs_bedrijf_is_premium_janee,
GREATEST (0, LEAST (2500 - 1000, SUM (mld_opdr_is_premium) - 1000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 32))
AS mld_korting_staffel1000_2500,
GREATEST (0, LEAST (5000 - 2500, SUM (mld_opdr_is_premium) - 2500)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 33))
AS mld_korting_staffel2500_5000,
GREATEST (0, LEAST (10000 - 5000, SUM (mld_opdr_is_premium) - 5000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 34))
AS mld_korting_staffel5000_10000,
GREATEST (0, LEAST (50000 - 10000, SUM (mld_opdr_is_premium) - 10000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 35))
AS mld_korting_staffel10000_50000,
GREATEST (0, SUM (mld_opdr_is_premium) - 50000) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 36))
AS mld_korting_staffel_50000plus,
(GREATEST (0, LEAST (2500 - 1000, SUM (mld_opdr_is_premium) - 1000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 32)))
+ (GREATEST (0, LEAST (5000 - 2500, SUM (mld_opdr_is_premium) - 2500)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 33)))
+ (GREATEST (0, LEAST (10000 - 5000, SUM (mld_opdr_is_premium) - 5000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 34)))
+ (GREATEST (0, LEAST (50000 - 10000, SUM (mld_opdr_is_premium) - 10000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 35)))
+ (GREATEST (0, SUM (mld_opdr_is_premium) - 50000) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 36)))
AS mld_korting_totaal,
SUM (mld_opdr_is_premium_bedrag)
- ( (GREATEST (0, LEAST (2500 - 1000, SUM (mld_opdr_is_premium) - 1000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 32)))
+ (GREATEST (0, LEAST (5000 - 2500, SUM (mld_opdr_is_premium) - 2500)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 33)))
+ (GREATEST (0, LEAST (10000 - 5000, SUM (mld_opdr_is_premium) - 5000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 34)))
+ (GREATEST (0, LEAST (50000 - 10000, SUM (mld_opdr_is_premium) - 10000)) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 35)))
+ (GREATEST (0, SUM (mld_opdr_is_premium) - 50000) * ((SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 31) - (SELECT fac.safe_to_number(fac_usrdata_omschr) FROM fac_usrdata WHERE fac_usrdata_key = 36))))
AS mld_premium_bedrag_incl_kort
FROM mar_v_tmp_premium_staffelkorting prem
WHERE prem.prs_woco_premium_tarief = 0 AND prem.prs_bedrijf_is_premium = 1
GROUP BY opdrachtnemer_gln,
opdrachtnemer_naam,
TO_CHAR (mld_opdr_aanmaak, 'YYYY-Q'),
prs_woco_premium_tarief,
prs_bedrijf_premium_tarief,
prs_bedrijf_is_premium_janee;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile