/* Formatted on 2005/05/27 13:17 (Formatter Plus v4.8.0) */
CREATE OR REPLACE VIEW conn_v_open_huur_mut (hide_f_melding_key,
                                             fclt_f_melding,
                                             fclt_f_locatie,
                                             gebouw_terrein,
                                             verdieping,
                                             ruimte
                                            )
AS
   SELECT mld_melding_key, to_char(mld_melding_key), l.alg_locatie_code,
          NVL (g.alg_gebouw_code, t.alg_terreinsector_code),
          v.alg_verdieping_code, alg_ruimte_nr
     FROM mld_melding m,
          alg_v_allonroerendgoed aog,
          cnt_contract_onrgoed cog,
          alg_locatie l,
          alg_gebouw g,
          alg_verdieping v,
          alg_ruimte r,
          alg_terreinsector t
    WHERE m.mld_melding_key = cog.cnt_mld_melding_key
      AND aog.alg_gebouw_key = g.alg_gebouw_key(+)
      AND aog.alg_verdieping_key = v.alg_verdieping_key(+)
      AND aog.alg_ruimte_key = r.alg_ruimte_key(+)
      AND aog.alg_terreinsector_key = t.alg_terreinsector_key(+)
      AND aog.alg_locatie_key = l.alg_locatie_key
      AND aog.alg_onroerendgoed_keys = cog.alg_onrgoed_key;


-- CONN#435
CREATE OR REPLACE VIEW CONN_V_LEV_SCHOONMAAK
(PRS_BEDRIJF_KEY, PRS_BEDRIJF_NAAM)
AS 
SELECT DISTINCT prs_bedrijf.PRS_BEDRIJF_KEY,prs_bedrijf.PRS_BEDRIJF_NAAM
FROM prs_bedrijf, prs_bedrijfdienstlocatie
WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL
  AND prs_bedrijf.prs_bedrijf_key = prs_bedrijfdienstlocatie.prs_bedrijf_key
  AND prs_bedrijfdienstlocatie.prs_dienst_key = 129 ; 
  

CREATE OR REPLACE VIEW CONN_MI_RAPPORT_PROD_GROEP
(NR, FCLT_F_MAAND, NAAM, FCLT_F_BUSINESS_UNIT, AFDELING, 
 KOSTENPLAATS, AANTAL, FCLT_F_CATALOGUS, FCLT_F_GROEP, PRIJS, 
 FCLT_3D_AFDELING_KEY)
AS 
SELECT 
  TO_CHAR(b.bes_bestelling_key) c1, 
  TO_CHAR(bes_bestelling_datum, 'YYMM') C3, 
  prs_perslid_naam||DECODE(prs_perslid_voorletters,NULL,'',', '||prs_perslid_voorletters) c6, 
  bu.prs_afdeling_omschrijving c5, 
  fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving c7 , 
  b.BES_BESTELLING_ORDERNR kp, 
  SUM( bi.bes_bestelling_item_aantal) c9, 
  d.INS_DISCIPLINE_OMSCHRIJVING d1, 
  g.ins_srtgroep_omschrijving d2, 
  SUM( bi.bes_bestelling_item_aantal * pr.PRIJS) c10, 
  fu.prs_afdeling_key 
FROM 
  BES_BESTELLING_ITEM bi, 
  INS_SRTDEEL srt, 
  BES_BESTELLING b, 
  BES_BESTELLINGSTATUSES s, 
  PRS_PERSLID p, 
  PRS_AFDELING a, 
  PRS_AFDELING bu, 
  PRS_V_AFDELING_BOOM bo, 
  PRS_V_AFDELING_FULLNAMES fu, 
  INS_SRTGROEP g, 
  INS_TAB_DISCIPLINE d, 
  BES_ITEM_PRIJS pr 
WHERE 
  b.bes_bestelling_status = s.BES_BESTELLINGSTATUSES_KEY AND 
  bi.INS_SRTDEEL_key = srt.INS_SRTDEEL_key AND 
  bi.BES_bestelling_item_key = pr.bes_bestelling_item_key AND 
  bi.BES_bestelling_KEY = b.BES_bestelling_KEY AND 
  p.prs_perslid_key = b.prs_perslid_key AND 
  bo.prs_afdeling_key(+) = a.prs_afdeling_key AND 
  fu.prs_afdeling_key = a.prs_afdeling_key AND 
  bu.prs_afdeling_key = bo.[REDACTED] 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), 
  bu.PRS_AFDELING_omschrijving, 
  fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving, 
  d.INS_DISCIPLINE_OMSCHRIJVING, 
  b.BES_BESTELLING_ORDERNR, 
  fu.prs_afdeling_key, 
  g.ins_srtgroep_omschrijving; 




CREATE OR REPLACE VIEW CONN_MI_RAPPORT_ARTIKELEN
(FCLT_F_MAAND, AANTAL, FCLT_F_CATALOGUS, FCLT_F_GROEP, FCLT_F_OMSCHRIJVING, PRIJS)
AS 
SELECT 
  TO_CHAR(bes_bestelling_datum, 'YYMM'), 
  SUM( bi.bes_bestelling_item_aantal), 
  d.INS_DISCIPLINE_OMSCHRIJVING, 
  g.ins_srtgroep_omschrijving, 
  ins_srtdeel_omschrijving,
  SUM( bi.bes_bestelling_item_aantal * pr.PRIJS) 
FROM 
  BES_BESTELLING_ITEM bi, 
  INS_SRTDEEL srt, 
  BES_BESTELLING b, 
  INS_SRTGROEP g, 
  INS_TAB_DISCIPLINE d, 
  BES_ITEM_PRIJS pr 
WHERE 
  bi.INS_SRTDEEL_key = srt.INS_SRTDEEL_key AND 
  bi.BES_bestelling_item_key = pr.bes_bestelling_item_key AND 
  bi.BES_bestelling_KEY = b.BES_bestelling_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
  bi.bes_bestelling_item_aantal <> 0
GROUP BY 
  TO_CHAR(bes_bestelling_datum, 'YYMM'), 
  d.INS_DISCIPLINE_OMSCHRIJVING, 
  g.ins_srtgroep_omschrijving, 
  ins_srtdeel_omschrijving;




CREATE OR REPLACE VIEW CONN_V_LOCATIEHUURDER
(OMSCHRIJVING, HUURDER_KEY, COMPLEX, HUURDER, HUURDERNR, 
 BUDGETCODE)
AS 
SELECT complex ||'-'|| huurder ||'-'|| budgetcode as omschrijving,
	nvl(fac.safe_to_number(complex),0)*100000 + nvl(fac.safe_to_number(substr(budgetcode,instr(budgetcode,'-')+1)),0)  as huurder_key,
    COMPLEX,
	HUURDER,
	HUURDERNR,
	BUDGETCODE
FROM (
SELECT alg_locatie_code complex,
       NVL(a.PRS_AFDELING_OMSCHRIJVING, b.PRS_BEDRIJF_NAAM) huurder,
	   SUBSTR(NVL(a.PRS_AFDELING_KOSTENPLAATS, b.PRS_LEVERANCIER_NR), INSTR(NVL(a.PRS_AFDELING_KOSTENPLAATS, b.PRS_LEVERANCIER_NR),'/') +1) huurdernr,
  	   SUBSTR(NVL(a.PRS_AFDELING_KOSTENPLAATS, b.PRS_LEVERANCIER_NR), 1,INSTR(NVL(a.PRS_AFDELING_KOSTENPLAATS, b.PRS_LEVERANCIER_NR),'/') -1) budgetcode 
FROM CNT_V_CONTRACT_LOCATIE_GEG lg
    ,ALG_LOCATIE l
	,PRS_BEDRIJF b
	,PRS_AFDELING a
WHERE CNT_SRTCONTRACT_KEY = 2
  AND l.ALG_LOCATIE_KEY = lg.ALG_LOCATIE_KEY
  AND lg.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY(+)
  AND lg.CNT_PRS_AFDELING_KEY = a.PRS_AFDELING_KEY(+));


--
-- CONN#460
--
CREATE OR REPLACE PACKAGE CONN_RAP AS
  -- PACKAGES voor de Connexxion specifieke rapportages
  TYPE t_cursor IS REF CURSOR;
  FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN NUMBER;
  FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN DATE;
  PROCEDURE conn_p_verbruik (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
 END;
/

CREATE OR REPLACE PACKAGE BODY CONN_RAP AS
  --
  -- Algemene procedures en functies.
  --
  --
  FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER
                            ,p_ins_kenmerk_key IN NUMBER
                            ,p_sample_date IN DATE
                            ) RETURN DATE IS
    v_waarde DATE;
  BEGIN
    SELECT waarde 
	  INTO v_waarde 
      FROM (
	      SELECT ins_kenmerkdeel_aanmaak waarde
            FROM ins_kenmerkdeel skd
           WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
             AND skd.ins_deel_key = p_ins_deel_key
	       ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
		   )
     WHERE ROWNUM = 1;
    RETURN v_waarde;
  END;
  --
  FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER
                            ,p_ins_kenmerk_key IN NUMBER
                            ,p_sample_date IN DATE
                            ) RETURN NUMBER IS
    v_waarde NUMBER;
  BEGIN
    SELECT waarde 
	  INTO v_waarde 
      FROM (
	      SELECT ins_kenmerkdeel_waarde waarde
            FROM ins_kenmerkdeel skd
           WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
             AND skd.ins_deel_key = p_ins_deel_key
	       ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
		   )
     WHERE ROWNUM = 1;
    RETURN v_waarde;
  END;
  --
  PROCEDURE conn_p_verbruik (user_key IN NUMBER
                            ,p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
                             p_datum_tot IN VARCHAR2,
                             p_cursor OUT t_cursor) AS
    v_datum_van  DATE;
    v_datum_tot  DATE;
	v_alg_level_read NUMBER;
  BEGIN
    v_datum_van := fac.safe_to_date(p_datum_van, 'dd-mm-yyyy');
    v_datum_tot := fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy');
 
    SELECT MIN(fac_gebruiker_alg_level_read)
      INTO v_alg_level_read
      FROM fac_v_webgebruiker
     WHERE prs_perslid_key = user_key
       AND fac_functie_key = 242; -- WEB_OBJUSE
	
    IF v_alg_level_read = -1 THEN
	
      OPEN p_cursor FOR
        SELECT alg_locatie_code code, 
		       alg_locatie_omschrijving naam, 
			   ins_deel_omschrijving meter,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
               FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
               to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
			   to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
          FROM (
		      SELECT DISTINCT  
			         d.ins_deel_key, 
					 k.ins_kenmerk_key, 
					 ins_deel_omschrijving, 
					 alg_locatie_key, 
					 alg_locatie_omschrijving, 
					 alg_locatie_code
	            FROM ins_v_aanwezigsrtdeel sd,
                     ins_v_aanwezigdeel d,
                     ins_kenmerkdeel kd,
                     ins_kenmerk k,
                     ins_srtkenmerk sk,
                     alg_locatie l
               WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
                AND d.ins_deel_key = kd.ins_deel_key
	            AND d.ins_alg_locatie_key = l.alg_locatie_key
                AND kd.ins_kenmerk_key = k.ins_kenmerk_key
                AND k.ins_kenmerk_verwijder IS NULL
                AND k.ins_kenmerk_volgnummer >= 100
                AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
                AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
			    ) res
	      ORDER BY code;
    ELSE
      OPEN p_cursor FOR
        SELECT alg_locatie_code code, 
		       alg_locatie_omschrijving naam, 
			   ins_deel_omschrijving meter,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
                  FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
			   to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
			   to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
			   FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
          FROM (
		    SELECT DISTINCT
			       d.ins_deel_key, 
				   k.ins_kenmerk_key, 
				   ins_deel_omschrijving, 
				   alg_locatie_key, 
				   alg_locatie_omschrijving, 
				   alg_locatie_code
	          FROM ins_v_aanwezigsrtdeel sd,
                   ins_v_aanwezigdeel d,
                   ins_kenmerkdeel kd,
                   ins_kenmerk k,
                   ins_srtkenmerk sk,
	        	   alg_locatie l
             WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
               AND d.ins_deel_key = kd.ins_deel_key
	           AND d.INS_ALG_LOCATIE_KEY = l.alg_locatie_key
               AND kd.ins_kenmerk_key = k.ins_kenmerk_key
               AND k.ins_kenmerk_verwijder IS NULL
               AND k.ins_kenmerk_volgnummer >= 100
               AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
               AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
	           AND alg_locatie_key IN (
			       SELECT alg_locatie_key 
				     FROM FAC_V_MY_ALG_LOCATIE_READ 
					WHERE PRS_PERSLID_KEY = user_key
					  AND FAC_FUNCTIE_CODE = 'WEB_OBJUSE'
					                  )
                ) res
	       ORDER BY code;
	END IF;
  END;
