Files
Database/BES/BES_VIE.SRC
Jos Groot Lipman f64ec0c724 FSN#1069
svn path=/Database/trunk/; revision=8855
2004-11-09 12:31:20 +00:00

229 lines
8.9 KiB
Plaintext

#ifdef BES // 03-11-2000 PF
/* REVISIONS:
*
* 03-03-2004 BIV View bes_item_prijs (AEG) added,
* 24-07-2003 BIV View bes_bestelopdr_xmlsource changed - FSN #432.
* 03-11-20000 PF CREATION (concept).
*/
#include "comsql.h"
CREATE_VIEW(BES_discipline, BES_BIBLIOTHEEK_PRIVILEGE)
AS
SELECT * FROM ALL_discipline WHERE ins_discipline_module = 'BES';
DEFINIEER_VIEW_AANWEZIG(BES_discipline, ins_discipline_verwijder,
BES_v_aanwezigdiscipline,BES_BIBLIOTHEEK_PRIVILEGE);
CREATE_VIEW(BES_V_AANWEZIGSRTGROEP, BES_BIBLIOTHEEK_PRIVILEGE)
AS
SELECT * FROM ins_srtgroep WHERE ins_srtgroep.ins_srtgroep_verwijder IS NULL AND
ins_discipline_key IN (SELECT ins_discipline_key FROM BES_v_aanwezigdiscipline);
CREATE_VIEW(BES_V_AANWEZIGSRTDEEL, BES_BIBLIOTHEEK_PRIVILEGE)
AS SELECT * FROM ins_srtdeel WHERE ins_srtdeel.ins_srtdeel_verwijder IS NULL AND
ins_srtgroep_key IN (SELECT ins_srtgroep_key FROM BES_v_aanwezigsrtgroep);
CREATE_VIEW(BES_BESTELOPDR_XMLSOURCE, BES_BIBLIOTHEEK_PRIVILEGE)
AS SELECT
b.BES_BESTELOPDR_KEY bo_key,
b.BES_BESTELOPDR_OPMERKING o_cmnts,
bd.PRS_BEDRIJF_KEY b_key,
bd.PRS_BEDRIJF_NAAM b_name,
bd.PRS_BEDRIJF_POST_ADRES b_pa,
bd.PRS_BEDRIJF_POST_POSTCODE b_pc,
bd.PRS_BEDRIJF_POST_PLAATS b_pp,
bd.PRS_BEDRIJF_TELEFOON b_pph,
bd.PRS_BEDRIJF_FAX b_pf,
bd.PRS_OVEREENKOMST_NR b_cnt,
s.INS_SRTDEEL_OMSCHRIJVING i_name,
NVL(s.INS_SRTDEEL_EENHEID,'') i_measuring_unts,
NVL(BES_BESTELOPDR_ITEM_PRIJS, 0) p_price,
bi.bes_bestelopdr_item_aantal i_cnt,
s.INS_SRTDEEL_KEY i_key,
NVL(ml.MLD_ADRES_BEZOEK_POSTCODE, ' ') d_bpc,
NVL(ml.MLD_ADRES_BEZOEK_ADRES, ' ') d_bpa,
NVL(ml.MLD_ADRES_BEZOEK_PLAATS, ' ') d_bpp,
NVL(mf.MLD_ADRES_BEZOEK_ADRES, ' ') in_bpa,
NVL(mf.MLD_ADRES_BEZOEK_POSTCODE,' ') in_bpc,
NVL(mf.MLD_ADRES_BEZOEK_PLAATS, ' ') in_bpp,
DATE_TO_CHAR(NVL(bes_bestelopdr_datum, SYSDATE), 'YYYY-MM-DD')||'T'||
DATE_TO_CHAR(NVL(bes_bestelopdr_datum, SYSDATE), 'HH24:MI:SS') iso_date,
bd.PRS_BEDRIJF_XSL b_xsl, s.INS_SRTDEEL_PRIJS s_pr,
NVL(bi.bes_bestelopdr_item_omschrijv,' ') i_om,
NVL(bd.PRS_BEDRIJF_EMAIL, ' ') b_email,
DATE_TO_CHAR(NVL(bes_bestelopdr_datum, SYSDATE), 'YYYY-MM-DD') o_date,
NVL(ml.MLD_ADRES_POST_ADRES,' ') d_pa,
NVL(mf.MLD_ADRES_POST_ADRES, ' ') in_pa,
d.INS_DISCIPLINE_KEY d_key,
s.INS_SRTDEEL_NR i_nr,
s.INS_SRTDEEL_PRIJS i_price,
b.BES_BESTELOPDR_STATUS b_status,
be.PRS_PERSLID_KEY p_key
FROM
#ifdef MS_SQL
BES_BESTELOPDR b
INNER JOIN BES_BESTELOPDR_ITEM bi ON bi.BES_BESTELOPDR_KEY=b.BES_BESTELOPDR_KEY
#else
BES_BESTELOPDR b,
BES_BESTELOPDR_ITEM bi
#endif
_LEFT_JOIN(BES_BESTELLING_ITEM bei, bi.BES_BESTELOPDR_KEY= bei.BES_BESTELOPDR_KEY AND bi.INS_SRTDEEL_KEY=bei.INS_SRTDEEL_KEY)
_LEFT_JOIN(BES_BESTELLING be, bei.BES_BESTELLING_KEY= be.BES_BESTELLING_KEY)
_LEFT_JOIN(MLD_ADRES ml, b.MLD_ADRES_KEY_LEV=ml.MLD_ADRES_KEY)
_LEFT_JOIN(MLD_ADRES mf, b.MLD_ADRES_KEY_FAC=mf.MLD_ADRES_KEY),
bes_v_aanwezigdiscipline d,
ins_srtgroep g,
ins_srtdeel s,
PRS_BEDRIJF bd
WHERE d.INS_DISCIPLINE_KEY=g.INS_DISCIPLINE_KEY AND
g.INS_SRTGROEP_KEY=s.INS_SRTGROEP_KEY AND
s.INS_SRTDEEL_KEY=bi.INS_SRTDEEL_KEY AND
b.PRS_BEDRIJF_KEY=bd.PRS_BEDRIJF_KEY
#ifndef MS_SQL
AND
bi.BES_BESTELOPDR_KEY=b.BES_BESTELOPDR_KEY AND
bi.BES_BESTELOPDR_KEY= bei.BES_BESTELOPDR_KEY(+) AND
bi.INS_SRTDEEL_KEY=bei.INS_SRTDEEL_KEY(+) AND
bei.BES_BESTELLING_KEY= be.BES_BESTELLING_KEY(+) AND
b.MLD_ADRES_KEY_LEV=ml.MLD_ADRES_KEY(+) AND
b.MLD_ADRES_KEY_FAC=mf.MLD_ADRES_KEY(+)
#endif
;
CREATE_VIEW(BES_ITEM_PRIJS,BES_BIBLIOTHEEK_PRIVILEGE)
( BES_BESTELLING_ITEM_KEY,
PRIJS ) AS
SELECT bi.bes_bestelling_item_key, boi.bes_bestelopdr_item_prijs
FROM BES_BESTELLING_ITEM bi, BES_BESTELOPDR_ITEM boi
WHERE bi.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bi.ins_srtdeel_key = boi.ins_srtdeel_key
UNION
SELECT bi.bes_bestelling_item_key, i.ins_srtdeel_prijs
FROM BES_BESTELLING_ITEM bi, INS_SRTDEEL i
WHERE bi.bes_bestelopdr_key IS NULL
AND bi.ins_srtdeel_key = i.ins_srtdeel_key;
CREATE_VIEW(bes_v_catalogus_prijsverschil,BES_NORMAAL_PRIVILEGE)
( prijsverschil,
fclt_f_pn,
omschrijving,
nieuwe_prijs,
huidige_prijs,
fclt_f_catalogus ) AS
SELECT NUMBER_TO_CHAR ( ABS (f.ins_srtdeel_prijs - i.ins_srtdeel_prijs)
/ i.ins_srtdeel_prijs
* 100,
'9990.00'
),
[skip]
#ifdef MS_SQL
case SIGN(f.ins_srtdeel_prijs - i.ins_srtdeel_prijs)
when -1 then 'NEG'
when 0 then 'NUL'
when 1 then 'POS'
else 'def'
end,
#else
DECODE(SIGN(f.ins_srtdeel_prijs - i.ins_srtdeel_prijs), -1, 'NEG', 0, 'NUL', 1, 'POS', 'def'),
#endif
[/skip]
i.ins_srtdeel_omschrijving,
NUMBER_TO_CHAR (f.ins_srtdeel_prijs, '99990.00'),
NUMBER_TO_CHAR (i.ins_srtdeel_prijs, '99990.00'), f.bes_impcatalogus_id
FROM bes_impcatalogus f, ins_srtdeel i, ins_srtgroep g
WHERE i.ins_srtdeel_nr = f.ins_srtdeel_nr
AND i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
AND i.ins_srtdeel_prijs <> f.ins_srtdeel_prijs
AND i.ins_srtdeel_prijs <> 0
AND i.ins_srtdeel_verwijder IS NULL
;
CREATE_VIEW(bes_v_catalogus_verschilovz,BES_NORMAAL_PRIVILEGE)
( omschrijving,aantal, fclt_f_catalogus ) AS
SELECT '1. aantal artikelen huidige catalogus: ', TO_CHAR (COUNT (*)),
f.bes_impcatalogus_id
FROM (SELECT b.bes_impcatalogus_id, b.ins_discipline_key
FROM bes_impcatalogus b
GROUP BY b.bes_impcatalogus_id, b.ins_discipline_key) f,
bes_v_aanwezigsrtdeel i,
ins_srtgroep g
WHERE i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '2. aantal artikelen nieuwe catalogus: ', TO_CHAR (COUNT (*)),
f.bes_impcatalogus_id
FROM bes_impcatalogus f
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '3. aantal artikelen in beide catalogi: ', TO_CHAR (COUNT (*)),
bes_impcatalogus_id
FROM (SELECT i.ins_srtdeel_nr, g.ins_discipline_key, bes_impcatalogus_id
FROM bes_v_aanwezigsrtdeel i, ins_srtgroep g, bes_impcatalogus f
WHERE i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
AND i.ins_srtdeel_nr = f.ins_srtdeel_nr)
GROUP BY bes_impcatalogus_id
UNION
SELECT '4. aantal gewijzigde artikelen(prijs): ', TO_CHAR (COUNT (*)),
f.bes_impcatalogus_id
FROM bes_v_aanwezigsrtdeel i, ins_srtgroep g, bes_impcatalogus f
WHERE i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
AND i.ins_srtdeel_nr = f.ins_srtdeel_nr
AND i.ins_srtdeel_prijs <> f.ins_srtdeel_prijs
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '5. aantal gewijzigde artikelen(omschrijving): ',
TO_CHAR (COUNT (*)), f.bes_impcatalogus_id
FROM bes_v_aanwezigsrtdeel i, ins_srtgroep g, bes_impcatalogus f
WHERE i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
AND i.ins_srtdeel_nr = f.ins_srtdeel_nr
AND i.ins_srtdeel_omschrijving <> f.ins_srtdeel_omschrijving
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '6. aantal gewijzigde artikelen(vervaldatum): ', TO_CHAR (COUNT (*)),
f.bes_impcatalogus_id
FROM bes_v_aanwezigsrtdeel i, ins_srtgroep g, bes_impcatalogus f
WHERE i.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = f.ins_discipline_key
AND i.ins_srtdeel_nr = f.ins_srtdeel_nr
AND i.ins_srtdeel_vervaldatum <> f.ins_srtdeel_vervaldatum
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '7. aantal artikelengroepen huidige catalogus: ',
TO_CHAR (COUNT (DISTINCT (ins_srtgroep_omschrijving))),
f.bes_impcatalogus_id
FROM (SELECT b.bes_impcatalogus_id, b.ins_discipline_key
FROM bes_impcatalogus b
GROUP BY b.bes_impcatalogus_id, b.ins_discipline_key) f,
bes_v_aanwezigsrtgroep g
WHERE g.ins_discipline_key = f.ins_discipline_key
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '8. aantal artikelgroepen nieuwe catalogus: ',
TO_CHAR (COUNT (DISTINCT (ins_srtgroep_omschrijving))),
f.bes_impcatalogus_id
FROM bes_impcatalogus f
GROUP BY f.bes_impcatalogus_id
UNION
SELECT '9. aantal artikelgroepen in beide catalogi: ',
TO_CHAR (COUNT (DISTINCT (ins_srtgroep_omschrijving))),
bes_impcatalogus_id
FROM (SELECT g.ins_srtgroep_omschrijving, g.ins_discipline_key,
bes_impcatalogus_id
FROM bes_v_aanwezigsrtgroep g, bes_impcatalogus f
WHERE g.ins_discipline_key = f.ins_discipline_key
AND g.ins_srtgroep_upper = UPPER (f.ins_srtgroep_omschrijving))
GROUP BY bes_impcatalogus_id;
#endif // BES