1045 lines
39 KiB
SQL
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.');
|
|
|
|
|
|
|