Wagenpark-functie en -view toevoegen
svn path=/Customer/trunk/; revision=29239
This commit is contained in:
195
DEMO/demo.sql
195
DEMO/demo.sql
@@ -3420,6 +3420,91 @@ AS
|
|||||||
FROM prs_bedrijf
|
FROM prs_bedrijf
|
||||||
WHERE prs_bedrijf_leverancier = 1;
|
WHERE prs_bedrijf_leverancier = 1;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW demo_v_rap_fin_bijtelling
|
||||||
|
AS
|
||||||
|
SELECT p.prs_perslid_nr personeelsnummer,
|
||||||
|
DECODE (
|
||||||
|
pfa.prs_perslid_key,
|
||||||
|
NULL, 'POOL',
|
||||||
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||||||
|
|| 'appl/prs/prs_perslid.asp?key='
|
||||||
|
|| pfa.prs_perslid_key
|
||||||
|
|| '")''>'
|
||||||
|
|| HTF.escape_sc (pfa.prs_perslid_naam_full)
|
||||||
|
|| '</a>')
|
||||||
|
html_berijder,
|
||||||
|
COALESCE (pfa.prs_perslid_naam_full, 'POOL') fclt_x_berijder,
|
||||||
|
ad.ins_deel_omschrijving fclt_f_voertuig,
|
||||||
|
c.cnt_contract_nummer_intern fclt_x_contract,
|
||||||
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||||||
|
|| 'appl/cnt/cnt_contract.asp?urole=bo&'
|
||||||
|
|| 'cnt_key='
|
||||||
|
|| c.cnt_contract_key
|
||||||
|
|| '")''>'
|
||||||
|
|| HTF.escape_sc (c.cnt_contract_nummer_intern)
|
||||||
|
|| '</a>'
|
||||||
|
html_contract,
|
||||||
|
b.prs_bedrijf_naam fclt_f_bedrijf,
|
||||||
|
DECODE (
|
||||||
|
c.ins_discipline_key,
|
||||||
|
2789,
|
||||||
|
'huur',
|
||||||
|
TO_CHAR (
|
||||||
|
ROUND (MONTHS_BETWEEN (c.cnt_contract_looptijd_tot, c.cnt_contract_looptijd_van))))
|
||||||
|
looptijd,
|
||||||
|
ROUND(demo.getAantalDagenInPeriode (c.cnt_contract_looptijd_van,
|
||||||
|
c.cnt_contract_looptijd_tot,
|
||||||
|
TRUNC (SYSDATE, 'MM'))
|
||||||
|
* CAST (TO_CHAR (LAST_DAY (SYSDATE), 'DD') AS INT))
|
||||||
|
aantal_dagen,
|
||||||
|
ROUND (
|
||||||
|
c.cnt_contract_termijnkosten
|
||||||
|
* demo.getAantalDagenInPeriode (c.cnt_contract_looptijd_van,
|
||||||
|
c.cnt_contract_looptijd_tot,
|
||||||
|
TRUNC (SYSDATE, 'MM')),
|
||||||
|
2)
|
||||||
|
fclt_c_kosten,
|
||||||
|
fisc.waarde fclt_c_fiscale_waarde,
|
||||||
|
DECODE (bij.fac_usrdata_prijs, NULL, NULL, TO_CHAR (bij.fac_usrdata_prijs) || '%')
|
||||||
|
percentage,
|
||||||
|
ROUND (
|
||||||
|
fisc.waarde * bij.fac_usrdata_prijs / 1200
|
||||||
|
* demo.getAantalDagenInPeriode (c.cnt_contract_looptijd_van,
|
||||||
|
c.cnt_contract_looptijd_tot,
|
||||||
|
TRUNC (SYSDATE, 'MM')),
|
||||||
|
2)
|
||||||
|
fclt_c_bruto_bijtelling
|
||||||
|
FROM cnt_contract c,
|
||||||
|
cnt_contract_object co,
|
||||||
|
ins_v_aanwezigdeel ad,
|
||||||
|
prs_perslid p,
|
||||||
|
prs_v_perslid_fullnames_all pfa,
|
||||||
|
prs_bedrijf b,
|
||||||
|
(SELECT kd.ins_deel_key, ud.fac_usrdata_prijs
|
||||||
|
FROM ins_kenmerkdeel kd, ins_kenmerk k, fac_usrdata ud
|
||||||
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||||||
|
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||||||
|
AND k.ins_srtkenmerk_key = 749
|
||||||
|
AND k.ins_kenmerk_verwijder IS NULL
|
||||||
|
AND ud.fac_usrtab_key = 884
|
||||||
|
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key) bij,
|
||||||
|
(SELECT kd.ins_deel_key, fac.safe_to_number (kd.ins_kenmerkdeel_waarde) waarde
|
||||||
|
FROM ins_kenmerkdeel kd, ins_kenmerk k
|
||||||
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||||||
|
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||||||
|
AND k.ins_srtkenmerk_key = 747
|
||||||
|
AND k.ins_kenmerk_verwijder IS NULL) fisc
|
||||||
|
WHERE c.ins_discipline_key IN (2788, 2789)
|
||||||
|
AND c.cnt_contract_looptijd_van <= LAST_DAY (SYSDATE)
|
||||||
|
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'MM')
|
||||||
|
AND co.cnt_contract_key = c.cnt_contract_key
|
||||||
|
AND ad.ins_deel_key = co.cnt_ins_deel_key
|
||||||
|
AND p.prs_perslid_key(+) = ad.ins_alg_ruimte_key
|
||||||
|
AND pfa.prs_perslid_key(+) = p.prs_perslid_key
|
||||||
|
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||||||
|
AND bij.ins_deel_key(+) = ad.ins_deel_key
|
||||||
|
AND fisc.ins_deel_key(+) = ad.ins_deel_key;
|
||||||
|
|
||||||
----- KPI's --------------------------------------------------------------------
|
----- KPI's --------------------------------------------------------------------
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW demo_v_rap_kpi_definitie
|
CREATE OR REPLACE VIEW demo_v_rap_kpi_definitie
|
||||||
@@ -3432,16 +3517,16 @@ AS
|
|||||||
-- E<>n view per melding. Nummering is gelijk aan die van de de standaardmeldingen.
|
-- E<>n view per melding. Nummering is gelijk aan die van de de standaardmeldingen.
|
||||||
|
|
||||||
-- mld_stdmelding Budget en Kosten 1542 A
|
-- mld_stdmelding Budget en Kosten 1542 A
|
||||||
-- mld_kenmerk Catering^
|
-- mld_kenmerk Catering^
|
||||||
-- mld_kenmerk Werkelijke kosten 2319 A
|
-- mld_kenmerk Werkelijke kosten 2319 A
|
||||||
-- mld_kenmerk Extra kosten 2295 A
|
-- mld_kenmerk Extra kosten 2295 A
|
||||||
-- mld_kenmerk Receptie^
|
-- mld_kenmerk Receptie^
|
||||||
-- mld_kenmerk Werkelijke kosten 2320 A
|
-- mld_kenmerk Werkelijke kosten 2320 A
|
||||||
-- mld_kenmerk Extra kosten 2296 A
|
-- mld_kenmerk Extra kosten 2296 A
|
||||||
-- mld_kenmerk Schoonmaak^
|
-- mld_kenmerk Schoonmaak^
|
||||||
-- mld_kenmerk Werkelijke kosten 2321 A
|
-- mld_kenmerk Werkelijke kosten 2321 A
|
||||||
-- mld_kenmerk Extra kosten 2297 A
|
-- mld_kenmerk Extra kosten 2297 A
|
||||||
-- mld_kenmerk Documentmanagement^
|
-- mld_kenmerk Documentmanagement^
|
||||||
-- mld_kenmerk Werkelijke kosten 2322 A
|
-- mld_kenmerk Werkelijke kosten 2322 A
|
||||||
-- mld_kenmerk Extra kosten 2298 A
|
-- mld_kenmerk Extra kosten 2298 A
|
||||||
CREATE OR REPLACE VIEW demo_v_kpi1
|
CREATE OR REPLACE VIEW demo_v_kpi1
|
||||||
@@ -3535,22 +3620,22 @@ AS
|
|||||||
;
|
;
|
||||||
|
|
||||||
-- mld_stdmelding Audit Catering 1541
|
-- mld_stdmelding Audit Catering 1541
|
||||||
-- mld_kenmerk Wachttijden bij kassa^
|
-- mld_kenmerk Wachttijden bij kassa^
|
||||||
-- mld_kenmerk Tijdstip1
|
-- mld_kenmerk Tijdstip1
|
||||||
-- mld_kenmerk Aantal bezoekers 2281 A
|
-- mld_kenmerk Aantal bezoekers 2281 A
|
||||||
-- mld_kenmerk Aantal op tijd 2285 A
|
-- mld_kenmerk Aantal op tijd 2285 A
|
||||||
-- mld_kenmerk Tijdstip2
|
-- mld_kenmerk Tijdstip2
|
||||||
-- mld_kenmerk Aantal bezoekers 2282 A
|
-- mld_kenmerk Aantal bezoekers 2282 A
|
||||||
-- mld_kenmerk Aantal op tijd 2286 A
|
-- mld_kenmerk Aantal op tijd 2286 A
|
||||||
-- mld_kenmerk Tijdstip3
|
-- mld_kenmerk Tijdstip3
|
||||||
-- mld_kenmerk Aantal bezoekers 2283 A
|
-- mld_kenmerk Aantal bezoekers 2283 A
|
||||||
-- mld_kenmerk Aantal op tijd 2287 A
|
-- mld_kenmerk Aantal op tijd 2287 A
|
||||||
-- mld_kenmerk Opmerking
|
-- mld_kenmerk Opmerking
|
||||||
-- mld_kenmerk Assortimentsaanbod^
|
-- mld_kenmerk Assortimentsaanbod^
|
||||||
-- mld_kenmerk Aantal producten assortiment 2289 A
|
-- mld_kenmerk Aantal producten assortiment 2289 A
|
||||||
-- mld_kenmerk Aantal producten aanwezig 2288 A
|
-- mld_kenmerk Aantal producten aanwezig 2288 A
|
||||||
-- mld_kenmerk Opmerking
|
-- mld_kenmerk Opmerking
|
||||||
-- mld_kenmerk HACCP controle^
|
-- mld_kenmerk HACCP controle^
|
||||||
-- mld_kenmerk Totaal aantal HACCP punten 2317 A
|
-- mld_kenmerk Totaal aantal HACCP punten 2317 A
|
||||||
-- mld_kenmerk Aantal goede HACCP punten 2284 A
|
-- mld_kenmerk Aantal goede HACCP punten 2284 A
|
||||||
CREATE OR REPLACE VIEW demo_v_kpi2
|
CREATE OR REPLACE VIEW demo_v_kpi2
|
||||||
@@ -3643,7 +3728,7 @@ AS
|
|||||||
|
|
||||||
-- mld_stdmelding KTO Receptie 1544 A
|
-- mld_stdmelding KTO Receptie 1544 A
|
||||||
-- mld_srtkenmerk Cijfer 2647 A
|
-- mld_srtkenmerk Cijfer 2647 A
|
||||||
-- mld_srtkenmerk Opmerking
|
-- mld_srtkenmerk Opmerking
|
||||||
-- TODO: divide-by-zero voorkomen
|
-- TODO: divide-by-zero voorkomen
|
||||||
CREATE OR REPLACE VIEW demo_v_kpi3
|
CREATE OR REPLACE VIEW demo_v_kpi3
|
||||||
AS
|
AS
|
||||||
@@ -3705,12 +3790,12 @@ AS
|
|||||||
;
|
;
|
||||||
|
|
||||||
-- mld_stdmelding Duurzaamheid en derving Catering 1543
|
-- mld_stdmelding Duurzaamheid en derving Catering 1543
|
||||||
-- mld_kenmerk Gebruik biologische producten^
|
-- mld_kenmerk Gebruik biologische producten^
|
||||||
-- mld_kenmerk Percentage Biologisch 2310 A
|
-- mld_kenmerk Percentage Biologisch 2310 A
|
||||||
-- mld_kenmerk Opmerking
|
-- mld_kenmerk Opmerking
|
||||||
-- mld_kenmerk Derving^
|
-- mld_kenmerk Derving^
|
||||||
-- mld_kenmerk Percentage derving 2311 A
|
-- mld_kenmerk Percentage derving 2311 A
|
||||||
-- mld_kenmerk Opmerking
|
-- mld_kenmerk Opmerking
|
||||||
CREATE OR REPLACE VIEW demo_v_kpi4
|
CREATE OR REPLACE VIEW demo_v_kpi4
|
||||||
AS
|
AS
|
||||||
WITH normen AS
|
WITH normen AS
|
||||||
@@ -3778,18 +3863,90 @@ AS
|
|||||||
|
|
||||||
CREATE OR REPLACE PACKAGE demo
|
CREATE OR REPLACE PACKAGE demo
|
||||||
AS
|
AS
|
||||||
|
FUNCTION getAantalDagenInPeriode(p_van IN DATE,
|
||||||
|
p_tot IN DATE,
|
||||||
|
p_periode_van IN DATE,
|
||||||
|
p_periode_tot IN DATE := NULL)
|
||||||
|
RETURN NUMBER;
|
||||||
PROCEDURE refreshscore(pUserKey IN NUMBER);
|
PROCEDURE refreshscore(pUserKey IN NUMBER);
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
CREATE OR REPLACE PACKAGE BODY demo
|
CREATE OR REPLACE PACKAGE BODY demo
|
||||||
AS
|
AS
|
||||||
|
-- Bepaal aantal dagen in begin- of eindperiode waarvoor huur betaald moet worden
|
||||||
|
-- Periode moet binnen dezelfde kalendermaand liggen.
|
||||||
|
-- Als p_periode_tot leeg is, gaan we uit van het einde van de maand
|
||||||
|
-- Als p_van en/of p_tot leeg zijn, dan zetten we die op begin resp. eind van de periode
|
||||||
|
FUNCTION getAantalDagenInPeriode(p_van IN DATE,
|
||||||
|
p_tot IN DATE,
|
||||||
|
p_periode_van IN DATE,
|
||||||
|
p_periode_tot IN DATE := NULL)
|
||||||
|
RETURN NUMBER
|
||||||
|
IS
|
||||||
|
o_aantal_dagen NUMBER(4);
|
||||||
|
v_periode_tot DATE;
|
||||||
|
v_van DATE;
|
||||||
|
v_tot DATE;
|
||||||
|
BEGIN
|
||||||
|
-- Einddatum van de periode die we beschouwen.
|
||||||
|
-- Als geen einddatum, dan einde van de maand (startdatum zou dan eerste dag van de maand moeten zijn)
|
||||||
|
v_periode_tot := COALESCE( p_periode_tot, LAST_DAY(p_periode_van) );
|
||||||
|
|
||||||
|
-- Valt periode (p_van - p_tot) geheel buiten (p_periode_van - p_periode_tot)? Dan nul dagen overlap!
|
||||||
|
IF ( p_tot < p_periode_van
|
||||||
|
OR p_van > p_periode_tot)
|
||||||
|
THEN
|
||||||
|
RETURN 0;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Aantal dagen is maximaal de hele periode
|
||||||
|
o_aantal_dagen := CAST( TO_CHAR(v_periode_tot, 'DD') AS INT)
|
||||||
|
- CAST( TO_CHAR(p_periode_van, 'DD') AS INT)
|
||||||
|
+ 1;
|
||||||
|
|
||||||
|
v_van := p_van;
|
||||||
|
v_tot := p_tot;
|
||||||
|
|
||||||
|
-- Als geen van/tot datum opgegeven, of als van/tot datum buiten periode valt,
|
||||||
|
-- dan zet op begin-/einddatum van de periode (periode)
|
||||||
|
IF (v_van IS NULL OR v_van < p_periode_van)
|
||||||
|
THEN
|
||||||
|
v_van := p_periode_van;
|
||||||
|
END IF;
|
||||||
|
IF (v_tot IS NULL OR v_tot > v_periode_tot)
|
||||||
|
THEN
|
||||||
|
v_tot := v_periode_tot;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Beslaat het contract de volledige periode, of beginnen/eindigen we halverwege?
|
||||||
|
-- DAN:
|
||||||
|
-- - ingangsmaand is hetzelfde als van huidige periode
|
||||||
|
-- - ingangsdag is later dan de eerste dag van de periode
|
||||||
|
-- EN/OF:
|
||||||
|
-- - eindmaand is hetzelfde als van huidige periode
|
||||||
|
-- - einddag is eerder dan de laatste dag van de periode
|
||||||
|
IF ( ( TRUNC(v_van, 'MM') = TRUNC(p_periode_van, 'MM')
|
||||||
|
AND TRUNC(v_van, 'DD') > p_periode_van )
|
||||||
|
OR ( TRUNC(v_tot, 'MM') = TRUNC(v_periode_tot, 'MM')
|
||||||
|
AND TRUNC(v_tot, 'DD') < v_periode_tot ) )
|
||||||
|
THEN
|
||||||
|
-- prijsfactor = aantal_dagen_gehuurd / aantal_dagen_in_deze_periode
|
||||||
|
-- = einddag - begindag + 1 / aantal_dagen_in_deze_periode
|
||||||
|
o_aantal_dagen := ( CAST( TO_CHAR(v_tot, 'DD') AS INT)
|
||||||
|
- CAST( TO_CHAR(v_van, 'DD') AS INT)
|
||||||
|
+ 1 );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN o_aantal_dagen;
|
||||||
|
END;
|
||||||
|
|
||||||
PROCEDURE refreshscore(pUserKey IN NUMBER)
|
PROCEDURE refreshscore(pUserKey IN NUMBER)
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Waarden van de huidige periode(s) verwijderen.
|
-- Waarden van de huidige periode(s) verwijderen.
|
||||||
-- TODO: tricky met KPI's op basis van storingsmeldingen, klachten etc; daar kan voor een
|
-- TODO: tricky met KPI's op basis van storingsmeldingen, klachten etc; daar kan voor een
|
||||||
-- periode maar zo een extra melding afgemeld worden, waardoor de score opnieuw berekend wordt
|
-- periode maar zo een extra melding afgemeld worden, waardoor de score opnieuw berekend wordt
|
||||||
DELETE kpi_score
|
DELETE kpi_score
|
||||||
WHERE (kpi_definitie_key, kpi_score_datum, alg_locatie_key) IN (
|
WHERE (kpi_definitie_key, kpi_score_datum, alg_locatie_key) IN (
|
||||||
SELECT DISTINCT kpi_definitie_key, kpi_score_datum, alg_locatie_key
|
SELECT DISTINCT kpi_definitie_key, kpi_score_datum, alg_locatie_key
|
||||||
@@ -3806,7 +3963,7 @@ AS
|
|||||||
kpi_score_norm_score,
|
kpi_score_norm_score,
|
||||||
kpi_score_drempels)
|
kpi_score_drempels)
|
||||||
SELECT * FROM demo_v_kpi_all;
|
SELECT * FROM demo_v_kpi_all;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
END;
|
END;
|
||||||
END;
|
END;
|
||||||
|
|||||||
Reference in New Issue
Block a user