BAMG#77100 -- Rapportage: BAM Huisvesting beheerde locaties
svn path=/Customer/trunk/; revision=59817
This commit is contained in:
135
BAMG/bamg.sql
135
BAMG/bamg.sql
@@ -1097,14 +1097,47 @@ SELECT NULL,
|
||||
CREATE OR REPLACE VIEW bamg_v_rap_loc_beheer_chv
|
||||
AS
|
||||
SELECT alg_locatie_code,
|
||||
max(alg_srtgebouw_omschrijving) srtgebouw,
|
||||
k.prs_kostenplaats_nr,
|
||||
alg_locatie_adres,
|
||||
alg_locatie_postcode,
|
||||
alg_locatie_plaats,
|
||||
km.prs_perslid_naam_full km,
|
||||
sem.prs_perslid_naam_full sem
|
||||
sem.prs_perslid_naam_full sem,
|
||||
MAX(FLX.getdomeinwaarde (21, FLX.getflex ('ALG', 1005, g.alg_gebouw_key, 'G'))) huureigen,
|
||||
SUM(FLX.getflex ('ALG', 1041, g.alg_gebouw_key, 'G')) kantoor,
|
||||
SUM(FLX.getflex ('ALG', 1042, g.alg_gebouw_key, 'G')) bedrijf,
|
||||
SUM(FLX.getflex ('ALG', 1043, g.alg_gebouw_key, 'G')) terrein,
|
||||
(SELECT MAX(cnt_contract_looptijd_tot)
|
||||
FROM cnt_contract c
|
||||
WHERE c.cnt_contract_status <> 1
|
||||
AND cnt_contract_verwijder IS NULL
|
||||
AND ins_discipline_key = 181 -- Huurcontracten
|
||||
AND cnt_contract_key IN
|
||||
(SELECT cp.cnt_contract_key
|
||||
FROM cnt_contract_plaats cp
|
||||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||||
AND cp.cnt_contract_plaats_verwijder IS NULL
|
||||
UNION ALL
|
||||
SELECT cp.cnt_contract_key
|
||||
FROM cnt_contract_plaats cp, alg_gebouw g2
|
||||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||||
AND g2.alg_locatie_key = l.alg_locatie_key
|
||||
AND cp.cnt_alg_plaats_key = g2.alg_gebouw_key
|
||||
AND g2.alg_gebouw_verwijder IS NULL
|
||||
AND cp.cnt_contract_plaats_verwijder IS NULL)) looptijdtot,
|
||||
(SELECT LISTAGG (FLX.getdomeinwaarde (341, FLX.getflex ('ALG', alg_kenmerk_key, g2.alg_gebouw_key, 'G')), CHR(10) )
|
||||
WITHIN GROUP (order by alg_kenmerk_key) onderhuurder
|
||||
FROM alg_gebouw g2, alg_kenmerk
|
||||
WHERE l.alg_locatie_key = g2.alg_locatie_key
|
||||
AND g2.alg_gebouw_verwijder IS NULL
|
||||
AND alg_kenmerk_key IN ( 1240, 1380, 1381, 1382, 1400, 1401, 1402) -- onderhuur 1 t/m 7
|
||||
GROUP BY l.alg_locatie_key
|
||||
) onderhuur
|
||||
FROM alg_locatie l,
|
||||
alg_gebouw g,
|
||||
alg_srtgebouw sg,
|
||||
prs_kostenplaats k,
|
||||
prs_v_perslid_fullnames km,
|
||||
prs_v_perslid_fullnames sem
|
||||
@@ -1112,10 +1145,11 @@ AS
|
||||
AND g.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||||
AND g.prs_perslid_key_verantw2 = km.prs_perslid_key(+)
|
||||
AND g.prs_perslid_key_verantw = sem.prs_perslid_key(+)
|
||||
AND g.alg_srtgebouw_key = 21
|
||||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
|
||||
AND g.alg_gebouw_verwijder IS NULL
|
||||
GROUP BY alg_locatie_code,
|
||||
k.prs_kostenplaats_nr,
|
||||
l.alg_locatie_key,
|
||||
alg_locatie_adres,
|
||||
alg_locatie_postcode,
|
||||
alg_locatie_plaats,
|
||||
@@ -2446,6 +2480,45 @@ AS
|
||||
CREATE OR REPLACE PROCEDURE bamg_daily
|
||||
AS
|
||||
|
||||
CURSOR c_frz
|
||||
IS
|
||||
SELECT DISTINCT mld_opdr_key
|
||||
FROM bamg_v_kosten_rev_billing
|
||||
WHERE datum = ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -1)
|
||||
AND mld_statusopdr_omschrijving = 'Afgerond';
|
||||
|
||||
-- Als status geleverd is (6)
|
||||
CURSOR c_frz_bes_itm
|
||||
IS
|
||||
SELECT boi.bes_bestelopdr_item_key, bes_bestelopdr_datum
|
||||
FROM bes_bestelopdr_item boi, bes_bestelopdr bo
|
||||
WHERE bo.prs_bedrijf_key <> 109 -- Lyreco
|
||||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND bes_bestelopdr_item_status IS NULL;
|
||||
|
||||
CURSOR c_besopdr IS
|
||||
SELECT bes_bestelopdr_key
|
||||
FROM bes_bestelopdr bo
|
||||
WHERE bes_bestelopdr_status = 4
|
||||
AND bo.prs_bedrijf_key <> 109 -- Lyreco
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM bes_bestelopdr_item boi
|
||||
WHERE bo.bes_bestelopdr_key =
|
||||
boi.bes_bestelopdr_key
|
||||
AND bes_bestelopdr_item_status <> 6);
|
||||
|
||||
CURSOR c_bestel IS
|
||||
SELECT bes_bestelling_key
|
||||
FROM bes_bestelling b
|
||||
WHERE bes_bestelling_status = 5
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM bes_bestelling_item bi
|
||||
WHERE b.bes_bestelling_key =
|
||||
bi.bes_bestelling_key
|
||||
AND bes_bestelling_item_status <> 6);
|
||||
|
||||
v_volgnr NUMBER;
|
||||
v_volgnr_kto NUMBER;
|
||||
v_opdr_key NUMBER;
|
||||
@@ -2507,6 +2580,64 @@ BEGIN
|
||||
to_char(add_months(TRUNC(SYSDATE), -12), 'dd-mm-yyyy hh24:mi:ss'));
|
||||
END;
|
||||
|
||||
-- bevries alle opdrachten die de vorige maand zijn afgerond.
|
||||
BEGIN
|
||||
v_volgnr := v_volgnr + 1;
|
||||
FOR rec in c_frz
|
||||
LOOP
|
||||
v_opdr_key := rec.mld_opdr_key;
|
||||
-- zet de status naar verwerkt (user is facilitor)
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 7, NULL);
|
||||
END LOOP;
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
|
||||
VALUES('Freeze', v_volgnr, 'Error: Fout opgetreden bij het bevriezen van de opdracht ' || to_char(SYSDATE, 'yyyymmdd hh24mi') || ' opdr_key: ' || v_opdr_key);
|
||||
END;
|
||||
|
||||
-- bevries alle bestelopdrachten en bestellingen.
|
||||
BEGIN
|
||||
-- Zet de ontvangen aantallen gelijk aan de bestelde aantallen.
|
||||
FOR rec IN c_frz_bes_itm
|
||||
LOOP
|
||||
UPDATE bes_bestelopdr_item B
|
||||
SET bes_bestelopdr_item_aantalontv =
|
||||
COALESCE (bes_bestelopdr_item_aantal, 0),
|
||||
bes_bestelopdr_item_ontvangen = rec.bes_bestelopdr_datum
|
||||
WHERE bes_bestelopdr_item_key = rec.bes_bestelopdr_item_key;
|
||||
|
||||
UPDATE bes_bestelling_item
|
||||
SET bes_bestelling_item_aantalontv =
|
||||
COALESCE (bes_bestelling_item_aantal, 0)
|
||||
WHERE bes_bestelopdr_item_key = rec.bes_bestelopdr_item_key;
|
||||
END LOOP;
|
||||
|
||||
-- Update de state van de bestelopdrachten
|
||||
FOR rec IN c_besopdr
|
||||
LOOP
|
||||
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, 3);
|
||||
UPDATE bes_bestelopdr_item
|
||||
SET bes_bestelopdr_item_status = 7, -- verwerkt.
|
||||
bes_bestelopdr_item_verwerkt = SYSDATE
|
||||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
||||
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, 3);
|
||||
END LOOP;
|
||||
|
||||
-- Update de state van de bestelaanvragen
|
||||
FOR rec IN c_bestel
|
||||
LOOP
|
||||
bes.updatebestellingstatus (rec.bes_bestelling_key, 3);
|
||||
UPDATE bes_bestelling_item
|
||||
SET bes_bestelling_item_status = 7 -- verwerkt.
|
||||
WHERE bes_bestelling_key = rec.bes_bestelling_key;
|
||||
bes.updatebestellingstatus (rec.bes_bestelling_key, 3);
|
||||
END LOOP;
|
||||
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
|
||||
VALUES('Freeze', v_volgnr, 'Error: Fout opgetreden bij het bevriezen van de bestelopdracht ' || to_char(SYSDATE, 'yyyymmdd hh24mi') || ' opdr_key: ' || v_opdr_key);
|
||||
END;
|
||||
END IF;
|
||||
|
||||
END;
|
||||
|
||||
Reference in New Issue
Block a user