BAMG#77100 -- Rapportage: BAM Huisvesting beheerde locaties

svn path=/Customer/trunk/; revision=59817
This commit is contained in:
Arthur Egberink
2023-03-30 09:52:35 +00:00
parent 2f2a114cc2
commit 33359ad708

View File

@@ -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;