--
-- $Id$
--

DEFINE thisfile = 'PLGR.SQL'
DEFINE dbuser   = 'PLGR'

SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF

------ payload begin ------

--CREATE OR REPLACE PACKAGE PLGR
--AS

  
  
  
--END;
--/

--CREATE OR REPLACE PACKAGE BODY PLGR
--AS
    
   
      
    
--END;
--/

-- Import routines
CREATE OR REPLACE PROCEDURE PLGR_IMPORT_TAKEN (p_import_key IN NUMBER)
AS
	CURSOR obj
	IS
			SELECT fac_imp_csv_key fac_imp_csv_key,
			       fac_imp_csv_col03 ins_groep_oms,
			       fac_imp_csv_col04 ins_srtdeel_code,
			       fac_imp_csv_col05 ins_srtdeel_oms,
             fac_imp_csv_col06 ins_deel_omschrijving,
             fac_imp_csv_col07 taak_omschrijving,
             fac_imp_csv_col08 taak_cyclus,
             fac_imp_csv_col09 taak_cyclus_eenheid,            
             fac_imp_csv_col10 taak_datum,
             fac_imp_csv_col11 taak_categorie,
             fac_imp_csv_col12 taak_kosten,
             fac_imp_csv_col13 taak_default_cyclus,
             fac_imp_csv_col14 taak_default_cyclus_eenheid
			  FROM fac_imp_csv
			 WHERE fac_import_key=p_import_key;


	    v_ins_deel_key	NUMBER;
	

BEGIN
	
	fac_import_genericcsv(p_import_key);
	
	FOR rec in obj
	LOOP
		
		IF (LENGTH(rec.taak_datum)>1
		       AND LENGTH(rec.taak_cyclus)>=1
		       AND LENGTH(rec.taak_categorie)>1)		  
		THEN
			BEGIN
				  SELECT i.ins_deel_key 
				    INTO v_ins_deel_key
					FROM ins_v_deel_gegevens i, ins_srtdeel id
		           WHERE     i.ins_deel_omschrijving = rec.ins_deel_omschrijving
		                 AND i.ins_srtgroep_upper=UPPER(rec.ins_groep_oms)
                         AND i.ins_srtdeel_key = id.ins_srtdeel_key
		                 AND id.ins_srtdeel_code = rec.ins_srtdeel_code
		                 AND id.ins_srtdeel_upper=UPPER(rec.ins_srtdeel_oms);
	  	EXCEPTION 
		  WHEN NO_DATA_FOUND THEN
			  	v_ins_deel_key := -1;
			END;			
			IF v_ins_deel_key=-1
			THEN				
				fac.imp_writelog (p_import_key,
                        'W',
                        'Object '||rec.ins_deel_omschrijving||'  niet gevonden',
                        'Regel wordt overgeslagen');
        DELETE 
          FROM fac_imp_csv 
         WHERE     fac_imp_csv_key = rec.fac_imp_csv_key
               AND fac_import_key=p_import_key;             
			END IF;
						
		ELSE						
				fac.imp_writelog (p_import_key,
                        'W',
                        'De aangeleverde regel voor object '||rec.ins_deel_omschrijving|| ' voldoet niet',
                        'Regel wordt overgeslagen');
        DELETE 
          FROM fac_imp_csv 
         WHERE     fac_imp_csv_key = rec.fac_imp_csv_key
               AND fac_import_key=p_import_key;                		
		END IF;   
		
		
		   
	END LOOP;
END;
/


