--
-- $Id$
--
-- Script containing customer specific db-configuration for PLATO
DEFINE thisfile = 'PLAT.SQL'
DEFINE dbuser = '^(PLAT|WO)'
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 ------
-- Terminologie
-- Algemeen
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Plato' WHERE fac_locale_xsl_label = 'lcl_facilitor_appl' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Plato' WHERE fac_locale_xsl_label = 'lcl_facilitor_ie_title' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Welkom bij Plato' WHERE fac_locale_xsl_label = 'lcl_facilitor_portalwelcome1' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = ' ' WHERE fac_locale_xsl_label = 'lcl_facilitor_welcome' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Welkom bij Plato' WHERE fac_locale_xsl_label = 'lcl_firstlogin_url' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Powered by Plato' WHERE fac_locale_xsl_label = 'lcl_mobile_footer' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Op grond van de u toegekende rechten heeft u hiervoor geen bevoegdheid. Indien u van mening bent dat dit niet terecht is kunt u het beste contact opnemen met uw Plato contactpersoon.' WHERE fac_locale_xsl_label = 'lcl_no_auth' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'E-mail adres niet bekend binnen Plato' WHERE fac_locale_xsl_label = 'lcl_pass2emailunknown' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Nieuw Plato wachtwoord' WHERE fac_locale_xsl_label = 'lcl_password_new' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Het Plato wachtwoord herstellen kan via {0} tot en met {1}.' WHERE fac_locale_xsl_label = 'lcl_password_reset' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Door één van bovenstaande acties uit te voeren is uw smartphone geregistreerd en kunt u Plato voortaan ook mobiel gebruiken, zonder dat u hiervoor hoeft in te loggen.
Wilt u een snelkoppeling maken naar Plato Mobile? Link dan naar het menuscherm. Snelkoppelingen naar andere schermen werken niet of niet volledig.
LET OP: in geval van diefstal of verlies van uw smartphone kunnen anderen mogelijk onder uw naam gebruik maken van Plato. U kunt dan hier klikken om in één keer al uw onthouden aanmeldingen te wissen.' WHERE fac_locale_xsl_label = 'lcl_qrc_auth_footer' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bij Plato aanmelden kan via {0} tot en met {1}.' WHERE fac_locale_xsl_label = 'lcl_qrc_auth_mail_body' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'U bent nu aangemeld bij Plato. Klik hier om verder te gaan.' WHERE fac_locale_xsl_label = 'lcl_qrc_auth_mail_confirmed' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Plato aanmelden' WHERE fac_locale_xsl_label = 'lcl_qrc_auth_mail_subject' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Plato-URL' WHERE fac_locale_xsl_label = 'lcl_qrc_url' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'U ontvangt dit bericht omdat er een registratie bij Plato is aangevraagd.
Indien dit niet door u gebeurd is hoeft u niets te doen. Indien u dit wel zelf was, dient u op deze link
' || '&' || 'nbsp;' || '&' || 'nbsp;' || '&' || 'nbsp;' || '&' || 'nbsp;{0}
te klikken om uw registratie te voltooien.' WHERE fac_locale_xsl_label = 'lcl_self_register_body' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bevestig uw Plato registratie' WHERE fac_locale_xsl_label = 'lcl_self_register_subject' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Er is te lang geen activiteit geweest, en uw sessie is om veiligheidsredenen vervallen. Sluit het window en log opnieuw in op de Plato portal.' WHERE fac_locale_xsl_label = 'lcl_session_expired' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Op grond van de u toegekende rechten heeft u hiervoor geen bevoegdheid. Meestal is dat zo bedoeld. Indien u van mening bent dat dat niet zo is kunt u het beste contact opnemen met uw Plato contactpersoon.' WHERE fac_locale_xsl_label = 'lcl_shared_no_auth' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Aanmelden bij Plato kan via {0} tot en met {1}.' WHERE fac_locale_xsl_label = 'lcl_tokenmail_body' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Plato aanmelding' WHERE fac_locale_xsl_label = 'lcl_tokenmail_subject' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'We wensen je veel gemak van Plato!' WHERE fac_locale_xsl_label = 'lcl_welcome_bye' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hierboven zie je altijd het tabblad Mijn Plato waarin je de actuele status kunt zien van alles wat met jou te maken heeft. Het is allemaal eigenlijk behoorlijk vanzelfsprekend en je kunt bijna overal op klikken voor meer informatie.' WHERE fac_locale_xsl_label = 'lcl_welcome_line3' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Welkom bij Plato {0}!' WHERE fac_locale_xsl_label = 'lcl_welcome_title' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Mijn Plato' WHERE fac_locale_xsl_label = 'lcl_body_portal' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '
TIP: Voeg Plato toe aan je beginscherm.
Om een snelkoppeling te maken druk je op de volgende pagina op juiste knop in je browser en kies je voor Voeg toe aan beginscherm.' WHERE fac_locale_xsl_label = 'lcl_bookmarkthis_hint' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van regio -> klant
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwijderen klant' WHERE fac_locale_xsl_label = 'lcl_alg_del_txt_regio' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Klantgegevens' WHERE fac_locale_xsl_label = 'lcl_alg_regio_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Klant' WHERE fac_locale_xsl_label = 'lcl_region' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Klant' WHERE fac_locale_xsl_label = 'lcl_estate_regio_descr' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '>Klant' WHERE fac_locale_xsl_label = 'lcl_goto_regio_list' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Klanten' WHERE fac_locale_xsl_label = 'lcl_menu_alg_regio' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een klant...' WHERE fac_locale_xsl_label = 'lcl_select_regio' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van district -> bedrijf
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwijderen bedrijf' WHERE fac_locale_xsl_label = 'lcl_alg_del_txt_district' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bedrijfgegevens' WHERE fac_locale_xsl_label = 'lcl_alg_district_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bedrijf' WHERE fac_locale_xsl_label = 'lcl_district' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bedrijf' WHERE fac_locale_xsl_label = 'lcl_estate_district_man_descr' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '>Bedrijf' WHERE fac_locale_xsl_label = 'lcl_goto_district_list' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bedrijven' WHERE fac_locale_xsl_label = 'lcl_menu_alg_district' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een bedrijf...' WHERE fac_locale_xsl_label = 'lcl_select_district' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van locatie -> complex
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'alg_locatie' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'ins_kenmerk_locatiekolom' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwijderen complex' WHERE fac_locale_xsl_label = 'lcl_alg_del_txt_locatie' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex gewijzigd' WHERE fac_locale_xsl_label = 'lcl_alg_is_alglup' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complexgegevens' WHERE fac_locale_xsl_label = 'lcl_alg_locatie_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complexcode' WHERE fac_locale_xsl_label = 'lcl_estate_locatie_man_code' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'lcl_estate_locatie_man_descr' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complexdetails' WHERE fac_locale_xsl_label = 'lcl_estate_locatie_title' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '>Complex' WHERE fac_locale_xsl_label = 'lcl_goto_locatie_list' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'lcl_location' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'lcl_menu_alg_locatie' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Kenmerken van complex' WHERE fac_locale_xsl_label = 'lcl_menu_alg_locatiekenmerken' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex' WHERE fac_locale_xsl_label = 'lcl_mi_location' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een complex...' WHERE fac_locale_xsl_label = 'lcl_select_locatie' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een complex' WHERE fac_locale_xsl_label = 'lcl_select_location' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van gebouw -> cluster
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwijderen cluster' WHERE fac_locale_xsl_label = 'lcl_alg_del_txt_gebouw' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster' WHERE fac_locale_xsl_label = 'alg_gebouw' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Clustergegevens' WHERE fac_locale_xsl_label = 'lcl_alg_gebouw_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Ook vervallen clusters' WHERE fac_locale_xsl_label = 'lcl_alg_gebouw_vervallen_incl' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster gewijzigd' WHERE fac_locale_xsl_label = 'lcl_alg_is_alggup' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster' WHERE fac_locale_xsl_label = 'lcl_bld_terra' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster' WHERE fac_locale_xsl_label = 'lcl_building' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Clustercode' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_man_code' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_man_descr' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Clusternaam' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_man_name' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster opmerking' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_man_opmerk' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Clusterdetails' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_title' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '>Cluster' WHERE fac_locale_xsl_label = 'lcl_goto_gebouw_list' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Clusters' WHERE fac_locale_xsl_label = 'lcl_menu_alg_gebouw' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Kenmerken van cluster' WHERE fac_locale_xsl_label = 'lcl_menu_alg_gebouwkenmerken' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een cluster...' WHERE fac_locale_xsl_label = 'lcl_select_gebouw' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cluster functie' WHERE fac_locale_xsl_label = 'lcl_estate_gebouw_srtgebouw' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van Discipline -> hoofrecept
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecept' WHERE fac_locale_xsl_label = 'lcl_discipline' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een hoofdrecept...' WHERE fac_locale_xsl_label = 'lcl_select_discipline' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecepten' WHERE fac_locale_xsl_label = 'lcl_menu_ins_disciplines' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecept' WHERE fac_locale_xsl_label = 'ins_discipline' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecepten' WHERE fac_locale_xsl_label = 'ins_discipline_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecept' WHERE fac_locale_xsl_label = 'ins_srtinstallatie_discipline' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'D;Hoofdrecept;G;Groeprecept;S;Subrecept' WHERE fac_locale_xsl_label = 'ins_kenmerk_niveauLOV' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van Groepen (van disciplines) -> groeprecept
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een groeprecept...' WHERE fac_locale_xsl_label = 'lcl_select_srtgroep' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Groeprecepten' WHERE fac_locale_xsl_label = 'lcl_menu_ins_groepen' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Groeprecept' WHERE fac_locale_xsl_label = 'ins_srtgroep' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Groeprecepten' WHERE fac_locale_xsl_label = 'ins_srtgroep_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Hoofdrecept' WHERE fac_locale_xsl_label = 'ins_srtgroep_catalogus' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Groeprecept' WHERE fac_locale_xsl_label = 'ins_srtinstallatie_srtgroep' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van objectsoorten -> subrecept
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecept' WHERE fac_locale_xsl_label = 'ins_srtinstallatie_srtdeel' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Weet u zeker dat u dit subrecept wil verwijderen?' WHERE fac_locale_xsl_label = 'lcl_ins_del_srtdeel' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Het subrecept verschilt. Specifieke kenmerken kunnen niet worden getoond. Kies elementen van hetzelfde subrecept' WHERE fac_locale_xsl_label = 'lcl_ins_diff_objsrt' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Kies subrecept' WHERE fac_locale_xsl_label = 'lcl_ins_nosrtdeel_selected' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecept nummer' WHERE fac_locale_xsl_label = 'lcl_ins_objsrt_code' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecepten' WHERE fac_locale_xsl_label = 'lcl_menu_ins_objectsoorten' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Dit subrecept is niet mogelijk bij deze plaats/ eigenaar.' WHERE fac_locale_xsl_label = 'lcl_obj_notallowed' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een subrecept...' WHERE fac_locale_xsl_label = 'lcl_select_srtdeel' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecept nummer' WHERE fac_locale_xsl_label = 'lcl_obj_srtdeel_code' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'D;Element;S;Subrecept' WHERE fac_locale_xsl_label = 'ins_kenmerk_bewerkniveauLOV' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecept' WHERE fac_locale_xsl_label = 'frm_srtdeelframe' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van objecten
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element kenmerk' WHERE fac_locale_xsl_label = 'ins_kenmerk' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element kenmerken' WHERE fac_locale_xsl_label = 'ins_kenmerk_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Ook vervallen elementen' WHERE fac_locale_xsl_label = 'lcl_expobjects_incl' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element beheer' WHERE fac_locale_xsl_label = 'lcl_facmgt_ins' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Weet u zeker dat u dit element wil verwijderen?' WHERE fac_locale_xsl_label = 'lcl_ins_del_txt_deel' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Bewerken element' WHERE fac_locale_xsl_label = 'lcl_ins_edit_object' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element verwijderd' WHERE fac_locale_xsl_label = 'lcl_ins_is_insdel' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element geregistreerd' WHERE fac_locale_xsl_label = 'lcl_ins_is_insnew' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element gewijzigd' WHERE fac_locale_xsl_label = 'lcl_ins_is_insupd' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element kenmerken' WHERE fac_locale_xsl_label = 'lcl_ins_kenmerken' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Gerelateerde elementen' WHERE fac_locale_xsl_label = 'lcl_ins_koppelobjects' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Beheerder van element' WHERE fac_locale_xsl_label = 'lcl_ins_manager' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Geen autorisatie voor het wijzigen van het element' WHERE fac_locale_xsl_label = 'lcl_ins_no_auth_change' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element' WHERE fac_locale_xsl_label = 'lcl_ins_object' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Elementen' WHERE fac_locale_xsl_label = 'lcl_ins_objects' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element beheer' WHERE fac_locale_xsl_label = 'lcl_menu_ins_bo_man' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element beheer' WHERE fac_locale_xsl_label = 'lcl_menu_ins_bo_use' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Ander element' WHERE fac_locale_xsl_label = 'lcl_obj_bind_i' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Dit element verwijderen?' WHERE fac_locale_xsl_label = 'lcl_obj_del_confirm' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element' WHERE fac_locale_xsl_label = 'lcl_obj_inf_name' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Subrecept' WHERE fac_locale_xsl_label = 'lcl_obj_sort' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer element' WHERE fac_locale_xsl_label = 'lcl_select_object' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Complex-Cluster' WHERE fac_locale_xsl_label = 'lcl_obj_position' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = ' ' WHERE fac_locale_xsl_label = 'lcl_obj_owner' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element gegevens' WHERE fac_locale_xsl_label = 'lcl_ins_frame_algemeen' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Algemene elementenmerken' WHERE fac_locale_xsl_label = 'lcl_general_properties' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Elementenbeheer' WHERE fac_locale_xsl_label = 'lcl_ins_object_management' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwerkt in de conditiescore van het element' WHERE fac_locale_xsl_label = 'cnd_conditiescore_verwerkt' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwerkt in de conditiescores van de elementen' WHERE fac_locale_xsl_label = 'cnd_conditiescore_verwerkt_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Elementen' WHERE fac_locale_xsl_label = 'frm_deellistframe' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Element' WHERE fac_locale_xsl_label = 'frm_deelframe' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van terugkerende taken -> recept
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recepten' WHERE fac_locale_xsl_label = 'ins_srtcontrole_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recepten' WHERE fac_locale_xsl_label = 'lcl_ins_planned_activities' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recepten' WHERE fac_locale_xsl_label = 'lcl_menu_ins_srtcontrole' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recepten' WHERE fac_locale_xsl_label = 'frm_insinspectframe' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recept' WHERE fac_locale_xsl_label = 'frm_inspectframe' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Recept' WHERE fac_locale_xsl_label = 'lcl_ins_controle_srt' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- Rename van kostenvelden bij terugkerende taken
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Loonbedrag' WHERE fac_locale_xsl_label = 'ins_srtcontrole_kosten' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Derden' WHERE fac_locale_xsl_label = 'ins_srtcontrole_kosten2' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Materieel' WHERE fac_locale_xsl_label = 'ins_srtcontrole_kosten3' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- FSN#38412: Rename van periode->cyclus, frequentie -> cyclus)
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cyclus' WHERE fac_locale_xsl_label = 'lcl_ins_controle_period' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cyclus' WHERE fac_locale_xsl_label = 'ins_srtcontrole_periode' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Cyclus' WHERE fac_locale_xsl_label = 'lcl_mjb_frequency' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
-- PLAT#41631: Rename van kostenplaats -> projectgroep
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Selecteer een projectgroep...' WHERE fac_locale_xsl_label = 'lcl_select_kostenplaats' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep gegevens' WHERE fac_locale_xsl_label = 'lcl_kpn_kpn_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'U moet projectgroepen selecteren.' WHERE fac_locale_xsl_label = 'lcl_kpn_mandatory' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Verwijderen projectgroep' WHERE fac_locale_xsl_label = 'lcl_kpn_del_txt_kostenplaats' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Alleen beschikbaar met geldige projectgroep' WHERE fac_locale_xsl_label = 'lcl_select_account_disc' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_account' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_mld_kosten' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_mld_inf_Kostenplaats' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kosten' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Type projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kosttype' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Afdelingen Projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kosttype_prs' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Gebouwen Projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kosttype_alg' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projecten Projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kosttype_prj' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep code' WHERE fac_locale_xsl_label = 'lcl_prs_kostcode' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep: Inzage' WHERE fac_locale_xsl_label = 'lcl_prs_kosten_inzage' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep cluster' WHERE fac_locale_xsl_label = 'lcl_prs_kostenpl_group' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Externe projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_kpnextern' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Alle projectgroepen' WHERE fac_locale_xsl_label = 'lcl_prs_all_accounts' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep gewijzigd' WHERE fac_locale_xsl_label = 'lcl_prs_is_prskpu' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_prs_dept_kosten' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroepen' WHERE fac_locale_xsl_label = 'lcl_menu_fin_kostenplaatsen' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroepen cluster' WHERE fac_locale_xsl_label = 'lcl_menu_fin_kostenplaatsgroep' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'lcl_shared_account' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'is budgethouder voor projectgroep' WHERE fac_locale_xsl_label = 'PRS_BUDGETHOUDER_VAN' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep verplicht' WHERE fac_locale_xsl_label = 'ins_discipline_kpnverplicht' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = '0;Standaard uit;1;Standaard aan;2;Projectgroep niet tonen' WHERE fac_locale_xsl_label = 'ins_srtdiscipline_kostenklantLOV' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'prs_kostenplaats' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroepen' WHERE fac_locale_xsl_label = 'prs_kostenplaats_m' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroepen gewijzigd' WHERE fac_locale_xsl_label = 'lcl_noti_PRSKPU' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep' WHERE fac_locale_xsl_label = 'kostenplaats' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
UPDATE fac_locale_xsl SET fac_locale_xsl_cust = 'Projectgroep clusters' WHERE fac_locale_xsl_label = 'lcl_kpn_groep_frame' AND fac_locale_xsl_lang = 'NL' AND fac_locale_xsl_module = 'ASP';
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- ALG Onroerend Goed 1 import (locaties + gebouwen)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE plat_post_import_onrgoed1 (p_import_key IN NUMBER)
AS
v_errorhint VARCHAR2 (400);
BEGIN
v_errorhint := 'plat_post_import_onrgoed1';
END;
/
CREATE OR REPLACE PROCEDURE plat_import_onrgoed1 (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
BEGIN
v_errorhint := 'plat_import_onrgoed1';
fac_import_onrgoed1(p_import_key);
COMMIT;
-- After import korrektie gebeurt nu...
plat_post_import_onrgoed1(p_import_key);
EXCEPTION
WHEN OTHERS
THEN
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 plat_import_onrgoed1;
/
CREATE OR REPLACE PROCEDURE plat_post_onrgoed1_exploitatie (p_import_key IN NUMBER, p_max_alg_gebouw_key IN NUMBER)
AS
v_errorhint VARCHAR2 (400);
v_count_tot NUMBER(10);
v_errormsg VARCHAR2 (400);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- locatiecode is uniek (over de hele DB heen), en gebouwcode is uniek binnen de locatiecode.
-- Let op: locatiecode is in DB in UPPER, gebouwcode is in DB niet upper, die staat in de kolom alg_gebouw_upper.
-- Alle locaties met hun gebouwen in de database die NIET in het importbestand staan, en die dus kunnen worden verwijderd.
-- Als die de vorige keer niet verwijderd was, want dan blijven we verwijderen natuurlijk, 1x is genoeg.
-- De vorige verwijderd betekent (tot nu toe gekozen) dat vervaldatum in het verleden ligt; zie TODO hieronder bij het zetten van de vervaldatum (ipv verwijderdatum).
CURSOR c1
IS
SELECT l.alg_locatie_key, l.alg_locatie_code, g.alg_gebouw_key, g.alg_gebouw_code, g.alg_gebouw_upper
FROM alg_locatie l, alg_gebouw g
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
AND g.alg_gebouw_verwijder IS NULL
AND COALESCE(g.alg_gebouw_vervaldatum,SYSDATE) >= SYSDATE
AND NOT EXISTS (SELECT 'x' FROM fac_imp_onrgoed1 og
WHERE UPPER(og.alg_locatie_code) = l.alg_locatie_code
AND UPPER(og.alg_gebouw_code) = g.alg_gebouw_upper);
BEGIN
-- Alle gebouwen krijgen een alg-gebouw_vervaldatum als deze is gevuld in kolom S (flexprop 'Eindjaar' met alg_kenmerk_key = 2).
v_errorhint := 'plat_post_onrgoed1_exploitatie';
-- Werk alle vervaldatums van de gebouwen bij die nog in de DB staan met de waarde uit kenmerk 'Einde exploitatie' (key 2) die bij de locatie (van het gebouw) staat geregistreerd.
-- In kenmerk 'Einde exploitatie' staat het jaartal van einde, die gaan we nog voorzien van de laatste dag in dat jaar, oftewel '31 dec'
UPDATE alg_gebouw g
SET g.alg_gebouw_vervaldatum = (SELECT fac.safe_to_date ('31-12-' || SUBSTR (og.alg_kenmerkwaarde2, INSTR (og.alg_kenmerkwaarde2, '=') + 1),'dd-mm-yyyy') waarde1
FROM fac_imp_onrgoed1 og
WHERE UPPER(og.alg_locatie_code) = (SELECT alg_locatie_code FROM alg_locatie l WHERE l.alg_locatie_key = g.alg_locatie_key)
AND UPPER(og.alg_gebouw_code) = g.alg_gebouw_upper)
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_upper IN (SELECT UPPER(alg_gebouw_code) FROM fac_imp_onrgoed1);
FOR rec IN c1
LOOP
fac.imp_writelog (p_import_key,
'I',
'Gebouw ' || rec.alg_gebouw_code || '(locatie ' || rec.alg_locatie_code || ') is verwijderd cq. vervaldatum op vorig jaar gezet: ' || 'gebouw key=[' || TO_CHAR(rec.alg_gebouw_key) || ']',
'');
-- We gaan het gebouw niet verwijderen, wellicht komt dat nog (TODO),
-- want voor het verwijderen van gebouw moeten ALLE onderliggende zaken (controles, objecten, ruimten, verdiepingen) eerst worden verwijderd.
-- Iets too much voor dit moment, en eh..., je bent die historie ook direct kwijt.
-- Dus vooralsnog zetten we hier de einde exploitatietijd met de huidige jaartal MINUS 1, op 31 dec (dus vandaag = 10 aug 2016, dan vervaldatum = 31 dec 2015)
UPDATE alg_gebouw
-- SET alg_gebouw_verwijder = SYSDATE
SET alg_gebouw_vervaldatum = fac.safe_to_date('31-12-' || (TO_CHAR(SYSDATE,'YYYY') - 1), 'dd-mm-yyyy')
WHERE alg_gebouw_key = rec.alg_gebouw_key;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
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 plat_post_onrgoed1_exploitatie;
/
CREATE OR REPLACE PROCEDURE plat_post_onrgoed1_gebouw_kenm (p_import_key IN NUMBER, p_max_alg_gebouw_key IN NUMBER)
AS
v_errorhint VARCHAR2 (400);
v_aanduiding VARCHAR2 (1000);
v_count_tot NUMBER(10);
v_errormsg VARCHAR2 (400);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_alg_gebouw_key NUMBER(10);
v_alg_gebouw_naam VARCHAR2(200);
c_kenmerk_bouwjaar_G NUMBER(10);
c_kenmerk_aant_percelen_L NUMBER(10);
c_kenmerk_aant_percelen_G NUMBER(10);
c_kenmerk_gebouw_gewijzigd NUMBER(10);
l_alg_gebouw_changed NUMBER(10);
v_aantal_perc_G NUMBER(10);
v_aant_percelen NUMBER(10);
CURSOR c1
IS
SELECT alg_locatie_code, alg_gebouw_code, alg_gebouw_naam, SUBSTR (alg_kenmerkwaarde1, INSTR (alg_kenmerkwaarde1, '=') + 1) bouwjaar, SUBSTR (alg_kenmerkwaarde3, INSTR (alg_kenmerkwaarde3, '=') + 1) aant_percelen FROM fac_imp_onrgoed1;
CURSOR c2
IS
SELECT alg_locatie_key FROM alg_locatie;
BEGIN
-- Gebouw kenmerk 'Bouwjaar'
c_kenmerk_bouwjaar_G := 5;
-- Locatie kenmerk 'Aantal percelen'
c_kenmerk_aant_percelen_L := 3;
-- Gebouw kenmerk 'Aantal percelen'
c_kenmerk_aant_percelen_G := 4;
-- PLAT#51326: Signalering op gewijzigde clusters
-- Gebouw kenmerk 'Gebouw is (recentelijk) gewijzigd'
c_kenmerk_gebouw_gewijzigd := 6;
l_alg_gebouw_changed := 0;
-- Alle gebouwen krijgen voor 'aantal percelen' een nieuw record (als die nog niet bestond) of een bijgewerkt record (als die al wel bestond)
-- Let op: b.v. een gebouw heeft 123 percelen, dan staat alg_kenmerkwaarde3 staat de waarde "3=123", waarbij de = het scheidingsteken is tussen key 3 en aantal percelen (123)
-- key 3 refereert aan kenmerk 'aantal percelen' op locatie-nivo (dit doet de algemene import), we moeten dit aantal (123) inserten/updaten in het aantal percelen op gebouw nivo (key 4)!
v_errorhint := '#1: Aantal Percelen / bouwjaar';
FOR rec IN c1
LOOP
l_alg_gebouw_changed := 0;
v_aanduiding := 'Locatie:' ||rec.alg_locatie_code || ', gebouw: ' || rec.alg_gebouw_code || 'naam:' || rec.alg_gebouw_naam;
v_errorhint := '#2: SELECT MIN(alg_gebouw_key)';
SELECT MIN(alg_gebouw_key)
INTO v_alg_gebouw_key
FROM alg_gebouw g, alg_locatie l
WHERE g.alg_gebouw_upper = UPPER(rec.alg_gebouw_code)
AND l.alg_locatie_code = UPPER(rec.alg_locatie_code)
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
AND g.alg_gebouw_verwijder IS NULL;
IF v_alg_gebouw_key IS NOT NULL
THEN
IF v_alg_gebouw_key <= p_max_alg_gebouw_key
THEN
-- Was al een bestaand gebouw, oftewel gebouw is niet zojuist toegevoegd via deze import.
-- We gaan wel checken of er enkele (cruciale) wijzigingen zijn sinds met deze nieuwe import tbv PLAT#51326: Signalering op gewijzigde clusters
v_errorhint := '#3: SELECT alg_gebouw_naam';
SELECT alg_gebouw_naam
INTO v_alg_gebouw_naam
FROM alg_gebouw
WHERE alg_gebouw_key = v_alg_gebouw_key;
IF (rec.alg_gebouw_naam IS NOT NULL) AND
(UPPER(rec.alg_gebouw_naam) <> UPPER(v_alg_gebouw_naam))
THEN
-- Er is een wijziging in de gebouwnaam
l_alg_gebouw_changed := 1;
v_errorhint := '#4: fac.trackaction #ALGGUP';
fac.trackaction ('#ALGGUP', v_alg_gebouw_key, NULL, NULL, 'Clusternaam is gewijzigd van waarde ' || v_alg_gebouw_naam || ' in: ' || rec.alg_gebouw_naam);
END IF;
-- PLAT#51326: Signalering op gewijzigde clusters
v_errorhint := '#5: v_aantal_perc_G';
SELECT MAX(alg_onrgoedkenmerk_waarde)
INTO v_aantal_perc_G
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = c_kenmerk_aant_percelen_G
AND alg_onrgoed_key = v_alg_gebouw_key
AND alg_onrgoed_niveau = 'G'
AND alg_onrgoedkenmerk_verwijder IS NULL;
IF (v_aantal_perc_G IS NULL AND rec.aant_percelen IS NOT NULL) OR
(v_aantal_perc_G IS NOT NULL AND rec.aant_percelen IS NULL) OR
(fac.safe_to_number(v_aantal_perc_G) <> fac.safe_to_number(rec.aant_percelen))
THEN
-- Er is een wijziging in het aantal percelen.
l_alg_gebouw_changed := 1;
v_errorhint := '#6: fac.trackaction #ALGGUP';
fac.trackaction ('#ALGGUP', v_alg_gebouw_key, NULL, NULL, 'Aantal percelen gewijzigd van waarde ' || COALESCE(TO_CHAR(v_aantal_perc_G), 'Geen') || ' in: ' || COALESCE(TO_CHAR(rec.aant_percelen), 'Geen'));
END IF;
IF (l_alg_gebouw_changed = 1)
THEN
fac.imp_writelog (p_import_key, 'I', 'Cluster gewijzigd', v_aanduiding);
END IF;
ELSE
-- Is een nieuw toegevoegd gebouw zojuist via deze import
l_alg_gebouw_changed := 1;
v_errorhint := '#7: fac.trackaction #ALGGUP';
fac.imp_writelog (p_import_key, 'I', 'Cluster toegevoegd', v_aanduiding);
fac.trackaction ('#ALGGUP', v_alg_gebouw_key, NULL, NULL, 'Cluster is nieuw/toegevoegd');
END IF;
v_errorhint := '#8: Update gebouwnaam';
UPDATE alg_gebouw
SET alg_gebouw_naam = rec.alg_gebouw_naam
WHERE alg_gebouw_key = v_alg_gebouw_key;
v_errorhint := '#9: alg.upsertkenmerk (c_kenmerk_bouwjaar_G';
alg.upsertkenmerk (c_kenmerk_bouwjaar_G, v_alg_gebouw_key, rec.bouwjaar);
v_errorhint := '#10: alg.upsertkenmerk (c_kenmerk_aant_percelen_G';
alg.upsertkenmerk (c_kenmerk_aant_percelen_G, v_alg_gebouw_key, rec.aant_percelen);
IF (l_alg_gebouw_changed = 1)
THEN
v_errorhint := '#11: alg.upsertkenmerk (c_kenmerk_gebouw_gewijzigd';
alg.upsertkenmerk (c_kenmerk_gebouw_gewijzigd, v_alg_gebouw_key, 1);
END IF;
END IF;
END LOOP;
COMMIT;
-- Ten slotte gaan we het aantal percelen op locatie-nivo nog bijwerken door een SUM te doen van de gebouwen te doen...
FOR rec IN c2
LOOP
SELECT SUM (fac.safe_to_number(alg_onrgoedkenmerk_waarde))
INTO v_aant_percelen
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = c_kenmerk_aant_percelen_G
AND alg_onrgoed_key IN (SELECT g.alg_gebouw_key FROM alg_gebouw g WHERE g.alg_locatie_key = rec.alg_locatie_key);
alg.upsertkenmerk (c_kenmerk_aant_percelen_L, rec.alg_locatie_key, v_aant_percelen);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
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 || ' - '|| v_aanduiding);
END plat_post_onrgoed1_gebouw_kenm;
/
CREATE OR REPLACE PROCEDURE plat_post_update_onrgoed1 (p_import_key IN NUMBER, p_max_alg_gebouw_key IN NUMBER)
AS
v_errorhint VARCHAR2 (400);
v_errormsg VARCHAR2 (400);
v_count_tot NUMBER(10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errorhint := 'plat_post_update_onrgoed1';
-- Voor alle gebouwen willen we de einddatum / einde exploitatie (alg_gebouw_vervaldatum) updaten.
-- Uitdaging is dat de import
plat_post_onrgoed1_exploitatie (p_import_key, p_max_alg_gebouw_key);
-- Verwerking van aantal percelen in gebouw, en optellen bij locatie (som van alle gebouwen).
-- PLAT#41493: TB035 Cluster bevat niet het aantal percelen
-- PLAT#41494: Verschuiving van kenmerken van complex naar cluster: bouwjaar en vervaljaar
plat_post_onrgoed1_gebouw_kenm (p_import_key, p_max_alg_gebouw_key);
-- Alleen voor de nieuwe gebouwen moeten we 1 (dummy) verdieping en 1 (dummy) ruimte toevoegen...
-- Dus Dummy verdieping voor elk toegevoegd alg_gebouw (dus waar alg_gebouw_key > p_max_alg_gebouw_key)
INSERT INTO alg_verdieping (alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_code, alg_verdieping_volgnr)
SELECT alg_gebouw_key, '-', '_-', 0
FROM alg_gebouw
WHERE alg_gebouw_key > p_max_alg_gebouw_key
AND alg_gebouw_verwijder IS NULL;
SELECT COUNT(*)
INTO v_count_tot
FROM alg_verdieping
WHERE alg_gebouw_key > p_max_alg_gebouw_key;
fac.imp_writelog (p_import_key,
'S',
'Verdieping/#toegevoegd: ' || TO_CHAR (v_count_tot),
'');
-- Dummy ruimte voor elk toegevoegd dummy alg_verdieping (dus waar alg_gebouw_key > p_max_alg_gebouw_key)
INSERT INTO alg_ruimte (alg_verdieping_key, alg_ruimte_nr)
SELECT alg_verdieping_key, '_1' FROM alg_verdieping
WHERE alg_gebouw_key > p_max_alg_gebouw_key
AND alg_verdieping_verwijder IS NULL;
SELECT COUNT(*)
INTO v_count_tot
FROM alg_ruimte
WHERE alg_verdieping_key IN (SELECT alg_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key > p_max_alg_gebouw_key);
fac.imp_writelog (p_import_key,
'S',
'Ruimte/#toegevoegd: ' || TO_CHAR (v_count_tot),
'');
EXCEPTION
WHEN OTHERS
THEN
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 plat_post_update_onrgoed1;
/
CREATE OR REPLACE PROCEDURE plat_update_onrgoed1 (
p_import_key IN NUMBER
) IS
v_count NUMBER;
v_max_alg_gebouw_key NUMBER(10);
BEGIN
-- Even snel registreren wat de laatst toegevoegde alg_gebouw is, dan weten we dat er door deze import-procedure wordt toegevoegd (alles > dan deze max).
SELECT coalesce(max(alg_gebouw_key),0)
INTO v_max_alg_gebouw_key
FROM alg_gebouw
WHERE alg_gebouw_verwijder IS NULL;
fac_update_onrgoed1(p_import_key);
-- After update ...
plat_post_update_onrgoed1(p_import_key, v_max_alg_gebouw_key);
END plat_update_onrgoed1;
/
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Objecten import
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE plat_post_import_ins (p_import_key IN NUMBER)
AS
v_errorhint VARCHAR2 (400);
BEGIN
v_errorhint := 'plat_post_import_ins';
END;
/
CREATE OR REPLACE PROCEDURE plat_import_ins (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
BEGIN
v_errorhint := 'plat_import_ins';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
fac_import_ins (p_import_key);
COMMIT;
-- After import korrektie gebeurt nu...
plat_post_import_ins(p_import_key);
EXCEPTION
WHEN OTHERS
THEN
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 plat_import_ins;
/
CREATE OR REPLACE PROCEDURE plat_post_update_ins (p_import_key IN NUMBER, p_max_ins_srtdeel_key IN NUMBER, p_max_ins_deel_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_receptnr VARCHAR2 (1000);
v_kosten VARCHAR2 (1000);
v_periode VARCHAR2 (1000);
v_perc_onderhoud VARCHAR2 (1000);
v_ctr_discipline_key NUMBER(10);
v_fin_btwtabelwaarde_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE;
l_kosten ins_srtcontrole.ins_srtcontrole_kosten2%TYPE;
l_periode ins_srtcontrole.ins_srtcontrole_periode%TYPE;
l_perc_onderhoud ins_srtcontrole.ins_srtcontrole_percentage%TYPE;
v_mx_ins_srtcontroledl_xcp_key NUMBER(10);
v_kpn_bestaat NUMBER(10);
v_groep_bestaat NUMBER(10);
-- Flexprops in de FIP-INS Excelsheet
-- ins_kenmerkwaarde Flexprop
-- 1 Receptnummer } Srtcontrole
-- 2 Receptomschrijving }
-- 3 Totaalbedr.
-- 4 StJr
-- 5 Duur
-- 6 EiJr
-- 7 ExJr
-- 8 VvJr
-- 9 Aant. Aanw. } Aantal geregistreerde objecten
-- 10 Perc. Onderh } Percentage van dat aantal (vorige kolom) dat voor onderhoud cyclus in aanmerking komt, default 100%
-- 11 Aantal niet
-- 12 Aant.Overh.
-- 13 Eh. } Eenheid --> Stoppen we nu in standaard kolom Eenheid (kolom I)
-- 14 Cycl
-- 15 Fo
-- 16 Fonds
-- 17 Opmerking
-- 18 kenmerk18
-- 19 kenmerk19
-- 20 kenmerk20
-- LET OP: WE GAAN ERVAN UIT DAT bij een Receptnummer (1) altijd dezelfde Receptomschrijving(2) en Eenheid (13) horen. M.a.w. bij 2 regels Receptnr (1) zijn (2) en (13) ook gelijk.
CURSOR c1
IS -- receptnummer, receptomschrijving,
SELECT DISTINCT(ins_kenmerkwaarde1)
FROM fac_imp_ins
order by ins_kenmerkwaarde1;
-- Alle geimporteerde regels (objecten met controles) die nog geen standaard srtcontrole hebben, en dus een uitzondering controle (xcp) moeten krijgen.
CURSOR c2 (p_max_ins_deel_key NUMBER, p_receptnr VARCHAR2, p_kosten VARCHAR2, p_periode VARCHAR2, p_perc_onderhoud VARCHAR2)
IS
SELECT d.ins_deel_key, d.ins_deel_omschrijving, c.ins_srtcontrole_key, ins_kenmerkwaarde14 periode, 4,
fac.safe_to_number(replace(replace(ins_kenmerkwaarde3, '.'), ',','.')) kosten, fac.safe_to_number(replace(replace(ins_kenmerkwaarde10, '.'), ',','.')) perc_onderhoud,
fac.safe_to_date('01-01-' || ins_kenmerkwaarde8 ,'dd-mm-yyyy') verval_datum,
ins_kenmerkwaarde17 xcp_opmerk,
ins_kenmerkwaarde9 xcp_aantal,
ins_kenmerkwaarde13 xcp_eenheid
FROM fac_imp_ins i, ins_deel d, ins_srtdeel srt, ins_srtcontrole c, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l
WHERE i.ins_deel_omschrijving = d.ins_deel_omschrijving
AND i.alg_locatie_code = l.alg_locatie_code
AND i.alg_gebouw_code = g.alg_gebouw_code
AND i.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND i.alg_ruimte_nr = r.alg_ruimte_nr
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_srtdeel_key = srt.ins_srtdeel_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND d.ins_deel_verwijder IS NULL
AND d.ins_deel_key > p_max_ins_deel_key
AND i.ins_kenmerkwaarde1 = p_receptnr
AND (i.ins_kenmerkwaarde3 <> p_kosten OR i.ins_kenmerkwaarde14 <> p_periode OR i.ins_kenmerkwaarde10 <> p_perc_onderhoud OR p_perc_onderhoud = 0 OR i.ins_kenmerkwaarde13 <> srt.ins_srtdeel_eenheid OR i.ins_kenmerkwaarde9 <> d.ins_deel_aantal)
AND i.ins_kenmerkwaarde3 IS NOT NULL
AND i.ins_kenmerkwaarde14 IS NOT NULL
AND i.ins_kenmerkwaarde10 IS NOT NULL
AND i.ins_kenmerkwaarde1 = substr(c.ins_srtcontrole_omschrijving, 1, instr(c.ins_srtcontrole_omschrijving, '-')-1 );
-- Alle geimporteerde regels (objecten met controles) die NA cursor C2 een standaard srtcontrole hebben gekregen,
-- maar eigenlijk toch een uitzondering controle (xcp) moeten krijgen vanwege vervaljaar of opmerking uit oorspronkelijke systeem, willen we niet verloren laten gaan.
-- Dus via cursor 6 alle records met een gevuld vervaljaar (ins_kenmerkwaarde8) of gevulde opmkering (ins_kenmerkwaarde17) krijgen ook een xcp.
-- NB: Als die al een XCP obv cursor 2 had gekregen (afwijkende prijs, cyclus, %) hebben daar al dit eventuele vervaljaar en/of opmerking erbij gekregen, oftewel dit gaat om nieuwe gevallen.
CURSOR c6 (p_max_ins_deel_key NUMBER, p_receptnr VARCHAR2, p_kosten VARCHAR2, p_periode VARCHAR2, p_perc_onderhoud VARCHAR2)
IS
SELECT d.ins_deel_key, d.ins_deel_omschrijving, c.ins_srtcontrole_key, ins_kenmerkwaarde14 periode, 4,
fac.safe_to_number(replace(replace(ins_kenmerkwaarde3, '.'), ',','.')) kosten, fac.safe_to_number(replace(replace(ins_kenmerkwaarde10, '.'), ',','.')) perc_onderhoud,
fac.safe_to_date('01-01-' || ins_kenmerkwaarde8 ,'dd-mm-yyyy') verval_datum,
ins_kenmerkwaarde17 xcp_opmerk
FROM fac_imp_ins i, ins_deel d, ins_srtcontrole c, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l
WHERE i.ins_deel_omschrijving = d.ins_deel_omschrijving
AND i.alg_locatie_code = l.alg_locatie_code
AND i.alg_gebouw_code = g.alg_gebouw_code
AND i.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND i.alg_ruimte_nr = r.alg_ruimte_nr
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND d.ins_deel_verwijder IS NULL
AND d.ins_deel_key > p_max_ins_deel_key
AND i.ins_kenmerkwaarde1 = p_receptnr
AND i.ins_kenmerkwaarde3 = p_kosten
AND i.ins_kenmerkwaarde14 = p_periode
AND i.ins_kenmerkwaarde10 = p_perc_onderhoud
AND p_perc_onderhoud != 0 -- in cursor c2 hebben we al XCP records aangemaakt voor alle 0 percentages, anders krijgen we hier errors
AND i.ins_kenmerkwaarde3 IS NOT NULL
AND i.ins_kenmerkwaarde14 IS NOT NULL
AND i.ins_kenmerkwaarde10 IS NOT NULL
AND i.ins_kenmerkwaarde1 = substr(c.ins_srtcontrole_omschrijving, 1, instr(c.ins_srtcontrole_omschrijving, '-')-1 )
AND (i.ins_kenmerkwaarde8 IS NOT NULL OR i.ins_kenmerkwaarde17 IS NOT NULL);
CURSOR c4 (p_max_ins_srtcontroledl_xcp NUMBER)
IS
SELECT ins_srtcontroledl_xcp_key, ins_deel_key, c.ins_srtcontrole_key, ins_srtcontrole_omschrijving,
CASE
WHEN ins_srtcontrole_kosten2 IS NOT NULL AND ins_srtcontroledl_xcp_kosten2 IS NOT NULL AND ins_srtcontrole_kosten2 = ins_srtcontroledl_xcp_kosten2
THEN 1
ELSE 0
END set_kosten2_null,
CASE
WHEN ins_srtcontrole_periode IS NOT NULL AND ins_srtcontroledl_xcp_periode IS NOT NULL AND ins_srtcontrole_periode = ins_srtcontroledl_xcp_periode
THEN 1
ELSE 0
END set_periode_null,
CASE
WHEN ins_srtcontrole_percentage IS NOT NULL AND ins_srtcontroledl_xcp_perc IS NOT NULL AND ins_srtcontrole_percentage = ins_srtcontroledl_xcp_perc
THEN 1
ELSE 0
END set_perc_onderhoud_null
FROM ins_srtcontrole c, ins_srtcontroledl_xcp x
WHERE x.ins_srtcontroledl_xcp_key > p_max_ins_srtcontroledl_xcp
AND x.ins_srtcontrole_key = c.ins_srtcontrole_key;
-- Let op: de eenheid kolom I wordt (itt hetgeen ik dacht) niet in ins_srtdeel_eenheid verwerkt, maar in res_deel_eenheid.
-- Verder: ins_srtdeel_code is verder helemaal NIET uniek, niet over de DB, niet per discipline en/of groep.
-- We kunnen daarom volstaan door hier verder ook niet te groeperen op discipline of iets dergelijks, we gaan gewoon op objectsoort-code groeperen, en ze krijgen allen dezelfde eenheid.
CURSOR c3
IS
SELECT ins_srtdeel_code, res_deel_eenheid
FROM fac_imp_ins
GROUP BY ins_srtdeel_code, res_deel_eenheid;
-- Fondscodes/Projectgroepen gaan we als (gebouw)kostenplaatsen opvoeren
CURSOR c5
IS
SELECT ins_kenmerkwaarde15, ins_kenmerkwaarde16
FROM fac_imp_ins
GROUP BY ins_kenmerkwaarde15, ins_kenmerkwaarde16;
-- Ten slotte hebben we ook nog de handmatige verschuivingen vanuit Tobias TMJ of StraVIS die komen overwaaien, die willen we niet verloren laten gaan.
-- B.v. alle schilderwerk is naar jaar 2018 verschoven, die willen we niet verloren laten gaan, daarvoor maken we ins_deelsrtcontrole records aan met een plandatum [ins_deelsrtcontrole_plandatum] aan, te weten
-- voor ieder record fac_imp_ins met een gevulde kolom ExJr (7e kolom uit de FIP sheet)
CURSOR c7 (p_max_ins_deel_key NUMBER)
IS
SELECT d.ins_deel_key, d.ins_deel_omschrijving, c.ins_srtcontrole_key, fac.safe_to_date('01-01-' || ins_kenmerkwaarde7 ,'dd-mm-yyyy') plan_datum
FROM fac_imp_ins i, ins_deel d, ins_srtcontrole c, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l
WHERE i.ins_deel_omschrijving = d.ins_deel_omschrijving
AND i.alg_locatie_code = l.alg_locatie_code
AND i.alg_gebouw_code = g.alg_gebouw_code
AND i.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND i.alg_ruimte_nr = r.alg_ruimte_nr
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND d.ins_deel_verwijder IS NULL
AND d.ins_deel_key > p_max_ins_deel_key
AND i.ins_kenmerkwaarde1 = substr(c.ins_srtcontrole_omschrijving, 1, instr(c.ins_srtcontrole_omschrijving, '-')-1 )
AND i.ins_kenmerkwaarde7 IS NOT NULL
AND NOT EXISTS (SELECT 'x'
FROM ins_deelsrtcontrole
WHERE ins_deel_key = d.ins_deel_key
AND ins_srtcontrole_key = c.ins_srtcontrole_key
AND ins_scenario_key = 1
AND ins_deelsrtcontrole_status IN (0, 2));
BEGIN
v_errorhint := 'plat_post_update_ins - cursor c5';
-- Eerst maar eens beginnen met de verwerking van de kostenplaatsen cursor 5
FOR rec IN c5
LOOP
SELECT COUNT(*)
INTO v_kpn_bestaat
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = UPPER(rec.ins_kenmerkwaarde15)
AND prs_kostenplaats_verwijder IS NULL
AND prs_kostenplaats_module = 'ALG';
IF v_kpn_bestaat = 0
THEN
v_errorhint := 'plat_post_update_ins - insert i0';
v_errormsg := 'Kostenplaats gegevens: ' || ' prs_kostenplaats_nr=[' || rec.ins_kenmerkwaarde15 || '],' || ' prs_kostenplaats_omschrijving=[' || rec.ins_kenmerkwaarde16 || '],';
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_extern, prs_kostenplaats_limietperiode, prs_kostenplaats_fiat)
VALUES(rec.ins_kenmerkwaarde15, rec.ins_kenmerkwaarde16, 'ALG', 0, 0, 1);
END IF;
END LOOP;
v_errorhint := 'plat_post_update_ins - cursor c3';
-- Eerst maar eens beginnen met de verwerking van ins_srtdeel_eenheid
FOR rec IN c3
LOOP
v_errormsg := 'Deel gegevens: ' || ' ins_srtdeel_eenheid=[' || rec.res_deel_eenheid || '],' || ' ins_srtdeel_code=[' || rec.ins_srtdeel_code || '],';
v_errorhint := 'plat_post_update_ins - update u0';
UPDATE ins_srtdeel
SET ins_srtdeel_eenheid = rec.res_deel_eenheid
WHERE ins_srtdeel_code = rec.ins_srtdeel_code
AND ins_srtdeel_key > p_max_ins_srtdeel_key
AND ins_srtdeel_verwijder IS NULL;
END LOOP;
v_errorhint := 'plat_post_update_ins - update u1';
-- Verder moet van alle ins_srtdeel die zijn toegevoegd de 'hoort bij persoon' eraf worden gehaald (sie in de standaard FIP erop is gezet), dus ins_srtdeel_binding van 17 -> 1
UPDATE ins_srtdeel
SET ins_srtdeel_binding = 1
WHERE ins_srtdeel_key > p_max_ins_srtdeel_key
AND ins_srtdeel_verwijder IS NULL;
v_errorhint := 'plat_post_update_ins - select s1';
-- Bepalen van de ctr discipline waaronder de terugkerende taken worden vastgelegd.
SELECT MIN(ins_discipline_key)
INTO v_ctr_discipline_key
FROM ctr_discipline d, ctr_disc_params dp
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_verwijder IS NULL
AND dp.ctr_disc_params_ismjob = 1;
v_errorhint := 'plat_post_update_ins - select s2';
IF v_ctr_discipline_key IS NULL
THEN
-- Als de ctr_discipline 'vervanging' niet gevonden is, dan maar de de laatste (max)
SELECT MAX(ins_discipline_key)
INTO v_ctr_discipline_key
FROM ctr_discipline
WHERE ins_discipline_module = 'CTR'
AND ins_discipline_verwijder IS NULL;
END IF;
v_errorhint := 'plat_post_update_ins - select s3';
-- Bepalen van de default BTW % 21...
SELECT MIN(fin_btwtabelwaarde_key)
INTO v_fin_btwtabelwaarde_key
FROM fin_btwtabelwaarde
WHERE fin_btwtabelwaarde_perc = 21
AND COALESCE(fin_btwtabelwaarde_verlegd,0) = 0
AND fin_btwtabelwaarde_verwijder IS NULL;
-- We gaan hier per receptnummer het MEEST UNIFORME (algemene) eruit vissen.
-- Dat doen we door te kijken waarvan de combinatie van dezelfde kosten (aant_K) met dezelfde periode het vaakst voorkomen (aant_P).
-- Voorbeeld hieronder: enkele regels bij 1 object A: recept R1 kost 100 euro per eenhied en wordt elke 2 jaar gepland, elke regel daarna heeft betrekking op ander object
-- recept(1) kosten(3) periode(14)
-- R1 100 2
-- R1 100 2
-- R1 150 2
-- R1 100 1
-- Hier is de meest algemene recept die met kosten 100 en om de 2 jaar (regel 1 en 2), de andere recepten (regel 3 en 4) zijn uitzonderingen (XCP) op de algemene regel.
-- We gaan (gebaseerd op de sheet van WaardWonen) hier ook nog eens rekening houden met Perc.Onderh, die default 100 staat.
-- Maar als de regel is 50%, dan is dat de norm, en elke afwijking van 50% is dus uitzondering, dus we gaan OOK op zoek naar de meeste regels met dezelfde Perc. Onderh.
-- Dus
-- recept(1) kosten(3) periode(14) %onderh (10)
-- R1 100 2 75
-- R1 100 2 50 <-- Hiervan zijn er 2, dit is de standaard taak (srtcontrole)
-- R1 150 2 100
-- R1 100 1 100
-- R1 100 2 50 <-- Hiervan zijn er 2, dit is de standaard taak (srtcontrole)
v_errorhint := 'plat_post_update_ins - cursor c1';
FOR rec IN c1
LOOP
v_errormsg := 'Cursor c1 gegevens: ' || ' ins_kenmerkwaarde1=[' || rec.ins_kenmerkwaarde1 || ']';
v_errorhint := 'plat_post_update_ins - select s4';
SELECT COUNT(*) INTO v_groep_bestaat FROM ins_srtcontrole WHERE UPPER(ins_srtcontrole_groep) = UPPER (rec.ins_kenmerkwaarde1);
IF (v_groep_bestaat > 0)
THEN
SELECT ins_srtcontrole_groep, ins_srtcontrole_kosten2, ins_srtcontrole_periode, ins_srtcontrole_percentage
INTO v_receptnr, v_kosten, v_periode, v_perc_onderhoud
FROM
ins_srtcontrole
WHERE ins_srtcontrole_groep = rec.ins_kenmerkwaarde1
AND ins_srtcontrole_niveau = 'S'
AND rownum = 1;
ELSE
SELECT ins_kenmerkwaarde1, ins_kenmerkwaarde3, ins_kenmerkwaarde14, ins_kenmerkwaarde10
INTO v_receptnr, v_kosten, v_periode, v_perc_onderhoud
FROM (
SELECT a.ins_kenmerkwaarde1, a.ins_kenmerkwaarde3, a.ins_kenmerkwaarde14, ins_kenmerkwaarde10, count(*) aantal FROM fac_imp_ins a
WHERE a.ins_kenmerkwaarde1 = rec.ins_kenmerkwaarde1
HAVING count(*) = (SELECT MAX(COUNT(*)) FROM fac_imp_ins b
WHERE b.ins_kenmerkwaarde1 = a.ins_kenmerkwaarde1
GROUP by ins_kenmerkwaarde1, ins_kenmerkwaarde3, ins_kenmerkwaarde14, ins_kenmerkwaarde10
)
GROUP by ins_kenmerkwaarde1, ins_kenmerkwaarde3, a.ins_kenmerkwaarde14, ins_kenmerkwaarde10)
WHERE rownum = 1;
END IF;
-- Hierboven is eerst gecontroleerrd of een srtcontrole al bestaat, deze is dan leidend i.p.v. de grootste gemene deler in de importsheet.
-- Bestaat de controle nog niet, dan gaan we als volgt verder:
-- Algemene soort controles (terugkerende taken) toevoegen op alle soortdelen die zijn toegevoegd in deze import ( > p_max_ins_srtdeel_key)
-- Daartoe bepalen we eerst van alle controles op een objectsoort de grootste gemene deler, de rest (= afwijkingen daarop) worden xcp-records.
-- Definitie "Grootste gemene deler" = het meeste aantal records met dezelfde kosten, periode en onderhoudspercentage.
-- Fondscode ook in (laatste, zojuist ingeschoten record) ins_srtcontrole verwerken...
-- We gaan ervan uit, en dat is terecht, dat er 1 fondscode (en niet meer dan 1) bij een v_receptnr bestaat.
-- Voor het geval dat er toch is (d.i. een fout in het importbestand) doen we veiligheidshalve MAX.
-- FSN#38080: kolom AA (VvJr = vervaljaar = kenmerk8) gaan we nu ook gebruiken bij de import (deden we tot nu toe nog niets mee, deze stond altijd ingevuld met een berekende waarde
-- indien gevuld met een jaar, dan is dat het vervaljaar van die activiteit bij dat element.
-- Let op: vervaljaar doet NIET! mee in de bepaling van de "grootste gemene deler" voor ins_srtcontrole.
v_errormsg := 'ins_srtcontrole gegevens: ' || ' ctr_discipline_key=[' || v_ctr_discipline_key || '],' || ' v_receptnr=[' || v_receptnr || '],'
|| ' v_kosten=[' || v_kosten || '],' || ' v_periode=[' || v_periode || '],' || ' v_perc_onderhoud=[' || v_perc_onderhoud || ']' ;
v_errorhint := 'plat_post_update_ins - insert i1';
INSERT INTO ins_srtcontrole (ctr_discipline_key, ins_srtinstallatie_key, ins_srtcontrole_niveau, ins_srtcontrole_omschrijving, ins_srtcontrole_groep,
ins_srtcontrole_info, ins_srtcontrole_periode, ins_srtcontrole_eenheid, ins_srtcontrole_mode, ins_srtcontrole_options, ins_srtcontrole_kosten2, fin_btwtabelwaarde_key,
ins_srtcontrole_percentage, prs_kostenplaats_key)
SELECT v_ctr_discipline_key, ins_srtdeel_key, 'S', substr( ins_kenmerkwaarde1 || '-' || MAX(ins_kenmerkwaarde2), 1,60), v_receptnr,
MAX(ins_kenmerkwaarde2) || ' [' || MAX(ins_kenmerkwaarde13) || ']' , v_periode, 4, 1, 11, fac.safe_to_number(replace(replace(v_kosten, '.'), ',','.')),
v_fin_btwtabelwaarde_key,
fac.safe_to_number(replace(replace(v_perc_onderhoud, '.'), ',','.')),
(SELECT prs_kostenplaats_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_verwijder IS NULL
AND prs_kostenplaats_module = 'ALG'
AND prs_kostenplaats_upper = (SELECT UPPER(MAX(ins_kenmerkwaarde15))
FROM fac_imp_ins
WHERE ins_kenmerkwaarde1 = v_receptnr))
FROM ins_srtdeel sd, fac_imp_ins i, ins_srtgroep sg, ins_discipline d
WHERE ins_srtdeel_key > p_max_ins_srtdeel_key
AND sd.ins_srtdeel_code = i.ins_srtdeel_code
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key
AND i.ins_discipline_omschrijving = d.ins_discipline_omschrijving
AND i.ins_srtgroep_omschrijving = sg.ins_srtgroep_omschrijving
AND i.ins_kenmerkwaarde1 = v_receptnr
AND i.ins_kenmerkwaarde3 = v_kosten
AND i.ins_kenmerkwaarde14 = v_periode
AND i.ins_kenmerkwaarde10 = v_perc_onderhoud
AND NOT EXISTS (SELECT 'x' FROM ins_srtcontrole
WHERE ins_srtinstallatie_key = ins_srtdeel_key
AND ins_srtcontrole_niveau = 'S'
AND ins_srtcontrole_groep = v_receptnr)
GROUP BY ins_srtdeel_key, ins_kenmerkwaarde1;
-- Uitzonderingen op de algemene (reguliere) soort controle, die dus afwijken van kosten en/of periode, worden toegevoegd als XCP
-- Let op: hier wordt aantal nog in GROEP gestopt, vraag is of we de eenheid moeten stoppen in ins_srtdeel_aantal of in ins_srtcontrole_aantal / ins_srtcontroledl_xcp_aantal op dieper nivo.
-- Check via onderstaande query op plato@labs levert op dat er een paar verschillen in aantal zitten:
-- plato_waardwonen_verschil_aantal_andere_eenheid.xls: 15 objecten met meerdere activiteiten, verschillend aantal, andere eenheid.
-- select a.ins_deel_omschrijving, b.ins_kenmerkwaarde1, b.ins_kenmerkwaarde2, b.ins_kenmerkwaarde13, b.ins_kenmerkwaarde10, c.ins_kenmerkwaarde10, c.ins_kenmerkwaarde13, c.ins_kenmerkwaarde1, c.ins_kenmerkwaarde2 from
-- (select ins_deel_omschrijving, count(*) from fac_imp_ins
-- having count(*) > 1
-- group by ins_deel_omschrijving) a,
-- fac_imp_ins b,
-- fac_imp_ins c
-- where a.ins_deel_omschrijving = b.ins_deel_omschrijving
-- AND b.ins_deel_omschrijving = c.ins_deel_omschrijving
-- AND b.ins_kenmerkwaarde1 <> c.ins_kenmerkwaarde1
-- AND b.ins_kenmerkwaarde10 <> c.ins_kenmerkwaarde10
-- AND b.ins_kenmerkwaarde13 <> c.ins_kenmerkwaarde13
-- ORDER BY a.ins_deel_omschrijving;
-- plato_waardwonen_verschil_aantal_dezelfde_eenheid.xls: 30 objecten met meerdere activiteiten, verschillend aantal, dezelfde eenheid
-- select a.ins_deel_omschrijving, b.ins_kenmerkwaarde1, b.ins_kenmerkwaarde2, b.ins_kenmerkwaarde13, b.ins_kenmerkwaarde10, c.ins_kenmerkwaarde10, c.ins_kenmerkwaarde13, c.ins_kenmerkwaarde1, c.ins_kenmerkwaarde2 from
-- (select ins_deel_omschrijving, count(*) from fac_imp_ins
-- having count(*) > 1
-- group by ins_deel_omschrijving) a,
-- fac_imp_ins b,
-- fac_imp_ins c
-- where a.ins_deel_omschrijving = b.ins_deel_omschrijving
-- AND b.ins_deel_omschrijving = c.ins_deel_omschrijving
-- AND b.ins_kenmerkwaarde1 <> c.ins_kenmerkwaarde1
-- AND b.ins_kenmerkwaarde10 <> c.ins_kenmerkwaarde10
-- AND b.ins_kenmerkwaarde13 = c.ins_kenmerkwaarde13
-- ORDER BY a.ins_deel_omschrijving;
-- plato_waardwonen_meer_activiteiten_met_gelijk_aantal.xlsx: 354 objecten met meerdere activiteiten, gelijke aantal, (dezelfde of afwijkend eenheid).
--select a.ins_deel_omschrijving, b.ins_kenmerkwaarde1, b.ins_kenmerkwaarde2, b.ins_kenmerkwaarde13, b.ins_kenmerkwaarde10, c.ins_kenmerkwaarde10, c.ins_kenmerkwaarde13, c.ins_kenmerkwaarde1, c.ins_kenmerkwaarde2 from
--(select ins_deel_omschrijving, count(*) from fac_imp_ins
--having count(*) > 1
--group by ins_deel_omschrijving) a,
--fac_imp_ins b,
--fac_imp_ins c
--where a.ins_deel_omschrijving = b.ins_deel_omschrijving
--AND b.ins_deel_omschrijving = c.ins_deel_omschrijving
--AND b.ins_kenmerkwaarde1 <> c.ins_kenmerkwaarde1
--AND b.ins_kenmerkwaarde10 = c.ins_kenmerkwaarde10
---- AND b.ins_kenmerkwaarde13 = c.ins_kenmerkwaarde13
--ORDER BY a.ins_deel_omschrijving;
--;
--plato_waardwonen_objecten_met_1_activiteit.xlsx: 2940 objecten met 1 activiteit, aantal dont care, eenheid dont care.
--select ins_deel_omschrijving, MAX(b.ins_kenmerkwaarde1), MAX(b.ins_kenmerkwaarde2), MAX(b.ins_kenmerkwaarde13), MAX(b.ins_kenmerkwaarde10) from fac_imp_ins b
--having count(*) = 1
--group by ins_deel_omschrijving;
-- Aantal objecten ingelezen: 3344.
-- select distinct (ins_deel_omschrijving) from fac_imp_ins;
-- Uitzonderingen op de algemene (reguliere) soort controle die we zojuist hebben toegevoegd, die dus afwijken van kosten en/of periode, worden toegevoegd als XCP
-- Let op: hier wordt aantal nog in GROEP gestopt, vraag is of we de eenheid moeten stoppen in ins_srtdeel_aantal of in ins_srtcontrole_aantal / ins_srtcontroledl_xcp_aantal op dieper nivo.
-- Let op 2: Dit zijn natuurlijk alleen de objecten die in deze import zijn toegevoegd (d.ins_deel_key > p_max_ins_deel_key) en afwijkende kosten en afwijkende periode hebben.
-- Verder moet de algemene ins_srtcontrole wel gevonden kunnen worden om een xcp daarop te kunnen maken (foreign-key)
-- Waneer de kosten OF(!) de periode niet zijn ingevuld (NULL-value), dan gaan we ervan uit dat deze de default volgen, en wordt er geen XCP aangemaakt,
-- Dus als een van beide ontbreekt, dan volgt die de standaard.
-- Hier nog ff onthouden wat de laatste xcp record is, is straks nodig voor een nabewerking (cursor 4)
v_errorhint := 'plat_post_update_ins - select s5';
SELECT coalesce(max(ins_srtcontroledl_xcp_key),0)
INTO v_mx_ins_srtcontroledl_xcp_key
FROM ins_srtcontroledl_xcp;
v_errormsg := 'Soort controle gegevens: ' || ' recept=[' || v_receptnr || '],' || ' kosten=[' || v_kosten || '],' ||
' periode=[' || v_periode || '],' || ' percentage=[' || v_perc_onderhoud || '],';
v_errorhint := 'plat_post_update_ins - cursor c2';
FOR rec2 IN c2 (p_max_ins_deel_key, v_receptnr, v_kosten, v_periode, v_perc_onderhoud)
LOOP
BEGIN
v_errormsg := 'C2: INSERT INTO ins_srtcontroledl_xcp: ' || 'ins_deel_key=['|| rec2.ins_deel_key || '],' || 'objectomschrijving=[' || rec2.ins_deel_omschrijving || '] ' ||
'ins_srtcontrole_key=[' || rec2.ins_srtcontrole_key || '],' ||
'recept=[' || v_receptnr || '],' || 'kosten=[' || rec2.kosten || '],' ||
'periode=[' || rec2.periode || '],' || ' percentage=[' || v_perc_onderhoud || '],';
fac.imp_writelog (p_import_key,
'I',
v_errormsg,
v_errorhint
);
v_errorhint := 'plat_post_update_ins - insert i2';
INSERT INTO ins_srtcontroledl_xcp ( ins_deel_key, ins_srtcontrole_key, ins_srtcontroledl_xcp_periode,
ins_srtcontroledl_xcp_kosten2, ins_srtcontroledl_xcp_perc, ins_srtcontroledl_xcp_eind, ins_srtcontroledl_xcp_opmerk, ins_srtcontroledl_xcp_aantal, ins_srtcontroledl_xcp_aanteh)
SELECT rec2.ins_deel_key, rec2.ins_srtcontrole_key, rec2.periode, rec2.kosten, rec2.perc_onderhoud, rec2.verval_datum, rec2.xcp_opmerk, rec2.xcp_aantal, rec2.xcp_eenheid FROM dual;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
v_errorhint := 'plat_post_update_ins - cursor c6';
FOR rec6 IN c6 (p_max_ins_deel_key, v_receptnr, v_kosten, v_periode, v_perc_onderhoud)
LOOP
BEGIN
v_errormsg := 'C6: VERVALJAAR of OPMERKING -> ins_srtcontroledl_xcp: ' || 'ins_deel_key=['|| rec6.ins_deel_key || '],' || 'objectomschrijving=[' || rec6.ins_deel_omschrijving || '] ' ||
'ins_srtcontrole_key=[' || rec6.ins_srtcontrole_key || '],' ||
'recept=[' || v_receptnr || '],' || 'kosten=[' || rec6.kosten || '],' ||
'periode=[' || rec6.periode || '],' || ' percentage=[' || v_perc_onderhoud || '],';
fac.imp_writelog (p_import_key,
'I',
v_errormsg,
v_errorhint
);
v_errorhint := 'plat_post_update_ins - insert i3';
INSERT INTO ins_srtcontroledl_xcp ( ins_deel_key, ins_srtcontrole_key, ins_srtcontroledl_xcp_eind, ins_srtcontroledl_xcp_opmerk)
SELECT rec6.ins_deel_key, rec6.ins_srtcontrole_key, rec6.verval_datum, rec6.xcp_opmerk FROM dual;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
-- "After" post-processing van de XCP records die zojuist - in voorgaande loop- zijn toegevoegd.
-- De kolommen (kosten2 (=derden), periode, percentage) die dezelfde waarde hebben als de standaard ins_srtcontrole moeten op NULL worden gezet,
-- Maw alleen de echte afwijkingen moeten een waarde (NOT NULL) hebben.
-- In de cursor c2 worden de records opgehaald waarvan minimaal 1 afwijking is, dat betekent dat er dus ook mogelijk dezelfde waarde als de standaard bestaat.
v_errormsg := 'NABEWERKING ins_srtcontroledl_xcp: ';
v_errorhint := 'plat_post_update_ins - cursor c4';
FOR rec4 IN c4 (v_mx_ins_srtcontroledl_xcp_key)
LOOP
BEGIN
v_errormsg := 'NABEWERKING ins_srtcontroledl_xcp: ' || 'key=[' || rec4.ins_srtcontroledl_xcp_key || '], controle=[ ' || rec4.ins_srtcontrole_omschrijving || ']';
v_errorhint := 'plat_post_update_ins - update u2';
IF rec4.set_kosten2_null = 1
THEN
UPDATE ins_srtcontroledl_xcp SET ins_srtcontroledl_xcp_kosten2 = NULL WHERE ins_srtcontroledl_xcp_key = rec4.ins_srtcontroledl_xcp_key;
END IF;
v_errorhint := 'plat_post_update_ins - update u3';
IF rec4.set_periode_null = 1
THEN
UPDATE ins_srtcontroledl_xcp SET ins_srtcontroledl_xcp_periode = NULL WHERE ins_srtcontroledl_xcp_key = rec4.ins_srtcontroledl_xcp_key;
END IF;
v_errorhint := 'plat_post_update_ins - update u4';
IF rec4.set_perc_onderhoud_null = 1
THEN
UPDATE ins_srtcontroledl_xcp SET ins_srtcontroledl_xcp_perc = NULL WHERE ins_srtcontroledl_xcp_key = rec4.ins_srtcontroledl_xcp_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
END LOOP;
v_errorhint := 'plat_post_update_ins - cursor c7';
FOR rec7 IN c7 (p_max_ins_deel_key)
LOOP
BEGIN
v_errormsg := 'C7: INSPECTIE record -> ins_deelsrtcontrole: ' || 'ins_deel_key=['|| rec7.ins_deel_key || '],' || 'objectomschrijving=[' || rec7.ins_deel_omschrijving || '] ' ||
'ins_srtcontrole_key=[' || rec7.ins_srtcontrole_key || '],';
fac.imp_writelog (p_import_key,
'I',
v_errormsg,
v_errorhint
);
v_errorhint := 'plat_post_update_ins - insert i4';
INSERT INTO ins_deelsrtcontrole (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_status)
SELECT rec7.ins_deel_key, rec7.ins_srtcontrole_key, rec7.plan_datum, 0 FROM dual;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
-- We gaan dan nog het aantal objecten (ins_deel_aantal) die standaard op 1 staat, bijwerken met kolom 9 (aantal geregistreerde objecten).
-- Hiervoor nemen we het hoogste aantal (het object kan voor meerdere activiteiten met verschillende aantal (icm eenheid) worden ingezet), b.v.:
-- object A (kozijnen) 10 m2 schilderen
-- object A (kozijnen) 2 st. vervangen
-- We registeren dan bij object A 10??? (of is 2 beter, omdat dit de preferred eenheid stuks is)?
v_errorhint := 'plat_post_update_ins - update u5';
UPDATE ins_deel d
SET ins_deel_aantal = (SELECT COALESCE(fac.safe_to_number(max(ins_kenmerkwaarde9)),1)
FROM fac_imp_ins i, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l
WHERE i.ins_deel_omschrijving = d.ins_deel_omschrijving
AND i.alg_locatie_code = l.alg_locatie_code
AND i.alg_gebouw_code = g.alg_gebouw_code
AND i.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND i.alg_ruimte_nr = r.alg_ruimte_nr
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
)
WHERE d.ins_deel_key > p_max_ins_deel_key
AND d.ins_deel_verwijder IS NULL;
-- De aanmaakdatums van de ins_delen die zijn toegevoegd ( > p_max_ins_deel_key) bepalen de volgende controle-momenten, dus dat komt natuurlijk wel wat nauw.
-- Daarom wordt StJr (ins_kenmerkwaarde4) als startjaar bij alle objecten (ins_delen) van het betreffende pand gezet.
v_errorhint := 'plat_post_update_ins - update u6';
UPDATE ins_deel d
SET ins_deel_aanmaak = (SELECT min( to_date (ins_kenmerkwaarde4, 'yyyy'))
FROM fac_imp_ins i, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l
WHERE i.ins_deel_omschrijving = d.ins_deel_omschrijving
AND i.alg_locatie_code = l.alg_locatie_code
AND i.alg_gebouw_code = g.alg_gebouw_code
AND i.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND i.alg_ruimte_nr = r.alg_ruimte_nr
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
)
WHERE d.ins_deel_key > p_max_ins_deel_key
AND d.ins_deel_verwijder IS NULL;
v_errorhint := 'plat_post_update_ins - insert i5';
--- En tenslotte gaan we de 3 MJOB autorisatiegroepen MJOB-R, MJOB-W en MJOB-A de rechten op INSUSE, INSMAN en CTRUSE uitdelen....
-- 1. Eerst MJOB-R (Leesrechten): INSUSE READ en INSMAN READ op elke INS-discipline en CTRUSE READ op de MJOB-discipline (v_ctr_discipline_key)
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, 9, -1, 9
FROM (SELECT (SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-R: LEESRECHTEN') fac_groep_key,
fac_functie_key, d.ins_discipline_key, fac_functie_code
FROM fac_functie, ins_discipline d
WHERE fac_functie_code = 'WEB_INSUSE'
AND d.ins_discipline_verwijder IS NULL) a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
v_errorhint := 'plat_post_update_ins - insert i6';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, 9, -1, 9
FROM (SELECT (SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-R: LEESRECHTEN') fac_groep_key,
fac_functie_key, d.ins_discipline_key, fac_functie_code
FROM fac_functie, ins_discipline d
WHERE fac_functie_code = 'WEB_INSMAN'
AND d.ins_discipline_verwijder IS NULL) a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
v_errorhint := 'plat_post_update_ins - insert i7';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, 9, -1, 9 FROM
(SELECT
(SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-R: LEESRECHTEN') fac_groep_key,
fac_functie_key,
v_ctr_discipline_key ins_discipline_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_CTRUSE') a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
-- 2. Dan MJOB-W (Schrijfrechten): INSUSE WRITE en INSMAN WRITE op elke INS-discipline en CTRUSE WRITE op de MJOB-discipline (v_ctr_discipline_key)
v_errorhint := 'plat_post_update_ins - insert i8';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, -1, -1, -1
FROM (SELECT (SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-W: SCHRIJFRECHTEN') fac_groep_key,
fac_functie_key, d.ins_discipline_key, fac_functie_code
FROM fac_functie, ins_discipline d
WHERE fac_functie_code = 'WEB_INSUSE'
AND d.ins_discipline_verwijder IS NULL) a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
v_errorhint := 'plat_post_update_ins - insert i9';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, -1, -1, -1
FROM (SELECT (SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-W: SCHRIJFRECHTEN') fac_groep_key,
fac_functie_key, d.ins_discipline_key, fac_functie_code
FROM fac_functie, ins_discipline d
WHERE fac_functie_code = 'WEB_INSMAN'
AND d.ins_discipline_verwijder IS NULL) a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
v_errorhint := 'plat_post_update_ins - insert i10';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write)
SELECT fac_groep_key, fac_functie_key, ins_discipline_key, -1, -1, -1, -1 FROM
(SELECT
(SELECT fac_groep_key FROM fac_groep WHERE fac_groep_upper = 'MJOB-W: SCHRIJFRECHTEN') fac_groep_key,
fac_functie_key,
v_ctr_discipline_key ins_discipline_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_CTRUSE') a
WHERE NOT EXISTS
(SELECT 1 FROM fac_groeprechten fg
WHERE a.fac_groep_key = fg.fac_groep_key
AND a.fac_functie_key = fg.fac_functie_key
AND a.ins_discipline_key = fg.ins_discipline_key);
-- 3. Tenslotte MJOB-A (Admin MJOB): INSMGT, ALG..? en nog wat.... TODO...
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
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;
/
-- Export elementen om te importeren via aanvullen objecten.
CREATE OR REPLACE VIEW plat_v_rap_elementen
(
ins_deel_key,
hoofdrecept, --disciplineomschrijving
disciplinekostensoort,
groep, --groepsoortomschrijving
subrecept_nummer, --objectsoortcode
subrecept, --objectsoortomschrijving
elementidentificatie, --objectidentificatie
elementopmerking, --objectopmerking
reserveerbaar,
eenheid,
prijs,
complex_code, --locatiecode
cluster_code, --gebouwcode
bouwlaagvolgnummer,
ruimtenummer,
reserveringscope,
catalogustype, --nieuw per release 2023.1 en wordt niet gebruikt door Plato
catalogusnaam,
cataloguskostensoort,
persoonmatchcode,
persoonmatchwaarde,
ingangsdatum,
vervaldatum,
aantal,
externnr,
kenmerk1,
kenmerk2,
kenmerk3,
kenmerk4,
kenmerk5,
kenmerk6,
kenmerk7,
kenmerk8,
kenmerk9,
kenmerk10,
kenmerk11,
kenmerk12,
kenmerk13,
kenmerk14,
kenmerk15,
kenmerk16,
kenmerk17,
kenmerk18,
kenmerk19,
kenmerk20
)
AS
SELECT DISTINCT d.ins_deel_key,
d.ins_discipline_omschrijving,
NULL,
d.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
id.ins_deel_omschrijving,
id.ins_deel_opmerking,
NULL,
sd.ins_srtdeel_eenheid,
NULL,
l.alg_locatie_code,
g.alg_gebouw_code,
d.alg_verdieping_code,
d.alg_ruimte_nr,
NULL, -- reserveringscope
NULL, -- catalogustype
NULL, -- catalogusnaam
NULL, -- cataloguskostensoort
NULL, -- persoonmatchcode
NULL, -- persoonmatchwaarde
id.ins_deel_aanmaak, -- ingangsdatum
NULL, -- vervaldatum
id.ins_deel_aantal,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
FROM ins_v_deel_gegevens d,
ins_srtdeel sd,
alg_locatie l,
alg_gebouw g,
ins_deel id
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.alg_locatie_key = l.alg_locatie_key
AND d.alg_gebouw_key = g.alg_gebouw_key
AND d.ins_deel_key = id.ins_deel_key
AND id.ins_deel_verwijder IS NULL;
CREATE OR REPLACE PROCEDURE plat_update_ins (
p_import_key IN NUMBER
) IS
v_count NUMBER;
v_max_ins_srtdeel_key NUMBER(10);
v_max_ins_deel_key NUMBER(10);
BEGIN
-- Even snel registreren wat de laatst toegevoegde ins_srtdeel is, dan weten we dat er door deze import-procedure wordt toegevoegd (alles > dan deze max).
SELECT coalesce(max(ins_srtdeel_key),0)
INTO v_max_ins_srtdeel_key
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL;
-- Idem voor laatst toegevoegde ins_deel is, dan weten we dat er door deze import-procedure wordt toegevoegd (alles > dan deze max).
SELECT coalesce(max(ins_deel_key),0)
INTO v_max_ins_deel_key
FROM ins_deel
WHERE ins_deel_verwijder IS NULL;
fac_update_ins (p_import_key);
-- After update ...
plat_post_update_ins(p_import_key, v_max_ins_srtdeel_key, v_max_ins_deel_key);
END plat_update_ins;
/
-- Import voor inlezen nieuwe elementen + bijwerken bestaande elementen.
CREATE OR REPLACE PROCEDURE plat_import_elementen (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
BEGIN
-- Eerst de headerregel compatibel maken met de standaard ins import
v_errorhint := 'Fout bij updaten headerregel';
UPDATE fac_imp_file
SET fac_imp_file_line = 'disciplineomschrijving;disciplinekostensoort;groepsoortomschrijving;objectsoortcode;objectsoortomschrijving;objectidentificatie;objectopmerking;reserveerbaar;eenheid;prijs;locatiecode;gebouwcode;bouwlaagvolgnummer;ruimtenummer;reserveringscope;catalogustype;catalogusnaam;cataloguskostensoort;persoonmatchcode;persoonmatchwaarde;ingangsdatum;vervaldatum;aantal;externnr;kenmerk1;kenmerk2;kenmerk3;kenmerk4;kenmerk5;kenmerk6;kenmerk7;kenmerk8;kenmerk9;kenmerk10;kenmerk11;kenmerk12;kenmerk13;kenmerk14;kenmerk15;kenmerk16;kenmerk17;kenmerk18;kenmerk19;kenmerk20'
WHERE fac_import_key = p_import_key
AND fac_imp_file_index = 1;
v_errorhint := 'plat_import_ins';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
fac_import_ins (p_import_key);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
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 plat_import_elementen;
/
CREATE OR REPLACE PROCEDURE plat_post_update_elementen (p_import_key IN NUMBER)
AS
v_aanduiding VARCHAR (400);
-- Bestaande Objecten aanpassen: Datum aanmaak, Datum vervallen, Opmerking en Aantal
-- Werkwijze: Als gevuld en afwijkend huidige ins_waarde dan aanpassen. Als niet gevuld in importsheet, dan element niet bijwerken.
CURSOR c_update
IS
SELECT DISTINCT d.ins_deel_key,
i.ins_deel_omschrijving,
i.ins_deel_aanmaak aanmaak_imp,
d.ins_deel_aanmaak aanmaak_ins,
i.ins_deel_vervaldatum vervaldatum_imp,
d.ins_deel_vervaldatum vervaldatum_ins,
i.ins_deel_opmerking opmerking_imp,
d.ins_deel_opmerking opmerking_ins,
i.ins_deel_aantal aantal_imp,
d.ins_deel_aantal aantal_ins
FROM fac_imp_ins i, plat_v_rap_elementen v, ins_deel d
WHERE UPPER (i.ins_discipline_omschrijving) =
UPPER (v.hoofdrecept)
AND UPPER (i.ins_srtgroep_omschrijving) = UPPER (v.groep)
AND UPPER (i.ins_srtdeel_omschrijving) =
UPPER (v.subrecept)
AND UPPER (i.ins_srtdeel_code) = UPPER (v.subrecept_nummer)
AND UPPER (i.ins_deel_omschrijving) = UPPER (v.elementidentificatie)
AND i.alg_locatie_code = v.complex_code
AND i.alg_gebouw_code = v.cluster_code
AND v.ins_deel_key = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL;
BEGIN
FOR rec IN c_update
LOOP
BEGIN
v_aanduiding := 'Gewijzigd aanmaakdatum van ' || TO_CHAR(rec.aanmaak_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.aanmaak_imp, 'dd-mm-yyyy') ;
IF rec.aanmaak_imp is not null and rec.aanmaak_imp <> rec.aanmaak_ins THEN
UPDATE ins_deel d
SET d.ins_deel_aanmaak = rec.aanmaak_imp
WHERE d.ins_deel_key = rec.ins_deel_key ;
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
END IF;
v_aanduiding := 'Gewijzigd vervaldatum ' || TO_CHAR(rec.vervaldatum_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.vervaldatum_imp, 'dd-mm-yyyy') ;
IF rec.vervaldatum_imp is not null and (rec.vervaldatum_imp <> rec.vervaldatum_ins or rec.vervaldatum_ins is null) THEN
UPDATE ins_deel d
SET d.ins_deel_vervaldatum = rec.vervaldatum_imp
WHERE d.ins_deel_key = rec.ins_deel_key ;
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
END IF;
v_aanduiding := 'Gewijzigd omschrijving ' || rec.opmerking_ins || ' naar ' || rec.opmerking_imp ;
IF rec.opmerking_imp is not null and (rec.opmerking_imp <> rec.opmerking_ins or rec.opmerking_ins is null) THEN
UPDATE ins_deel d
SET d.ins_deel_opmerking = rec.opmerking_imp
WHERE d.ins_deel_key = rec.ins_deel_key ;
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
END IF;
v_aanduiding := 'Gewijzigd aantal ' || rec.aantal_ins || ' naar ' || rec.aantal_imp ;
IF rec.aantal_imp is not null and rec.aantal_imp <> rec.aantal_ins THEN
UPDATE ins_deel d
SET d.ins_deel_aantal = rec.aantal_imp
WHERE d.ins_deel_key = rec.ins_deel_key ;
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
END IF;
END;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE plat_update_elementen (p_import_key IN NUMBER)
AS
v_count NUMBER;
BEGIN
SELECT count(*)
INTO v_count
FROM imp_log
WHERE fac_import_key = p_import_key
AND imp_log_status = 'E';
IF v_count = 0
THEN
fac_update_ins(p_import_key);
plat_post_update_elementen (p_import_key);
ELSE
fac.imp_writelog (p_import_key, 'E', 'Verwerk actie niet uitgevoerd ivm fouten in bestand', '');
END IF;
END;
/
-- PLAT#36309: MJOP-Export vanuit PLATO, Import in Tobias AX.
-- Alle MJOB taken van de actuele situatie (=geen scenario, oftewel scenario_key =1) in het freezeyear (setting mjb_freeze_year) die gestart zijn (geaccordeerd/goedgekeurd, oftewel status 2)
CREATE OR REPLACE VIEW plat_v_exp_mjob_tobiasax_body
(result, result_order)
AS
SELECT 'Id;Bedrijf;Complexcode;Complexnaam;Clustercode;Clusternaam;Hoofdrecept;Groeprecept;Subreceptnummer;Subreceptomschrijving;Elementnummer;Element beschrijving;Hoeveelheid;Hoeveelheid Taak;Eenheid;Cyclus;Cyclus afwijkend;' ||
'Loonbedrag;Derden;Materieel;Materiaal;Uren;Betreft(%);Taak;Projectgroep;BTW;'|| fac.getsetting('mjb_freeze_year'),0 FROM DUAL
UNION ALL
SELECT x.ins_deelsrtcontrole_key || ';' ||
x.alg_district_omschrijving || ';' ||
x.alg_locatie_code || ';' ||
x.alg_locatie_omschrijving || ';' ||
x.alg_gebouw_code || ';' ||
x.alg_gebouw_naam || ';' ||
x.ins_discipline_omschrijving || ';' ||
x.ins_srtgroep_upper || ';' ||
x.ins_srtdeel_code_upper || ';' ||
x.ins_srtdeel_omschrijving || ';' ||
x.ins_deel_upper || ';' ||
x.ins_deel_opmerking || ';' ||
x.ins_deel_aantal || ';' ||
xcp.ins_srtcontroledl_xcp_aantal || ';' ||
x.ins_srtdeel_eenheid || ';' ||
x.ins_srtcontrole_periode || ';' ||
xcp.ins_srtcontroledl_xcp_periode || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage) || ';' ||
x.ins_srtcontrole_omschrijving || ';' ||
COALESCE((SELECT p.prs_kostenplaats_upper FROM prs_kostenplaats p WHERE p.prs_kostenplaats_key = xcp.prs_kostenplaats_key), x.prs_kostenplaats_upper) || ';' ||
x.fin_btwtabelwaarde_perc || ';' ||
x.ins_deelsrtcontrole_freezecost
,x.ins_deelsrtcontrole_key
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds
WHERE dc.ins_scenario_key = 1
AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
AND dc.ins_deelsrtcontrole_status = 2
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND d.ins_deel_key = dc.ins_deel_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
-- PLAT#63508 Nu ook met begroting incl. btw
CREATE OR REPLACE VIEW plat_v_exp_mjob_tobiasax_btw
(result, result_order)
AS
SELECT 'Id;Bedrijf;Complexcode;Complexnaam;Clustercode;Clusternaam;Hoofdrecept;Groeprecept;Subreceptnummer;Subreceptomschrijving;Elementnummer;Element beschrijving;Hoeveelheid;Hoeveelheid Taak;Eenheid;Cyclus;Cyclus afwijkend;' ||
'Loonbedrag;Derden;Materieel;Materiaal;Uren;Betreft(%);Taak;Projectgroep;BTW;'|| fac.getsetting('mjb_freeze_year'),0 FROM DUAL
UNION ALL
SELECT x.ins_deelsrtcontrole_key || ';' ||
x.alg_district_omschrijving || ';' ||
x.alg_locatie_code || ';' ||
x.alg_locatie_omschrijving || ';' ||
x.alg_gebouw_code || ';' ||
x.alg_gebouw_naam || ';' ||
x.ins_discipline_omschrijving || ';' ||
x.ins_srtgroep_upper || ';' ||
x.ins_srtdeel_code_upper || ';' ||
x.ins_srtdeel_omschrijving || ';' ||
x.ins_deel_upper || ';' ||
x.ins_deel_opmerking || ';' ||
x.ins_deel_aantal || ';' ||
xcp.ins_srtcontroledl_xcp_aantal || ';' ||
x.ins_srtdeel_eenheid || ';' ||
x.ins_srtcontrole_periode || ';' ||
xcp.ins_srtcontroledl_xcp_periode || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren) || ';' ||
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage) || ';' ||
x.ins_srtcontrole_omschrijving || ';' ||
COALESCE((SELECT p.prs_kostenplaats_upper FROM prs_kostenplaats p WHERE p.prs_kostenplaats_key = xcp.prs_kostenplaats_key), x.prs_kostenplaats_upper) || ';' ||
x.fin_btwtabelwaarde_perc || ';' ||
ROUND (x.ins_deelsrtcontrole_freezecost * fac.safe_to_number ('1.' || to_char(lpad (x.fin_btwtabelwaarde_perc, 2, 0))), 2) -- begroting incl. btw
,x.ins_deelsrtcontrole_key
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds
WHERE dc.ins_scenario_key = 1
AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
AND dc.ins_deelsrtcontrole_status = 2
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND d.ins_deel_key = dc.ins_deel_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
-- Omdat Tobias-AX geen CSV kan inlezen, maar (alleen/wel) Excel, doen we geen export, maar een rapport.
-- Vanuit dit rapport kan men dan een Excel-knop drukken, de xls openen en dan saven als xlsx.
CREATE OR REPLACE VIEW plat_v_rap_mjob_tobiasax
(Id,Bedrijf,Complexcode,Complexnaam,Clustercode,Clusternaam,Cluster_Verantwoordelijke,Personeelsnummer,Hoofdrecept,Groeprecept,Subreceptnummer,Subreceptomschrijving,Elementnummer,Elementbeschrijving,Hoeveelheid,Hoeveelheid_taak,Eenheid,Cyclus,Cyclus_afwijkend,
Loonbedrag,Derden,Materieel,Materiaal,Uren,Betreft_percentage,Taak,Projectgroep,BTW,Opmerking,Begroting)
AS SELECT x.ins_deelsrtcontrole_key,
x.alg_district_omschrijving,
x.alg_locatie_code,
x.alg_locatie_omschrijving,
x.alg_gebouw_code,
x.alg_gebouw_naam,
x.verantwoordelijke,
x.personeelsnummer,
x.ins_discipline_omschrijving,
x.ins_srtgroep_upper,
x.ins_srtdeel_code_upper,
x.ins_srtdeel_omschrijving,
x.ins_deel_upper,
x.ins_deel_opmerking,
x.ins_deel_aantal,
xcp.ins_srtcontroledl_xcp_aantal,
x.ins_srtdeel_eenheid,
x.ins_srtcontrole_periode,
xcp.ins_srtcontroledl_xcp_periode,
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3),
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal),
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren),
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage),
x.ins_srtcontrole_omschrijving,
COALESCE((SELECT p.prs_kostenplaats_upper FROM prs_kostenplaats p WHERE p.prs_kostenplaats_key = xcp.prs_kostenplaats_key), x.prs_kostenplaats_upper),
x.fin_btwtabelwaarde_perc,
xcp.ins_srtcontroledl_xcp_opmerk,
x.ins_deelsrtcontrole_freezecost
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
p.prs_perslid_voornaam || ' ' || prs_perslid_naam verantwoordelijke,
p.prs_perslid_nr personeelsnummer
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds, prs_perslid p
WHERE dc.ins_scenario_key = 1
AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
AND (dc.ins_deelsrtcontrole_freezedate <= g.alg_gebouw_vervaldatum OR g.alg_gebouw_vervaldatum IS NULL)
AND (dc.ins_deelsrtcontrole_freezedate <= d.ins_deel_vervaldatum OR d.ins_deel_vervaldatum IS NULL)
AND dc.ins_deelsrtcontrole_status = 2
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND g.prs_perslid_key_verantw = p.prs_perslid_key(+)
AND d.ins_deel_key = dc.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
-- PLAT#63508 Nu ook met begroting incl. btw
CREATE OR REPLACE VIEW plat_v_rap_mjob_tobiasax_btw
(Id,Bedrijf,Complexcode,Complexnaam,Clustercode,Clusternaam,Cluster_Verantwoordelijke,Personeelsnummer,Hoofdrecept,Groeprecept,Subreceptnummer,Subreceptomschrijving,Elementnummer,Elementbeschrijving,Hoeveelheid,Hoeveelheid_taak,Eenheid,Cyclus,Cyclus_afwijkend,
Loonbedrag,Derden,Materieel,Materiaal,Uren,Betreft_percentage,Taak,Projectgroep,BTW,Opmerking,Begroting)
AS SELECT x.ins_deelsrtcontrole_key,
x.alg_district_omschrijving,
x.alg_locatie_code,
x.alg_locatie_omschrijving,
x.alg_gebouw_code,
x.alg_gebouw_naam,
x.verantwoordelijke,
x.personeelsnummer,
x.ins_discipline_omschrijving,
x.ins_srtgroep_upper,
x.ins_srtdeel_code_upper,
x.ins_srtdeel_omschrijving,
x.ins_deel_upper,
x.ins_deel_opmerking,
x.ins_deel_aantal,
xcp.ins_srtcontroledl_xcp_aantal,
x.ins_srtdeel_eenheid,
x.ins_srtcontrole_periode,
xcp.ins_srtcontroledl_xcp_periode,
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3),
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal),
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren),
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage),
x.ins_srtcontrole_omschrijving,
COALESCE((SELECT p.prs_kostenplaats_upper FROM prs_kostenplaats p WHERE p.prs_kostenplaats_key = xcp.prs_kostenplaats_key), x.prs_kostenplaats_upper),
x.fin_btwtabelwaarde_perc,
xcp.ins_srtcontroledl_xcp_opmerk,
ROUND (x.ins_deelsrtcontrole_freezecost * fac.safe_to_number ('1.' || to_char(lpad (x.fin_btwtabelwaarde_perc, 2, 0))), 2) -- begroting incl. btw
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
p.prs_perslid_voornaam || ' ' || prs_perslid_naam verantwoordelijke,
p.prs_perslid_nr personeelsnummer
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds, prs_perslid p
WHERE dc.ins_scenario_key = 1
AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
AND (dc.ins_deelsrtcontrole_freezedate <= g.alg_gebouw_vervaldatum OR g.alg_gebouw_vervaldatum IS NULL)
AND (dc.ins_deelsrtcontrole_freezedate <= d.ins_deel_vervaldatum OR d.ins_deel_vervaldatum IS NULL)
AND dc.ins_deelsrtcontrole_status = 2
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND g.prs_perslid_key_verantw = p.prs_perslid_key(+)
AND d.ins_deel_key = dc.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
CREATE OR REPLACE VIEW plat_v_rap_mjob_tobiasax_all
(Id,Bedrijf,Complexcode,Complexnaam,Clustercode,Clusternaam,Cluster_Verantwoordelijke,Personeelsnummer,Hoofdrecept,Groeprecept,Subreceptnummer,Subreceptomschrijving,Elementnummer,Elementbeschrijving,Hoeveelheid,Hoeveelheid_taak,Eenheid,Cyclus,Cyclus_afwijkend,
Freezeyear,Nextyear,Loonbedrag,Derden,Materieel,Materiaal,Uren,Betreft_percentage,Taak,Projectgroep,BTW,Opmerking,Begroting)
AS SELECT x.ins_deelsrtcontrole_key,
x.alg_district_omschrijving,
x.alg_locatie_code,
x.alg_locatie_omschrijving,
x.alg_gebouw_code,
x.alg_gebouw_naam,
x.verantwoordelijke,
x.personeelsnummer,
x.ins_discipline_omschrijving,
x.ins_srtgroep_upper,
x.ins_srtdeel_code_upper,
x.ins_srtdeel_omschrijving,
x.ins_deel_upper,
x.ins_deel_opmerking,
x.ins_deel_aantal,
xcp.ins_srtcontroledl_xcp_aantal,
x.ins_srtdeel_eenheid,
x.ins_srtcontrole_periode,
xcp.ins_srtcontroledl_xcp_periode,
x.freezeyear,
x.nextyear,
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3),
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal),
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren),
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage),
x.ins_srtcontrole_omschrijving,
COALESCE((SELECT p.prs_kostenplaats_upper FROM prs_kostenplaats p WHERE p.prs_kostenplaats_key = xcp.prs_kostenplaats_key), x.prs_kostenplaats_upper),
x.fin_btwtabelwaarde_perc,
xcp.ins_srtcontroledl_xcp_opmerk,
x.ins_deelsrtcontrole_freezecost
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
COALESCE (to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY'), 'Toekomst') freezeyear,
TO_CHAR (fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key, 0), 'YYYY') nextyear,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
p.prs_perslid_voornaam || ' ' || prs_perslid_naam verantwoordelijke,
p.prs_perslid_nr personeelsnummer
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds, prs_perslid p
WHERE dc.ins_scenario_key = 1
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND g.prs_perslid_key_verantw = p.prs_perslid_key(+)
AND d.ins_deel_key = dc.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
-- PLAT#54229 Gebreken overzicht
CREATE OR REPLACE VIEW plat_v_rap_conditiemetingen
(
mld_melding_key,
complexnummer,
clusternummer,
clusternaam,
hoofdrecept,
groeprecept,
subrecept,
meldingnummer,
datum_tijd,
datum,
inspecteur,
status,
gebrek,
omschrijving,
ernst,
omvang,
intensiteit,
veiligheid_gezondheid,
cultuurhistorische_waarde,
gebruik_en_bedrijfsproces,
technische_vervolgschade,
toename_klachtenonderhoud,
beleving_esthetica,
foto
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_omschrijving complexnummer,
aog.alg_gebouw_code clusternummer,
aog.alg_gebouw_naam clusternaam,
id.ins_discipline_omschrijving hoofdrecept,
isg.ins_srtgroep_omschrijving groeprecept,
isd.ins_srtdeel_omschrijving || ' (' || isd.ins_srtdeel_code || ')'
subrecept,
m.mld_melding_key meldingnummer,
m.mld_melding_datum datum_tijd,
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY') datum,
pf.prs_perslid_naam_full inspecteur,
s.mld_statuses_omschrijving status,
std.mld_stdmelding_omschrijving gebrek,
m.mld_melding_omschrijving omschrijving,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'ERNST'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
ernst,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'OMVANG'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
omvang,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'INTENSITEIT'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
intensiteit,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'VEILIGHEID/GEZONDHEID'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
veiligheid_gezondheid,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'CULTUURHISTORISCHE WAARDE'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
cultuurhistorische_waarde,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'GEBRUIK EN BEDRIJFPROCES'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
gebruik_en_bedrijfsproces,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'TECHNISCHE VERVOLGSCHADE'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
technische_vervolgschade,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'TOENAME KLACHTENONDERHOUD'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
toename_klachtenonderhoud,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_upper = 'BELEVING, ESTHETICA'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
beleving_esthetica,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_code = 'FOTO'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
foto
FROM mld_melding m,
mld_melding_object mo,
ins_deel d,
ins_srtdeel isd,
ins_srtgroep isg,
ins_discipline id,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf,
mld_stdmelding std
WHERE m.mld_melding_key = mo.mld_melding_key
AND d.ins_deel_key = mo.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = id.ins_discipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND l.alg_locatie_key = aog.alg_locatie_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key;
-- Conditiemetingen versie 2, geen gebrek heeft nu geen ernst, omvang of intensiteit.
CREATE OR REPLACE VIEW plat_v_rap_conditiemetingen2
(
mld_melding_key,
complexnummer,
clusternummer,
clusternaam,
gebouwgroep,
hoofdrecept,
groeprecept,
subrecept,
identificatie,
element_score,
gebreknr,
datum_tijd,
datum,
inspecteur,
status,
gebrek,
omschrijving,
ernst,
omvang,
intensiteit,
veiligheid_gezondheid,
cultuurhistorische_waarde,
gebruik_en_bedrijfsproces,
technische_vervolgschade,
toename_klachtenonderhoud,
beleving_esthetica,
foto
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_omschrijving complexnummer,
aog.alg_gebouw_code clusternummer,
aog.alg_gebouw_naam clusternaam,
aog.alg_gebouw_groep groep,
id.ins_discipline_omschrijving hoofdrecept,
isg.ins_srtgroep_omschrijving groeprecept,
isd.ins_srtdeel_omschrijving || ' (' || isd.ins_srtdeel_code || ')'
subrecept,
d.ins_deel_omschrijving identificatie,
d.ins_deel_mjb_score1,
m.mld_melding_key gebreknummer,
m.mld_melding_datum datum_tijd,
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY') datum,
pf.prs_perslid_naam_full inspecteur,
s.mld_statuses_omschrijving status,
std.mld_stdmelding_omschrijving gebrek,
m.mld_melding_omschrijving omschrijving,
DECODE (UPPER(std.mld_stdmelding_omschrijving), 'GEEN GEBREK', 'NVT',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ERNST'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key))
ernst,
DECODE (UPPER(std.mld_stdmelding_omschrijving), 'GEEN GEBREK', 'NVT',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'OMVANG'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key))
omvang,
DECODE (UPPER(std.mld_stdmelding_omschrijving), 'GEEN GEBREK', 'NVT',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'INTENSITEIT'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key))
intensiteit,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
veiligheid_gezondheid,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
cultuurhistorische_waarde,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
gebruik_en_bedrijfsproces,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
technische_vervolgschade,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
toename_klachtenonderhoud,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
beleving_esthetica,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_code = 'FOTO'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
foto
FROM mld_melding m,
mld_melding_object mo,
ins_deel d,
ins_srtdeel isd,
ins_srtgroep isg,
ins_discipline id,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf,
mld_stdmelding std
WHERE m.mld_melding_key = mo.mld_melding_key
AND d.ins_deel_key = mo.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = id.ins_discipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND l.alg_locatie_key = aog.alg_locatie_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key;
CREATE OR REPLACE VIEW plat_v_rap_mijngebreken
(
MLD_MELDING_KEY,
PRS_PERSLID_KEY,
GEBREK_DATUM,
CLUSTERNR,
ELEMENTNAAM,
GEBREK,
OPMERKING,
STATUS
)
AS
SELECT m.mld_melding_key,
m.prs_perslid_key,
m.mld_melding_datum,
c.clusternummer,
c.hoofdrecept || '-' || c.groeprecept || '-' || c.subrecept || '-' || c.identificatie,
c.gebrek,
c.omschrijving,
c.status
FROM plat_v_rap_conditiemetingen2 c, mld_melding m
WHERE m.mld_melding_key = c.mld_melding_key
ORDER BY m.mld_melding_datum DESC;
CREATE OR REPLACE VIEW plat_v_rap_mjob_preacc
(Id,Bedrijf,Complexcode,Complexnaam,Clustercode,Clusternaam,Hoofdrecept,Groeprecept,Subreceptnummer,Subreceptomschrijving,Elementnummer,Elementbeschrijving,Hoeveelheid,Hoeveelheid_taak,Eenheid,Cyclus,Cyclus_afwijkend,
Loonbedrag,Derden,Materieel,Materiaal,Uren,Betreft_percentage,Taak,Projectgroep,BTW,Opmerking,Begroting_excl_btw,Begroting_incl_btw,HoldSell,Verantwoordelijke)
AS SELECT x.ins_deelsrtcontrole_key,
x.alg_district_omschrijving,
x.alg_locatie_code,
x.alg_locatie_omschrijving,
x.alg_gebouw_code,
x.alg_gebouw_naam,
x.ins_discipline_omschrijving,
x.ins_srtgroep_upper,
x.ins_srtdeel_code_upper,
x.ins_srtdeel_omschrijving,
x.ins_deel_upper,
x.ins_deel_opmerking,
x.ins_deel_aantal,
xcp.ins_srtcontroledl_xcp_aantal,
x.ins_srtdeel_eenheid,
x.ins_srtcontrole_periode,
xcp.ins_srtcontroledl_xcp_periode,
COALESCE(xcp.ins_srtcontroledl_xcp_kosten, x.ins_srtcontrole_kosten),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten2, x.ins_srtcontrole_kosten2),
COALESCE(xcp.ins_srtcontroledl_xcp_kosten3, x.ins_srtcontrole_kosten3),
COALESCE(xcp.ins_srtcontroledl_xcp_materia, x.ins_srtcontrole_materiaal),
COALESCE(xcp.ins_srtcontroledl_xcp_uren, x.ins_srtcontrole_uren),
COALESCE(xcp.ins_srtcontroledl_xcp_perc, x.ins_srtcontrole_percentage),
x.ins_srtcontrole_omschrijving,
x.prs_kostenplaats_upper,
x.fin_btwtabelwaarde_perc,
xcp.ins_srtcontroledl_xcp_opmerk,
x.ins_deelsrtcontrole_freezecost, -- begroting excl. btw
ROUND (x.ins_deelsrtcontrole_freezecost * fac.safe_to_number ('1.' || to_char(lpad (x.fin_btwtabelwaarde_perc, 2, 0))), 2), -- begroting incl. btw
x.alg_gebouw_groep,
x.prs_perslid_naam_full
FROM
(SELECT d.ins_deel_key,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_upper,
sd.ins_srtdeel_code_upper,
sd.ins_srtdeel_omschrijving,
d.ins_deel_upper,
d.ins_deel_opmerking,
d.ins_deel_aantal,
sd.ins_srtdeel_eenheid,
sc.ins_srtcontrole_periode,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_kosten,
sc.ins_srtcontrole_kosten2,
sc.ins_srtcontrole_kosten3,
sc.ins_srtcontrole_materiaal,
sc.ins_srtcontrole_uren,
sc.ins_srtcontrole_percentage,
dc.ins_deelsrtcontrole_freezecost,
kp.prs_kostenplaats_upper,
btw.fin_btwtabelwaarde_perc,
dc.ins_srtcontrole_key,
dc.ins_deelsrtcontrole_key,
ds.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
g.alg_gebouw_groep,
pf.prs_perslid_naam_full
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc, prs_kostenplaats kp, fin_btwtabelwaarde btw,
alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district ds, prs_v_perslid_fullnames pf
WHERE dc.ins_scenario_key = 1
AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
AND (dc.ins_deelsrtcontrole_freezedate <= g.alg_gebouw_vervaldatum OR g.alg_gebouw_vervaldatum IS NULL)
AND (dc.ins_deelsrtcontrole_freezedate <= d.ins_deel_vervaldatum OR d.ins_deel_vervaldatum IS NULL)
AND dc.ins_deelsrtcontrole_status = 2
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND ds.alg_district_key = l.alg_district_key
AND d.ins_deel_key = dc.ins_deel_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND g.prs_perslid_key_verantw = pf.prs_perslid_key(+)
AND sc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND sc.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)) x
LEFT JOIN (select * FROM ins_srtcontroledl_xcp WHERE ins_scenario_key = 1) xcp
ON xcp.ins_deel_key = x.ins_deel_key AND xcp.ins_srtcontrole_key = x.ins_srtcontrole_key;
-- Alles hieronder voor in in commentaar, dit wordt nog gestript omdat er overlap kan zijn met de CND package.
--SELECT 'ins_deel_key;Hoofdrecept;Groeprecept;Subreceptnummer;Subreceptomschrijving;Elementnummer;Element beschrijving;Hoeveelheid;Eenheid;ins_srtcontrole_key',0 FROM DUAL
--UNION ALL
--SELECT d.ins_deel_key || ';' ||
-- disc.ins_discipline_omschrijving || ';' ||
-- sg.ins_srtgroep_upper || ';' ||
-- sd.ins_srtdeel_code_upper || ';' ||
-- sd.ins_srtdeel_omschrijving || ';' ||
-- d.ins_deel_upper || ';' ||
-- d.ins_deel_opmerking || ';' ||
-- d.ins_deel_aantal || ';' ||
-- sd.ins_srtdeel_eenheid || ';' ||
-- dc.ins_srtcontrole_key
-- , dc.ins_deelsrtcontrole_key
--FROM ins_deelsrtcontrole dc, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline disc
--WHERE dc.ins_scenario_key = 1
--AND to_char(dc.ins_deelsrtcontrole_freezedate, 'YYYY') = fac.getsetting('mjb_freeze_year')
--AND dc.ins_deelsrtcontrole_status = 2
--AND d.ins_deel_key = dc.ins_deel_key
--AND sd.ins_srtdeel_key = d.ins_srtdeel_key
--AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
--AND disc.ins_discipline_key = sg.ins_discipline_key;
CREATE OR REPLACE VIEW plat_v_export_MJOB_TOBIAS_AX (
result,
result_order
)
AS
SELECT result, result_order FROM plat_v_exp_mjob_tobiasax_body;
-- Ook incl. btw
CREATE OR REPLACE VIEW plat_v_export_MJOB_TOBIAS_BTW (
result,
result_order
)
AS
SELECT result, result_order FROM plat_v_exp_mjob_tobiasax_btw;
------ 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