END;
/




--
-- CONN #455, 540
--
/* Formatted on 2005/04/26 14:38 (Formatter Plus v4.8.0) */
CREATE OR REPLACE VIEW conn_v_export_xelion (fclt_f_complex,
                                             fclt_f_contract,
                                             tarieftype,
                                             oppervlakte,
                                             prijs
                                            )
AS
   SELECT   l.alg_locatie_code, cnt_contract_nummer, sog.srtonrgoed_code,
            SUM (cog.cnt_contract_onrgoed_opp) AS tot_opp, srtonrgoed_prijs
       FROM cnt_contract c,
            cnt_contract_onrgoed cog,
            alg_v_onroerendgoed_gegevens aog,
            alg_locatie l,
            (SELECT alg_srtruimte_key AS srtonrgoed_key,
                    alg_srtruimte_code AS srtonrgoed_code,
                    alg_srtruimte_prijs AS srtonrgoed_prijs,
                    'R' AS alg_onrgoed_niveau
               FROM alg_srtruimte
             UNION ALL
             SELECT alg_srtterreinsector_key AS srtonrgoed_key,
                    alg_srtterreinsector_code AS srtonrgoed_code,
                    alg_srtterreinsector_prijs AS srtonrgoed_prijs,
                    'T' AS alg_onrgoed_niveau
               FROM alg_srtterreinsector) sog
      WHERE cog.cnt_contract_key = c.cnt_contract_key
        AND aog.alg_onroerendgoed_keys = cog.alg_onrgoed_key
        AND cog.cnt_contract_onrgoed_key_org IS NULL
        AND aog.alg_locatie_key = l.alg_locatie_key
        AND cog.alg_onrgoed_niveau = sog.alg_onrgoed_niveau
        AND sog.srtonrgoed_key = cog.alg_srtonrgoed_key
   GROUP BY c.cnt_contract_key,
            c.cnt_contract_nummer,
            l.alg_locatie_code,
            sog.srtonrgoed_code,
            sog.srtonrgoed_prijs;




--
-- CONN #451
--
CREATE OR REPLACE VIEW conn_v_bestelopdr_gegevens (hide_f_opdracht,
                                                   datum,
                                                   fclt_f_opdrnr,
                                                   fclt_f_naam,
                                                   telefoon,
                                                   fclt_f_status
                                                  )
AS
   SELECT DISTINCT bo.bes_bestelopdr_key, 
                   TO_CHAR (b.bes_bestelling_datum, 'DD-MM-YYYY'),
                   TO_CHAR (bo.bes_bestelopdr_key), 
				   (SELECT pf.prs_perslid_naam_full FROM prs_v_perslid_fullnames pf WHERE pf.prs_perslid_key = b.prs_perslid_key),
                   b.bes_bestelling_telefoon,
                   bos.bes_bestelopdrstatuses_omschr
              FROM bes_bestelling b,
                   bes_bestelling_item bi,
                   bes_bestelopdr bo,
                   bes_bestelopdrstatuses bos
             WHERE bes_bestelopdr_status IN (4, 5, 6, 7)
               AND bi.bes_bestelling_key = b.bes_bestelling_key
               AND bo.bes_bestelopdr_key = bi.bes_bestelopdr_key
               AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key;

--
-- CONN#321
--

create or replace view CONN_V_BESTELLER_Z_KOSTENPL (NAAM, AFDELING, LIMIET) 
AS select pf.PRS_PERSLID_NAAM_FULL, a.PRS_AFDELING_OMSCHRIJVING, kl.PRS_KENMERKLINK_WAARDE from prs_v_aanwezigperslid p, prs_afdeling a, prs_v_aanwezigkenmerklink kl, prs_v_perslid_fullnames pf
where p.prs_perslid_key = kl.PRS_LINK_KEY
  and p.prs_perslid_key = pf.prs_perslid_key
  and p.prs_afdeling_key = a.prs_afdeling_key
  and kl.PRS_KENMERK_KEY = 1001
  and prs_afdeling_kostenplaats is null;


CREATE OR REPLACE VIEW CONN_V_ONTVANGEN_HUURCONTR
(FCLT_F_Xelioncontractnummer, Xelionsubcontractnummer,
FCLT_F_mutatienummer, navisioncontractvolgnummer, FCLT_F_huurder, budgetcode, FCLT_F_complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key)
as
select Xelioncontractnummer, Xelionsubcontractnummer,
mutatienummer, navisioncontractvolgnummer, huurder, budgetcode, complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key from conn_ontv_mutatie;


CREATE OR REPLACE VIEW CONN_V_HUURCONTRACT_DETAILS (FCLT_F_LOCATIE, FCLT_F_NAAM, FCLT_F_NUMMER, OPP, PRIJS, CODE)
as
select (select alg_locatie_code from alg_locatie where alg_locatie_key = locatie),
       nvl ((select b.prs_bedrijf_naam from prs_bedrijf b, cnt_contract cn where prs_bedrijf_key = cn.CNT_PRS_BEDRIJF_KEY and contract_key = cn.cnt_contract_key),
            (select a.prs_afdeling_omschrijving from prs_afdeling a, cnt_contract cn where prs_afdeling_key = cn.CNT_PRS_AFDELING_KEY and contract_key = cn.cnt_contract_key)) as naam, 
       nvl ((select b.prs_leverancier_nr from prs_bedrijf b, cnt_contract cn where prs_bedrijf_key = cn.CNT_PRS_BEDRIJF_KEY and contract_key = cn.cnt_contract_key),
            (select a.prs_afdeling_kostenplaats from prs_afdeling a, cnt_contract cn where prs_afdeling_key = cn.CNT_PRS_AFDELING_KEY and contract_key = cn.cnt_contract_key)) as nr, 
       opp, prijs, code
from (
     select contract_key
          , sum(cnt_contract_onrgoed_opp) opp
          , prijs
          , code
          , locatie
     from
          (
          select c.cnt_contract_key as contract_key, co.cnt_contract_onrgoed_opp,
                 nvl((select alg_srtruimte_prijs from alg_srtruimte where alg_srtruimte_key = alg_srtonrgoed_key and co.alg_onrgoed_niveau = 'R'),
                     (select alg_srtterreinsector_prijs from alg_srtterreinsector where alg_srtterreinsector_key = alg_srtonrgoed_key)) as prijs,
                 nvl((select alg_srtruimte_code from alg_srtruimte where alg_srtruimte_key = alg_srtonrgoed_key and co.alg_onrgoed_niveau = 'R'),
                     (select alg_srtterreinsector_code from alg_srtterreinsector where alg_srtterreinsector_key = alg_srtonrgoed_key)) as code,
                 nvl((select alg_locatie_key from alg_gebouw g, alg_verdieping v, alg_ruimte r 
                             where r.alg_ruimte_key = alg_onrgoed_key and r.alg_verdieping_key = v.alg_verdieping_key and v.alg_gebouw_key = g.alg_gebouw_key),
                     (select alg_locatie_key from alg_terreinsector where alg_terreinsector_key = alg_onrgoed_key)) as locatie
          from cnt_contract_onrgoed co, cnt_contract c 
          where c.cnt_contract_key = co.cnt_contract_key 
            and cnt_mld_melding_key is null 
          )
     group by code, contract_key, prijs, locatie
     )
order by locatie;


create or replace view CONN_V_HUURCONTRACTEN(FCLT_F_LOCATIE, FCLT_F_NAAM, FCLT_F_NUMMER, prijs)
AS
select fclt_f_locatie, fclt_f_naam, fclt_f_nummer, sum (opp * prijs) 
from CONN_V_HUURCONTRACT_DETAILS 
group by fclt_f_locatie, fclt_f_naam, fclt_f_nummer;


--
-- CONN#415 CONN#492
--
CREATE OR REPLACE VIEW CONN_V_LOCATIE_HUURDER
(FCLT_F_LOCATIE, ADRES, PLAATS, HUURDER, HUURDER_TELEFOON, 
 VERANTWOORDELIJKE, TELEFOON)
AS 
SELECT l.ALG_LOCATIE_CODE
      ,l.ALG_LOCATIE_ADRES
      ,l.ALG_LOCATIE_PLAATS
	  ,NVL(a.PRS_AFDELING_OMSCHRIJVING, b.PRS_BEDRIJF_NAAM)
	  ,b.PRS_BEDRIJF_TELEFOON
	  ,l.ALG_LOCATIE_VERANTW
	  ,l.ALG_LOCATIE_VERANTW_TEL
FROM CNT_V_CONTRACT_LOCATIE_GEG lg
    ,ALG_LOCATIE l
	,PRS_BEDRIJF b
	,PRS_AFDELING a
WHERE CNT_SRTCONTRACT_KEY = 2
  AND l.ALG_LOCATIE_KEY = lg.ALG_LOCATIE_KEY
  AND lg.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY(+)
  AND lg.CNT_PRS_AFDELING_KEY = a.PRS_AFDELING_KEY(+); 



--
-- CONN#415 CONN#496
--
CREATE OR REPLACE VIEW CONN_V_LOCATIE_BEDRIJVEN
(FCLT_F_LOCATIE, ADRES, POSTCODE, PLAATS, BEDRIJF, 
 DIENST, TELEFOONNR, STORINGSNR)
AS 
SELECT l.ALG_LOCATIE_CODE
      ,l.ALG_LOCATIE_ADRES
	  ,l.ALG_LOCATIE_POSTCODE
	  ,l.ALG_LOCATIE_PLAATS
	  ,substr(b.PRS_BEDRIJF_NAAM,1,decode(instr(b.PRS_BEDRIJF_NAAM,' _ LEV'),0,60,instr(b.PRS_BEDRIJF_NAAM,' _ LEV')))
	  ,d.PRS_DIENST_OMSCHRIJVING
	  ,b.PRS_BEDRIJF_TELEFOON
	  ,b.PRS_BEDRIJF_TELEFOON2
FROM PRS_BEDRIJFDIENSTLOCATIE bdl
    ,ALG_LOCATIE l
	,PRS_DIENST d
	,PRS_BEDRIJF b
where bdl.PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY
and bdl.ALG_LOCATIE_KEY = l.ALG_LOCATIE_KEY
and bdl.PRS_DIENST_KEY = d.PRS_DIENST_KEY
order by 1,5; 







CREATE OR REPLACE VIEW CONN_V_PERSLID_Z_LOGWWMAIL (NAAM,NUMMER,LOGIN,WACHTWOORD,EMAIL) AS
SELECT pf.prs_perslid_naam_full, p.prs_perslid_nr, p.prs_perslid_oslogin,
       RPAD (' ', LENGTH (p.prs_perslid_wachtwoord) + 1, '*'),
       (SELECT prs_kenmerklink_waarde
          FROM prs_kenmerklink kl
         WHERE prs_kenmerk_key = 5 AND kl.prs_link_key = p.prs_perslid_key)
  FROM prs_perslid p, prs_v_perslid_fullnames pf
 WHERE pf.prs_perslid_key = p.prs_perslid_key
   AND (   p.prs_perslid_oslogin IS NULL
        OR p.prs_perslid_wachtwoord IS NULL
        OR p.prs_perslid_key NOT IN (SELECT prs_link_key
                                       FROM prs_kenmerklink
                                      WHERE prs_kenmerk_key = 5)
       );

--insert into fac_usrrap (FAC_USRRAP_OMSCHRIJVING, FAC_USRRAP_VIEW_NAME, FAC_USRRAP_INFO) values
--  ('Personen zonder login..', 'CONN_V_PERSLID_Z_LOGWWMAIL', 'Personen waarbij geen login, wachtwoord of e-mail adres ingevuld is.');
--  




create or replace view conn_v_bedrijf_zonder_nummer as 
select * from prs_v_aanwezigbedrijf where prs_leverancier_nr is null
and prs_bedrijf_intern is null;



create or replace view CONN_RAP_OPDR_OPMERKINGEN AS
select alg_locatie_omschrijving fclt_f_locatie
      ,sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR  opdrachtnummer
      ,TO_CHAR(o.mLD_OPDR_DATUMBEGIN, 'dd-mm-yyyy') datum
      ,prs_bedrijf_naam leverancier
      ,mld_kenmerkopdr_waarde opmerking
from   mld_opdr o
      ,MLD_V_AANWEZIGKENMERKOPDR ko
      ,mld_melding m
      ,alg_locatie l
      ,mld_discipline md
      ,ins_srtdiscipline sd
      ,prs_bedrijf b	    
where  o.mld_opdr_key = ko.mld_opdr_key
and    ko.MLD_KENMERK_KEY = 75
and    o.MLD_TYPEOPDR_KEY = 5
and    m.mld_melding_key = o.mld_melding_key
and    m.mld_alg_locatie_key = l.alg_locatie_key
AND    md.ins_discipline_key = m.mld_ins_discipline_key            
AND    sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key            
and    b.prs_bedrijf_key(+) = o.MLD_UITVOERENDE_KEYS order by 1;




-- *
-- *  FAC_V_WEB_AUTORISATIE view
-- *
CREATE OR REPLACE VIEW FAC_V_WEB_AUTORISATIE
(BEDRIJF, FCLT_F_BUSINESS_UNIT, FCLT_F_NAAM, FCLT_F_USERID, FCLT_F_GROEP)
AS 
SELECT B.prs_bedrijf_naam as BEDRIJF
,      AD.prs_afdeling_omschrijving as FCLT_F_BUSINESS_UNIT
,      PF.prs_perslid_naam_full as FCLT_F_NAAM
,		 P.PRS_PERSLID_OSLOGIN as FCLT_F_USERID
,      GR.fac_groep_upper as FCLT_F_GROEP
  FROM PRS_V_AANWEZIGPERSLID P
,      PRS_AFDELING AD
,      PRS_V_AFDELING_BOOM AB
,      PRS_BEDRIJF B
,      FAC_GEBRUIKERSGROEP GG
,      FAC_GROEP GR
,      PRS_V_PERSLID_FULLNAMES PF
 WHERE GG.fac_groep_key=GR.fac_groep_key
   AND P.prs_perslid_key=GG.prs_perslid_key
   AND P.prs_afdeling_key = AB.prs_afdeling_key
   AND AB.prs_bedrijf_key = B.prs_bedrijf_key
   AND AB.prs_afdeling_key1 = AD.prs_afdeling_key
   AND PF.prs_perslid_key = p.prs_perslid_key;

CREATE OR REPLACE VIEW CONN_FIATTERING
(BESTELLER, LIMIET, FIATTEUR1, LIMIET1, FIATTEUR2, 
 LIMIET2)
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(+) = fac.safe_to_number(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(+) = fac.safe_to_number(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(+)=fac.safe_to_number(K3.prs_kenmerklink_waarde)
  AND K2.PRS_KENMERK_KEY IS NOT NULL
ORDER BY 1;

CREATE OR REPLACE VIEW CONN_MI_RAPPORT_VEST_MAN
(NR, FCLT_F_MAAND, NAAM, FCLT_F_BUSINESS_UNIT, FCLT_F_AFDELING, 
 KOSTENPLAATS, AANTAL, FCLT_F_CATALOGUS, PRIJS, FCLT_3D_AFDELING_KEY)
AS 
SELECT
  TO_CHAR(b.bes_bestelling_key) c1,
  TO_CHAR(bes_bestelling_datum, 'YYMM') C3,
  prs_perslid_naam||DECODE(prs_perslid_voorletters,NULL,'',', '||prs_perslid_voorletters) c6,
  bu.prs_afdeling_omschrijving c5,
  fu.prs_afdeling_naam || '/' || 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 * pr.PRIJS) c10,
  fu.prs_afdeling_key
FROM
  BES_BESTELLING_ITEM bi,
  INS_SRTDEEL srt,
  BES_BESTELLING b,
  BES_BESTELLINGSTATUSES s,
  PRS_PERSLID p,
  PRS_AFDELING a,
  PRS_AFDELING bu,
  PRS_V_AFDELING_BOOM bo,
  PRS_V_AFDELING_FULLNAMES fu,
  INS_SRTGROEP g,
  INS_TAB_DISCIPLINE d,
  BES_ITEM_PRIJS pr
WHERE
  b.bes_bestelling_status = s.BES_BESTELLINGSTATUSES_KEY AND
  bi.INS_SRTDEEL_key = srt.INS_SRTDEEL_key AND
  bi.BES_bestelling_item_key = pr.bes_bestelling_item_key AND
  bi.BES_bestelling_KEY = b.BES_bestelling_KEY AND
  p.prs_perslid_key = b.prs_perslid_key AND
  bo.prs_afdeling_key(+) = a.prs_afdeling_key AND
  fu.prs_afdeling_key = a.prs_afdeling_key AND
  bu.prs_afdeling_key = bo.[REDACTED] 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),
  bu.PRS_AFDELING_omschrijving,
  fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving,
  d.INS_DISCIPLINE_OMSCHRIJVING,
  b.BES_BESTELLING_ORDERNR,
  fu.prs_afdeling_key;

CREATE OR REPLACE VIEW CONN_V_RUIMTEGEG
(ALG_LOCATIE_CODE, ALG_GEBOUW_UPPER, ALG_GEBOUW_KEY, ALG_VERDIEPING_CODE, ALG_RUIMTE_KEY, 
 ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, ALG_SRTRUIMTE_CODE, HUURDER, HUURDERNR, 
 CNT_CONTRACT_NUMMER, ALG_SRTRUIMTE_PRIJS, BUDGETCODE, BUSINESSUNIT, RUIMTEOPPERVLAKTE, 
 GEHUURDEOPPERVLAKTE, INHUUR, UITBEHEER, RUIMTESOORT)
AS 
SELECT 
  vg.ALG_LOCATIE_CODE, 
  vg.ALG_GEBOUW_UPPER, 
  ALG_GEBOUW_KEY, 
  vg.ALG_VERDIEPING_CODE, 
  vg.alg_ruimte_key, 
  vg.ALG_RUIMTE_NR, 
  vg.ALG_RUIMTE_OMSCHRIJVING , 
  (select alg_srtruimte_code from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key) , 
  NVL(a.prs_afdeling_omschrijving, b.prs_bedrijf_naam) , 
  substr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR), instr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),'/')+1,15), 
  cnt.CNT_CONTRACT_NUMMER , 
  (select alg_srtruimte_prijs from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key) , 
   substr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),0, instr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),'/')-1), 
   nvl (   (select prs_afdeling_omschrijving from prs_afdeling abu, prs_v_afdeling_boom ab where ab.prs_afdeling_key1 = abu.prs_afdeling_key and ab.prs_afdeling_key = a.prs_afdeling_key),
           (select fac_usrdata_code from fac_usrdata ud, prs_kenmerklink kl where kl.prs_kenmerk_key = 1015 and prs_link_key = b.prs_bedrijf_key and kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)) Businessunit, 
   (select FAC.safe_To_Number(alg_onrgoedkenmerk_waarde) from alg_onrgoedkenmerk aok 
    where aok.alg_onrgoed_key = vg.alg_ruimte_key 
      and aok.alg_kenmerk_key = 106)  GetekendOppervlakte, 
  TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(cogc.CNT_CONTRACT_ONRGOED_OPP) ,'99999999D')) , 
  DECODE (NVL(inh.alg_onrgoedkenmerk_waarde,''), 130, 'Nee', 129, 'Ja'), 
  --inh.alg_onrgoedkenmerk_waarde, 
  uit.alg_onrgoedkenmerk_waarde, 
  DECODE (substr((select alg_srtruimte_code from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key),0,1), 
  'A','AR', 
  'B','B', 
  'K','K', 
  'S','S', 
  'W','W', 
  'P','P') 
FROM 
  --(SELECT vg.alg_locatie_code, vg.ALG_RUIMTE_OMSCHRIJVING, vg.alg_ruimte_nr, vg.alg_gebouw_upper, vg.alg_verdieping_upper  FROM alg_v_ruimte_gegevens VG) ALLE_RUIMTES, 
  alg_v_ruimte_gegevens VG, 
  CNT_V_CNT_CONTRACT_ONRGOED_CUR cogc, 
  CNT_V_AANWEZIGCONTRACT cnt, 
  PRS_AFDELING a, 
  PRS_BEDRIJF b, 
  ALG_V_AANWEZIGONRGOEDKENMERK uit,    -- uitbeheer datum locatieniveau 
  ALG_V_AANWEZIGONRGOEDKENMERK inh    -- inhuur locatieniveau 
WHERE 
  vg.alg_ruimte_key = cogc.alg_onrgoed_key (+) AND 
  cogc.cnt_contract_key = cnt.cnt_contract_key (+) AND 
  cnt.CNT_PRS_AFDELING_KEY = a.prs_afdeling_key (+) AND 
  cnt.CNT_PRS_BEDRIJF_KEY = b.prs_bedrijf_key (+) AND 
  vg.alg_locatie_key = uit.alg_onrgoed_key(+) AND 
  uit.alg_kenmerk_key(+) = '22' AND --uit beheer datum locatieniveau 
  vg.alg_locatie_key = inh.alg_onrgoed_key(+) AND 
  inh.alg_kenmerk_key(+) = '10';  --inhuur locatieniveau
  
CREATE OR REPLACE VIEW CONN_V_TERREINGEG
(ALG_LOCATIE_CODE, ALG_GEBOUW_UPPER, ALG_GEBOUW_KEY, ALG_VERDIEPING_CODE, ALG_RUIMTE_KEY, 
 ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, ALG_SRTRUIMTE_CODE, HUURDER, HUURDERNR, 
 CNT_CONTRACT_NUMMER, ALG_SRTRUIMTE_PRIJS, BUDGETCODE, BUSINESSUNIT, RUIMTEOPPERVLAKTE, 
 GEHUURDEOPPERVLAKTE, INHUUR, UITBEHEER, ALG_TERREINSECTOR_KEY)