CREATE OR REPLACE PROCEDURE PLGR_UPDATE_TAKEN(p_import_key IN NUMBER)
AS

	CURSOR obj
	IS
			SELECT fac_imp_csv_key fac_imp_csv_key,
			       fac_imp_csv_col03 ins_groep_oms,
             fac_imp_csv_col04 ins_srtdeel_code,
			       fac_imp_csv_col05 ins_srtdeel_oms,
			       fac_imp_csv_col06 ins_deel_omschrijving,
             fac_imp_csv_col07 taak_omschrijving,
             fac_imp_csv_col08 taak_cyclus,            
             fac_imp_csv_col09 taak_cyclus_eenheid,            
             fac_imp_csv_col10 taak_datum,
             fac_imp_csv_col11 taak_categorie,
             fac_imp_csv_col12 taak_kosten,
             fac_imp_csv_col13 taak_default_cyclus,
             fac_imp_csv_col14 taak_default_cyclus_eenheid
			  FROM fac_imp_csv
			 WHERE fac_import_key=p_import_key;

		v_errormsg            VARCHAR2 (1000);
   	v_errorhint           VARCHAR2 (1000);
   	v_aanduiding          VARCHAR2 (1000);
   	oracle_err_num        NUMBER;
   	oracle_err_mes        VARCHAR2 (200);
   	
   	v_eenheid							NUMBER;	
   	v_default_eenheid			NUMBER;
   	v_deel_key						NUMBER;
   	v_ins_discipine_key   NUMBER;
    v_ins_srtgroep_key    NUMBER;
    v_ins_srtdeel_key     NUMBER;
   	v_taak_cyclus					NUMBER;
   	v_taak_default_cyclus	NUMBER;
  
   	v_revisie_interval		   NUMBER;
   	v_onderhoud_interval	   NUMBER;
   	v_taak_kosten   		     NUMBER;
   	v_taak_datum				     DATE;
   	v_ins_srtcontrole_niveau VARCHAR2(2);
   	v_srtkenmerk_doc		     NUMBER;
   	v_taakcat_key            NUMBER;
   	v_srtcontrole_key        NUMBER;
   	v_srtcontroledl_xcp_key  NUMBER;
   	v_taakcat_ismjob				 NUMBER;
   	
