ASLE#31926 -- implementatie Asito Leisure.

svn path=/Customer/trunk/; revision=24843
This commit is contained in:
Arthur Egberink
2015-04-15 14:48:06 +00:00
parent 58f3488503
commit c08ba8c807

View File

@@ -8,6 +8,14 @@
SPOOL xasle.lst
SET ECHO ON
/*
create table asle_tmp_zone_wis (tijdstip DATE, prs_perslid_key NUMBER(10), alg_locatie_key NUMBER(10))
select tijd, count(tijd) from (select to_char(tijdstip, 'hh24') tijd from asle_tmp_zone_wis)
group by tijd
order by tijd
*/
CREATE OR REPLACE VIEW asle_v_ruimte_gegevens
( alg_locatie_key,
@@ -182,6 +190,79 @@ AS
AND o.mld_opdr_key = s.mld_opdr_key
AND o.mld_opdr_key = ks.mld_opdr_key(+);
CREATE OR REPLACE VIEW asle_v_work_list_supervisor
(
timestamp,
datum,
naam,
ruimte,
type_schoonmaak,
opmerking_sup,
locatie,
opdr_status,
volgorde,
plan_eind
)
AS
SELECT (volgorde
|| TO_CHAR (COALESCE (plan_eind, SYSDATE + 1), 'yyyymmddhh24mi'))
timestamp,
datum,
prs_perslid_naam,
alg_ruimte_nr,
type_schoonmaak,
opmerking_sup,
alg_locatie_omschrijving,
status,
volgorde,
plan_eind
FROM (SELECT TO_CHAR (mld_melding_einddatum, 'dd-mm-yyyy') datum,
(SELECT prs_perslid_voornaam
FROM prs_perslid p
WHERE p.prs_perslid_key = s.prs_perslid_key)
prs_perslid_naam,
'K' || rg.alg_ruimte_nr alg_ruimte_nr,
mld_stdmelding_omschrijving type_schoonmaak,
rg.opmerking_sup,
rg.alg_locatie_omschrijving,
DECODE (mld_statusopdr_omschrijving,
'Geaccepteerd', 'Gestart',
'Toegekend', 'Gepland',
'Afgemeld', 'Klaar',
'')
status,
DECODE (mld_statusopdr_omschrijving,
'Geaccepteerd', '2',
'Toegekend', '3',
'Afgemeld', '1',
'9')
volgorde,
DECODE (
mld_statusopdr_omschrijving,
'Geaccepteerd',
mld.getopdrachtstatusdate (mld_opdr_key, 8),
'Afgemeld',
mld.getopdrachtstatusdate (mld_opdr_key,
mld_statusopdr_key),
plan_eind)
plan_eind
FROM (SELECT prs_perslid_naam,
plan_start,
mld_melding_einddatum,
mld_stdmelding_omschrijving,
prs_perslid_key,
alg_ruimte_key,
b.mld_statusopdr_key,
mld_statusopdr_omschrijving,
plan_eind,
mld_opdr_key
FROM asle_v_schoonmaak_bron b, mld_statusopdr so
WHERE b.mld_statusopdr_key = so.mld_statusopdr_key(+)
AND TRUNC (mld_melding_einddatum) >
TRUNC (SYSDATE - 27)) s,
asle_v_ruimte_gegevens rg
WHERE rg.alg_ruimte_key = s.alg_ruimte_key(+));
CREATE OR REPLACE VIEW asle_v_rap_schoonmaak_sched
(
fclt_f_datum,
@@ -226,38 +307,53 @@ CREATE OR REPLACE VIEW asle_v_rap_supervisor_sched
type_schoonmaak,
start_inzet,
opmerking_sup,
locatie
locatie,
opdr_status
)
AS
SELECT TO_CHAR (mld_melding_einddatum, 'dd-mm-yyyy') datum,
SELECT TO_CHAR (einddatum, 'dd-mm-yyyy') datum,
(SELECT prs_perslid_voornaam
FROM prs_perslid p
WHERE p.prs_perslid_key = s.prs_perslid_key)
prs_perslid_naam,
TO_CHAR (plan_start, 'hh24:mi') plan_start,
TO_CHAR (mld_melding_einddatum, 'hh24:mi') beschikbaar,
rg.zone,
zone,
SUBSTR (compartiment, 1, 1),
rg.compartiment,
rg.alg_ruimte_nr,
compartiment,
alg_ruimte_nr,
mld_stdmelding_omschrijving type_schoonmaak,
(SELECT TO_CHAR (start_inzet, 'hh24:mi')
FROM asle_imp_werkschema w
WHERE TRUNC (s.mld_melding_einddatum) = TRUNC (w.start_inzet)
AND w.prs_perslid_key = s.prs_perslid_key)
start_inzet,
rg.opmerking_sup,
rg.alg_locatie_omschrijving
FROM (SELECT prs_perslid_naam,
plan_start,
mld_melding_einddatum,
mld_stdmelding_omschrijving,
prs_perslid_key,
alg_ruimte_key
FROM asle_v_schoonmaak_bron
WHERE TRUNC (mld_melding_einddatum) > TRUNC (SYSDATE - 7)) s,
asle_v_ruimte_gegevens rg
WHERE rg.alg_ruimte_key = s.alg_ruimte_key(+);
opmerking_sup,
alg_locatie_omschrijving,
mld_statusopdr_omschrijving status
FROM (SELECT *
FROM (SELECT prs_perslid_naam,
plan_start,
mld_melding_einddatum,
mld_stdmelding_omschrijving,
prs_perslid_key,
alg_ruimte_key,
b.mld_statusopdr_key,
mld_statusopdr_omschrijving
FROM asle_v_schoonmaak_bron b, mld_statusopdr so
WHERE b.mld_statusopdr_key = so.mld_statusopdr_key(+)
AND TRUNC (mld_melding_einddatum) >
TRUNC (SYSDATE - 7)) s
RIGHT OUTER JOIN
(SELECT *
FROM asle_v_ruimte_gegevens rg,
(SELECT DISTINCT
TRUNC (mld_melding_einddatum) einddatum
FROM asle_v_schoonmaak_bron
WHERE TRUNC (mld_melding_einddatum) >
TRUNC (SYSDATE - 7))) rg
ON rg.alg_ruimte_key = s.alg_ruimte_key
AND TRUNC (mld_melding_einddatum) = rg.einddatum) s;
CREATE OR REPLACE VIEW asle_v_rap_leegloop
(
@@ -273,6 +369,8 @@ AS
FROM asle_imp_kamerschema s2
WHERE s2.alg_locatie_key = e1.alg_locatie_key
AND s2.timestamp = TRUNC (e1.starttijd)
AND NOT ( ruimte_status = 'Free'
AND schoonmaak_status = 'Clean')
AND s2.verw_start_schoonmaak <= e1.starttijd)
aantal_kamers2,
(SELECT COUNT ( * )
@@ -283,7 +381,7 @@ AS
aantal
FROM ( SELECT starttijd, alg_locatie_key
FROM asle_tmp_est_cleaning
WHERE TRUNC (starttijd) = TRUNC (SYSDATE)
WHERE TRUNC (starttijd) > TRUNC(SYSDATE-7)
GROUP BY starttijd, alg_locatie_key) e1;
CREATE OR REPLACE VIEW asle_v_rap_kamer_beschikbaar
@@ -723,6 +821,8 @@ AS
END;
END LOOP;
DBMS_OUTPUT.put_line ('zone zonder schoonmaker:' || v_zone);
IF v_zone IS NULL
@@ -786,7 +886,7 @@ AS
ELSE
v_stdmelding_omschrijving := '';
v_melding_einddatum := NULL;
v_schoonmaaktijd := 20;
v_schoonmaaktijd := 5;
END IF;
@@ -881,6 +981,10 @@ AS
v_old_perslid_key := -1;
v_empty_count := 0;
DELETE asle_tmp_zone_wis
WHERE alg_locatie_key = p_locatie_key
AND TRUNC(tijdstip) = p_date;
FOR rec IN c
LOOP
IF rec.prs_perslid_key <> v_old_perslid_key
@@ -892,6 +996,8 @@ AS
THEN
v_zone_count := v_zone_count + 1;
v_old_zone := rec.zone;
INSERT INTO asle_tmp_zone_wis (prs_perslid_key, tijdstip, alg_locatie_key)
VALUES (rec.prs_perslid_key, rec.plan_start, p_locatie_key);
END IF;
IF rec.plan_start < rec.mld_melding_einddatum
@@ -959,7 +1065,7 @@ AS
WHILE v_count < rec.min_num_clean
LOOP
v_time_eind := v_time_start + 1 / (24 * 3 * v_efficiency); -- 20 min
v_time_eind := v_time_start + v_efficiency / (24 * 3); -- 20 min
INSERT INTO asle_tmp_est_cleaning (starttijd, eindtijd, alg_locatie_key)
VALUES (v_time_start, v_time_eind, p_locatie_key);
@@ -1112,8 +1218,8 @@ BEGIN
v_start_inzet,
SUBSTR (v_trolleynr, 1, 10),
SUBSTR (v_voorkeurzone, 1, 10),
fac.safe_to_number(v_min_uren),
fac.safe_to_number (v_max_uren),
fac.safe_to_number(REPLACE(v_min_uren, ',', '.')),
fac.safe_to_number (REPLACE(v_max_uren, ',', '.')),
SUBSTR (COALESCE(v_voorkeurzone, '-1'), 1, 10),
v_start_inzet);
END IF;
@@ -1163,6 +1269,14 @@ EXCEPTION
END;
/
CREATE OR REPLACE PROCEDURE asle_update_werkschema (
p_import_key IN NUMBER)
AS
BEGIN
fac.imp_writelog (p_import_key, 'S', 'Inlezen werkschema voltooid', '');
END;
/
CREATE OR REPLACE PROCEDURE asle_import_kamerschema (
p_import_key IN NUMBER,
p_offset IN NUMBER)
@@ -1329,7 +1443,7 @@ BEGIN
INTO v_verw_checkout_txt, v_vervaldatum
FROM fac_usrdata
WHERE fac_usrtab_key = v_usrtab_key
AND fac_usrdata_upper = UPPER(v_groep_naam);
AND UPPER(v_groep_naam) LIKE fac_usrdata_upper || '%';
IF v_vervaldatum < TRUNC(v_timestamp)
THEN
@@ -1352,7 +1466,7 @@ BEGIN
END IF;
v_errormsg := 'Bepalen type schoonmaak';
IF v_schoonmaak_status = 'Clean'
IF v_schoonmaak_status = 'Clean' AND p_offset = 0
THEN
CASE v_ruimte_status
WHEN 'Blocked' THEN v_type_schoonmaak := 'Blocked';
@@ -1365,7 +1479,13 @@ BEGIN
ELSE
CASE v_ruimte_status
WHEN 'Departure' THEN v_type_schoonmaak := 'Checkout';
WHEN 'Free' THEN v_type_schoonmaak := 'Checkout';
WHEN 'Free' THEN
IF v_schoonmaak_status = 'Dirty' AND p_offset = 0
THEN
v_type_schoonmaak := 'Checkout';
ELSE
v_type_schoonmaak := NULL;
END IF;
WHEN 'Blocked' THEN v_type_schoonmaak := 'Blocked';
WHEN 'Stay' THEN
IF v_type_gast = 'Crew'
@@ -1387,7 +1507,7 @@ BEGIN
v_vertrek_datum_txt := TO_CHAR(SYSDATE + p_offset, 'dd-mm-yyyy');
END IF;
IF v_schoonmaak_status = 'Clean'
IF v_schoonmaak_status = 'Clean' AND v_ruimte_status = 'Free'
THEN
v_verw_start_schoonmaak := TRUNC(SYSDATE + p_offset);
ELSIF v_checkout_status = 'checked out'
@@ -1888,7 +2008,7 @@ END;
--/
BEGIN fac.registercustversion('ASLE', 1); END;
BEGIN fac.registercustversion('ASLE', 3); END;
/
COMMIT;