AS 
SELECT 
  l.ALG_LOCATIE_CODE, 
  tg.ALG_TERREINSECTOR_CODE ALG_GEBOUW_UPPER, 
  TO_NUMBER(NULL), 
  TO_NUMBER(NULL), 
  tg.alg_terreinsector_key ALG_RUIMTE_KEY, 
  tg.ALG_TERREINSECTOR_NAAM ALG_RUIMTE_NUMMER, 
  tg.ALG_TERREINSECTOR_OMSCHRIJVING ALG_RUIMTE_OMSCHRIJVING , 
  (select alg_srtterreinsector_code from alg_srtterreinsector asr where asr.alg_srtterreinsector_key = cogc.alg_srtonrgoed_key) , 
 NVL(a.prs_afdeling_omschrijving, b.PRS_BEDRIJF_NAAM) , 
  substr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),instr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),'/')+1,10), 
  cnt.CNT_CONTRACT_NUMMER , 
  (select alg_srtterreinsector_prijs from alg_srtterreinsector asr where asr.alg_srtterreinsector_key = cogc.alg_srtonrgoed_key) , 
  substr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),0,instr(NVL(a.prs_afdeling_kostenplaats, b.PRS_LEVERANCIER_NR),'/')-1), --budgetcode 
   nvl (   (select prs_afdeling_omschrijving from prs_afdeling abu, prs_v_afdeling_boom ab where ab.prs_afdeling_key1 = abu.prs_afdeling_key and ab.prs_afdeling_key = a.prs_afdeling_key),
           (select fac_usrdata_code from fac_usrdata ud, prs_kenmerklink kl where kl.prs_kenmerk_key = 1015 and prs_link_key = b.prs_bedrijf_key and kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)) Businessunit, 
   (select FAC.safe_To_Number(alg_onrgoedkenmerk_waarde) from alg_onrgoedkenmerk aok 
    where aok.alg_onrgoed_key = tg.alg_terreinsector_key 
      and aok.alg_kenmerk_key = 106)  GetekendOppervlakte, 
  TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(cogc.CNT_CONTRACT_ONRGOED_OPP) ,'99999999D')) , 
  DECODE (NVL(inh.alg_onrgoedkenmerk_waarde,''), 130, 'Nee', 129, 'Ja'), 
 -- inh.alg_onrgoedkenmerk_waarde, 
  uit.alg_onrgoedkenmerk_waarde, 
  alg_terreinsector_key 
FROM 
  alg_v_aanwezigterreinsector tg, 
  alg_locatie l, 
  CNT_V_CNT_CONTRACT_ONRGOED_CUR cogc, 
  CNT_V_AANWEZIGCONTRACT cnt, 
  PRS_AFDELING a, 
  PRS_BEDRIJF b, 
  ALG_V_AANWEZIGONRGOEDKENMERK uit,    -- uitbeheer datum locatieniveau 
  ALG_V_AANWEZIGONRGOEDKENMERK inh    -- inhuur locatieniveau 
WHERE 
  tg.alg_locatie_key = l.alg_locatie_key AND 
  tg.alg_terreinsector_key = cogc.alg_onrgoed_key (+) AND 
  cogc.cnt_contract_key = cnt.cnt_contract_key (+) AND 
  cnt.CNT_PRS_AFDELING_KEY = a.prs_afdeling_key (+) AND 
  cnt.CNT_PRS_BEDRIJF_KEY = b.prs_bedrijf_key (+) AND 
  tg.alg_locatie_key = uit.alg_onrgoed_key(+) AND 
  uit.alg_kenmerk_key(+) = '22' AND --uit beheer datum locatieniveau 
  tg.alg_locatie_key = inh.alg_onrgoed_key(+) AND 
  inh.alg_kenmerk_key(+) = '10'  --inhuur locatieniveau;




CREATE OR REPLACE VIEW CONN_V_PPI1
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, ARTIKELNUMMER, 
 OMSCHRIJVING, AANTAL, PRIJS, FCLT_3D_AFDELING_KEY)
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'),
	TO_CHAR(PR.prijs, '99999990D00'),
	A.PRS_AFDELING_KEY
FROM   BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A,
       INS_SRTDEEL S, INS_SRTGROEP G, INS_TAB_DISCIPLINE D, BES_ITEM_PRIJS pr
WHERE  B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND    I.bes_bestelling_item_key = PR.bes_bestelling_item_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;


CREATE OR REPLACE VIEW CONN_V_PPI2_ALL
(OPDRACHTNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, TOTAALBEDRAG, 
 BES_BESTELOPDR_DATUM, BES_BESTELOPDR_LEVERDATUM, PRS_AFDELING_KEY)
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,
       PR.prijs * BI.bes_bestelling_item_aantal,
       BO.BES_BESTELOPDR_DATUM,
       BO.bes_bestelopdr_leverdatum,
       AD.prs_afdeling_key
FROM   BES_BESTELLING BB, BES_BESTELLING_ITEM BI, BES_BESTELOPDR BO,
       PRS_PERSLID PP, PRS_AFDELING AD, BES_ITEM_PRIJS pr
WHERE  BB.bes_bestelling_key = BI.bes_bestelling_key
AND    BI.bes_bestelling_item_key = PR.bes_bestelling_item_key
AND    BO.bes_bestelopdr_key = BI.bes_bestelopdr_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, 
 PRS_AFDELING_KEY)
AS 
SELECT
       Opdrachtnummer,
       FCLT_F_Maand,
       Besteller,
       Afdeling,
       Totaalbedrag,
       PRS_AFDELING_KEY
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, 
 FCLT_3D_AFDELING_KEY)
AS 
SELECT
       Opdrachtnummer,
       FCLT_F_Maand,
       Besteller,
       Afdeling,
       TO_CHAR(SUM(Totaalbedrag),'99999990D00'),
       PRS_AFDELING_KEY
FROM   CONN_V_PPI2_SUBSET
GROUP BY Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling,PRS_AFDELING_KEY;


CREATE OR REPLACE VIEW CONN_V_PPI2_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
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;



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, PRS_AFDELING_KEY)
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,
	PR.prijs,
	I.bes_bestelling_item_aantal * PR.prijs,
	B.bes_bestelling_datum,
	B.bes_bestelling_afgewezen,
	B.bes_bestelling_geaccepteerd,
	A.PRS_AFDELING_KEY
FROM   BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A, PRS_PERSLID P2,
       BES_BESTELLINGSTATUSES BS, BES_ITEM_PRIJS pr
WHERE  B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND    I.bes_bestelling_item_key = PR.bes_bestelling_item_key
AND    B.prs_perslid_key = P.prs_perslid_key
AND    B.prs_afdeling_key = A.prs_afdeling_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, BES_BESTELLING_DATUM, 
 BES_BESTELLING_AFGEWEZEN, BES_BESTELLING_GEACCEPTEERD, PRS_AFDELING_KEY)
AS 
SELECT
       Aanvraagnummer,
       FCLT_F_Maand,
       Besteller,
       Afdeling,
       Fiatteur,
       Status,
       Aantal,
       Prijs,
       Totaalbedrag,
	   BES_BESTELLING_DATUM,
	   BES_BESTELLING_AFGEWEZEN,
	   BES_BESTELLING_GEACCEPTEERD,
	   PRS_AFDELING_KEY
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, BESTELD, AFGEWEZEN, GEFIATTEERD, 
 FCLT_3D_AFDELING_KEY)
AS 
SELECT
       Aanvraagnummer,
       FCLT_F_Maand,
       Besteller,
       Afdeling,
       Fiatteur,
       Status,
       TO_CHAR(SUM(Totaalbedrag),'99999990D00'),
	   BES_BESTELLING_DATUM,
	   BES_BESTELLING_AFGEWEZEN,
	   BES_BESTELLING_GEACCEPTEERD,
	   PRS_AFDELING_KEY
FROM   CONN_V_PPI3_SUBSET
GROUP BY Aanvraagnummer, FCLT_F_Maand, Besteller, Afdeling, Fiatteur, Status,
         BES_BESTELLING_DATUM, BES_BESTELLING_AFGEWEZEN, BES_BESTELLING_GEACCEPTEERD,
         PRS_AFDELING_KEY;


CREATE OR REPLACE VIEW CONN_V_PPI3_TOT
(FCLT_F_MAAND, TOTAAL, TELAAT)
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;

CREATE OR REPLACE VIEW CONN_V_PPI4_
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, AANTAL, 
 TOTAALPRIJS, PRS_AFDELING_KEY)
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 * PR.prijs,
	A.PRS_AFDELING_KEY
FROM   BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A,
       BES_ITEM_PRIJS PR
WHERE  B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND    I.bes_bestelling_item_key = PR.bes_bestelling_item_key
AND    B.prs_perslid_key = P.prs_perslid_key
AND    P.prs_afdeling_key = A.prs_afdeling_key;


CREATE OR REPLACE VIEW CONN_V_PPI4
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, AANTAL, 
 TOTAALPRIJS, FCLT_3D_AFDELING_KEY)
AS 
SELECT
       Aanvraagnummer,
       FCLT_F_Maand,
       Besteller,
       Afdeling,
       TO_CHAR(SUM(Aantal),'9999999999'),
       TO_CHAR(SUM(Totaalprijs),'99999990D00'),
       PRS_AFDELING_KEY
FROM  CONN_V_PPI4_
GROUP BY Aanvraagnummer,FCLT_F_Maand,Besteller,Afdeling, prs_afdeling_key
HAVING SUM(Totaalprijs) < 50;


CREATE OR REPLACE VIEW CONN_V_PPI4_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
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;


CREATE OR REPLACE VIEW CONN_V_PPI5_ALL
(OPDRACHTNUMMER, FCLT_F_MAAND, OPMERKING, PRS_AFDELING_KEY)
AS 
SELECT
       BO.bes_bestelopdr_key,
       TO_CHAR(BO.bes_bestelopdr_datum, 'YYMM'),
       BO.BES_BESTELOPDR_DELIVERY_OPMERK,
       BB.PRS_AFDELING_KEY
FROM   BES_BESTELLING BB, BES_BESTELLING_ITEM BI, BES_BESTELOPDR BO
WHERE  BB.bes_bestelling_key = BI.bes_bestelling_key
AND    BO.bes_bestelopdr_key = BI.bes_bestelopdr_key;


CREATE OR REPLACE VIEW CONN_V_PPI5
(OPDRACHTNUMMER, FCLT_F_MAAND, OPMERKING, FCLT_3D_PRS_AFDELING_KEY)
AS 
SELECT DISTINCT
       BO.bes_bestelopdr_key,
       TO_CHAR(BO.bes_bestelopdr_datum, 'YYMM'),
       BO.BES_BESTELOPDR_DELIVERY_OPMERK,
       BB.PRS_AFDELING_KEY
FROM   BES_BESTELLING BB, BES_BESTELLING_ITEM BI, BES_BESTELOPDR BO
WHERE  BB.bes_bestelling_key = BI.bes_bestelling_key
AND    BO.bes_bestelopdr_key = BI.bes_bestelopdr_key
AND    BES_BESTELOPDR_DELIVERY_OPMERK is not null;


CREATE OR REPLACE VIEW CONN_V_PPI5_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
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;


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,'99999990D00')
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;





-- *
-- *  CONN_V_DELETED_LOC_GEG view
-- *  Overzicht verwijderde locaties (CONN#188)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_DELETED_LOC_GEG
(FCLT_F_LOCATIE_CODE, OMSCHRIJVING, BEZOEK_ADRES,
 BEZOEK_PLAATS, VERWIJDERDATUM, UITBEHEER, DISTRICT)
AS
SELECT   l.alg_locatie_code,
         l.alg_locatie_omschrijving,
         l.alg_locatie_adres,
         l.alg_locatie_plaats,
         l.alg_locatie_verwijder,
		 (SELECT aok.alg_onrgoedkenmerk_waarde from alg_onrgoedkenmerk aok
		    WHERE alg_onrgoed_key = l.alg_locatie_key
			  AND alg_kenmerk_key = 22),
         d.alg_district_omschrijving
    FROM alg_locatie l,
         alg_district d
   WHERE d.alg_district_key(+) = l.alg_district_key
     AND (l.alg_locatie_verwijder IS NOT NULL 
	     OR
		 l.alg_locatie_key IN ( 
		   SELECT alg_onrgoed_key from alg_onrgoedkenmerk aok
		    WHERE alg_onrgoed_niveau = 'L'
			  AND alg_kenmerk_key = 22))
ORDER BY l.alg_locatie_upper ASC;

commit;

-- *
-- *  CONN_V_SCHOON_TOT_LOC_GEG view
-- *  Schoonmaak overzicht totaalgegevens per locatie (CONN#232)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_SCHOON_TOT_LOC_GEG
(FCLT_F_LOCATIE_CODE, OMSCHRIJVING, FCLT_F_BEDRIJF, TOT_OPP, OPP_GLAS_BINNEN, OPP_GLAS_BUITEN, 
 TOT_KOSTEN, TOESLAG, SCHOONMAAKKOSTEN, GLASBEWASSING, OVERIGE_KOSTEN, AFRONDING)
AS 
SELECT   l.alg_locatie_code,
         l.alg_locatie_omschrijving,
         b.prs_bedrijf_naam schoonmaakbedrijf,
         FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde) totaal_oppervlakte,
         FAC.SAFE_TO_NUMBER(kogb.alg_onrgoedkenmerk_waarde) opp_glas_binnen_kantoor,
         FAC.SAFE_TO_NUMBER(kogbu.alg_onrgoedkenmerk_waarde) opp_glas_buiten_stalling,
         ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2)+ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2)+kg.alg_onrgoedkenmerk_waarde+kbk1.alg_onrgoedkenmerk_waarde+kbk2.alg_onrgoedkenmerk_waarde+kbk3.alg_onrgoedkenmerk_waarde+ka.alg_onrgoedkenmerk_waarde totale_kosten,
         ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2) toeslag,
         ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2) schoonmaakkosten,
         FAC.SAFE_TO_NUMBER(kg.alg_onrgoedkenmerk_waarde) glasbewassing,
         FAC.SAFE_TO_NUMBER(kbk1.alg_onrgoedkenmerk_waarde)+FAC.SAFE_TO_NUMBER(kbk2.alg_onrgoedkenmerk_waarde)+FAC.SAFE_TO_NUMBER(kbk3.alg_onrgoedkenmerk_waarde) overige_kosten,
         FAC.SAFE_TO_NUMBER(ka.alg_onrgoedkenmerk_waarde) afrondingsverschil
    FROM alg_v_aanweziglocatie l,
         alg_onrgoedkenmerk ko,     -- oppervlak 
         alg_onrgoedkenmerk ksp,    -- schoonmaakprogramma 
         alg_onrgoedkenmerk ksb,    -- schoonmaakbedrijf 
         alg_onrgoedkenmerk kogb,   -- oppervlakte glas binnen (glas kantoor) 
         alg_onrgoedkenmerk kogbu,  -- oppervlakte glas buiten (glas stalling) 
         alg_onrgoedkenmerk kt,     -- toeslag 
         alg_onrgoedkenmerk kg,     -- glasbewassing 
         alg_onrgoedkenmerk kbk1,   -- bijkomende kosten bedrag 1 (overige kosten) 
         alg_onrgoedkenmerk kbk2,   -- bijkomende kosten bedrag 2 (overige kosten) 
         alg_onrgoedkenmerk kbk3,   -- bijkomende kosten bedrag 3 (overige kosten) 
         alg_onrgoedkenmerk ka,     -- afronding 
         sch_programma_bedrijf sb,
         prs_bedrijf b
   WHERE l.alg_locatie_key = ko.alg_onrgoed_key(+)
     AND ko.alg_kenmerk_key(+) = 99  -- oppervlak 
     AND ko.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = ksp.alg_onrgoed_key(+)
     AND ksp.alg_kenmerk_key(+) = 98  -- schoonmaakprogramma 
     AND ksp.alg_onrgoed_niveau(+) = 'L'
	 AND sb.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
	 --
     AND l.alg_locatie_key = ksb.alg_onrgoed_key(+)
     AND ksb.alg_kenmerk_key(+) = 97  -- schoonmaakbedrijf 
     AND ksb.alg_onrgoed_niveau(+) = 'L'
     AND b.prs_bedrijf_key(+) = ksb.alg_onrgoedkenmerk_waarde
	 AND sb.prs_bedrijf_key = b.prs_bedrijf_key
	 --
     AND l.alg_locatie_key = kogb.alg_onrgoed_key(+)
     AND kogb.alg_kenmerk_key(+) = 89  -- oppervlakte glas binnen (glas kantoor) 
     AND kogb.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kogbu.alg_onrgoed_key(+)
     AND kogbu.alg_kenmerk_key(+) = 90  -- oppervlakte glas buiten (glas stalling) 
     AND kogbu.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kt.alg_onrgoed_key(+)
     AND kt.alg_kenmerk_key(+) = 87  -- toeslag 
     AND kt.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kg.alg_onrgoed_key(+)
     AND kg.alg_kenmerk_key(+) = 40  -- glasbewassing 
     AND kg.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kbk1.alg_onrgoed_key(+)
     AND kbk1.alg_kenmerk_key(+) = 43  -- bijkomende kosten bedrag 1 (overige kosten) 
     AND kbk1.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kbk2.alg_onrgoed_key(+)
     AND kbk2.alg_kenmerk_key(+) = 45  -- bijkomende kosten bedrag 2 (overige kosten) 
     AND kbk2.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = kbk3.alg_onrgoed_key(+)
     AND kbk3.alg_kenmerk_key(+) = 47  -- bijkomende kosten bedrag 3 (overige kosten) 
     AND kbk3.alg_onrgoed_niveau(+) = 'L'
	 --
     AND l.alg_locatie_key = ka.alg_onrgoed_key(+)
     AND ka.alg_kenmerk_key(+) = 105  -- afronding 
     AND ka.alg_onrgoed_niveau(+) = 'L'
ORDER BY l.alg_locatie_upper ASC;

commit;


-- *
-- *  CONN_V_SCHOON_DETAIL_GEG view
-- *  Schoonmaak overzicht detailgegevens per ruimte (CONN#232)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_SCHOON_DETAIL_GEG
(FCLT_F_LOC, RUIMTENR, OPP, FREQ, RUIMTE_SOORT, VLOER_AFW, PROGRAMMA, KENTAL,
 FCLT_F_BEDRIJF, SCHOONMAAKKOSTEN, TOESLAG, RUIMTE_DICHT, RUIMTE_OPEN, FIN_OPEN, FIN_DICHT, RUIMTE_OPM,
 FCLT_F_HUURDERNR,
 FCLT_F_BUDGETCODE)
AS 
SELECT   rg.alg_locatie_code locatienummer,
         rg.alg_ruimte_nr ruimtenummer,
         FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde) oppervlakte,
         (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_frequentie_key AND fac_usrtab_key = 83) frequentie, -- frequentie schoonmaak    
         (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_srtruimte_key AND fac_usrtab_key = 82) ruimtesoort, -- ruimtesoort schoonmaak
         (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_srtvloer_key AND fac_usrtab_key = 81) vloersoort, -- vloersoort schoonmaak
         sp.sch_programma_code schoonmaakprogramma,
         sb.sch_programma_bedrijf_kental kental,
         b.prs_bedrijf_naam schoonmaakbedrijf,
         ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2) schoonmaakkosten,
         ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2) toeslag,
         krd.alg_onrgoedkenmerk_waarde ruimte_dicht_datum,
         kro.alg_onrgoedkenmerk_waarde ruimte_open_datum,
         kfd.alg_onrgoedkenmerk_waarde ruimte_financieel_dicht_datum,
         kfo.alg_onrgoedkenmerk_waarde ruimte_financieel_open_datum,
         r.alg_ruimte_opmerking,
         (SELECT DISTINCT min(prs_kenmerklink_waarde)
            FROM prs_kenmerklink kl,
                 prs_afdeling a,
                 prs_v_werkplekafdeling_geg wag
         WHERE kl.prs_kenmerk_key = 1061      -- huurdernummer 
           AND kl.prs_link_key = a.prs_afdeling_key
           AND a.prs_afdeling_key = wag.prs_afdeling_key
           AND wag.alg_ruimte_key = r.alg_ruimte_key) huurdernummer,
         (SELECT DISTINCT min(prs_kenmerklink_waarde)
            FROM prs_kenmerklink kl,
                 prs_afdeling a,
                 prs_v_werkplekafdeling_geg wag
           WHERE kl.prs_kenmerk_key = 1060      -- budgetcode 
             AND kl.prs_link_key = a.prs_afdeling_key
             AND a.prs_afdeling_key = wag.prs_afdeling_key
             AND wag.alg_ruimte_key = r.alg_ruimte_key) budgetcode
    FROM alg_v_aanwezigruimte r,
         alg_v_ruimte_gegevens rg,
         alg_locatie l,
         alg_onrgoedkenmerk ko,      -- oppervlak 
         alg_onrgoedkenmerk ksp,     -- schoonmaakprogramma 
         alg_onrgoedkenmerk ksb,     -- schoonmaakbedrijf 
         alg_onrgoedkenmerk kt,      -- toeslag 
         alg_onrgoedkenmerk krd,     -- ruimte dicht datum 
         alg_onrgoedkenmerk kro,     -- ruimte open datum 
         alg_onrgoedkenmerk kfd,     -- ruimte financieel dicht datum 
         alg_onrgoedkenmerk kfo,     -- ruimte financieel open datum 
         sch_programma sp,
         sch_programma_bedrijf sb, 
         prs_bedrijf b
   WHERE r.alg_ruimte_key = rg.alg_ruimte_key
     AND sb.sch_programma_key = sp.sch_programma_key
     --
     AND r.alg_ruimte_key = ko.alg_onrgoed_key(+)
     AND ko.alg_kenmerk_key(+) = 77  -- oppervlak 
     AND ko.alg_onrgoed_niveau(+) = 'R'
     --
     AND r.alg_ruimte_key = ksp.alg_onrgoed_key(+)
     AND ksp.alg_kenmerk_key(+) = 85  -- schoonmaakprogramma 
     AND ksp.alg_onrgoed_niveau(+) = 'R'
     AND sp.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
     --
     AND r.alg_ruimte_key = ksb.alg_onrgoed_key(+)
     AND ksb.alg_kenmerk_key(+) = 78  -- schoonmaakbedrijf 
     AND ksb.alg_onrgoed_niveau(+) = 'R'
     AND b.prs_bedrijf_key(+) = ksb.alg_onrgoedkenmerk_waarde
     AND sb.prs_bedrijf_key = b.prs_bedrijf_key 
	 --
     AND r.alg_ruimte_key = rg.alg_ruimte_key
     AND rg.alg_locatie_key = l.alg_locatie_key
     AND l.alg_locatie_key = kt.alg_onrgoed_key(+)
     AND kt.alg_kenmerk_key(+) = 87  -- toeslag 
     AND kt.alg_onrgoed_niveau(+) = 'L'
     --
     AND r.alg_ruimte_key = krd.alg_onrgoed_key(+)
     AND krd.alg_kenmerk_key(+) = 80  -- ruimte dicht datum 
     AND krd.alg_onrgoed_niveau(+) = 'R'
     --
     AND r.alg_ruimte_key = kro.alg_onrgoed_key(+)
     AND kro.alg_kenmerk_key(+) = 79  -- ruimte open datum 
     AND kro.alg_onrgoed_niveau(+) = 'R'
     --
     AND r.alg_ruimte_key = kfd.alg_onrgoed_key(+)
     AND kfd.alg_kenmerk_key(+) = 82  -- ruimte financieel dicht datum 
     AND kfd.alg_onrgoed_niveau(+) = 'R'
     --
     AND r.alg_ruimte_key = kfo.alg_onrgoed_key(+)
     AND kfo.alg_kenmerk_key(+) = 81  -- ruimte financieel open datum 
     AND kfo.alg_onrgoed_niveau(+) = 'R'