BEGIN
	
			
			v_onderhoud_interval:=1;
		  v_deel_key:=-1;
		  v_taak_cyclus :=0;
		  
			BEGIN
		  		SELECT ins_srtkenmerk_key
		  		  INTO v_srtkenmerk_doc
		  		  FROM ins_srtkenmerk i
		  		 WHERE i.ins_srtkenmerk_code='DOCUMENTEN'
		  		   AND i.ins_srtkenmerk_verwijder IS NULL;
		  EXCEPTION 
		  WHEN NO_DATA_FOUND
		  THEN
		  	v_srtkenmerk_doc:=-1;
		  END;
			FOR rec IN obj	
			LOOP
			   
			   v_taak_datum := fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY');
			   
			   -- (default)taak cyclus eenheid kan zijn:
			   -- 4=jaarlijk
			   -- 3=maand
			   -- 2=week
			   -- 1=dag
			   IF rec.taak_cyclus_eenheid='4'      
			   THEN
                v_eenheid:=4;
         ELSIF rec.taak_cyclus_eenheid='3'   
         THEN
                v_eenheid:=3;
         ELSIF rec.taak_cyclus_eenheid='2'   
         THEN
                v_eenheid:=2;
         ELSIF rec.taak_cyclus_eenheid='1'   
         THEN
                v_eenheid:=1;                
			   END IF;
			   
			   IF rec.taak_default_cyclus_eenheid='4'
			   THEN
                v_default_eenheid:=4;
         ELSIF rec.taak_default_cyclus_eenheid='3'
         THEN
                v_default_eenheid:=3;
         ELSIF rec.taak_default_cyclus_eenheid='2'
         THEN
               v_default_eenheid:=2;
         ELSIF rec.taak_default_cyclus_eenheid='1'
         THEN
               v_default_eenheid:=1; 
         ELSE 
         			 v_default_eenheid:=v_eenheid;          
			   END IF;
			   
			   v_ins_srtcontrole_niveau:='S';
			   
			   --Haal het object, discipine , groep en objectsoort
		     BEGIN
		         v_errormsg :='Ophalen object '||rec.ins_deel_omschrijving;
		         SELECT i.ins_deel_key, i.ins_discipline_key, i.ins_srtgroep_key, i.ins_srtdeel_key
		          INTO v_deel_key, v_ins_discipine_key, v_ins_srtgroep_key, v_ins_srtdeel_key
		          FROM ins_v_deel_gegevens i, ins_srtdeel id
		         WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving
		               AND i.ins_srtgroep_upper=UPPER(rec.ins_groep_oms)
                       AND i.ins_srtdeel_key = id.ins_srtdeel_key
		               AND id.ins_srtdeel_code = rec.ins_srtdeel_code
		               AND id.ins_srtdeel_upper=UPPER(rec.ins_srtdeel_oms); 
		     EXCEPTION
		     WHEN NO_DATA_FOUND THEN
		       v_deel_key:=-1;
		     END;
		     
			   IF v_deel_key>0 
			   THEN   
			   					-- Haal taak categorie op indien niet aanwezig maak deze aan.
			            v_errormsg :='Ophalen taakcetegorie  '||rec.taak_omschrijving;
			            -- Gaan we eerst check of er onderhoud controles zijn
			            SELECT i.ins_discipline_key, p.ctr_disc_params_ismjob   
			              INTO v_taakcat_key, v_taakcat_ismjob 
			              FROM ins_tab_discipline i , ctr_disc_params p
			             WHERE i.ins_discipline_module='CTR' 
			               AND UPPER(i.ins_discipline_omschrijving) = UPPER(rec.taak_categorie)
			               AND i.ins_discipline_verwijder IS NULL
			               AND p.ctr_ins_discipline_key=i.ins_discipline_key;
			               
			               
			            IF v_taakcat_ismjob=1   
			            THEN
			             	v_taak_default_cyclus:=0;
									ELSE
										IF LENGTH(rec.taak_default_cyclus)>0 THEN
											v_taak_default_cyclus:=fac.safe_to_number(rec.taak_default_cyclus);										
										ELSE 	
											v_taak_default_cyclus:=0;
									  END IF;
										
									END IF;
			               
			            BEGIN
			                  SELECT ins_srtcontrole_key
			                    INTO v_srtcontrole_key
			                    FROM ins_srtcontrole 
			                   where ins_srtinstallatie_key=v_ins_srtdeel_key 
			                     AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
			                     AND UPPER(ins_srtcontrole_omschrijving) = UPPER(SUBSTR(rec.taak_omschrijving,0,60))
			                     AND ins_srtcontrole_periode=v_taak_default_cyclus
			                     AND ins_srtcontrole_eenheid=v_default_eenheid
			                     AND ins_srtcontrole_mode=1
			                     AND ctr_discipline_key=v_taakcat_key;  
			              
			            EXCEPTION
			            WHEN NO_DATA_FOUND THEN
			             -- ins_srtcontrole is er niet dus maken we hem aan,
			                INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
			                                                 ins_srtcontrole_niveau,
			                                                 ins_srtcontrole_omschrijving,                               
			                                                 ins_srtcontrole_periode,
			                                                 ins_srtcontrole_eenheid,
			                                                 ins_srtcontrole_mode,
			                                                 ctr_discipline_key
			                                                 )
			                                 VALUES (v_ins_srtdeel_key,
			                                         v_ins_srtcontrole_niveau,
			                                         SUBSTR(rec.taak_omschrijving,0,60),
			                                         v_taak_default_cyclus,
			                                         v_default_eenheid,
			                                         1,
			                                         v_taakcat_key
			                                         )
			                    RETURNING ins_srtcontrole_key
			                         INTO v_srtcontrole_key;
			              IF v_srtkenmerk_doc>0 THEN
				          				INSERT INTO ins_kenmerk (
				                                          ins_srtkenmerk_key,
				                                          ins_srtinstallatie_key,
				                                          ins_kenmerk_niveau,
				                                          ins_kenmerk_bewerkniveau,	                                          
				                                          ins_kenmerk_groep,
				                                          ins_kenmerk_volgnummer,
				                                          ins_kenmerk_hint,                                                                                  
				                                          ins_kenmerk_omschrijving                                          
				                          								)
											                 VALUES   (
											                            v_srtkenmerk_doc,
											                            v_srtcontrole_key,
											                            'C',
											                            'D',
											                            0,
											                            10,
											                            '',
											                            'Documenten'                             
											                          );          
				       		  END IF;          
			            END;  
			            
			            
			            IF LENGTH(rec.taak_cyclus)>0 THEN
			            		v_taak_cyclus:=fac.safe_to_number(rec.taak_cyclus);
			            ELSE 
			            		v_taak_cyclus:=	v_taak_default_cyclus;
			            END IF;
			           
								  IF v_taakcat_ismjob=1 THEN
								            	v_taak_kosten:=COALESCE(fac.safe_to_number(rec.taak_kosten),0);
								  ELSE
								            	v_taak_kosten:=0;
								  END IF;
								            
								  BEGIN
								              
								              SELECT ins_srtcontroledl_xcp_key
								                INTO v_srtcontroledl_xcp_key
								                FROM ins_srtcontroledl_xcp 
								               WHERE ins_deel_key=v_deel_key
								                 AND ins_srtcontrole_key=v_srtcontrole_key;
								                 --AND ins_srtcontroledl_xcp_eenheid=v_eenheid;
								                 
								               -- we hebben een xcp record dan updaten we nu alleen de startdatum  
								               UPDATE ins_srtcontroledl_xcp
								                  SET INS_SRTCONTROLEDL_XCP_STARTDAT=v_taak_datum,
								                      ins_srtcontroledl_xcp_periode=v_taak_cyclus,
								                      ins_srtcontroledl_xcp_eenheid=v_eenheid
								                WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
								            
								   EXCEPTION 
								   WHEN NO_DATA_FOUND THEN
								              -- Er is nog geen XCP record dus maken we er 1 met de verwachte startdatum
								             
								                  
								              INSERT INTO ins_srtcontroledl_xcp 
								                                 (ins_srtcontrole_key,
								                                  ins_deel_key,
								                                  ins_srtcontroledl_xcp_eenheid,
								                                  ins_srtcontroledl_xcp_kosten,
								                                  ins_srtcontroledl_xcp_periode,
								                                  ins_srtcontroledl_xcp_startdat)
								                          VALUES (v_srtcontrole_key,
								                                  v_deel_key,
								                                  v_eenheid, 
								                                  v_taak_kosten,
								                                  v_taak_cyclus,
								                                  v_taak_datum);   
								   END;			            			           			            
			        ELSE 
			          fac.imp_writelog (p_import_key,
			                        'W',
			                        'Object '||rec.ins_deel_omschrijving||'  niet gevonden',
			                        'Object niet gevonden');
			        END IF;			   			   			   
			END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND 
