Files
Customer/CONN/conn.sql
Peter Feij df0d6103ff Initial version, contains usrraps.sql, fiatteurs.sql ans fip_catalog_import.sql
CONN#602
CONN#734

svn path=/Customer/trunk/; revision=12633
2004-09-30 13:15:54 +00:00

1045 lines
39 KiB
SQL

-- *
-- * FAC_V_WEB_AUTORISATIE view
-- *
CREATE OR REPLACE VIEW FAC_V_WEB_AUTORISATIE ( BEDRIJF,
FCLT_F_NAAM, FCLT_F_USERID, FCLT_F_GROEP, FCLT_F_OMSCHRIJVING
) AS SELECT B.prs_bedrijf_naam
, P.prs_perslid_upper
, P.PRS_PERSLID_OSLOGIN
, NULL
, A.Omschrijving
FROM fac_v_webgebruiker G
, prs_v_aanwezigperslid P
, PRS_AFDELING AD
, PRS_BEDRIJF B
, (SELECT ins_discipline_key KEY
, ins_discipline_module MODULE
, DECODE(ins_discipline_module,'BES','Categorie ','INS','Discipline ','MLD','Vakgroep ','REP','Categorie ',ins_discipline_module||' ')||ins_discipline_omschrijving Omschrijving
FROM INS_TAB_DISCIPLINE
WHERE ins_discipline_verwijder IS NULL) A
WHERE G.fac_gebruiker_kolomkey = A.KEY
AND G.fac_gebruiker_username=P.prs_perslid_oslogin
AND P.prs_afdeling_key = AD.prs_afdeling_key
AND AD.prs_bedrijf_key = B.prs_bedrijf_key
AND G.fac_gebruiker_module=A.MODULE
AND G.fac_groep_key IS NULL -- geen groepen
AND G.fac_gebruiker_tabel = 'INS_DISCIPLINE'
AND NOT EXISTS
(SELECT * FROM fac_v_webgebruiker WG
WHERE WG.fac_gebruiker_kolomkey = A.KEY
AND WG.fac_gebruiker_username=P.prs_perslid_oslogin
AND WG.fac_groep_key IS NOT NULL -- autorisatie van groepen hier uitsluiten
AND WG.fac_gebruiker_tabel = 'INS_DISCIPLINE'
)
UNION
SELECT B.prs_bedrijf_naam
, P.prs_perslid_upper
, P.PRS_PERSLID_OSLOGIN
, NULL
, A.omschrijving
FROM fac_v_webgebruiker G
, PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_BEDRIJF B
, (SELECT fac_functie_key KEY
,'Functie '||fac_functie_omschrijving omschrijving
FROM FAC_FUNCTIE
WHERE fac_functie_module = 'WEB') A
WHERE G.fac_functie_key = A.KEY
AND G.fac_gebruiker_username = P.prs_perslid_oslogin
AND P.prs_afdeling_key = AD.prs_afdeling_key
AND AD.prs_bedrijf_key = B.prs_bedrijf_key
AND G.fac_gebruiker_tabel IS NULL
AND G.fac_groep_key IS NULL -- geen groepen
AND NOT EXISTS
(SELECT * FROM fac_v_webgebruiker WG
WHERE WG.fac_functie_key = A.KEY
AND WG.fac_gebruiker_username=P.prs_perslid_oslogin
AND WG.fac_groep_key IS NOT NULL -- autorisatie van groepen hier uitsluiten
AND WG.fac_gebruiker_module = 'WEB'
)
UNION -- autorisatie via groepen
SELECT NULL
, NULL
, NULL
, GR.fac_groep_upper
, A.Omschrijving
FROM fac_v_webgebruiker G
, FAC_GEBRUIKERSGROEP GG
, PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_BEDRIJF B
, (SELECT ins_discipline_key KEY
, ins_discipline_module MODULE
, DECODE(ins_discipline_module,'BES','Categorie ','INS','Discipline ','MLD','Vakgroep ','REP','Categorie ',ins_discipline_module||' ')||ins_discipline_omschrijving Omschrijving
FROM INS_TAB_DISCIPLINE
WHERE ins_discipline_verwijder IS NULL) A
, FAC_GROEP GR
WHERE G.fac_gebruiker_kolomkey = A.KEY
AND G.fac_gebruiker_module=A.MODULE
AND G.fac_groep_key IS NOT NULL -- groepen
AND G.fac_groep_key=GG.fac_groep_key
AND P.prs_perslid_key=GG.prs_perslid_key
AND P.prs_afdeling_key = AD.prs_afdeling_key
AND AD.prs_bedrijf_key = B.prs_bedrijf_key
AND GG.fac_groep_key=GR.fac_groep_key
AND G.fac_gebruiker_tabel = 'INS_DISCIPLINE'
UNION -- autorisatie via groepen
SELECT NULL
, NULL
, NULL
, GR.fac_groep_upper
, A.omschrijving
FROM fac_v_webgebruiker G
, (SELECT fac_functie_key KEY
, 'Functie '||fac_functie_omschrijving omschrijving
FROM FAC_FUNCTIE
WHERE fac_functie_module = 'WEB') A
, FAC_GEBRUIKERSGROEP GG
, PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_BEDRIJF B
, FAC_GROEP GR
WHERE G.fac_functie_key = A.KEY
AND G.fac_groep_key IS NOT NULL -- groepen
AND G.fac_groep_key=GG.fac_groep_key
AND GG.fac_groep_key=GR.fac_groep_key
AND P.prs_perslid_key=GG.prs_perslid_key
AND P.prs_afdeling_key = AD.prs_afdeling_key
AND AD.prs_bedrijf_key = B.prs_bedrijf_key
AND G.fac_gebruiker_tabel IS NULL
UNION -- tot welke groep hoort persoon
SELECT B.prs_bedrijf_naam
, P.prs_perslid_upper
, P.PRS_PERSLID_OSLOGIN
, GR.fac_groep_upper
, NULL
FROM fac_v_webgebruiker G
, PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_BEDRIJF B
, FAC_GEBRUIKERSGROEP GG
, FAC_GROEP GR
WHERE G.fac_groep_key IS NOT NULL -- groepen
AND G.fac_groep_key=GG.fac_groep_key
AND GG.fac_groep_key=GR.fac_groep_key
AND P.prs_perslid_key=GG.prs_perslid_key
AND P.prs_afdeling_key = AD.prs_afdeling_key
AND AD.prs_bedrijf_key = B.prs_bedrijf_key
AND G.fac_gebruiker_tabel IS NULL;
-- *
-- * conn_fiattering view
-- *
create or replace view conn_fiattering AS
SELECT p.prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')') Besteller,
RTRIM(K2.prs_kenmerklink_waarde) Limiet1,
F1.prs_perslid_naam||DECODE(F1.prs_perslid_voorletters,null,'',', '||F1.prs_perslid_voorletters)||DECODE(F1.prs_perslid_voornaam,null,'',' ('||F1.prs_perslid_voornaam||')') Fiatteur1,
RTRIM(K4.prs_kenmerklink_waarde) Limiet2,
F2.prs_perslid_naam||DECODE(F2.prs_perslid_voorletters,null,'',', '||F2.prs_perslid_voorletters)||DECODE(F2.prs_perslid_voornaam,null,'',' ('||F2.prs_perslid_voornaam||')') Fiatteur2,
RTRIM(K5.prs_kenmerklink_waarde) Limiet3
FROM prs_v_aanwezigperslid P, prs_kenmerklink K1, prs_kenmerklink K2, prs_v_aanwezigperslid F1, prs_kenmerklink K3, prs_kenmerklink K4, prs_kenmerklink K5, prs_v_aanwezigperslid F2
WHERE K1.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K1.prs_link_key(+)=P.prs_perslid_key
AND K2.prs_kenmerk_key(+)=1001 -- Limiet
AND K2.prs_link_key(+)=P.prs_perslid_key
AND F1.prs_perslid_key(+) = K1.prs_kenmerklink_waarde
AND K3.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K3.prs_link_key(+)=F1.prs_perslid_key
AND F2.prs_perslid_key(+) = K3.prs_kenmerklink_waarde
AND K4.prs_kenmerk_key(+)=1001 -- Limiet
AND K4.prs_link_key(+)=F1.prs_perslid_key
AND K5.prs_kenmerk_key(+)=1001 -- Limiet
AND K5.prs_link_key(+)=K3.prs_kenmerklink_waarde
ORDER BY 1;
-- *
-- * conn_fiattering view
-- *
CREATE OR REPLACE VIEW CONN_MI_RAPPORT_VEST_MAN ( NR,
FCLT_F_MAAND, NAAM, FCLT_F_EENHEID, AFDELING,
FCLT_F_KOSTENPLAATS, AANTAL, FCLT_F_CATALOGUS, PRIJS
) AS SELECT
b.bes_bestelling_key c1,
TO_CHAR(bes_bestelling_datum, 'YYMM') C3,
prs_perslid_naam||DECODE(prs_perslid_voorletters,NULL,'',', '||prs_perslid_voorletters) c6,
e.prs_eenheid_omschrijving c5,
a.prs_afdeling_omschrijving c7 ,
b.BES_BESTELLING_ORDERNR kp,
SUM( bi.bes_bestelling_item_aantal) c9,
d.INS_DISCIPLINE_OMSCHRIJVING d1,
SUM( bi.bes_bestelling_item_aantal * srt.INS_SRTDEEL_PRIJS) c10
FROM
BES_BESTELLING_ITEM bi,
INS_SRTDEEL srt,
BES_BESTELLING b,
BES_BESTELLINGSTATUSES s,
PRS_PERSLID p,
PRS_AFDELING a,
INS_SRTGROEP g,
INS_TAB_DISCIPLINE d,
PRS_EENHEID e
WHERE
b.bes_bestelling_status = s.BES_BESTELLINGSTATUSES_KEY AND
bi.INS_SRTDEEL_key = srt.INS_SRTDEEL_key AND
bi.BES_bestelling_KEY = b.BES_bestelling_KEY AND
p.prs_perslid_key = b.prs_perslid_key AND
e.prs_eenheid_key (+) = a.prs_eenheid_key AND
b.prs_afdeling_key = a.prs_afdeling_key AND
srt.INS_SRTGROEP_KEY = g.INS_SRTGROEP_KEY AND
g.INS_DISCIPLINE_KEY = d.INS_DISCIPLINE_KEY AND
(b.bes_bestelling_status = 6 OR b.bes_bestelling_status = 7) AND
b.BES_BESTELLING_ORDERNR LIKE '%'
GROUP BY
b.bes_bestelling_key,
TO_CHAR(bes_bestelling_datum, 'YYMM'),
prs_perslid_naam||DECODE(prs_perslid_voorletters,NULL,'',', '||prs_perslid_voorletters),
e.prs_eenheid_omschrijving,
a.prs_afdeling_omschrijving,
d.INS_DISCIPLINE_OMSCHRIJVING,
b.BES_BESTELLING_ORDERNR;
delete from fac_usrrap;
commit;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('Overzicht fiattering','conn_fiattering','Overzicht van de medewerkers en bestellimiet en bijbehorende fiatteur');
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('Autorisatieschema','FAC_V_WEB_AUTORISATIE','Schema van webgebruikers en groepen met hun rechten.');
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values ('Rapport vestingsmanager', 'CONN_MI_RAPPORT_VEST_MAN','Rapport Kantoorartikelen voor vestingsmanager');
commit;
CREATE OR REPLACE VIEW CONN_RUIMTEGEG ( COMPLEX,
GEBOUW, ALG_GEBOUW_KEY, VERDIEPING, ALG_RUIMTE_KEY,
RUIMTE, OMSCHRIJVING, RUIMTESOORT, TARIEFTYPE,
HUURDER, HUURDERNR, CONTRACTNR, GEINDEXEERDEHUUR,
BUDGETCODE, BUSINESSUNIT, GETEKENDOPPERVLAKTE, COMMOPPERVLAKTE,
VERDIEPINGNR ) AS SELECT
alg_locatie_code Complex,
alg_gebouw_omschrijving gebouw, ALG_GEBOUW_KEY,
alg_verdieping_upper Verdieping,
alg_ruimte_key,
alg_ruimte_nr Ruimte,
E.Omschrijving Omschrijving,
e.Ruimtesoort Ruimtesoort,
e.TariefType Tarieftype,
E.Huurder Huurder,
E.Huurdernr HuurderNr,
E.NieuwContractnr ContractNr,
E.GEINDEXEERDEHUUR,
e.Budgetcode BudgetCode,
e.Businessunit Businessunit,
TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(alg_ruimte_bruto_vloeropp) ,'99999999D')) GetekendOppervlakte,
TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(E.GebruikteOpp) ,'99999999D')) CommOppervlakte,
alg_verdieping_code Verdiepingnr
FROM
alg_v_ruimte_gegevens VG,
CONN_IMPORT_ETABEL e
WHERE
E.complex (+)= vg.alg_locatie_code AND
E.ruimte (+)= vg.alg_ruimte_nr;
CREATE OR REPLACE VIEW CONN_CAD_01 ( COMPLEX,
RUIMTE, ALG_RUIMTE_KEY, BUNIT, AANTAL
) AS SELECT
complex, ruimte, alg_ruimte_key, MIN(businessunit) bunit, COUNT(DISTINCT businessunit) aantal
FROM
CONN_RUIMTEGEG
GROUP BY complex, ruimte, alg_ruimte_key
HAVING COUNT(DISTINCT businessunit) = 1
UNION
SELECT
complex, ruimte, alg_ruimte_key, 'Meerdere' bunit, COUNT(DISTINCT businessunit) aantal
FROM
CONN_RUIMTEGEG
GROUP BY complex, ruimte, alg_ruimte_key, 'Meerdere'
HAVING COUNT(DISTINCT businessunit) > 1
CREATE OR REPLACE VIEW CONN_CAD_02 ( COMPLEX,
RUIMTE, ALG_RUIMTE_KEY, HUURDER, AANTAL
) AS SELECT
complex, ruimte, alg_ruimte_key, MIN(huurder) bunit, COUNT(DISTINCT huurder) aantal
FROM
CONN_RUIMTEGEG
GROUP BY complex, ruimte, alg_ruimte_key
HAVING COUNT(DISTINCT businessunit) = 1
UNION
SELECT
complex, ruimte, alg_ruimte_key, 'Meerdere' huurder, COUNT(DISTINCT huurder) aantal
FROM
CONN_RUIMTEGEG
GROUP BY complex, ruimte, alg_ruimte_key, 'Meerdere'
HAVING COUNT(DISTINCT huurder) > 1
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI Overzicht','CONN_V_PPI_OVERZICHT','Overzicht van PPIs per maand (= JJMM).');
-- * Overzicht *
CREATE OR REPLACE VIEW CONN_V_PPI1
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling,Artikelnummer,Omschrijving,Aantal,Prijs) AS SELECT
B.bes_bestelling_key,
TO_CHAR(B.bes_bestelling_datum, 'YYMM'),
P.prs_perslid_naam || ' ' || NVL(P.prs_perslid_voorletters, '') || ' ' || NVL(P.prs_perslid_voornaam, ''),
A.prs_afdeling_naam,
S.ins_srtdeel_nr,
S.ins_srtdeel_omschrijving,
TO_CHAR(I.bes_bestelling_item_aantal, '99999990.00'),
TO_CHAR(S.ins_srtdeel_prijs, '99999990.00')
FROM BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A,
INS_SRTDEEL S, INS_SRTGROEP G, INS_TAB_DISCIPLINE D
WHERE B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND B.prs_perslid_key = P.prs_perslid_key
AND B.prs_afdeling_key = A.prs_afdeling_key
AND I.ins_srtdeel_key = S.ins_srtdeel_key
AND S.ins_srtgroep_key = G.ins_srtgroep_key
AND G.ins_discipline_key = D.ins_discipline_key
AND D.ins_discipline_key = 21;
CREATE OR REPLACE VIEW CONN_V_PPI1_TOT
(FCLT_F_Maand,Aantal,Totaalbedrag) AS
SELECT
FCLT_F_Maand
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,'''))
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,''') * TO_NUMBER(prijs, '999999D99', 'nls_numeric_characters = ''.,'''))
FROM CONN_V_PPI1
GROUP BY FCLT_F_Maand;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI1','CONN_V_PPI1','Bestelling artikelen Luxe catalogus per maand (= JJMM).');
CREATE OR REPLACE VIEW CONN_V_PPI2_ALL
(Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling, Totaalbedrag, bes_bestelopdr_datum, bes_bestelopdr_leverdatum) AS
SELECT
BO.bes_bestelopdr_key,
TO_CHAR(BO.bes_bestelopdr_datum, 'YYMM'),
PP.prs_perslid_naam || ' ' || NVL(PP.prs_perslid_voorletters, '') || ' ' || NVL(PP.prs_perslid_voornaam, ''),
AD.prs_afdeling_naam,
SD.ins_srtdeel_prijs * BI.bes_bestelling_item_aantal,
BO.BES_BESTELOPDR_DATUM,
BO.bes_bestelopdr_leverdatum
FROM BES_BESTELLING BB, BES_BESTELLING_ITEM BI, BES_BESTELOPDR BO, INS_SRTDEEL SD,
PRS_PERSLID PP, PRS_AFDELING AD
WHERE BB.bes_bestelling_key = BI.bes_bestelling_key
AND BO.bes_bestelopdr_key = BI.bes_bestelopdr_key
AND SD.ins_srtdeel_key = BI.ins_srtdeel_key
AND BO.prs_perslid_key = PP.prs_perslid_key
AND BB.prs_afdeling_key = AD.prs_afdeling_key;
CREATE OR REPLACE VIEW CONN_V_PPI2_SUBSET
(Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling,Totaalbedrag) AS
SELECT
Opdrachtnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Totaalbedrag
FROM CONN_V_PPI2_ALL
WHERE (
(BES_BESTELOPDR_LEVERDATUM > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELOPDR_DATUM, 4,'DAGEN'))
OR
(BES_BESTELOPDR_LEVERDATUM IS NULL AND
sysdate > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELOPDR_DATUM, 4,'DAGEN')
)
);
CREATE OR REPLACE VIEW CONN_V_PPI2
(Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling,Totaalbedrag) AS
SELECT
Opdrachtnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
TO_CHAR(SUM(Totaalbedrag),'99999990.00')
FROM CONN_V_PPI2_SUBSET
GROUP BY Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling;
CREATE OR REPLACE VIEW CONN_V_PPI2_TOT AS
SELECT FCLT_F_Maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(Opdrachtnummer) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2 A
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(Opdrachtnummer)
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2_ALL B
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI2','CONN_V_PPI2','Juistheid "afmelding" ontvangsten per maand (= JJMM).');
CREATE OR REPLACE VIEW CONN_V_PPI3_ALL
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling, Fiatteur, Status,Aantal,Prijs,Totaalbedrag,
bes_bestelling_datum,bes_bestelling_afgewezen,bes_bestelling_geaccepteerd) AS
SELECT
B.bes_bestelling_key,
TO_CHAR(B.bes_bestelling_datum, 'YYMM'),
P.prs_perslid_naam || ' ' || NVL(P.prs_perslid_voorletters, '') || ' ' || NVL(P.prs_perslid_voornaam, ''),
A.prs_afdeling_naam,
P2.prs_perslid_naam || ' ' || NVL(P2.prs_perslid_voorletters, '') || ' ' || NVL(P2.prs_perslid_voornaam, ''),
BS.bes_bestellingstatuses_omschr,
I.bes_bestelling_item_aantal,
S.ins_srtdeel_prijs,
I.bes_bestelling_item_aantal * S.ins_srtdeel_prijs,
B.bes_bestelling_datum,
B.bes_bestelling_afgewezen,
B.bes_bestelling_geaccepteerd
FROM BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A, PRS_PERSLID P2,
INS_SRTDEEL S, BES_BESTELLINGSTATUSES BS
WHERE B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND B.prs_perslid_key = P.prs_perslid_key
AND B.prs_afdeling_key = A.prs_afdeling_key
AND I.ins_srtdeel_key = S.ins_srtdeel_key
AND B.bes_bestelling_status = BS.bes_bestellingstatuses_key
AND B.bes_bestelling_fiat_user IS NOT NULL -- Dus alleen "fiatteringsbestellingen"
AND B.bes_bestelling_fiat_user = P2.prs_perslid_key;
CREATE OR REPLACE VIEW CONN_V_PPI3_SUBSET
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling, Fiatteur, Status,Aantal,Prijs,Totaalbedrag) AS
SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Fiatteur,
Status,
Aantal,
Prijs,
Totaalbedrag
FROM CONN_V_PPI3_ALL
WHERE (
(mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < bes_bestelling_afgewezen)
OR
(mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < bes_bestelling_geaccepteerd)
OR
(bes_bestelling_afgewezen IS NULL AND bes_bestelling_geaccepteerd IS NULL AND
mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < SYSDATE)
);
CREATE OR REPLACE VIEW CONN_V_PPI3
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling, Fiatteur, Status,Totaalbedrag) AS
SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Fiatteur,
Status,
TO_CHAR(SUM(Totaalbedrag),'99999990.00')
FROM CONN_V_PPI3_SUBSET
GROUP BY Aanvraagnummer, FCLT_F_Maand, Besteller, Afdeling, Fiatteur, Status;
CREATE OR REPLACE VIEW CONN_V_PPI3_TOT AS
SELECT fclt_f_maand, SUM(totaal) Totaal,SUM(totaal)-SUM(optijd) Telaat
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Totaal, 0 Optijd
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_ALL A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_SUBSET A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI3','CONN_V_PPI3','Tijd tussen aanvraag en fiattering per maand (= JJMM).');
CREATE OR REPLACE VIEW CONN_V_PPI4_
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling,Aantal,Totaalprijs) AS SELECT
B.bes_bestelling_key,
TO_CHAR(B.bes_bestelling_datum, 'YYMM'),
P.prs_perslid_naam || ' ' || NVL(P.prs_perslid_voorletters, '') || ' ' || NVL(P.prs_perslid_voornaam, ''),
A.prs_afdeling_naam,
I.bes_bestelling_item_aantal,
I.bes_bestelling_item_aantal * S.ins_srtdeel_prijs
FROM BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A,
INS_SRTDEEL S
WHERE B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND B.prs_perslid_key = P.prs_perslid_key
AND P.prs_afdeling_key = A.prs_afdeling_key
AND I.ins_srtdeel_key = S.ins_srtdeel_key;
-- * Overzicht *
CREATE OR REPLACE VIEW CONN_V_PPI4
(Aanvraagnummer,FCLT_F_Maand, Besteller,Afdeling,Aantal,Totaalprijs) AS SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
TO_CHAR(SUM(Aantal),'9999999999'),
TO_CHAR(SUM(Totaalprijs),'99999990.00')
FROM CONN_V_PPI4_
GROUP BY Aanvraagnummer,FCLT_F_Maand,Besteller,Afdeling
HAVING SUM(Totaalprijs) < 50;
CREATE OR REPLACE VIEW CONN_V_PPI4_TOT AS
SELECT fclt_f_maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI4 A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI4_ A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI4','CONN_V_PPI4','Kleine bestellingen per maand (= JJMM).');
CREATE OR REPLACE VIEW CONN_V_PPI5_ALL
(Opdrachtnummer,FCLT_F_Maand,Opmerking) AS
SELECT
BO.bes_bestelopdr_key,
TO_CHAR(BO.bes_bestelopdr_datum, 'YYMM'),
BO.BES_BESTELOPDR_DELIVERY_OPMERK
FROM BES_BESTELOPDR BO;
CREATE OR REPLACE VIEW CONN_V_PPI5
(Opdrachtnummer,FCLT_F_Maand,Opmerking) AS
SELECT
BO.bes_bestelopdr_key,
TO_CHAR(BO.bes_bestelopdr_datum, 'YYMM'),
BO.BES_BESTELOPDR_DELIVERY_OPMERK
FROM BES_BESTELOPDR BO
WHERE BES_BESTELOPDR_DELIVERY_OPMERK is not null;
CREATE OR REPLACE VIEW CONN_V_PPI5_TOT AS
SELECT fclt_f_maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5 A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5_ALL A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('PPI5','CONN_V_PPI5','Niet tevreden ontvangers per maand (= JJMM).');
CREATE OR REPLACE VIEW CONN_V_PPI_OVERZICHT (PPI,FCLT_F_Maand, Aantal, Totaal) AS
SELECT 'PPI1 - Bestelling artikelen Luxe catalogus per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaalbedrag,'99999990.00')
FROM CONN_V_PPI1_TOT
UNION
SELECT 'PPI2 - Juistheid "afmelding" ontvangsten per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI2_TOT
UNION
SELECT 'PPI3 - Tijd tussen aanvraag en fiattering per maand',FCLT_F_Maand,TO_CHAR(Telaat),TO_CHAR(Totaal)
FROM CONN_V_PPI3_TOT
UNION
SELECT 'PPI4 - Kleine bestellingen per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI4_TOT
UNION
SELECT 'PPI5 - Niet tevreden ontvangers per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI5_TOT;
create or replace view conn_fiattering AS
SELECT p.prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')') Besteller,
RTRIM(K2.prs_kenmerklink_waarde) Limiet1,
F1.prs_perslid_naam||DECODE(F1.prs_perslid_voorletters,null,'',', '||F1.prs_perslid_voorletters)||DECODE(F1.prs_perslid_voornaam,null,'',' ('||F1.prs_perslid_voornaam||')') Fiatteur1,
RTRIM(K4.prs_kenmerklink_waarde) Limiet2,
F2.prs_perslid_naam||DECODE(F2.prs_perslid_voorletters,null,'',', '||F2.prs_perslid_voorletters)||DECODE(F2.prs_perslid_voornaam,null,'',' ('||F2.prs_perslid_voornaam||')') Fiatteur2,
RTRIM(K5.prs_kenmerklink_waarde) Limiet3
FROM prs_v_aanwezigperslid P, prs_kenmerklink K1, prs_kenmerklink K2, prs_v_aanwezigperslid F1, prs_kenmerklink K3, prs_kenmerklink K4, prs_kenmerklink K5, prs_v_aanwezigperslid F2
WHERE K1.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K1.prs_link_key(+)=P.prs_perslid_key
AND K2.prs_kenmerk_key(+)=1001 -- Limiet
AND K2.prs_link_key(+)=P.prs_perslid_key
AND F1.prs_perslid_key(+) = K1.prs_kenmerklink_waarde
AND K3.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K3.prs_link_key(+)=F1.prs_perslid_key
AND F2.prs_perslid_key(+) = K3.prs_kenmerklink_waarde
AND K4.prs_kenmerk_key(+)=1001 -- Limiet
AND K4.prs_link_key(+)=F1.prs_perslid_key
AND K5.prs_kenmerk_key(+)=1001 -- Limiet
AND K5.prs_link_key(+)=K3.prs_kenmerklink_waarde
ORDER BY 1
insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
values('Overzicht fiattering','conn_fiattering','Overzicht van de medewerkers en bestellimiet en bijbehorende fiatteur');
--CREATE TABLE FIP_CATALOG
--(
-- ins_discipline_key NUMBER(10) NOT NULL REFERENCES INS_TAB_DISCIPLINE,
-- prs_bedrijf_key NUMBER(10) NOT NULL REFERENCES PRS_BEDRIJF,
-- fip_catalog_datum DATE,
-- fip_catalog_id VARCHAR2(32),
-- ins_srtdeel_nr VARCHAR2(32),
-- ins_srtgroep_omschrijving VARCHAR2(60),
-- ins_srtdeel_omschrijving VARCHAR2(60),
-- ins_srtdeel_prijs NUMBER(8,2),
-- ins_srtdeel_eenheid VARCHAR2(15),
-- ins_srtdeel_image VARCHAR2(255),
-- ins_srtdeel_veelvoud NUMBER(6),
-- ins_srtdeel_btw NUMBER(3),
-- ins_srtdeel_vervaldatum DATE
--);
--
--
--CREATE TABLE FIP_ERROR (
-- RECNO NUMBER (10),
-- REC_TABLE VARCHAR2 (32),
-- DESCRIPT VARCHAR2 (1024)
--);
--
--CREATE INDEX FIP_I_FIP_CATALOG1 ON
-- FIP_CATALOG(INS_DISCIPLINE_KEY);
--
--CREATE INDEX FIP_I_FIP_CATALOG2 ON
-- FIP_CATALOG(FIP_CATALOG_ID);
--
--CREATE INDEX FIP_I_FIP_CATALOG3 ON
-- FIP_CATALOG(INS_SRTDEEL_NR);
--
--CREATE INDEX INS_I_INS_SRTDEEL4 ON
-- INS_SRTDEEL(INS_SRTDEEL_NR);
--
CREATE OR REPLACE PROCEDURE Fip_Update_Catalog (pFIP_CATALOG_ID IN VARCHAR2) IS
CURSOR cGROEP_OMSCHRIJVING(cCATALOG_ID IN VARCHAR2) IS
SELECT DISTINCT(ins_srtgroep_omschrijving) INS_SRTGROEP_OMSCHRIJVING
FROM FIP_CATALOG
WHERE ins_srtgroep_omschrijving IS NOT NULL
AND UPPER(RTRIM(LTRIM(fip_catalog_id))) = UPPER(RTRIM(LTRIM(cCATALOG_ID)));
CURSOR cIN_SRTDEEL(cCATALOG_ID IN VARCHAR2, cDISCIPLINE_KEY IN NUMBER) IS
SELECT *
FROM FIP_CATALOG F
WHERE UPPER(RTRIM(LTRIM(fip_catalog_id))) = UPPER(RTRIM(LTRIM(cCATALOG_ID)))
AND UPPER(LTRIM(RTRIM(F.INS_SRTDEEL_NR))) NOT IN
(SELECT UPPER(LTRIM(RTRIM(S.INS_SRTDEEL_NR)))
FROM INS_SRTDEEL S, INS_SRTGROEP G
WHERE G.ins_discipline_key = cDISCIPLINE_KEY
AND G.ins_srtgroep_key = S.ins_srtgroep_key
AND S.ins_srtdeel_verwijder IS NULL);
CURSOR cUP_SRTDEEL(cCATALOG_ID IN VARCHAR2, cDISCIPLINE_KEY IN NUMBER) IS
SELECT F.ins_srtdeel_omschrijving
,F.ins_srtdeel_prijs
,F.ins_srtdeel_image
,F.INS_SRTDEEL_EENHEID
,F.INS_SRTDEEL_VEELVOUD
,F.INS_SRTDEEL_BTW
,F.INS_SRTDEEL_VERVALDATUM
,F.INS_SRTDEEL_NR
,F.ins_srtgroep_omschrijving
,F.prs_bedrijf_key
,S.ins_srtdeel_key
FROM INS_SRTDEEL S, INS_SRTGROEP G, FIP_CATALOG F
WHERE G.ins_discipline_key = cDISCIPLINE_KEY
AND G.ins_srtgroep_key = S.ins_srtgroep_key
AND UPPER(LTRIM(RTRIM(S.INS_SRTDEEL_NR))) = UPPER(LTRIM(RTRIM(F.INS_SRTDEEL_NR)))
AND UPPER(RTRIM(LTRIM(fip_catalog_id))) = UPPER(RTRIM(LTRIM(cCATALOG_ID)))
AND S.ins_srtdeel_verwijder IS NULL;
recGROEP_OMSCHRIJVING cGROEP_OMSCHRIJVING%ROWTYPE;
teller INTEGER;
DISCIPLINE_KEY NUMBER(10);
errorMsg VARCHAR2(1024);
cCount NUMBER(10);
nCount NUMBER(10);
srtgroep_omschrijving VARCHAR2(60);
SRTGROEP_KEY NUMBER(10);
SRTDEEL_KEY NUMBER(10);
recordCount NUMBER (10);
CATALOG_ID VARCHAR2(32);
rec_up_srtdeel cUP_SRTDEEL%ROWTYPE;
rec_in_srtdeel cIN_SRTDEEL%ROWTYPE;
BEGIN
errorMsg := 'Fout bij opvragen parameter procedure.';
SELECT UPPER(RTRIM(LTRIM(pFIP_CATALOG_ID)))
INTO CATALOG_ID
FROM dual;
errorMsg := CATALOG_ID || ' - Fout bij opvragen discipline-key (niet aanwezig of meer dan 1 per catalogus)';
SELECT DISTINCT(ins_discipline_key)
INTO DISCIPLINE_KEY
FROM FIP_CATALOG
WHERE UPPER(RTRIM(LTRIM(FIP_CATALOG_ID))) = CATALOG_ID;
-- INS_SRTDEEL: [delete objecttype]
errorMsg := CATALOG_ID || ' - Fout bij verwijderen artikelen.';
UPDATE INS_SRTDEEL
SET INS_SRTDEEL_VERWIJDER = SYSDATE
WHERE INS_SRTDEEL_KEY IN
(SELECT INS_SRTDEEL_KEY
FROM INS_SRTDEEL S, INS_SRTGROEP G
WHERE G.ins_discipline_key = DISCIPLINE_KEY
AND G.ins_srtgroep_key = S.ins_srtgroep_key
AND UPPER(LTRIM(RTRIM(INS_SRTDEEL_NR))) NOT IN
(SELECT UPPER(LTRIM(RTRIM(F.INS_SRTDEEL_NR)))
FROM FIP_CATALOG F
WHERE UPPER(LTRIM(RTRIM(F.FIP_CATALOG_ID))) = CATALOG_ID))
AND ins_srtdeel_verwijder IS NULL;
errorMsg := CATALOG_ID || ' - Fout bij creeren nieuwe artikelen-groepen.';
OPEN cGROEP_OMSCHRIJVING(CATALOG_ID);
IF cGROEP_OMSCHRIJVING%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH cGROEP_OMSCHRIJVING INTO recGROEP_OMSCHRIJVING;
EXIT WHEN cGROEP_OMSCHRIJVING%NOTFOUND;
teller := teller + 1;
--TBV debug
--IF teller > 10 THEN
-- EXIT;
--END IF;
errorMsg := ' (Hint error : insert into INS_SRTGROEP)';
SELECT RTRIM(LTRIM(recGROEP_OMSCHRIJVING.ins_srtgroep_omschrijving))
INTO srtgroep_omschrijving
FROM dual;
SELECT COUNT(*)
INTO cCount
FROM INS_SRTGROEP
WHERE UPPER(RTRIM(LTRIM(ins_srtgroep_omschrijving))) = UPPER(srtgroep_omschrijving)
AND ins_discipline_key = DISCIPLINE_KEY
AND ins_srtgroep_verwijder IS NULL;
IF cCount = 0 THEN
INSERT INTO INS_SRTGROEP
(ins_discipline_key
,ins_srtgroep_omschrijving
,ins_srtgroep_module
)
VALUES
(DISCIPLINE_KEY
,srtgroep_omschrijving
,'BES'
);
END IF;
COMMIT;
EXCEPTION WHEN OTHERS THEN
NULL;
INSERT INTO FIP_ERROR
(recno
,rec_table
,descript)
VALUES
(0
,'INS_SRTGROEP'
,CATALOG_ID || ' - Kan srtgroep niet wegschrijven ' || errorMsg);
END;
END LOOP;
END IF;
CLOSE cGROEP_OMSCHRIJVING;
COMMIT;
-- UPDATE INS_SRTDEEL
errorMsg := 'Fout bij wijzigen artikelen';
OPEN cUP_SRTDEEL(CATALOG_ID, DISCIPLINE_KEY);
IF cUP_SRTDEEL%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH cUP_SRTDEEL INTO rec_up_srtdeel;
EXIT WHEN cUP_SRTDEEL%NOTFOUND;
teller := teller + 1;
--TBV debug
--IF teller > 10 THEN
-- EXIT;
--END IF;
SELECT ins_srtgroep_key
INTO srtgroep_key
FROM INS_SRTGROEP
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = discipline_key
AND UPPER(LTRIM(RTRIM(ins_srtgroep_omschrijving))) = UPPER(LTRIM(RTRIM(rec_up_srtdeel.ins_srtgroep_omschrijving)));
UPDATE INS_SRTDEEL SET
ins_srtdeel_omschrijving = RTRIM(rec_up_srtdeel.ins_srtdeel_omschrijving)
,ins_srtdeel_prijs = rec_up_srtdeel.ins_srtdeel_prijs
,ins_srtdeel_image = rec_up_srtdeel.ins_srtdeel_image
,ins_srtdeel_eenheid = INS_SRTDEEL_EENHEID
,ins_srtdeel_veelvoud = rec_up_srtdeel.INS_SRTDEEL_VEELVOUD
,ins_srtdeel_btw = INS_SRTDEEL_BTW
,ins_srtdeel_vervaldatum = rec_up_srtdeel.INS_SRTDEEL_VERVALDATUM
,ins_srtgroep_key = SRTGROEP_KEY
WHERE ins_srtdeel_key = rec_up_srtdeel.ins_srtdeel_key
AND ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_nr = rec_up_srtdeel.ins_srtdeel_nr;
COMMIT;
EXCEPTION WHEN OTHERS THEN
INSERT INTO FIP_ERROR
(recno
,rec_table
,descript)
VALUES
(0
,'INS_SRTDEEL'
,CATALOG_ID || ' - Kan srtdeel met ins_srtdeel_nr <' || rec_up_srtdeel.INS_SRTDEEL_NR || '> niet updaten ' || errorMsg);
END;
END LOOP;
END IF;
CLOSE cUP_SRTDEEL;
COMMIT;
-- INSERT SRTDEEL
errorMsg := 'Fout bij creeren nieuwe artikelen.';
OPEN cIN_SRTDEEL(CATALOG_ID, DISCIPLINE_KEY);
IF cIN_SRTDEEL%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH cIN_SRTDEEL INTO rec_in_srtdeel;
EXIT WHEN cIN_SRTDEEL%NOTFOUND;
teller := teller + 1;
--TBV debug
--IF teller > 10 THEN
-- EXIT;
--END IF;
-- SRTDEEL_KEY
SELECT COUNT(*)
INTO nCount
FROM INS_SRTDEEL;
IF nCount = 0 THEN
srtdeel_key := 0;
ELSE
SELECT MAX(ins_srtdeel_key)
INTO srtdeel_key
FROM INS_SRTDEEL;
END IF;
errorMsg := ' (Hint error : bepalen SRTGROEP_KEY)';
--SRTGROEP_KEY
SELECT ins_srtgroep_key
INTO srtgroep_key
FROM INS_SRTGROEP
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = discipline_key
AND UPPER(LTRIM(RTRIM(ins_srtgroep_omschrijving))) = UPPER(LTRIM(RTRIM(rec_in_srtdeel.ins_srtgroep_omschrijving)));
errorMsg := ' (Hint error : insert into INS_SRTDEEL)';
INSERT INTO INS_SRTDEEL
(ins_srtgroep_key
,ins_srtdeel_omschrijving
,ins_srtdeel_code
,ins_srtdeel_dimensie
,ins_srtdeel_nr
,ins_srtdeel_prijs
,ins_srtdeel_image
,ins_srtdeel_eenheid
,ins_srtdeel_veelvoud
,ins_srtdeel_module
,ins_srtdeel_btw
,ins_srtdeel_vervaldatum
,prs_bedrijf_key
)
VALUES
(SRTGROEP_KEY
,rec_in_srtdeel.ins_srtdeel_omschrijving
,TO_CHAR(SRTDEEL_KEY + 1)
,0
,UPPER(LTRIM(RTRIM(rec_in_srtdeel.ins_srtdeel_nr)))
,rec_in_srtdeel.ins_srtdeel_prijs
,rec_in_srtdeel.ins_srtdeel_image
,rec_in_srtdeel.INS_SRTDEEL_EENHEID
,rec_in_srtdeel.INS_SRTDEEL_VEELVOUD
,'BES'
,rec_in_srtdeel.INS_SRTDEEL_BTW
,rec_in_srtdeel.INS_SRTDEEL_VERVALDATUM
,rec_in_srtdeel.PRS_BEDRIJF_KEY
);
COMMIT;
EXCEPTION WHEN OTHERS THEN
INSERT INTO FIP_ERROR
(recno
,rec_table
,descript)
VALUES
(0
,'INS_SRTDEEL'
,CATALOG_ID || ' - Kan srtdeel met ins_srtdeel_nr <' || rec_in_srtdeel.INS_SRTDEEL_NR || '> niet inserten ' || errorMsg);
END;
END LOOP;
END IF;
CLOSE cIN_SRTDEEL;
COMMIT;
-- INS_SRTGROEP: [delete groups]
errorMsg := CATALOG_ID || ' - Fout bij verwijderen artikelen-groepen.';
UPDATE INS_SRTGROEP SG
SET ins_srtgroep_verwijder = SYSDATE
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = DISCIPLINE_KEY
AND
NOT EXISTS
(SELECT *
FROM FIP_CATALOG F
WHERE UPPER(RTRIM(LTRIM(F.ins_srtgroep_omschrijving))) = UPPER(RTRIM(LTRIM(SG.ins_srtgroep_omschrijving)))
AND UPPER(LTRIM(RTRIM(FIP_CATALOG_ID))) = CATALOG_ID
);
COMMIT;
EXCEPTION WHEN OTHERS THEN
INSERT INTO FIP_ERROR
(recno
,rec_table
,descript)
VALUES
(0
,'FIP_Update_Catalog'
,CATALOG_ID || ' - Kan procedure niet uitvoeren, foutmelding: ' || errorMsg);
COMMIT;
END;-- FIP_Update_Catalog
/
CREATE OR REPLACE VIEW CONN_FIP_CAT_IDS_DISC ( FIP_CATALOG_ID,
INS_DISCIPLINE_KEY ) AS SELECT f.FIP_CATALOG_ID, f.INS_DISCIPLINE_KEY
FROM
FIP_CATALOG f
GROUP BY f.fip_catalog_id, f.INS_DISCIPLINE_KEY;
CREATE OR REPLACE VIEW CONN_CAT_DIFF_PRICE ( PRIJSVERSCHIL,
FCLT_F_PN, OMSCHRIJVING, NIEUWE_PRIJS, HUIDIGE_PRIJS,
FCLT_F_CATALOGUS ) AS SELECT
TO_CHAR(ABS(f.INS_SRTDEEL_PRIJS - i.INS_SRTDEEL_PRIJS)/ i.INS_SRTDEEL_PRIJS * 100 , '9990.00'),
DECODE (SIGN (f.INS_SRTDEEL_PRIJS - i.INS_SRTDEEL_PRIJS), -1, 'NEG', 0, 'NUL', 1, 'POS', 'def'),
i.INS_SRTDEEL_OMSCHRIJVING,
TO_CHAR(f.INS_SRTDEEL_PRIJS, '99990.00'),
TO_CHAR(i.INS_SRTDEEL_PRIJS, '99990.00') ,
f.FIP_CATALOG_ID
FROM
FIP_CATALOG 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
ORDER BY 1;
CREATE OR REPLACE VIEW CONN_CAT_DIFF_SUMM ( OMSCHRIJVING,
AANTAL, FCLT_F_CATALOGUS ) AS SELECT '1. aantal artikelen huidige catalogus: ', TO_CHAR(COUNT(*)), f.fip_catalog_id
FROM
CONN_FIP_CAT_IDS_DISC 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.fip_catalog_id
UNION
SELECT '2. aantal artikelen nieuwe catalogus: ', TO_CHAR(COUNT(*)), f.fip_catalog_id
FROM
FIP_CATALOG f
GROUP BY f.fip_catalog_id
UNION
SELECT '3. aantal artikelen in beide catalogi: ', TO_CHAR(COUNT(*)), fip_catalog_id
FROM (
SELECT i.ins_srtdeel_nr, g.ins_discipline_key, fip_catalog_id
FROM
BES_V_AANWEZIGSRTDEEL i,
INS_SRTGROEP g,
FIP_CATALOG 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 fip_catalog_id
UNION
SELECT '4. aantal gewijzigde artikelen(prijs): ', TO_CHAR(COUNT(*)), f.fip_catalog_id
FROM
BES_V_AANWEZIGSRTDEEL i,
INS_SRTGROEP g,
FIP_CATALOG 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.fip_catalog_id
UNION
SELECT '5. aantal gewijzigde artikelen(omschrijving): ', TO_CHAR(COUNT(*)), f.fip_catalog_id
FROM
BES_V_AANWEZIGSRTDEEL i,
INS_SRTGROEP g,
FIP_CATALOG 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.fip_catalog_id
UNION
SELECT '6. aantal gewijzigde artikelen(vervaldatum): ', TO_CHAR(COUNT(*)), f.fip_catalog_id
FROM
BES_V_AANWEZIGSRTDEEL i,
INS_SRTGROEP g,
FIP_CATALOG 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.fip_catalog_id
UNION
SELECT '7. aantal artikelengroepen huidige catalogus: ', TO_CHAR(COUNT(DISTINCT(INS_SRTGROEP_OMSCHRIJVING))), f.fip_catalog_id
FROM
CONN_FIP_CAT_IDS_DISC f,
BES_V_AANWEZIGSRTGROEP g
WHERE
g.INS_DISCIPLINE_KEY = f.INS_DISCIPLINE_KEY
GROUP BY f.fip_catalog_id
UNION
SELECT '8. aantal artikelgroepen nieuwe catalogus: ', TO_CHAR(COUNT(DISTINCT(INS_SRTGROEP_OMSCHRIJVING))), f.fip_catalog_id
FROM
FIP_CATALOG f
GROUP BY f.fip_catalog_id
UNION
SELECT '9. aantal artikelgroepen in beide catalogi: ', TO_CHAR(COUNT(DISTINCT(ins_srtgroep_omschrijving))), fip_catalog_id
FROM (
SELECT g.ins_srtgroep_omschrijving, g.ins_discipline_key, fip_catalog_id
FROM
BES_V_AANWEZIGSRTGROEP g,
FIP_CATALOG f
WHERE
g.ins_discipline_key = f.ins_discipline_key AND
g.ins_srtgroep_upper = UPPER(f.ins_srtgroep_omschrijving))
GROUP BY fip_catalog_id;
--insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
--values('Prijswijzigingen','CONN_CAT_DIFF_PRICE','Prijs verschillen tussen de geselecteerde en de geinstalleerde catalogus.');
--insert into fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info)
--values('Samenvatting Catalogus','CONN_CAT_DIFF_SUMM','Samenvatting van wijzigingen tov huidige catalogus.');