ORDER BY rg.alg_locatie_code, b.prs_bedrijf_naam ASC;



create or replace view CONN_V_PRS_INDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, INDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_ingangsdatum, 'YYMM'),
       pf.prs_perslid_naam_full, 
       p.prs_perslid_nr, 
	   TO_CHAR(p.prs_perslid_ingangsdatum, 'DD-MM-YYYY'),
	   a.prs_afdeling_naam1
from prs_v_afdeling a,
	 prs_v_aanwezigperslid p,
	 prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
  and pf.prs_perslid_key = p.prs_perslid_key
  and p.prs_perslid_ingangsdatum IS NOT NULL;
  
create or replace view CONN_V_PRS_UITDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, UITDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_einddatum, 'YYMM'),
       pf.prs_perslid_naam_full, 
       p.prs_perslid_nr, 
	   TO_CHAR(p.prs_perslid_einddatum, 'DD-MM-YYYY'),
	   a.prs_afdeling_naam1
from prs_v_afdeling a,
	 prs_v_aanwezigperslid p,
	 prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
  and pf.prs_perslid_key = p.prs_perslid_key
  and p.prs_perslid_einddatum IS NOT NULL;


create or replace view CONN_V_VERPLICHTING (FCLT_F_NAAM, NUMMER, UITDIENST, VERPLICHTING, DETAILS) as
select pf.prs_perslid_naam_full, 
       p.prs_perslid_nr, 
	   TO_CHAR(p.prs_perslid_einddatum, 'DD-MM-YYYY'),
	   t.fac_message_text, 
	   pv.item
from prs_v_verplichting pv, 
     fac_message t,
	 prs_perslid p,
	 prs_v_perslid_fullnames pf
where pv.fac_message_code = t.fac_message_code
  and pv.prs_perslid_key = p.prs_perslid_key
  and pf.prs_perslid_key = p.prs_perslid_key
  and p.prs_perslid_einddatum < sysdate;
/

CREATE OR REPLACE VIEW CONN_V_OPDR AS
select 	m.MLD_INS_DISCIPLINE_KEY
				,o.*
from 		mld_opdr o, mld_melding m
where 	o.mld_melding_key = m.mld_melding_key;
/

CREATE OR REPLACE VIEW CONN_V_OPDR_IB AS
select 	o.*
from 		CONN_V_OPDR o
where 	o.MLD_INS_DISCIPLINE_KEY = 562;
/

CREATE OR REPLACE VIEW CONN_V_OPDR_OVERIG AS
select 	o.*
from 		CONN_V_OPDR o
where 	o.MLD_INS_DISCIPLINE_KEY <> 562;
/

CREATE OR REPLACE FORCE VIEW CONN_V_EXPORT_OPDRACHT_
(OPDRACHTNUMMER, LEVERANCIERNR, KOSTENSOORT, COMPLEXNUMMER, FACTUURNUMMER,
 HUURDERNUMMER, OMSCHRBOEKING, ONSKLANTNUMMER, BTWTYPE, BEDRAGEXCL,
 ADMINISTRATIE, BUDGETNUMMER, BOEKINGSDATUM, FACTUURDATUM, TOTBEDRFACTUUR,
 VERDEELPERIODE, SPREIDENOVER, BETAALBAARSTELLEN, MLD_OPDR_KEY)
AS
SELECT  O.mld_melding_key || '/' || O.mld_opdr_bedrijfopdr_volgnr
       ,TRIM(prs_leverancier_nr) LeverancierNr
       ,trim((SELECT D.fac_usrdata_code
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 100
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    K.mld_opdr_key = O.mld_opdr_key)) Kostensoort
	,trim((SELECT alg_locatie_code
	     FROM ALG_LOCATIE WHERE alg_locatie_key = M.mld_alg_locatie_key)) Complexnummer
       ,(SELECT mld_kenmerkopdr_waarde
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 113 AND K.mld_opdr_key = O.mld_opdr_key) Factuurnummer
       ,(SELECT max(''||HUURDERNR) FROM CONN_V_LOCATIEHUURDER WHERE TO_CHAR(HUURDER_KEY) = K1.mld_kenmerkopdr_waarde) Huurdernummer
       ,(SELECT mld_kenmerkopdr_waarde
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 132 AND K.mld_opdr_key = O.mld_opdr_key) OmschrBoeking
       ,B.prs_overeenkomst_nr OnsKlantNummer
       ,(SELECT fac_usrdata_upper
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 1
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    K.mld_opdr_key = O.mld_opdr_key) BTWtype
       ,(SELECT TO_CHAR(TO_NUMBER(mld_kenmerkopdr_waarde, '99999999D99', 'nls_numeric_characters = ''.,'''))
	     FROM MLD_V_AANWEZIGKENMERKOPDR K
		 WHERE K.mld_kenmerk_key = 118 AND K.mld_opdr_key = O.mld_opdr_key) BedragExcl
       ,(SELECT DECODE(fac_usrdata_upper, NULL, '', DECODE(fac_usrdata_upper, '1', 'VG','FB' ))
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 83
         AND    K.mld_kenmerkopdr_waarde = TO_CHAR(D.fac_usrdata_key)
         AND    K.mld_opdr_key = O.mld_opdr_key) Administratie
       ,(SELECT max(''||BUDGETCODE) FROM CONN_V_LOCATIEHUURDER WHERE TO_CHAR(HUURDER_KEY) = K2.mld_kenmerkopdr_waarde) Budgetnummer
       ,(SELECT TO_CHAR(TO_DATE(mld_kenmerkopdr_waarde, 'DD-MM-YYYY'),'YYYYMMDD')
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 131 AND K.mld_opdr_key = O.mld_opdr_key) Boekingsdatum
       ,(SELECT TO_CHAR(TO_DATE(mld_kenmerkopdr_waarde, 'DD-MM-YYYY'),'YYYYMMDD')
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 127 AND K.mld_opdr_key = O.mld_opdr_key) Factuurdatum
       ,(SELECT TO_CHAR(TO_NUMBER(mld_kenmerkopdr_waarde, '99999999D99', 'nls_numeric_characters = ''.,'''))
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 128 AND K.mld_opdr_key = O.mld_opdr_key) TotBedrFactuur
       ,(SELECT mld_kenmerkopdr_waarde
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 130 AND K.mld_opdr_key = O.mld_opdr_key) Verdeelperiode
       ,(SELECT mld_kenmerkopdr_waarde || 'M'
	     FROM MLD_V_AANWEZIGKENMERKOPDR K WHERE K.mld_kenmerk_key = 133 AND K.mld_opdr_key = O.mld_opdr_key) SpreidenOver
       ,trim((SELECT D.fac_usrdata_code
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 114
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    mld_opdr_key = O.mld_opdr_key)) BetaalbaarStellen
      ,O.mld_opdr_key
FROM  CONN_V_OPDR_OVERIG O, MLD_MELDING M, mld_v_uitvoerende U, PRS_BEDRIJF B, MLD_V_AANWEZIGKENMERKOPDR K1,  MLD_V_AANWEZIGKENMERKOPDR K2
WHERE O.mld_uitvoerende_keys = U.mld_uitvoerende_key
AND   (K1.mld_kenmerk_key(+) = 112 AND K1.mld_opdr_key(+) = O.mld_opdr_key)
AND   (K2.mld_kenmerk_key(+) = 112 AND K2.mld_opdr_key(+) = O.mld_opdr_key)
AND   U.TYPE = 'B'
AND   O.mld_statusopdr_key = 6
AND   O.mld_typeopdr_key = 5
AND   O.mld_uitvoerende_keys = B.prs_bedrijf_key
AND   O.mld_melding_key = M.mld_melding_key;
/


CREATE OR REPLACE FORCE VIEW CONN_V_EXPORT_OPDRACHT
(CONTRACT, MLD_OPDR_KEY, ADMINISTRATIE, EXPORT)
AS
SELECT Opdrachtnummer || ';' ||
       Factuurnummer  || ';' ||
       LeverancierNr  || ';' ||
       Factuurdatum   || ';' ||
       Boekingsdatum  || ';' ||
       SpreidenOver   || ';' ||
       Kostensoort    || ';' ||
       OmschrBoeking  || ';' ||
       Complexnummer  || ';' ||
       Huurdernummer  || ';' ||
       Budgetnummer   || ';' ||
       BedragExcl     || ';' ||
       Verdeelperiode || ';' ||
	BTWtype        || ';' ||
       TotBedrFactuur || ';' ||
	OnsKlantnummer || ';' || Administratie
      ,mld_opdr_key
      ,DECODE(Administratie, NULL, '?', Administratie)
      ,DECODE(BetaalbaarStellen, '1', 'YES', 'NO') Export
FROM   CONN_V_EXPORT_OPDRACHT_
WHERE  BetaalbaarStellen = '1' or BetaalbaarStellen = '2'
order by Factuurdatum;
/

create or replace view CONN_V_EXPORT_OPDRACHT_IB_ AS
select  o.mld_opdr_key	
			, o.mld_opdr_datumbegin 		opdracht_datum
			,m.mld_melding_key 				meldingsnr
			,o.mld_opdr_omschrijving	inhoud_opdracht
			,((SELECT max(alg_locatie_code)
	       FROM ALG_LOCATIE WHERE alg_locatie_key = M.mld_alg_locatie_key)) kostenplaats			
			,U.naam bedrijf
			,(SELECT DECODE(fac_usrdata_upper, NULL, '', DECODE(fac_usrdata_upper, '1', 'VG','FB' ))
			 FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
			 WHERE  K.mld_kenmerk_key = 83
			 AND    K.mld_kenmerkopdr_waarde = TO_CHAR(D.fac_usrdata_key)
			 AND    K.mld_opdr_key = O.mld_opdr_key) Eigenaar
,(SELECT TO_CHAR(TO_NUMBER(mld_kenmerkopdr_waarde, '99999999D99', 'nls_numeric_characters = ''.,'''))
	     FROM MLD_V_AANWEZIGKENMERKOPDR K
		 WHERE K.mld_kenmerk_key = 118 AND K.mld_opdr_key = O.mld_opdr_key) TotBedragExcl
       ,(SELECT fac_usrdata_upper
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 1
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    K.mld_opdr_key = O.mld_opdr_key) BTWtype
       ,(SELECT max(''||Omschrijving) FROM CONN_V_LOCATIEHUURDER WHERE TO_CHAR(HUURDER_KEY) = K1.mld_kenmerkopdr_waarde) doorbelasten_aan
       ,trim((SELECT D.fac_usrdata_code
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 100
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    K.mld_opdr_key = O.mld_opdr_key)) Kostensoort
       ,trim((SELECT D.fac_usrdata_code
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 114
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    mld_opdr_key = O.mld_opdr_key)) BetaalbaarStellen
from 		 mld_melding M
				,CONN_V_OPDR_IB O
				,mld_v_uitvoerende U
				,mld_v_aanwezigkenmerkopdr K1
where 	M.mld_melding_key = O.mld_melding_key
and 		O.mld_uitvoerende_keys = U.mld_uitvoerende_key (+)
and			'B' = U.type (+)
AND     O.mld_statusopdr_key = 6
AND   	(K1.mld_kenmerk_key(+) = 112 AND K1.mld_opdr_key(+) = O.mld_opdr_key);
/

CREATE OR REPLACE VIEW CONN_V_EXPORT_OPDRACHT_IB AS
SELECT TO_CHAR(opdracht_datum, 'DD-MM-YYYY') || ';' ||
       meldingsnr  			|| ';' ||
       replace (replace (replace (''||inhoud_opdracht, chr(59),':'), chr(10),' '), chr(13),' ') || ';' ||
       kostenplaats 		|| ';' ||
       bedrijf 					|| ';' ||
       eigenaar 				|| ';' ||
       TotBedragExcl 		|| ';' ||
       BTWtype 					|| ';' ||
       doorbelasten_aan || ';' ||
       kostensoort CONTRACT
      ,mld_opdr_key
			,'FB' Administratie
      ,DECODE(BetaalbaarStellen, '1', 'YES', 'NO') Export
FROM   CONN_V_EXPORT_OPDRACHT_IB_
WHERE  BetaalbaarStellen = '1' or BetaalbaarStellen = '2'
order by opdracht_datum;
/

CREATE OR REPLACE VIEW CONN_V_CONTAINER_GEGEVENS
(INS_DEEL_KEY, ALG_LOCATIE_CODE, ALG_LOCATIE_OMSCHRIJVING, ALG_LOCATIE_ADRES, HUURDERNUMMER, 
 HUURDER, DEFAULTHUURDER, BUDGETCODE, CONTAINERTYPE, FREQUENTIE, 
 AANTAL, AANTALASNUMBER, PRIJS, PRIJSASNUMBER, BEGINDATUM, 
 EINDDATUM)
AS 
select  d.ins_deel_key
       ,l.alg_locatie_code
       ,l.alg_locatie_omschrijving
       ,l.alg_locatie_adres
       ,(select kl.prs_kenmerklink_waarde
	     FROM   prs_v_aanwezigafdeling af, prs_kenmerklink kl
		 where  to_char(af.prs_afdeling_key) = k_huurder.ins_kenmerkdeel_waarde
		 and    kl.prs_link_key = af.prs_afdeling_key
		 and    kl.prs_kenmerk_key = 1061
		 and    kl.prs_kenmerklink_verwijder is null
		 ) Huurdernummer
       ,(select af.prs_afdeling_naam1 FROM prs_v_aanwezigafdeling af where to_char(af.prs_afdeling_key) = k_huurder.ins_kenmerkdeel_waarde) Huurder
       ,(select af2.prs_afdeling_naam1 FROM prs_v_aanwezigafdeling af2 where prs_afdeling_key = 1061) DefaultHuurder
       ,(select kl.prs_kenmerklink_waarde
	     FROM   prs_v_aanwezigafdeling af, prs_kenmerklink kl
		 where  to_char(af.prs_afdeling_key) = k_huurder.ins_kenmerkdeel_waarde
		 and    kl.prs_link_key = af.prs_afdeling_key
		 and    kl.prs_kenmerk_key = 1060
		 and    kl.prs_kenmerklink_verwijder is null
		 ) Budgetcode
       ,sd.ins_srtdeel_omschrijving Containertype
       ,(select ud.fac_usrdata_omschr from fac_usrdata ud where to_char(ud.fac_usrdata_key) = k_frequentie.ins_kenmerkdeel_waarde) Frequentie
       ,k_aantal.ins_kenmerkdeel_waarde Aantal
       ,DECODE(k_aantal.ins_kenmerkdeel_waarde, null, 0, TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(k_aantal.ins_kenmerkdeel_waarde) ,'99999999D'))) AantalAsNumber
       ,k_prijs.ins_kenmerkdeel_waarde Prijs
       ,TO_NUMBER(NVL(k_prijs.ins_kenmerkdeel_waarde,''), '99999999D99', 'nls_numeric_characters = ''.,''') PrijsAsNumber
       ,k_begindatum.ins_kenmerkdeel_waarde Begindatum
       ,k_einddatum.ins_kenmerkdeel_waarde Einddatum
from    ins_v_aanwezigdeel d
       ,alg_locatie l
       ,ins_srtdeel sd
       ,ins_kenmerkdeel k_frequentie
       ,ins_kenmerkdeel k_aantal
       ,ins_kenmerkdeel k_prijs
       ,ins_kenmerkdeel k_huurder
       ,ins_kenmerkdeel k_begindatum
       ,ins_kenmerkdeel k_einddatum
where  ins_discipline_key = 421
and    d.ins_alg_locatie_key = l.alg_locatie_key
and    d.ins_srtdeel_key = sd.ins_srtdeel_key
and    k_frequentie.ins_deel_key(+)=D.ins_deel_key
and    k_frequentie.ins_kenmerk_key(+)=382
and    k_aantal.ins_deel_key(+)=D.ins_deel_key
and    k_aantal.ins_kenmerk_key(+)=381
and    k_prijs.ins_deel_key(+)=D.ins_deel_key
and    k_prijs.ins_kenmerk_key(+)=383
and    k_huurder.ins_deel_key(+)=D.ins_deel_key
and    k_huurder.ins_kenmerk_key(+)=391
and    k_begindatum.ins_deel_key(+)=D.ins_deel_key
and    k_begindatum.ins_kenmerk_key(+)=389
and    k_einddatum.ins_deel_key(+)=D.ins_deel_key
and    k_einddatum.ins_kenmerk_key(+)=390;



CREATE OR REPLACE FORCE VIEW CONN_V_EXPORT_CT_ AS
SELECT  '' Opdrachtnummer
       ,'' Factuurnummer 
       ,b.prs_leverancier_nr LeverancierNr 
       ,'' Factuurdatum  
       ,SUBSTR(ADD_MONTHS(TO_DATE('31-01-2004', 'DD-MM-YYYY'),TO_NUMBER(TO_CHAR(sysdate,'MM'))-1),1,2) || TO_CHAR(sysdate,'-MM-YYYY') Boekingsdatum
       ,'' SpreidenOver  
       ,'5077' Kostensoort   
       ,cg.aantal || 'x ' || cg.Containertype OmschrBoeking 
       ,alg_locatie_code Complexnummer 
       ,Huurdernummer  Huurdernummer 
       ,Budgetcode Budgetnummer
       ,(AantalAsNumber*PrijsAsNumber) BedragExcl    
       ,TO_CHAR(sysdate,'YYYY-MM')  Verdeelperiode
	,'0' BTWtype       
       ,'' TotBedrFactuur
       ,b.prs_overeenkomst_nr OnsKlantnummer
	,'FB' Administratie
	,'' BetaalbaarStellen
FROM   conn_v_container_gegevens cg
      ,(select prs_leverancier_nr,prs_overeenkomst_nr from prs_bedrijf where prs_bedrijf_key = 4618) b
where  1=1 and TO_CHAR(TO_DATE(NVL(to_char(to_date(Begindatum, 'DD-MM-YYYY'),'YYYYMM') ,TO_CHAR(sysdate,'YYYYMM')),'YYYYMM')) <= TO_CHAR(sysdate, 'YYYYMM')
and    TO_CHAR(TO_DATE(NVL(to_char(to_date(Einddatum,  'DD-MM-YYYY'),'YYYYMM') ,TO_CHAR(sysdate,'YYYYMM')),'YYYYMM')) >= TO_CHAR(sysdate, 'YYYYMM');
/

CREATE OR REPLACE FORCE VIEW CONN_V_EXPORT_CT
(CONTRACT, MLD_OPDR_KEY, ADMINISTRATIE, EXPORT)
AS
SELECT Opdrachtnummer || ';' ||
       Factuurnummer  || ';' ||
       LeverancierNr  || ';' ||
       Factuurdatum   || ';' ||
       Boekingsdatum  || ';' ||
       SpreidenOver   || ';' ||
       Kostensoort    || ';' ||
       OmschrBoeking  || ';' ||
       Complexnummer  || ';' ||
       Huurdernummer  || ';' ||
       Budgetnummer   || ';' ||
       BedragExcl     || ';' ||
       Verdeelperiode || ';' ||
	BTWtype        || ';' ||
       TotBedrFactuur || ';' ||
	OnsKlantnummer || ';' || Administratie
      ,'' mld_opdr_key
      ,DECODE(Administratie, NULL, '?', Administratie)
      ,'YES'
FROM   CONN_V_EXPORT_CT_
order by Complexnummer;
/

create or replace view CONN_V_EXPORT_OPDRACHT_LG_ as
select TO_CHAR(m.mld_melding_key) || '/' ||  TO_CHAR(o.mld_opdr_bedrijfopdr_volgnr) Opdrachtnummer
      ,'' Facuurnummer
      ,b.prs_leverancier_nr LeverancierNr
      ,SUBSTR(ADD_MONTHS(TO_DATE('31-01-2004', 'DD-MM-YYYY'),TO_NUMBER(TO_CHAR(sysdate,'MM'))-1),1,2) || TO_CHAR(sysdate,'-MM-YYYY') Boekingsdatum
      ,'' Factuurdatum
      ,'' SpreidenOver
      ,'5077' Kostensoort
      ,k_aantal.mld_kenmerkopdr_waarde || 'x ' || cg.Containertype OmschrBoeking 
      ,cg.alg_locatie_code Complexnummer
      ,Huurdernummer  Huurdernummer 
      ,Budgetcode Budgetnummer
      ,   TO_NUMBER(NVL(k_prijs.mld_kenmerkopdr_waarde,0), '99999999D99', 'nls_numeric_characters = ''.,''')
        * TO_NUMBER(NVL(k_aantal.mld_kenmerkopdr_waarde,0), '99999999D99', 'nls_numeric_characters = ''.,''') BedragExcl
      ,TO_CHAR(sysdate,'YYYY-MM')  Verdeelperiode
      ,'0' BTWtype       
      ,'' TotBedrFactuur
      ,b.prs_overeenkomst_nr OnsKlantnummer
      ,'FB' Administratie
      ,trim((SELECT D.fac_usrdata_code
         FROM   MLD_V_AANWEZIGKENMERKOPDR K, FAC_USRDATA D
         WHERE  K.mld_kenmerk_key = 114
         AND    TO_NUMBER(K.mld_kenmerkopdr_waarde) = D.fac_usrdata_key
         AND    mld_opdr_key = O.mld_opdr_key)) BetaalbaarStellen
      ,o.mld_opdr_key
      ,'' Factuurnummer
FROM   mld_melding m
      ,mld_melding_object mo
      ,CONN_V_OPDR_OVERIG o
      ,conn_v_container_gegevens cg
      ,(select prs_leverancier_nr, prs_overeenkomst_nr from prs_bedrijf where prs_bedrijf_key = 4618) b      
      ,MLD_V_AANWEZIGKENMERKOPDR k_aantal
      ,MLD_V_AANWEZIGKENMERKOPDR k_prijs
where  m.mld_melding_key = mo.mld_melding_key
and    m.mld_melding_key = o.mld_melding_key
and    m.mld_stdmelding_key = 64
and    cg.ins_deel_key = mo.ins_deel_key
and    mo.MLD_MELDING_OBJECT_VERWIJDER is null
and    k_aantal.mld_opdr_key(+)    = o.mld_opdr_key
and    k_aantal.mld_kenmerk_key(+) = 86
and    k_prijs.mld_opdr_key(+)     = o.mld_opdr_key
and    k_prijs.mld_kenmerk_key(+)  = 87;
/


CREATE OR REPLACE FORCE VIEW CONN_V_EXPORT_OPDRACHT_LG
(CONTRACT, MLD_OPDR_KEY, ADMINISTRATIE, EXPORT)
AS
SELECT Opdrachtnummer || ';' ||
       Factuurnummer  || ';' ||
       LeverancierNr  || ';' ||
       Factuurdatum   || ';' ||
       Boekingsdatum  || ';' ||
       SpreidenOver   || ';' ||
       Kostensoort    || ';' ||
       OmschrBoeking  || ';' ||
       Complexnummer  || ';' ||
       Huurdernummer  || ';' ||
       Budgetnummer   || ';' ||
       BedragExcl     || ';' ||
       Verdeelperiode || ';' ||
	BTWtype        || ';' ||
       TotBedrFactuur || ';' ||
	OnsKlantnummer || ';' || Administratie
      ,mld_opdr_key
      ,DECODE(Administratie, NULL, '?', Administratie)
      ,DECODE(BetaalbaarStellen, '1', 'YES', 'NO') Export
FROM   CONN_V_EXPORT_OPDRACHT_LG_
WHERE  BetaalbaarStellen = '1' or BetaalbaarStellen = '2'
order by Factuurdatum;
/


CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_OFF
(OPDRACHT, LOCATIE, BEDRIJF, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS 
select  (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_melding m where 
    m.MLD_INS_DISCIPLINE_KEY = d.ins_discipline_key
	and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
	and m.mld_melding_key = o.mld_melding_key) ||  o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
    from alg_locatie l, mld_melding m
    where l.alg_locatie_key = m.mld_alg_locatie_key
      and o.mld_melding_key = m.mld_melding_key) as locatie
, (select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN, 'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key and rownum = 1) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
    from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
    where gb.mld_opdr_key = opdr.mld_opdr_key
      and gb.mld_kenmerk_key = 83
      and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
      and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
      and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko, fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
     where o.MLD_TYPEOPDR_KEY = 66
       and o.mld_opdr_key = ko.mld_opdr_key(+)
       and ko.MLD_KENMERK_KEY(+) = 74
	   and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
	   and bed.mld_kenmerk_key(+) = 449
	   and o.mld_opdr_key = bed.mld_opdr_key(+)
       and o.mld_statusopdr_key = 5;
    

CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING
(DATUM, MELDING, LOCATIE, BEDRIJF, TOTAAL, 
 BETAALD, OPEN, EIGENAAR, GROOTBOEKNR)
AS 
select (select TO_CHAR(MLD_OPDR_DATUMBEGIN, 'DD-MM-YYYY') from mld_opdr where mld_melding_key = open.mld_melding_key and mld_uitvoerende_keys = open.uitv and rownum = 1) as OpdrDatum
, (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_melding m where
    m.MLD_INS_DISCIPLINE_KEY = d.ins_discipline_key
	and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
    and rownum = 1)||totaal.mld_melding_key
, (select alg_locatie_code
    from alg_locatie l, mld_melding m
    where l.alg_locatie_key = m.mld_alg_locatie_key
      and open.mld_melding_key = m.mld_melding_key) as locatie
, (select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = open.uitv) as bedrijf
, TO_CHAR(totaal.bedrag, '9999990D00') as Totaal
, TO_CHAR(totaal.bedrag - open.bedrag,'9999990D00') as Betaald
, TO_CHAR(open.bedrag,'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
    from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
    where gb.mld_opdr_key = opdr.mld_opdr_key
      and gb.mld_kenmerk_key = 83
      and opdr.mld_uitvoerende_keys = open.uitv
      and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
      and rownum = 1) as Eigenaar
, (select max(fd.fac_usrdata_omschr)
    from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
    where gb.mld_opdr_key = opdr.mld_opdr_key
      and gb.mld_kenmerk_key = 100
      and opdr.mld_uitvoerende_keys = open.uitv
      and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key) as Grbnr
from
  (select o.mld_melding_key, o.MLD_UITVOERENDE_KEYS as uitv, sum(ko.MLD_KENMERKOPDR_WAARDE) as bedrag
     from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko
     where o.MLD_TYPEOPDR_KEY = 5
       and o.mld_opdr_key = ko.mld_opdr_key
       and ko.MLD_KENMERK_KEY = 118
       and o.mld_statusopdr_key <> 7
     group by o.mld_melding_key, o.mld_uitvoerende_keys) open,
  (select o.mld_melding_key, o.MLD_UITVOERENDE_KEYS as uitv, sum(ko.MLD_KENMERKOPDR_WAARDE) as bedrag
     from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko
     where o.MLD_TYPEOPDR_KEY = 5
       and o.mld_opdr_key = ko.mld_opdr_key
       and ko.MLD_KENMERK_KEY = 118 --totaal bedrag
     group by o.mld_melding_key, o.MLD_UITVOERENDE_KEYS) totaal
where open.mld_melding_key = totaal.mld_melding_key
  and totaal.bedrag > 2500
  and open.uitv = totaal.uitv
order by opdrDatum;


CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_FIAT
(OPDRACHT, LOCATIE, FIATTEUR, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS 
select  (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_melding m where 
    m.MLD_INS_DISCIPLINE_KEY = d.ins_discipline_key
	and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
	and m.mld_melding_key = o.mld_melding_key) ||  o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
    from alg_locatie l, mld_melding m
    where l.alg_locatie_key = m.mld_alg_locatie_key
      and o.mld_melding_key = m.mld_melding_key) as locatie
, NVL((select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS),
      (select prs_perslid_naam from prs_perslid where prs_perslid_key = o.MLD_UITVOERENDE_KEYS)) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN,'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
    from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
    where gb.mld_opdr_key = opdr.mld_opdr_key
      and gb.mld_kenmerk_key = 83
      and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
      and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
      and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko , fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
     where o.MLD_TYPEOPDR_KEY = 65
       and o.mld_opdr_key = ko.mld_opdr_key(+)
       and ko.MLD_KENMERK_KEY(+) = 69
	   and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
	   and bed.mld_kenmerk_key(+) = 445
	   and o.mld_opdr_key = bed.mld_opdr_key(+)
       and o.mld_statusopdr_key = 5;



create or replace view CONN_V_OPPERVLAKTE (FCLT_F_CODE, AANDUIDING, OMSCHRIJVING, GETEKEND, ETABEL, SCHOONMAAK)
AS
select alg_locatie_code as fclt_f_code, alg_ruimte_aanduiding, alg_locatie_omschrijving, alg_ruimte_bruto_vloeropp as getekend, sum(gebruikteopp) as etabel, fac.safe_to_number(alg_onrgoedkenmerk_waarde) as schoonmaak from alg_v_ruimte_gegevens rg, conn_import_etabel et, alg_v_aanwezigonrgoedkenmerk ok
where
rg.alg_locatie_code  = et.complex 
and rg.alg_ruimte_nr = et.ruimte(+) 
AND rg.alg_ruimte_key = ok.alg_onrgoed_key(+)
AND ok.alg_kenmerk_key(+) = '77' --ruimte opp schoonmaak
  group by alg_locatie_code, alg_ruimte_aanduiding, alg_locatie_omschrijving, alg_ruimte_bruto_vloeropp, alg_onrgoedkenmerk_waarde order by 2;


CREATE OR REPLACE VIEW conn_rap_tekeningen
AS
   SELECT alg_locatie_code AS fclt_f_locatie, alg_gebouw_code,
          alg_verdieping_omschrijving, cad_tekening_type,
          cad_tekening_filenaam
     FROM cad_tekening, alg_locatie, alg_gebouw, alg_verdieping AVG
    WHERE cad_tekening.alg_verdieping_key = AVG.alg_verdieping_key
      AND alg_locatie.alg_locatie_key = alg_gebouw.alg_locatie_key
      AND AVG.alg_gebouw_key = alg_gebouw.alg_gebouw_key
   UNION
   SELECT alg_locatie_code AS fclt_f_locatie, '', '', cad_tekening_type,
          cad_tekening_filenaam
     FROM cad_tekening, alg_locatie
    WHERE cad_tekening.alg_verdieping_key = NULL
      AND alg_locatie.alg_locatie_key = cad_tekening.alg_locatie_key;

CREATE OR REPLACE VIEW CONN_V_RAP_GROEPLEDEN
(NAAM, FCLT_F_LOGIN, FCLT_F_DIVISIE, REGIO, FCLT_F_GROEP, AANTAL_RECHTEN)
AS 
SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving,
          gr.fac_groep_omschrijving, TO_CHAR(count(*))
     FROM fac_gebruikersgroep gg,
          prs_v_aanwezigperslid p,
          prs_afdeling a1,
          prs_afdeling a2,
          prs_v_afdeling_boom ab,
          fac_groep gr,
          fac_groeprechten grr
    WHERE p.prs_perslid_key = gg.prs_perslid_key
      AND p.prs_afdeling_key = ab.prs_afdeling_key
      AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
      AND ab.prs_afdeling_key2 = a2.prs_afdeling_key
      AND gg.fac_groep_key = gr.fac_groep_key
      AND gr.FAC_GROEP_KEY = grr.fac_groep_key
      AND gr.fac_groep_verwijder IS NULL
    GROUP BY p.prs_perslid_naam, p.prs_perslid_oslogin,
          gr.fac_groep_omschrijving, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving;

-- CONN#546
CREATE OR REPLACE VIEW conn_v_contracten_gegevens
AS
   SELECT TO_CHAR (c.cnt_contract_key) contractnr,
          c.cnt_contract_nummer externnr,
          NVL (b.prs_bedrijf_naam, afd2.prs_afdeling_naam) fclt_f_bedrijf,
          TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
          TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
          k1.cnt_kenmerkcontract_waarde bedrag
     FROM prs_v_aanwezigbedrijf b,
          cnt_v_aanwezigcontract c,
          prs_v_aanwezigafdeling afd,
          prs_v_aanwezigafdeling afd2,
          cnt_kenmerkcontract k1
    WHERE b.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
      AND c.cnt_srtcontract_key <> 2
      AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
      AND afd.prs_afdeling_key = c.prs_afdeling_key_eig
      AND c.cnt_contract_key = k1.cnt_contract_key(+)
      AND 26 = k1.cnt_kenmerk_key(+)
      AND k1.cnt_kenmerkcontract_verwijder IS NULL
      AND (   (SYSDATE BETWEEN c.cnt_contract_looptijd_van
                           AND c.cnt_contract_rappeldatum
              )
           OR (SYSDATE BETWEEN c.cnt_contract_rappeldatum
                           AND c.cnt_contract_opzegdatum
              )
           OR (SYSDATE BETWEEN c.cnt_contract_opzegdatum
                           AND c.cnt_contract_looptijd_tot + 1
              )
          );


commit;