THEN
      v_errorhint := v_errormsg || ' - ' || v_aanduiding;
      oracle_err_num := SQLCODE;
      oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
      v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
      fac.imp_writelog (p_import_key,
                        'E',
                        v_errormsg,
                        v_errorhint);
END;
/

-- EXPORTS
-- Export View


-- Rapportage views

CREATE OR REPLACE VIEW plgr_v_vastgoed
AS
			SELECT r.alg_regio_omschrijving,
			       d.alg_district_omschrijving,
			       k.prs_kostenplaats_nr,
			       l.alg_locatie_omschrijving,
			       g.alg_gebouw_code,
			       l.alg_locatie_adres,
			       l.alg_locatie_postcode,
			       l.alg_locatie_plaats,
			       'TELEFOONNR' telefoonnr,
			       l.alg_locatie_post_adres,
			       'invoice@plieger.nl' factuur_email,			       			       
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'REGIOMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           regiomanager,
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, alg_kenmerk k, prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'REGIOMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           regiomanager_email,
			       ' Email adres' email_gebouw,
			       (SELECT fud.fac_usrdata_omschr
			          FROM alg_kenmerk k, ALG_ONRGOEDKENMERK ok, FAC_USRDATA fud
			         WHERE     k.alg_kenmerk_code = 'EIGENDOM'
			               AND ok.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ok.alg_onrgoed_key = g.alg_gebouw_key
			               AND ok.alg_onrgoed_niveau = 'G'
			               AND ok.alg_onrgoedkenmerk_waarde = fud.fac_usrdata_key)
			           eigendom,
			       ' Adres_etiket' adres_etiket,
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'EXPRESSMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           expressmanager,
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, ALG_KENMERK k, prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'EXPRESSMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           expressmanager_email,
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'SHOWROOMMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.ALG_ONRGOEDKENMERK_WAARDE))
			           showroommanager,
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, ALG_KENMERK k, prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'SHOWROOMMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           showroommanager_email,
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'BINNENDIENSTMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           binnendienstmanager,
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, ALG_KENMERK k, prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'BINNENDIENSTMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           binnendienstmmanager_email,
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'DC-MANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           dcmanager,
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, 
			               alg_kenmerk k, 
			               prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'DC-MANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           dcmanager_email,
			       (SELECT p.prs_perslid_naam_friendly
			          FROM alg_onrgoedkenmerk           ak,
			               alg_kenmerk                  k,
			               prs_v_perslid_fullnames_all  p
			         WHERE     k.alg_kenmerk_code = 'FACMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           facmanager,    
			       (SELECT p.prs_perslid_email
			          FROM alg_onrgoedkenmerk ak, 
			               alg_kenmerk k, 
			               prs_perslid p
			         WHERE     k.alg_kenmerk_code = 'FACMANAGER'
			               AND ak.alg_kenmerk_key = k.alg_kenmerk_key
			               AND ak.alg_onrgoedkenmerk_verwijder IS NULL
			               AND ak.alg_onrgoed_key = l.alg_locatie_key
			               AND p.prs_perslid_key =
			                   fac.safe_to_number (ak.alg_onrgoedkenmerk_waarde))
			           facmanager_email
			  FROM alg_gebouw        g,
			       alg_locatie       l,
			       alg_district      d,
			       alg_regio         r,
			       prs_kostenplaats  k
			 WHERE     l.alg_locatie_key = g.alg_locatie_key
			       AND d.alg_district_key = l.alg_district_key
			       AND r.alg_regio_key = d.alg_regio_key
			       AND k.prs_kostenplaats_key(+) = g.prs_kostenplaats_key
			       AND (g.alg_gebouw_vervaldatum IS NULL OR g.alg_gebouw_vervaldatum> SYSDATE)
       			 AND g.alg_gebouw_verwijder IS NULL;



-- VIEWS
CREATE OR REPLACE VIEW PLGR_V_REGIOMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='REGIOMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P';

CREATE OR REPLACE VIEW PLGR_V_EXPRESSMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='EXPRESSMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P';
        
CREATE OR REPLACE VIEW PLGR_V_SHOWROOMMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='SHOWMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P';
        
CREATE OR REPLACE VIEW PLGR_V_BINNENDIENSTMMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='BINNENDIENSTMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P';     

CREATE OR REPLACE VIEW PLGR_V_DCMMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='DCMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P'; 
        
        
CREATE OR REPLACE VIEW PLGR_V_FACMMANAGERS
(
 prs_perslid_key,
 prs_naam
 )
 AS
 SELECT p.prs_perslid_key, 
        p.prs_perslid_naam_friendly 
   FROM prs_v_perslid_fullnames p, prs_kenmerklink pkl, prs_kenmerk pk
  WHERE     pk.prs_kenmerk_code='FACMAN'
        AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
        AND pkl.prs_link_key=p.prs_perslid_key
        AND pkl.prs_kenmerklink_niveau='P';        
        
        
-- Raportage views
CREATE OR REPLACE VIEW PLGR_V_CNT_INSIDE
AS
SELECT locatie_code,
			 cnt_contract_key,
       cnt_contract_omschrijving,
       CASE WHEN locatie_code IS NULL 
            THEN 0 
            ELSE 1 
       END aanwezig
  FROM (
					SELECT COALESCE((SELECT alg_locatie_code 
														 FROM alg_locatie 
														WHERE     alg_locatie_key=cp.cnt_alg_plaats_key 
														      AND cp.cnt_alg_plaats_code='L'),
					         				(SELECT alg_gebouw_code 
					         				   FROM alg_gebouw 
					         				  WHERE     alg_gebouw_key=cp.cnt_alg_plaats_key 
					         				        AND cp.cnt_alg_plaats_code='G')) locatie_code,
					       c.cnt_contract_key, 
					       c.cnt_contract_omschrijving  
					  FROM cnt_contract c, 
					       cnt_contract_plaats cp 
					 WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
					 UNION ALL
					 SELECT DISTINCT locatie_code, 
					        cnt_contract_key, 
					        cnt_contract_omschrijving   
					  FROM (
					        SELECT c.cnt_contract_key cnt_contract_key, 
					               c.cnt_contract_omschrijving cnt_contract_omschrijving, 
					               (SELECT alg_locatie_code 
					                  FROM alg_locatie 
					                 WHERE alg_locatie_key=alg.alg_locatie_key) locatie_code, 
					               alg.alg_gebouw_code gebouw_code 
					          FROM cnt_contract c,  
					               cnt_contract_object co, 
					               ins_deel i, 
					               alg_v_allonrgoed_gegevens alg
					         WHERE     c.cnt_contract_key = co.cnt_contract_key(+)
					               AND i.ins_deel_key = co.cnt_ins_deel_key
               AND alg.alg_ruimte_key = i.ins_alg_ruimte_key
       )
  GROUP BY locatie_code, cnt_contract_key, cnt_contract_omschrijving
  ORDER BY cnt_contract_key);

------ payload end   ------

SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/

COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile
