
    <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_contentPack.xsd">
      <Header action="write" externalSource="NIKU" objectType="contentPack" version="16.3.2.1608"/>
      <contentPack update="true">
        <portlets update="true">
          <gridPortlet allowConfigure="true" allowConfigureLabel="true" allowEditing="false" category="businessIntelligence" code="ma_ptl_controle" dataProviderId="ma_ptl_controle" dataProviderPartitionId="NIKU.ROOT" dataProviderType="nsql" defaultSortColumn="id" defaultSortOrder="ascending" forceFilter="true" gridAttributeProtection="1" hasEditableColumn="false" metricsLocation="bottom" objectType="SYSTEM" pageSize="20" querySource="customer" showAltValueText="false" showColumnCurrencyCode="false" source="customer">
            <nls languageCode="de" name="Supervision"/>
            <nls languageCode="no" name="Supervision"/>
            <nls languageCode="fi" name="Supervision"/>
            <nls languageCode="ru" name="Supervision"/>
            <nls languageCode="sv" name="Supervision"/>
            <nls languageCode="ko" name="Supervision"/>
            <nls languageCode="pt" name="Supervision"/>
            <nls languageCode="en" name="Supervision"/>
            <nls languageCode="it" name="Supervision"/>
            <nls languageCode="fr" name="Supervision"/>
            <nls languageCode="hu" name="Supervision"/>
            <nls languageCode="es" name="Supervision"/>
            <nls languageCode="zh" name="Supervision"/>
            <nls languageCode="cs" name="Supervision"/>
            <nls languageCode="zh_TW" name="Supervision"/>
            <nls languageCode="ja" name="Supervision"/>
            <nls languageCode="pl" name="Supervision"/>
            <nls languageCode="da" name="Supervision"/>
            <nls languageCode="ca" name="Supervision"/>
            <nls languageCode="nl" name="Supervision"/>
            <nls languageCode="tr" name="Supervision"/>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="objet" isEditable="false" position="1" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="no" name="objet"/>
              <nls languageCode="de" name="objet"/>
              <nls languageCode="sv" name="objet"/>
              <nls languageCode="ru" name="objet"/>
              <nls languageCode="fi" name="objet"/>
              <nls languageCode="pt" name="objet"/>
              <nls languageCode="ko" name="objet"/>
              <nls languageCode="en" name="objet"/>
              <nls languageCode="it" name="objet"/>
              <nls languageCode="fr" name="Objet"/>
              <nls languageCode="hu" name="objet"/>
              <nls languageCode="zh" name="objet"/>
              <nls languageCode="es" name="objet"/>
              <nls languageCode="cs" name="objet"/>
              <nls languageCode="zh_TW" name="objet"/>
              <nls languageCode="ja" name="objet"/>
              <nls languageCode="pl" name="objet"/>
              <nls languageCode="da" name="objet"/>
              <nls languageCode="tr" name="objet"/>
              <nls languageCode="nl" name="objet"/>
              <nls languageCode="ca" name="objet"/>
            </column>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="numo_ref" isEditable="false" position="2" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="de" name="numo_ref"/>
              <nls languageCode="no" name="numo_ref"/>
              <nls languageCode="fi" name="numo_ref"/>
              <nls languageCode="ru" name="numo_ref"/>
              <nls languageCode="sv" name="numo_ref"/>
              <nls languageCode="ko" name="numo_ref"/>
              <nls languageCode="pt" name="numo_ref"/>
              <nls languageCode="en" name="numo_ref"/>
              <nls languageCode="it" name="numo_ref"/>
              <nls languageCode="fr" name="N°_REF"/>
              <nls languageCode="hu" name="numo_ref"/>
              <nls languageCode="es" name="numo_ref"/>
              <nls languageCode="zh" name="numo_ref"/>
              <nls languageCode="cs" name="numo_ref"/>
              <nls languageCode="zh_TW" name="numo_ref"/>
              <nls languageCode="ja" name="numo_ref"/>
              <nls languageCode="pl" name="numo_ref"/>
              <nls languageCode="da" name="numo_ref"/>
              <nls languageCode="ca" name="numo_ref"/>
              <nls languageCode="nl" name="numo_ref"/>
              <nls languageCode="tr" name="numo_ref"/>
            </column>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="msg_erreur" isEditable="false" position="3" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="de" name="msg_erreur"/>
              <nls languageCode="no" name="msg_erreur"/>
              <nls languageCode="fi" name="msg_erreur"/>
              <nls languageCode="ru" name="msg_erreur"/>
              <nls languageCode="sv" name="msg_erreur"/>
              <nls languageCode="ko" name="msg_erreur"/>
              <nls languageCode="pt" name="msg_erreur"/>
              <nls languageCode="en" name="msg_erreur"/>
              <nls languageCode="it" name="msg_erreur"/>
              <nls languageCode="fr" name="Message d'erreur"/>
              <nls languageCode="hu" name="msg_erreur"/>
              <nls languageCode="es" name="msg_erreur"/>
              <nls languageCode="zh" name="msg_erreur"/>
              <nls languageCode="cs" name="msg_erreur"/>
              <nls languageCode="zh_TW" name="msg_erreur"/>
              <nls languageCode="ja" name="msg_erreur"/>
              <nls languageCode="pl" name="msg_erreur"/>
              <nls languageCode="da" name="msg_erreur"/>
              <nls languageCode="ca" name="msg_erreur"/>
              <nls languageCode="nl" name="msg_erreur"/>
              <nls languageCode="tr" name="msg_erreur"/>
            </column>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="msg_extract" isEditable="false" position="4" showHeaderLabel="true" showSeparator="false" type="label">
              <nls languageCode="de" name="Message d'extraction"/>
              <nls languageCode="no" name="Message d'extraction"/>
              <nls languageCode="fi" name="Message d'extraction"/>
              <nls languageCode="ru" name="Message d'extraction"/>
              <nls languageCode="sv" name="Message d'extraction"/>
              <nls languageCode="ko" name="Message d'extraction"/>
              <nls languageCode="pt" name="Message d'extraction"/>
              <nls languageCode="en" name="Message d'extraction"/>
              <nls languageCode="it" name="Message d'extraction"/>
              <nls languageCode="fr" name="Message d'extraction"/>
              <nls languageCode="hu" name="Message d'extraction"/>
              <nls languageCode="es" name="Message d'extraction"/>
              <nls languageCode="zh" name="Message d'extraction"/>
              <nls languageCode="cs" name="Message d'extraction"/>
              <nls languageCode="zh_TW" name="Message d'extraction"/>
              <nls languageCode="ja" name="Message d'extraction"/>
              <nls languageCode="pl" name="Message d'extraction"/>
              <nls languageCode="da" name="Message d'extraction"/>
              <nls languageCode="ca" name="Message d'extraction"/>
              <nls languageCode="nl" name="Message d'extraction"/>
              <nls languageCode="tr" name="Message d'extraction"/>
            </column>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="msg_action" isEditable="false" position="5" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="de" name="msg_action"/>
              <nls languageCode="no" name="msg_action"/>
              <nls languageCode="fi" name="msg_action"/>
              <nls languageCode="ru" name="msg_action"/>
              <nls languageCode="sv" name="msg_action"/>
              <nls languageCode="ko" name="msg_action"/>
              <nls languageCode="pt" name="msg_action"/>
              <nls languageCode="en" name="msg_action"/>
              <nls languageCode="it" name="msg_action"/>
              <nls languageCode="fr" name="Action"/>
              <nls languageCode="hu" name="msg_action"/>
              <nls languageCode="es" name="msg_action"/>
              <nls languageCode="zh" name="msg_action"/>
              <nls languageCode="cs" name="msg_action"/>
              <nls languageCode="zh_TW" name="msg_action"/>
              <nls languageCode="ja" name="msg_action"/>
              <nls languageCode="pl" name="msg_action"/>
              <nls languageCode="da" name="msg_action"/>
              <nls languageCode="ca" name="msg_action"/>
              <nls languageCode="nl" name="msg_action"/>
              <nls languageCode="tr" name="msg_action"/>
            </column>
            <column align="left" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="url_link" isEditable="false" position="6" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="de" name="url_link"/>
              <nls languageCode="no" name="url_link"/>
              <nls languageCode="fi" name="url_link"/>
              <nls languageCode="ru" name="url_link"/>
              <nls languageCode="sv" name="url_link"/>
              <nls languageCode="ko" name="url_link"/>
              <nls languageCode="pt" name="url_link"/>
              <nls languageCode="en" name="url_link"/>
              <nls languageCode="it" name="url_link"/>
              <nls languageCode="fr" name="Lien URL"/>
              <nls languageCode="hu" name="url_link"/>
              <nls languageCode="es" name="url_link"/>
              <nls languageCode="zh" name="url_link"/>
              <nls languageCode="cs" name="url_link"/>
              <nls languageCode="zh_TW" name="url_link"/>
              <nls languageCode="ja" name="url_link"/>
              <nls languageCode="pl" name="url_link"/>
              <nls languageCode="da" name="url_link"/>
              <nls languageCode="ca" name="url_link"/>
              <nls languageCode="nl" name="url_link"/>
              <nls languageCode="tr" name="url_link"/>
            </column>
            <column align="right" allowEditing="false" allowHeaderWrapping="false" allowWrapping="true" code="id" isEditable="false" position="-1" showHeaderLabel="true" showSeparator="true" type="label">
              <nls languageCode="no" name="id"/>
              <nls languageCode="de" name="id"/>
              <nls languageCode="sv" name="id"/>
              <nls languageCode="ru" name="id"/>
              <nls languageCode="fi" name="id"/>
              <nls languageCode="pt" name="id"/>
              <nls languageCode="ko" name="id"/>
              <nls languageCode="en" name="id"/>
              <nls languageCode="it" name="id"/>
              <nls languageCode="fr" name="id"/>
              <nls languageCode="hu" name="id"/>
              <nls languageCode="zh" name="id"/>
              <nls languageCode="es" name="id"/>
              <nls languageCode="cs" name="id"/>
              <nls languageCode="zh_TW" name="id"/>
              <nls languageCode="ja" name="id"/>
              <nls languageCode="pl" name="id"/>
              <nls languageCode="da" name="id"/>
              <nls languageCode="nl" name="id"/>
              <nls languageCode="ca" name="id"/>
              <nls languageCode="tr" name="id"/>
            </column>
            <OBSAssocs complete="false"/>
            <Security/>
            <filter code="ma_ptl_controle" componentCode="odf" dataProviderId="ma_ptl_controle" dataProviderType="nsql" isCustomized="true" objectCode="ma_ptl_controle" partitionCode="NIKU.ROOT">
              <section collapsed="true" currentState="collapsed" filterByExpression="false">
                <column sequence="1">
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="param_objet" dataSize="20" decimals="0" extType="enum" fixedWidget="false" hidden="false" isMVLookup="false" lookupType="MA_CTRL_OBJ" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="select" width="20">
                    <nls languageCode="ca" name="param_objet"/>
                    <nls languageCode="cs" name="param_objet"/>
                    <nls languageCode="da" name="param_objet"/>
                    <nls languageCode="de" name="param_objet"/>
                    <nls languageCode="en" name="param_objet"/>
                    <nls languageCode="es" name="param_objet"/>
                    <nls languageCode="fi" name="param_objet"/>
                    <nls languageCode="fr" name="Objet"/>
                    <nls languageCode="hu" name="param_objet"/>
                    <nls languageCode="it" name="param_objet"/>
                    <nls languageCode="ja" name="param_objet"/>
                    <nls languageCode="ko" name="param_objet"/>
                    <nls languageCode="nl" name="param_objet"/>
                    <nls languageCode="no" name="param_objet"/>
                    <nls languageCode="pl" name="param_objet"/>
                    <nls languageCode="pt" name="param_objet"/>
                    <nls languageCode="ru" name="param_objet"/>
                    <nls languageCode="sv" name="param_objet"/>
                    <nls languageCode="tr" name="param_objet"/>
                    <nls languageCode="zh" name="param_objet"/>
                    <nls languageCode="zh_TW" name="param_objet"/>
                    <autoSuggest enabled="true" maxSuggestions="10"/>
                  </viewFieldDescriptor>
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="param_controle" dataSize="20" decimals="0" extType="enum" fixedWidget="false" hidden="false" isMVLookup="false" lookupType="MA_CTRL_CTRL" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="select" width="20">
                    <nls languageCode="ca" name="param_controle"/>
                    <nls languageCode="cs" name="param_controle"/>
                    <nls languageCode="da" name="param_controle"/>
                    <nls languageCode="de" name="param_controle"/>
                    <nls languageCode="en" name="param_controle"/>
                    <nls languageCode="es" name="param_controle"/>
                    <nls languageCode="fi" name="param_controle"/>
                    <nls languageCode="fr" name="Type de controle"/>
                    <nls languageCode="hu" name="param_controle"/>
                    <nls languageCode="it" name="param_controle"/>
                    <nls languageCode="ja" name="param_controle"/>
                    <nls languageCode="ko" name="param_controle"/>
                    <nls languageCode="nl" name="param_controle"/>
                    <nls languageCode="no" name="param_controle"/>
                    <nls languageCode="pl" name="param_controle"/>
                    <nls languageCode="pt" name="param_controle"/>
                    <nls languageCode="ru" name="param_controle"/>
                    <nls languageCode="sv" name="param_controle"/>
                    <nls languageCode="tr" name="param_controle"/>
                    <nls languageCode="zh" name="param_controle"/>
                    <nls languageCode="zh_TW" name="param_controle"/>
                    <autoSuggest enabled="true" maxSuggestions="10"/>
                  </viewFieldDescriptor>
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="param_acteur" dataSize="20" decimals="0" extType="enum" fixedWidget="false" hidden="false" isMVLookup="false" lookupType="MA_CTRL_ACT" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="select" width="20">
                    <nls languageCode="ca" name="param_acteur"/>
                    <nls languageCode="cs" name="param_acteur"/>
                    <nls languageCode="da" name="param_acteur"/>
                    <nls languageCode="de" name="param_acteur"/>
                    <nls languageCode="en" name="param_acteur"/>
                    <nls languageCode="es" name="param_acteur"/>
                    <nls languageCode="fi" name="param_acteur"/>
                    <nls languageCode="fr" name="Acteur"/>
                    <nls languageCode="hu" name="param_acteur"/>
                    <nls languageCode="it" name="param_acteur"/>
                    <nls languageCode="ja" name="param_acteur"/>
                    <nls languageCode="ko" name="param_acteur"/>
                    <nls languageCode="nl" name="param_acteur"/>
                    <nls languageCode="no" name="param_acteur"/>
                    <nls languageCode="pl" name="param_acteur"/>
                    <nls languageCode="pt" name="param_acteur"/>
                    <nls languageCode="ru" name="param_acteur"/>
                    <nls languageCode="sv" name="param_acteur"/>
                    <nls languageCode="tr" name="param_acteur"/>
                    <nls languageCode="zh" name="param_acteur"/>
                    <nls languageCode="zh_TW" name="param_acteur"/>
                    <autoSuggest enabled="true" maxSuggestions="10"/>
                  </viewFieldDescriptor>
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="param_proprio" dataSize="20" decimals="0" extType="enum" fixedWidget="false" hidden="false" isMVLookup="false" lookupType="MA_CTRL_REGLE" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="select" width="20">
                    <nls languageCode="ca" name="param_proprio"/>
                    <nls languageCode="cs" name="param_proprio"/>
                    <nls languageCode="da" name="param_proprio"/>
                    <nls languageCode="de" name="param_proprio"/>
                    <nls languageCode="en" name="param_proprio"/>
                    <nls languageCode="es" name="param_proprio"/>
                    <nls languageCode="fi" name="param_proprio"/>
                    <nls languageCode="fr" name="Propriétaire de la règle"/>
                    <nls languageCode="hu" name="param_proprio"/>
                    <nls languageCode="it" name="param_proprio"/>
                    <nls languageCode="ja" name="param_proprio"/>
                    <nls languageCode="ko" name="param_proprio"/>
                    <nls languageCode="nl" name="param_proprio"/>
                    <nls languageCode="no" name="param_proprio"/>
                    <nls languageCode="pt" name="param_proprio"/>
                    <nls languageCode="ru" name="param_proprio"/>
                    <nls languageCode="sv" name="param_proprio"/>
                    <nls languageCode="tr" name="param_proprio"/>
                    <nls languageCode="zh" name="param_proprio"/>
                    <nls languageCode="zh_TW" name="param_proprio"/>
                    <nls languageCode="pl" name="param_proprio"/>
                    <autoSuggest enabled="true" maxSuggestions="10"/>
                  </viewFieldDescriptor>
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="param_criticite" dataSize="20" decimals="0" extType="enum" fixedWidget="false" hidden="false" isMVLookup="false" lookupType="MA_CTRL_CRIT" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="select" width="20">
                    <nls languageCode="ca" name="param_criticite"/>
                    <nls languageCode="cs" name="param_criticite"/>
                    <nls languageCode="da" name="param_criticite"/>
                    <nls languageCode="de" name="param_criticite"/>
                    <nls languageCode="en" name="param_criticite"/>
                    <nls languageCode="es" name="param_criticite"/>
                    <nls languageCode="fi" name="param_criticite"/>
                    <nls languageCode="fr" name="Criticité"/>
                    <nls languageCode="hu" name="param_criticite"/>
                    <nls languageCode="it" name="param_criticite"/>
                    <nls languageCode="ja" name="param_criticite"/>
                    <nls languageCode="ko" name="param_criticite"/>
                    <nls languageCode="nl" name="param_criticite"/>
                    <nls languageCode="no" name="param_criticite"/>
                    <nls languageCode="pl" name="param_criticite"/>
                    <nls languageCode="pt" name="param_criticite"/>
                    <nls languageCode="ru" name="param_criticite"/>
                    <nls languageCode="sv" name="param_criticite"/>
                    <nls languageCode="tr" name="param_criticite"/>
                    <nls languageCode="zh" name="param_criticite"/>
                    <nls languageCode="zh_TW" name="param_criticite"/>
                    <autoSuggest enabled="true" maxSuggestions="10"/>
                  </viewFieldDescriptor>
                </column>
                <column sequence="2">
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="numo_ref" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="30">
                    <nls languageCode="ca" name="numo_ref"/>
                    <nls languageCode="cs" name="numo_ref"/>
                    <nls languageCode="da" name="numo_ref"/>
                    <nls languageCode="de" name="numo_ref"/>
                    <nls languageCode="en" name="numo_ref"/>
                    <nls languageCode="es" name="numo_ref"/>
                    <nls languageCode="fi" name="numo_ref"/>
                    <nls languageCode="fr" name="N°_REF"/>
                    <nls languageCode="hu" name="numo_ref"/>
                    <nls languageCode="it" name="numo_ref"/>
                    <nls languageCode="ja" name="numo_ref"/>
                    <nls languageCode="ko" name="numo_ref"/>
                    <nls languageCode="nl" name="numo_ref"/>
                    <nls languageCode="no" name="numo_ref"/>
                    <nls languageCode="pl" name="numo_ref"/>
                    <nls languageCode="pt" name="numo_ref"/>
                    <nls languageCode="ru" name="numo_ref"/>
                    <nls languageCode="sv" name="numo_ref"/>
                    <nls languageCode="tr" name="numo_ref"/>
                    <nls languageCode="zh" name="numo_ref"/>
                    <nls languageCode="zh_TW" name="numo_ref"/>
                  </viewFieldDescriptor>
                  <viewFieldDescriptor active="true" aggregate="false" attributeCode="msg_erreur" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="30">
                    <nls languageCode="ca" name="msg_erreur"/>
                    <nls languageCode="cs" name="msg_erreur"/>
                    <nls languageCode="da" name="msg_erreur"/>
                    <nls languageCode="de" name="msg_erreur"/>
                    <nls languageCode="en" name="msg_erreur"/>
                    <nls languageCode="es" name="msg_erreur"/>
                    <nls languageCode="fi" name="msg_erreur"/>
                    <nls languageCode="fr" name="Message d'erreur"/>
                    <nls languageCode="hu" name="msg_erreur"/>
                    <nls languageCode="it" name="msg_erreur"/>
                    <nls languageCode="ja" name="msg_erreur"/>
                    <nls languageCode="ko" name="msg_erreur"/>
                    <nls languageCode="nl" name="msg_erreur"/>
                    <nls languageCode="no" name="msg_erreur"/>
                    <nls languageCode="pl" name="msg_erreur"/>
                    <nls languageCode="pt" name="msg_erreur"/>
                    <nls languageCode="ru" name="msg_erreur"/>
                    <nls languageCode="sv" name="msg_erreur"/>
                    <nls languageCode="tr" name="msg_erreur"/>
                    <nls languageCode="zh" name="msg_erreur"/>
                    <nls languageCode="zh_TW" name="msg_erreur"/>
                  </viewFieldDescriptor>
                </column>
                <nls languageCode="ca" name="Supervision Filter"/>
                <nls languageCode="cs" name="Supervision Filter"/>
                <nls languageCode="de" name="Supervision Filter"/>
                <nls languageCode="en" name="Supervision Filter"/>
                <nls languageCode="es" name="Supervision Filter"/>
                <nls languageCode="fi" name="Supervision Filter"/>
                <nls languageCode="fr" name="Supervision Filter"/>
                <nls languageCode="it" name="Supervision Filter"/>
                <nls languageCode="ja" name="Supervision Filter"/>
                <nls languageCode="nl" name="Supervision Filter"/>
                <nls languageCode="no" name="Supervision Filter"/>
                <nls languageCode="da" name="Supervision Filter"/>
                <nls languageCode="hu" name="Supervision Filter"/>
                <nls languageCode="ko" name="Supervision Filter"/>
                <nls languageCode="pl" name="Supervision Filter"/>
                <nls languageCode="pt" name="Supervision Filter"/>
                <nls languageCode="ru" name="Supervision Filter"/>
                <nls languageCode="sv" name="Supervision Filter"/>
                <nls languageCode="tr" name="Supervision Filter"/>
                <nls languageCode="zh" name="Supervision Filter"/>
                <nls languageCode="zh_TW" name="Supervision Filter"/>
              </section>
              <defaultDisplay>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="id" dataSize="30" decimals="0" extType="double" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="numeric">
                  <nls languageCode="ca" name="id"/>
                  <nls languageCode="cs" name="id"/>
                  <nls languageCode="da" name="id"/>
                  <nls languageCode="de" name="id"/>
                  <nls languageCode="en" name="id"/>
                  <nls languageCode="es" name="id"/>
                  <nls languageCode="fi" name="id"/>
                  <nls languageCode="fr" name="id"/>
                  <nls languageCode="hu" name="id"/>
                  <nls languageCode="it" name="id"/>
                  <nls languageCode="ja" name="id"/>
                  <nls languageCode="ko" name="id"/>
                  <nls languageCode="nl" name="id"/>
                  <nls languageCode="no" name="id"/>
                  <nls languageCode="pl" name="id"/>
                  <nls languageCode="pt" name="id"/>
                  <nls languageCode="ru" name="id"/>
                  <nls languageCode="sv" name="id"/>
                  <nls languageCode="tr" name="id"/>
                  <nls languageCode="zh" name="id"/>
                  <nls languageCode="zh_TW" name="id"/>
                </viewFieldDescriptor>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="msg_extract" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="20">
                  <nls languageCode="ca" name="msg_extract"/>
                  <nls languageCode="cs" name="msg_extract"/>
                  <nls languageCode="da" name="msg_extract"/>
                  <nls languageCode="de" name="msg_extract"/>
                  <nls languageCode="en" name="msg_extract"/>
                  <nls languageCode="es" name="msg_extract"/>
                  <nls languageCode="fi" name="msg_extract"/>
                  <nls languageCode="fr" name="msg_extract"/>
                  <nls languageCode="hu" name="msg_extract"/>
                  <nls languageCode="it" name="msg_extract"/>
                  <nls languageCode="ja" name="msg_extract"/>
                  <nls languageCode="ko" name="msg_extract"/>
                  <nls languageCode="nl" name="msg_extract"/>
                  <nls languageCode="no" name="msg_extract"/>
                  <nls languageCode="pl" name="msg_extract"/>
                  <nls languageCode="pt" name="msg_extract"/>
                  <nls languageCode="ru" name="msg_extract"/>
                  <nls languageCode="sv" name="msg_extract"/>
                  <nls languageCode="tr" name="msg_extract"/>
                  <nls languageCode="zh" name="msg_extract"/>
                  <nls languageCode="zh_TW" name="msg_extract"/>
                </viewFieldDescriptor>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="msg_action" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="30">
                  <nls languageCode="ca" name="msg_action"/>
                  <nls languageCode="cs" name="msg_action"/>
                  <nls languageCode="da" name="msg_action"/>
                  <nls languageCode="de" name="msg_action"/>
                  <nls languageCode="en" name="msg_action"/>
                  <nls languageCode="es" name="msg_action"/>
                  <nls languageCode="fi" name="msg_action"/>
                  <nls languageCode="fr" name="msg_action"/>
                  <nls languageCode="hu" name="msg_action"/>
                  <nls languageCode="it" name="msg_action"/>
                  <nls languageCode="ja" name="msg_action"/>
                  <nls languageCode="ko" name="msg_action"/>
                  <nls languageCode="nl" name="msg_action"/>
                  <nls languageCode="no" name="msg_action"/>
                  <nls languageCode="pl" name="msg_action"/>
                  <nls languageCode="pt" name="msg_action"/>
                  <nls languageCode="ru" name="msg_action"/>
                  <nls languageCode="sv" name="msg_action"/>
                  <nls languageCode="tr" name="msg_action"/>
                  <nls languageCode="zh" name="msg_action"/>
                  <nls languageCode="zh_TW" name="msg_action"/>
                </viewFieldDescriptor>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="url_link" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="20">
                  <nls languageCode="ca" name="url_link"/>
                  <nls languageCode="cs" name="url_link"/>
                  <nls languageCode="da" name="url_link"/>
                  <nls languageCode="de" name="url_link"/>
                  <nls languageCode="en" name="url_link"/>
                  <nls languageCode="es" name="url_link"/>
                  <nls languageCode="fi" name="url_link"/>
                  <nls languageCode="fr" name="url_link"/>
                  <nls languageCode="hu" name="url_link"/>
                  <nls languageCode="it" name="url_link"/>
                  <nls languageCode="ja" name="url_link"/>
                  <nls languageCode="ko" name="url_link"/>
                  <nls languageCode="nl" name="url_link"/>
                  <nls languageCode="no" name="url_link"/>
                  <nls languageCode="pl" name="url_link"/>
                  <nls languageCode="pt" name="url_link"/>
                  <nls languageCode="ru" name="url_link"/>
                  <nls languageCode="sv" name="url_link"/>
                  <nls languageCode="tr" name="url_link"/>
                  <nls languageCode="zh" name="url_link"/>
                  <nls languageCode="zh_TW" name="url_link"/>
                </viewFieldDescriptor>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="objet" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="20">
                  <nls languageCode="ca" name="objet"/>
                  <nls languageCode="cs" name="objet"/>
                  <nls languageCode="da" name="objet"/>
                  <nls languageCode="de" name="objet"/>
                  <nls languageCode="en" name="objet"/>
                  <nls languageCode="es" name="objet"/>
                  <nls languageCode="fi" name="objet"/>
                  <nls languageCode="fr" name="objet"/>
                  <nls languageCode="hu" name="objet"/>
                  <nls languageCode="it" name="objet"/>
                  <nls languageCode="ja" name="objet"/>
                  <nls languageCode="ko" name="objet"/>
                  <nls languageCode="nl" name="objet"/>
                  <nls languageCode="no" name="objet"/>
                  <nls languageCode="pl" name="objet"/>
                  <nls languageCode="pt" name="objet"/>
                  <nls languageCode="ru" name="objet"/>
                  <nls languageCode="sv" name="objet"/>
                  <nls languageCode="tr" name="objet"/>
                  <nls languageCode="zh" name="objet"/>
                  <nls languageCode="zh_TW" name="objet"/>
                </viewFieldDescriptor>
                <viewFieldDescriptor active="true" aggregate="false" attributeCode="objet_code" dataSize="200" decimals="0" fixedWidget="false" hidden="false" isMVLookup="false" multiValued="false" notEqualXPath="false" numRows="0" readOnly="false" required="false" virtual="false" widgetType="text" width="20">
                  <nls languageCode="ca" name="objet_code"/>
                  <nls languageCode="cs" name="objet_code"/>
                  <nls languageCode="da" name="objet_code"/>
                  <nls languageCode="de" name="objet_code"/>
                  <nls languageCode="en" name="objet_code"/>
                  <nls languageCode="es" name="objet_code"/>
                  <nls languageCode="fi" name="objet_code"/>
                  <nls languageCode="fr" name="objet_code"/>
                  <nls languageCode="hu" name="objet_code"/>
                  <nls languageCode="it" name="objet_code"/>
                  <nls languageCode="ja" name="objet_code"/>
                  <nls languageCode="ko" name="objet_code"/>
                  <nls languageCode="nl" name="objet_code"/>
                  <nls languageCode="no" name="objet_code"/>
                  <nls languageCode="pl" name="objet_code"/>
                  <nls languageCode="pt" name="objet_code"/>
                  <nls languageCode="ru" name="objet_code"/>
                  <nls languageCode="sv" name="objet_code"/>
                  <nls languageCode="tr" name="objet_code"/>
                  <nls languageCode="zh" name="objet_code"/>
                  <nls languageCode="zh_TW" name="objet_code"/>
                </viewFieldDescriptor>
              </defaultDisplay>
            </filter>
          </gridPortlet>
        </portlets>
        <queries update="true">
          <query code="ma_ptl_controle" isUserPortletAvailable="1" source="customer">
            <nls languageCode="ca" name="Supervision"/>
            <nls languageCode="cs" name="Supervision"/>
            <nls languageCode="da" name="Supervision"/>
            <nls languageCode="de" name="Supervision"/>
            <nls languageCode="en" name="Supervision"/>
            <nls languageCode="es" name="Supervision"/>
            <nls languageCode="fi" name="Supervision"/>
            <nls languageCode="fr" name="Supervision"/>
            <nls languageCode="hu" name="Supervision"/>
            <nls languageCode="it" name="Supervision"/>
            <nls languageCode="ja" name="Supervision"/>
            <nls languageCode="ko" name="Supervision"/>
            <nls languageCode="nl" name="Supervision"/>
            <nls languageCode="no" name="Supervision"/>
            <nls languageCode="pl" name="Supervision"/>
            <nls languageCode="pt" name="Supervision"/>
            <nls languageCode="ru" name="Supervision"/>
            <nls languageCode="sv" name="Supervision"/>
            <nls languageCode="tr" name="Supervision"/>
            <nls languageCode="zh" name="Supervision"/>
            <nls languageCode="zh_TW" name="Supervision"/>
            <nsql dbId="Niku" dbVendor="all"><![CDATA[SELECT @SELECT:DIM:USER_DEF:IMPLIED:CONTROL:CTRL.ID:ID@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.numo_ref:numo_ref@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.msg_erreur:msg_erreur@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.msg_action:msg_action@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.msg_extract:msg_extract@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.lnk:url_link@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.objet_code:objet_code@,
       @SELECT:DIM_PROP:USER_DEF:IMPLIED:CONTROL:CTRL.objet:objet@
FROM (
WITH param_filter AS (
  SELECT @WHERE:PARAM:USER_DEF:STRING:objet@     AS objet,
         @WHERE:PARAM:USER_DEF:STRING:controle@  AS controle,
         @WHERE:PARAM:USER_DEF:STRING:acteur@    AS acteur,
         @WHERE:PARAM:USER_DEF:STRING:proprio@   AS proprio,
         @WHERE:PARAM:USER_DEF:STRING:criticite@ AS criticite
    FROM DUAL
),
param_url AS (
  SELECT p.x_string || 'niku/nu#action:' AS classic_url,
         p.x_string || 'pm/#/'           AS new_ui_url
    FROM odf_ca_x_parameter   p
   INNER JOIN odf_ca_x_config c ON c.id = p.odf_parent_id
   WHERE c.code = 'CONTROL'
     AND p.code = 'url'
),
param AS (
SELECT classic_url||'projmgr.editResource'||CHR(38)||'id='                                                   AS resource_link,
       classic_url||'nmc.openUser'||CHR(38)||'id='                                                           AS user_link,
	  	         ''||CHR(38)||'resourceId='                                                                  AS user_rsc_link,
       classic_url||'timeadmin.editTimesheet'||CHR(38)||'id'||CHR(38)||'resid='                              AS timesheet_link,
           CHR(38)||'tpid='                                                                                  AS period_id_link,
       new_ui_url||'timesheets/timesheet?resourceId='                                                        AS new_ui_timesheet_link,
           CHR(38)||'timeperiodId='                                                                          AS new_ui_period_id_link,
       classic_url||'pfm.portfolioList'                                                                      AS portfolio_link_wo_id,
       classic_url||'pfm.portfolioDefaultTab'||CHR(38)||'odf_return_to=pfm.portfolioList%26'||CHR(38)||'id=' AS portfolio_link,
       classic_url||'projmgr.projectDefaultTab'||CHR(38)||'id='                                              AS project_link,
       classic_url||'odf.resourceAuditTrailReturn'||CHR(38)||'id='                                           AS audit_link,
       classic_url||'nmc.userGroupsAssociation'||CHR(38)||'id='                                              AS group_link
 FROM param_url
),
PLA0203_list AS (
  SELECT p.x_string, p.name
    FROM odf_ca_x_config         c
   INNER JOIN odf_ca_x_parameter p ON p.odf_parent_id = c.id
   WHERE c.code = 'CONTROL'
     AND p.name = 'PLA02-03'
),
PLA0203_listagg AS (
  SELECT LISTAGG(x_string,',') WITHIN GROUP(ORDER BY x_string) AS x_string 
    FROM PLA0203_list 
   GROUP BY name 
   ORDER BY name
),
plan_vtravail AS (
  SELECT ptf.id, ptf.code, ptf.sync_date
    FROM pfm_portfolios            ptf
   INNER JOIN odf_ca_pfm_portfolio ocp ON ocp.id = ptf.id
   WHERE ptf.is_active          = 1
     AND ocp.ma_indice_revision = '2012-P0'
),
inv_plan_vtravail AS (
  SELECT ptf.id AS ptf_id, ptf.code AS ptf_code, inv.id, inv.code, odp.ma_perimetre_metier, odp.categorie, odp.ma_statut_prj,
      odp.classement_strategiq, odp.ma_cpmoa, odp.ma_date_debut,
 inv.is_active, inv.schedule_finish, inv.manager_id, inv.is_open_for_te, inv.odf_object_code
    FROM pfm_portfolios            ptf
   INNER JOIN pfm_investments      pfi ON pfi.portfolio_id = ptf.id
   INNER JOIN inv_investments      inv ON inv.id           = pfi.investment_id
   INNER JOIN odf_ca_project       odp ON odp.id           = inv.id
   WHERE ptf.id IN (SELECT id FROM plan_vtravail)
),
P_Prog AS (
SELECT inv.id, inv.code, inv.is_active, inv.odf_blueprint_id 
  FROM inv_investments inv
 INNER JOIN inv_projects prj ON prj.prid = inv.id
 WHERE prj.is_template    = 0
   AND UPPER(inv.code) LIKE 'P%_PROG'
),
PRJ01 AS (
SELECT inv.id, inv.code, odp.ma_statut_prj, inv.is_open_for_te, inv.labor_etcsum
  FROM inv_investments      inv
 INNER JOIN odf_ca_project  odp ON odp.id    = inv.id
 INNER JOIN inv_projects    prj ON prj.prid  = inv.id
 WHERE inv.is_active      = 0
   AND odp.categorie      = 'ma_categ_unique'
   AND prj.is_template    = 0
   
),
PRJ02 AS (
SELECT inv.id, inv.code, inv.labor_etcsum, inv.is_open_for_te, odp.ma_statut_prj, odp.ma_date_livraison,
inv.schedule_start, inv.schedule_finish
  FROM inv_investments      inv
 INNER JOIN odf_ca_project  odp ON odp.id    = inv.id
 INNER JOIN inv_projects    prj ON prj.prid  = inv.id
 WHERE inv.is_active      = 1
   AND odp.categorie      = 'ma_categ_unique'
   AND odp.ma_statut_prj IN ('termine', 'abandonne') 
   AND prj.is_template    = 0
),
FCT AS (
SELECT inv.id, inv.code, inv.is_active, inv.is_open_for_te, ocp.ma_statut_prj, inv.labor_etcsum,
inv.manager_id, ocp.ma_cpmoa, inv.odf_blueprint_id
  FROM inv_investments inv
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 INNER JOIN inv_projects   prj ON prj.prid = inv.id
 WHERE ocp.categorie      = 'Fonctionnement'
   AND prj.is_template    = 0
),
mcf_resources AS (
	SELECT rsc.id, rsc.unique_name, rsc.full_name, rsc.last_name, rsc.first_name, rsc.is_active, rsc.date_of_hire, rsc.date_of_termination, rsc.person_type, rsc.is_external,
	       ocr.ma_prj_typ_res, ocr.obj_last_anonymized, ocr.ma_mgt_calend, ocr.type_prestation_aff, ocr.ma_typ_prest,
		   prs.prisopen, prs.prprimaryroleid, prs.prisrole, prs.prcategory, prs.prtypecodeid, prs.prusertext2, prs.prusertext1,
		   rsc.user_id, rsc.manager_id, usr.user_status_id, usr.user_name,
		   pmr.resource_class, pmr.transclass, pmr.active,
		   param.resource_link, param.user_link, param.user_rsc_link, param.timesheet_link, param.period_id_link, param.new_ui_timesheet_link,
           param.new_ui_period_id_link, param.portfolio_link_wo_id, param.portfolio_link, param.project_link, param.audit_link, param.group_link
  FROM srm_resources        rsc
 INNER JOIN odf_ca_resource ocr ON ocr.id   = rsc.id
 INNER JOIN cmn_sec_users   usr ON rsc.user_id   = usr.id
 INNER JOIN prj_resources   prs ON prs.prid = rsc.id
 LEFT JOIN pac_mnt_resources pmr ON pmr.id = rsc.id
 CROSS JOIN param
 WHERE ocr.obj_last_anonymized IS NULL
),
LIC01_MAX AS (
SELECT rsc.is_active, ocr.ma_prj_typ_res, csu.id, csu.user_name, csu.user_status_id, csu.last_logged_in_date,
       MAX(clu.licence_priority) licence_priority, rsc.created_date
  FROM cmn_lic_users_v      clu
 INNER JOIN cmn_lookups_v   clk ON clk.sort_order = clu.licence_priority
 INNER JOIN cmn_sec_users   csu ON csu.id         = clu.user_id
 INNER JOIN srm_resources   rsc ON rsc.user_id    = csu.id
 INNER JOIN odf_ca_resource ocr ON ocr.id         = rsc.id
 WHERE clk.lookup_type         = 'CMN_LIC_RIGHT_TYPE'
   AND clu.lic_right_type     IN ('full', 'restricted')
   AND rsc.is_active           = 1
 GROUP BY csu.id, csu.user_name, csu.user_status_id, csu.last_logged_in_date,
       ocr.ma_prj_typ_res, rsc.is_active, rsc.created_date
),
LIC01 AS (
SELECT rsc.is_active, ocr.ma_prj_typ_res, csu.id, csu.user_name, csu.user_status_id, csu.last_logged_in_date,
       clu.lic_right_type, MAX(clu.licence_priority) licence_priority, rsc.created_date
  FROM cmn_lic_users_v      clu
 INNER JOIN cmn_lookups_v   clk ON clk.sort_order = clu.licence_priority
 INNER JOIN cmn_sec_users   csu ON csu.id         = clu.user_id
 INNER JOIN srm_resources   rsc ON rsc.user_id    = csu.id
 INNER JOIN odf_ca_resource ocr ON ocr.id         = rsc.id
 INNER JOIN LIC01_MAX           ON LIC01_MAX.id   = csu.id AND  clu.licence_priority = LIC01_MAX.licence_priority
 WHERE clk.lookup_type         = 'CMN_LIC_RIGHT_TYPE'
   AND clu.lic_right_type     IN ('full', 'restricted')
   AND rsc.is_active           = 1
 GROUP BY csu.id, csu.user_name, csu.user_status_id, csu.last_logged_in_date,
       clu.lic_right_type, ocr.ma_prj_typ_res, rsc.is_active, rsc.created_date
)


SELECT ROWNUM AS id, QRY.numo_ref, QRY.msg_erreur, TO_CHAR(octr.ma_act_macif_m) AS msg_action, TO_CHAR(octr.ma_reg_extract) AS msg_extract, QRY.lnk, octr.ma_objet AS objet_code,
       (SELECT name FROM cmn_lookups_v WHERE lookup_type = 'MA_CTRL_OBJ' AND language_code = 'fr' AND lookup_code = octr.ma_objet) AS objet
   
  FROM (
 /* Projets - Debut */
SELECT 'PLA01-01' numo_ref, (SELECT portfolio_link_wo_id FROM param) AS lnk, 'Aucun Plan Version de Travail n''est actif' AS msg_erreur, 'Action corrective' AS msg_action
  FROM DUAL
 WHERE (
         SELECT COUNT(ptf.id)
           FROM plan_vtravail            ptf

  ) = 0
 UNION ALL
SELECT 'PLA01-02' numo_ref, (SELECT portfolio_link FROM param) || ptf.id AS lnk, 'La date du pan Version de Travail ' || ptf.code || ' est antérieur à la date du jour - 1' AS msg_erreur, 'Action corrective' AS msg_action
  FROM plan_vtravail            ptf
 WHERE ptf.sync_date         <= SYSDATE - 1
 UNION ALL
SELECT 'PLA01-03' numo_ref, (SELECT portfolio_link FROM param) || ptf.id AS lnk, 'Le plan projet ' || ptf.code || ' n''a pas d''indice de révision' AS msg_erreur, 'Action corrective' AS msg_action
  FROM pfm_portfolios            ptf
 INNER JOIN odf_ca_pfm_portfolio ocp ON ocp.id = ptf.id
 WHERE ptf.is_active          = 1
   AND ocp.ma_indice_revision IS NULL
 UNION ALL
SELECT 'PLA01-04' numo_ref, (SELECT portfolio_link FROM param) || ptf.id AS lnk, 'Le plan projet ' || ptf.code || ' autre que version de travail est actif' AS msg_erreur, 'Action corrective' AS msg_action
  FROM pfm_portfolios            ptf
 INNER JOIN odf_ca_pfm_portfolio ocp ON ocp.id = ptf.id
 WHERE ptf.is_active            = 1
   AND (ocp.ma_indice_revision != '2012-P0' OR ocp.ma_indice_revision IS NULL)
   AND NVL((SELECT COUNT(id) FROM pfm_portfolios WHERE is_active = 1),0) > 0
 UNION ALL
SELECT 'PLA02-01' numo_ref, (SELECT portfolio_link FROM param) || inv.id AS lnk, 'Projet inactif ' || inv.code || ' lié au plan Version de Travail' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE inv.is_active            = 0
 UNION ALL
SELECT 'PLA02-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' avec plan métier à "pas de valeur"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail         inv
 WHERE ma_perimetre_metier  = 'ma_no_perim'
 UNION ALL
SELECT 'PLA02-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet "' || inv.code || '" lié au Plan version Travail avec ID ne débutant pas par "' || (SELECT x_string FROM PLA0203_listagg) || '"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE SUBSTR(inv.code,1,1)   NOT IN (SELECT x_string FROM PLA0203_list)
 UNION ALL
SELECT 'PLA02-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' du plan Version de Travail avec catégorie différent de planning unique' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE categorie              != 'ma_categ_unique'
 UNION ALL
SELECT 'PLA02-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' avec date de fin > 2035' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail  inv
 WHERE EXTRACT(YEAR FROM inv.schedule_finish) > 2035
 UNION ALL
SELECT 'PLA02-06' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail      inv
  LEFT JOIN srm_resources        mgr ON mgr.user_id      = inv.manager_id
  LEFT JOIN srm_resources        moe ON moe.id           = inv.ma_cpmoa
 WHERE (inv.manager_id IS NULL OR mgr.is_active = 0 OR inv.ma_cpmoa IS NULL OR moe.is_active = 0)
   AND inv.ma_statut_prj IN ('pre_planif', 'actif')
 UNION ALL
SELECT 'PLA02-07' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' du plan version de travail a un classement stratégique renseigné à pas de valeur' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail       inv
 WHERE classement_strategiq  = 'ma_no_clst'
 UNION ALL
SELECT 'PLA03-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet du Plan Version de Travail ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE inv.code               LIKE 'P%_Prog'
 UNION ALL
SELECT 'PLA03-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM p_prog inv
 WHERE inv.is_active = 1
   AND inv.code NOT IN (SELECT inv.code || '_Prog'
                          FROM pfm_portfolios            ptf
                    INNER JOIN odf_ca_pfm_portfolio ocp ON ocp.id           = ptf.id
                    INNER JOIN pfm_investments      pfi ON pfi.portfolio_id = ptf.id
                    INNER JOIN inv_investments      inv ON inv.id           = pfi.investment_id
                    WHERE ocp.ma_indice_revision    = '2012-P0'
                      AND inv.code               LIKE 'P%'
                    UNION ALL
                   SELECT inv.code
                     FROM inv_investments inv
                    WHERE inv.is_active = 1
)
 UNION ALL
SELECT 'PLA03-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM P_Prog      inv
 INNER JOIN odf_ca_project  odi ON odi.id              = inv.id
 INNER JOIN inv_investments prj ON prj.code || '_Prog' = inv.code
 INNER JOIN odf_ca_project  odp ON odp.id              = prj.id
 WHERE inv.is_active      = 1
   AND odp.ma_statut_prj != odi.ma_statut_prj
 UNION ALL
SELECT 'PLA03-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM P_Prog      inv
 INNER JOIN odf_ca_project  odp ON odp.id           = inv.id
 WHERE inv.is_active      = 1
   AND odp.categorie     != 'Autre'    
 UNION ALL
SELECT 'PLA03-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM P_Prog      inv
 LEFT JOIN odf_blueprints   blp ON blp.id = inv.odf_blueprint_id
 LEFT JOIN odf_abstract_blueprints   blpa ON blp.id = blpa.id
 WHERE inv.is_active = 1
   AND (inv.odf_blueprint_id IS NULL OR blpa.code != 'BP1005')
 UNION ALL
SELECT 'PLA03-06' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM P_Prog      inv
 WHERE inv.is_active = 1
   AND inv.id NOT IN (
SELECT inv.id 
  FROM P_Prog                    inv
 INNER JOIN prj_obs_associations poa ON record_id       = inv.id      AND poa.table_name = 'SRM_PROJECTS'
 INNER JOIN prj_obs_units        pou ON pou.id          = poa.unit_id
 INNER JOIN prj_obs_types        pot ON pot.id          = pou.type_id AND pot.unique_name = 'ma_obs_projets'
 INNER JOIN nbi_dim_obs          ndo ON ndo.obs_unit_id = poa.unit_id
 WHERE inv.is_active = 1
 )
 UNION ALL
 SELECT DISTINCT 'PRG01-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN odf_ca_project  odp ON odp.id        = inv.id
 INNER JOIN inv_hierarchies hch ON hch.parent_id = inv.id
 INNER JOIN inv_investments cld ON cld.id        = hch.child_id
 INNER JOIN odf_ca_project  odc ON odc.id        = cld.id
 WHERE inv.code            LIKE 'P%_Prog'
   AND inv.is_active        = 1
   AND odp.ma_statut_prj     IN ('termine', 'abandonne')  
   AND odc.ma_statut_prj NOT IN ('termine', 'abandonne', 'suspendu')
 UNION ALL
SELECT DISTINCT 'PRG02-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN inv_hierarchies hch ON hch.parent_id = inv.id
 INNER JOIN inv_investments cld ON cld.id        = hch.child_id
 WHERE inv.code      LIKE 'P%_Prog'
   AND inv.is_active    = 0
   AND cld.is_active    = 1
 UNION ALL
SELECT 'PRG02-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 WHERE inv.code      LIKE 'P%_Prog'
   AND inv.is_active   = 1
   AND (
         SELECT COUNT(inv_subquery.id)
           FROM inv_investments inv_subquery
 INNER JOIN inv_hierarchies hch ON hch.parent_id = inv_subquery.id
          INNER JOIN inv_investments cld ON cld.id        = hch.child_id
          WHERE hch.parent_id = inv.id
       ) = (
         SELECT COUNT(inv_subquery.id)
           FROM inv_investments inv_subquery
 INNER JOIN inv_hierarchies hch ON hch.parent_id = inv_subquery.id
          INNER JOIN inv_investments cld ON cld.id        = hch.child_id
          WHERE hch.parent_id = inv.id
   AND cld.is_active = 0
  )
 UNION ALL
SELECT 'PRG02-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN inv_investments prj ON prj.code || '_Prog' = inv.code
 WHERE inv.code            LIKE 'P%_Prog'
   AND inv.is_active = 0
   AND prj.is_active = 1  
UNION ALL
SELECT 'PRJ01-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ01      inv
 WHERE inv.is_open_for_te = 1
 UNION ALL
SELECT 'PRJ01-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ01      inv
 WHERE ma_statut_prj NOT IN ('termine', 'abandonne', 'suspendu')
 UNION ALL
SELECT 'PRJ01-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte. RAF = ' || inv.labor_etcsum AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ01      inv
 WHERE inv.labor_etcsum > 0
 UNION ALL
SELECT 'PRJ02-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ02      inv
 WHERE inv.labor_etcsum > 0
 UNION ALL
SELECT 'PRJ02-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ02      inv
 WHERE inv.is_open_for_te = 1
 UNION ALL
SELECT 'PRJ02-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ02      inv
 WHERE ma_date_livraison IS NULL
 UNION ALL
SELECT 'PRJ02-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ02      inv
 WHERE (inv.schedule_start > SYSDATE OR inv.schedule_finish > SYSDATE)
 UNION ALL
SELECT 'PRJ02-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM PRJ02            inv
 WHERE inv.id NOT IN (SELECT id FROM inv_plan_vtravail)
 UNION ALL
SELECT 'PRJ03-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE inv.is_open_for_te     = 1
   AND ma_statut_prj     IN ('nd', 'pre_planif')
 UNION ALL
SELECT 'PRJ03-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE ma_statut_prj      = 'actif'
   AND inv.is_open_for_te     = 0
 UNION ALL
SELECT 'PRJ03-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail            inv
 WHERE ma_statut_prj      = 'actif'
   AND ma_date_debut     IS NULL
 UNION ALL
SELECT DISTINCT 'PRJ03-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN odf_ca_project       odp ON odp.id           = inv.id
 INNER JOIN inv_projects         prj ON prj.prid        = inv.id
 WHERE inv.is_active            = 1
   AND odp.categorie            = 'ma_categ_unique'
   AND odp.ma_statut_prj       IN ('nd', 'pre_planif', 'actif')
   AND odp.ma_domaine_metier   != 'HDO'
   AND inv.id NOT IN (SELECT id FROM inv_plan_vtravail)
   AND prj.is_template         = 0
 UNION ALL
SELECT 'PRJ04-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments           inv
 INNER JOIN inv_projects         prj ON prj.prid        = inv.id
 INNER JOIN odf_ca_project       odp ON odp.id          = inv.id
 WHERE inv.is_active        = 1
   AND odp.categorie        = 'ma_categ_unique'
   AND prj.is_template      = 0
   AND inv.id NOT IN (
    SELECT poa.record_id
 FROM prj_obs_associations poa              
     INNER JOIN nbi_dim_obs     ndo ON ndo.obs_unit_id = poa.unit_id           AND ndo.obs_type_name = 'OBS Projets'
     INNER JOIN cmn_lookups_v   lkp ON lkp.lookup_code = odp.ma_domaine_metier AND lookup_type       = 'MA_LKP_DOMMET' AND language_code = 'fr'
     WHERE poa.table_name    = 'SRM_PROJECTS'
       AND ndo.path       LIKE ('%PPM/' || lkp.name ||'%')
   )
 UNION ALL
SELECT 'PRJ04-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id
 INNER JOIN odf_ca_project odp ON odp.id   = inv.id
 WHERE inv.is_active   = 1
   AND odp.categorie   = 'ma_categ_unique'
   AND prj.is_program  = 0
   AND prj.is_template = 0
   AND (
         SELECT COUNT(inv_subquery.id)
           FROM inv_investments inv_subquery
 INNER JOIN inv_hierarchies hch ON hch.parent_id = inv_subquery.id
          INNER JOIN inv_investments cld ON cld.id        = hch.child_id
 INNER JOIN inv_projects    prj ON prj.prid      = inv_subquery.id
          WHERE hch.child_id   = inv.id
AND prj.is_program = 1
       ) > 1  
 UNION ALL
SELECT DISTINCT 'PRJ04-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM pfm_portfolios            ptf
 INNER JOIN odf_ca_pfm_portfolio ocp ON ocp.id           = ptf.id
 INNER JOIN pfm_investments      pfi ON pfi.portfolio_id = ptf.id
 INNER JOIN inv_investments      inv ON inv.id           = pfi.investment_id
 INNER JOIN odf_ca_project       odp ON odp.id           = inv.id
 INNER JOIN inv_projects         prj ON prj.prid = inv.id
 WHERE inv.is_active           = 1
   AND odp.categorie           = 'ma_categ_unique'
   AND odp.ma_domaine_metier   = 'HDO'
   AND ocp.ma_indice_revision  = '2012-P0'
   AND ptf.is_active           = 1
   AND prj.is_template         = 0
 UNION ALL  
SELECT 'PRJ04-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
  LEFT JOIN odf_blueprints blp ON blp.id = inv.odf_blueprint_id
  LEFT JOIN odf_abstract_blueprints   blpa ON blp.id = blpa.id
 WHERE inv.is_active          = 1
   AND ocp.categorie          = 'ma_categ_unique'
   AND ocp.ma_statut_prj      = 'nd'
   AND blpa.code              != 'BP1007'
   AND prj.is_template        = 0
 UNION ALL  
SELECT 'PRJ04-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
  LEFT JOIN odf_blueprints blp ON blp.id = inv.odf_blueprint_id
  LEFT JOIN odf_abstract_blueprints   blpa ON blp.id = blpa.id
 WHERE inv.is_active          = 1
   AND ocp.categorie          = 'ma_categ_unique'
   AND ocp.ma_statut_prj     IN ('actif', 'pre_planif')
   AND blpa.code              != 'BP1006'
   AND prj.is_template         = 0
 UNION ALL  
SELECT 'PRJ04-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
  LEFT JOIN odf_blueprints blp ON blp.id = inv.odf_blueprint_id
  LEFT JOIN odf_abstract_blueprints   blpa ON blp.id = blpa.id
 WHERE inv.is_active          = 1
   AND ocp.categorie          = 'ma_categ_unique'
   AND ocp.ma_statut_prj NOT IN ('nd', 'actif', 'pre_planif')
   AND blpa.code              IS NULL
   AND prj.is_template         = 0
 UNION ALL  
SELECT 'PRJ05-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE ocp.ma_statut_prj       = 'nd'
   AND (ocp.ma_insc_plprj IS NULL OR ocp.ma_insc_plprj != 'ma_non_valid')
   AND prj.is_template         = 0
   AND prj.is_program          = 0
   AND inv.is_active           = 1
   AND ocp.categorie           = 'ma_categ_unique'
   AND (ocp.ma_type_projet    != 'avenant' OR ocp.ma_type_projet IS NULL)
 UNION ALL  
SELECT 'PRJ05-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE ocp.ma_statut_prj        = 'actif'
   AND inv.code              LIKE '%0'
   AND inv.code          NOT LIKE 'P%0'
   AND (ocp.ma_insc_plprj IS NULL OR ocp.ma_insc_plprj != 'ma_insc_en_cours')
   AND prj.is_template         = 0
   AND prj.is_program          = 0
   AND inv.is_active           = 1
   AND ocp.categorie           = 'ma_categ_unique'
   AND (ocp.ma_type_projet    != 'avenant' OR ocp.ma_type_projet IS NULL)
 UNION ALL  
SELECT 'PRJ05-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE ocp.ma_statut_prj        IN ('pre_planif', 'actif')
   AND (inv.code          NOT LIKE '%0' OR inv.code LIKE 'P%0')
   AND (ocp.ma_insc_plprj IS NULL OR ocp.ma_insc_plprj != 'ma_valid')
   AND prj.is_template         = 0
   AND prj.is_program          = 0
   AND inv.is_active           = 1 
   AND ocp.categorie           = 'ma_categ_unique'
   AND (ocp.ma_type_projet    != 'avenant' OR ocp.ma_type_projet IS NULL)
UNION ALL

SELECT 'PRJ06-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.id IN (
  SELECT inv.id
   FROM inv_investments            inv
  INNER JOIN odf_ca_project        ocp ON ocp.id            = inv.id
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  INNER JOIN prassignment          asg ON asg.prtaskid      = tsk.prid
  INNER JOIN srm_resources         rsc ON rsc.id            = asg.prresourceid
  INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
  INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'DAILYRESOURCEESTCURVE'
  WHERE slc.slice           > 0
    AND categorie       = 'ma_categ_unique' AND slc.slice_date      < (SELECT MIN(prstart) FROM prtimeperiod WHERE prisopen = 1)-- reste a faire avant 1ère periode de temps ouverte
)
 
UNION ALL
SELECT 'PRJ06-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.id IN (
 SELECT tsk.prprojectid
   FROM prtask              tsk
  INNER JOIN prassignment   asg ON asg.prtaskid = tsk.prid
  INNER JOIN srm_resources  rsc ON rsc.id       = asg.prresourceid
  INNER JOIN odf_ca_project ocp ON ocp.id       = tsk.prprojectid
  WHERE ocp.categorie = 'ma_categ_unique'
    AND rsc.is_active = 0
AND asg.prestsum  > 0
 )
UNION ALL
SELECT 'PRJ06-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.id IN (
 SELECT inv.id
   FROM inv_investments            inv
  INNER JOIN odf_ca_project        ocp ON ocp.id            = inv.id
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  WHERE inv.is_active                     = 1
    AND ocp.categorie                     = 'ma_categ_unique'
    AND SUBSTR(tsk.prcategory, 1, 4) NOT IN ('MOA-', 'PRJ-', 'PRG-', 'AVT-')
--AND tsk.wbs_parseq != (SELECT prwbssequence FROM prtask WHERE prprojectid = inv.id and prexternalid = '~dtp')
--AND tsk.prexternalid != '~dtp'
AND (tsk.prexternalid IS NULL OR tsk.prexternalid NOT LIKE '~dtp%')
)
 UNION ALL
SELECT 'PRJ06-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments inv
  INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.id IN (
 SELECT inv.id
   FROM inv_investments            inv
  INNER JOIN odf_ca_project        ocp ON ocp.id            = inv.id
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  WHERE ocp.categorie                  = 'ma_categ_unique'
    AND tsk.pristask                   = 1
    AND (SUBSTR(tsk.prcategory, 4, 1) != '-' OR LENGTH(tsk.prcategory) < 7)
	AND inv.is_active                  = 1 
)
 UNION ALL
SELECT 'PRJ06-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.id IN (
 SELECT inv.id
   FROM inv_investments           inv
  INNER JOIN prtask               tsk ON tsk.prprojectid  = inv.id
  INNER JOIN prassignment         asg ON asg.prtaskid     = tsk.prid
  INNER JOIN srm_resources        rsc ON rsc.id           = asg.prresourceid
  INNER JOIN odf_ca_resource      ocr ON ocr.id           = rsc.id
  WHERE inv.is_active                = 1
    AND inv.id                      IN (SELECT id FROM inv_plan_vtravail)
AND tsk.prfinish                 < SYSDATE + 30
AND ocr.ma_prj_typ_res          IN (5, 6, 8, 7)
    AND asg.practsum + asg.prestsum  > 0
)
UNION ALL
SELECT 'PRJ06-06' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_plan_vtravail inv
 WHERE inv.id IN (
 
  SELECT inv.id
   FROM inv_plan_vtravail          inv
  INNER JOIN odf_ca_project        ocp ON ocp.id            = inv.id
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  INNER JOIN prassignment          asg ON asg.prtaskid      = tsk.prid
  INNER JOIN srm_resources         rsc ON rsc.id            = asg.prresourceid
  INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
  INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'MONTHLYRESOURCEESTCURVE'
  WHERE slc.slice           > 0
  AND TO_CHAR(slc.slice_date, 'YYYY')  = TO_CHAR(SYSDATE, 'YYYY')
  AND rsc.resource_type                = 0 --Labor
  AND inv.is_active                    = 1
  AND ocp.categorie       = 'ma_categ_unique'
  AND inv.id                      NOT IN (
                                             SELECT inv.id
                                               FROM odf_ssl_cst_dtl_cost       ssl
                                              INNER JOIN fin_cost_plan_details dtl ON dtl.id = ssl.prj_object_id
                                              INNER JOIN fin_plans             pln ON pln.id = dtl.plan_id
                                              INNER JOIN odf_ca_costplan       ocp ON ocp.id = pln.id
                                              INNER JOIN inv_plan_vtravail       inv ON inv.id = pln.object_id
                                              INNER JOIN transclass            trx ON trx.id = dtl.transaction_class_id
                                              WHERE inv.odf_object_code              = 'project'
                                                AND TO_CHAR(ssl.start_date, 'YYYY')  = TO_CHAR(SYSDATE, 'YYYY')
                                                AND trx.transclass                  IN ('01_Inter', '02_Prest', '07_DDSIG', '09_Filia', '10_Part')
                                                AND ocp.ma_indice_revision           = '2012-P0'
                                              GROUP BY inv.id,
                                                    trx.transclass,
                                                    pln.name,
                                                    TO_CHAR(ssl.start_date, 'YYYY')
                                             HAVING ROUND(SUM((ssl.finish_date-ssl.start_date)*ssl.slice),2) > 0
)
 )


 UNION ALL
SELECT 'PRJ07-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project  ocp ON ocp.id = inv.id
 WHERE ocp.categorie      = 'ma_categ_unique'
   AND ocp.ma_statut_prj  = 'suspendu'
   AND inv.is_open_for_te = 1
 UNION ALL
SELECT 'PRJ07-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments      inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project  ocp ON ocp.id = inv.id
 WHERE inv.is_active           = 1
   AND ocp.categorie           = 'ma_categ_unique'
   AND ocp.ma_statut_prj       = 'suspendu'
   AND (ocp.ma_domaine_metier != 'HDO' OR ocp.ma_domaine_metier IS NULL)
   AND inv.id NOT IN (SELECT id FROM inv_plan_vtravail)
 UNION ALL
SELECT 'PRJ08-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE inv.is_active             = 1
   AND inv.id                   IN (SELECT id FROM inv_plan_vtravail)
   AND ocp.classement_strategiq  = 'ma_strategique'
   AND NOT(SUBSTR(ocp.ma_perimetre_metier, 1, 3)       = 'ma_'
 AND SUBSTR(ocp.ma_perimetre_metier, 4, 2) BETWEEN '01' AND '11'
 AND SUBSTR(ocp.ma_perimetre_metier, 6, 1)       = '_')
   /*
   AND inv.id NOT IN (
               SELECT inv.id
            FROM inv_investments      inv
INNER JOIN inv_hierarchies hch ON hch.child_id = inv.id
                INNER JOIN inv_investments prt ON prt.id       = hch.parent_id
INNER JOIN odf_ca_project  ocp ON ocp.id       = prt.id
WHERE SUBSTR(ocp.ma_perimetre_metier, 1, 3)       = 'ma_'
 AND SUBSTR(ocp.ma_perimetre_metier, 4, 2) BETWEEN '01' AND '11'
 AND SUBSTR(ocp.ma_perimetre_metier, 6, 1)       = '_'
    )*/
 UNION ALL
SELECT 'PRJ08-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE inv.is_active             = 1
   AND inv.id                   IN (SELECT id FROM inv_plan_vtravail)
   AND ocp.classement_strategiq  = 'ma_strategique'
   AND ocp.ma_obj_metier        IS NULL
 UNION ALL
SELECT 'PRJ08-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 WHERE inv.is_active             = 1
   AND inv.id                   IN (SELECT id FROM inv_plan_vtravail)
   AND SUBSTR(ocp.ma_perimetre_metier, 1, 3)       = 'ma_'
   AND SUBSTR(ocp.ma_perimetre_metier, 4, 2) BETWEEN '01' AND '11'
   AND ocp.classement_strategiq  != 'ma_strategique'
 UNION ALL
 SELECT 'PRJ08-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE inv.is_active             = 1
   AND inv.id                   IN (SELECT id FROM inv_plan_vtravail)
   AND ocp.ma_obj_metier        IS NOT NULL
   AND ocp.classement_strategiq != 'ma_strategique'
  UNION ALL
  SELECT 'PRJ08-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM inv_investments     inv
 INNER JOIN inv_projects   prj ON prj.prid = inv.id AND prj.is_template = 0
 INNER JOIN odf_ca_project ocp ON ocp.id = inv.id
 WHERE inv.is_active             = 1
   AND inv.id                   IN (SELECT id FROM inv_plan_vtravail)
   AND ocp.ma_cle_tri_2          = 'Trajectoire SI'
   AND ocp.classement_strategiq != 'ma_strategique'
 UNION ALL

SELECT 'FCT01-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 0
   AND is_open_for_te  = 1
 UNION ALL
SELECT 'FCT01-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 0
   AND inv.ma_statut_prj   NOT IN ('termine', 'abandonne')
 UNION ALL
SELECT 'FCT01-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 0
   AND inv.labor_etcsum   != 0
 
 UNION ALL
SELECT 'FCT02-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 1
   AND inv.ma_statut_prj  IN ('termine', 'abandonne')
   AND inv.labor_etcsum    > 0
 UNION ALL
SELECT 'FCT02-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 1
   AND inv.ma_statut_prj  IN ('termine', 'abandonne')
   AND inv.is_open_for_te  = 1
 UNION ALL
SELECT 'FCT02-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 1
   AND inv.ma_statut_prj  IN ('termine', 'abandonne')
 UNION ALL
SELECT 'FCT03-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 1
   AND inv.is_open_for_te  = 1
   AND inv.ma_statut_prj   = 'nd'
 UNION ALL
SELECT 'FCT03-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active       = 1
   AND inv.ma_statut_prj   = 'actif'
   AND inv.is_open_for_te  = 0
 UNION ALL
SELECT 'FCT03-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
  LEFT JOIN srm_resources  mgr ON mgr.user_id = inv.manager_id
  --LEFT JOIN srm_resources  moe ON moe.id      = inv.ma_cpmoa
 WHERE inv.is_active       = 1
   AND inv.ma_statut_prj   = 'actif'
   AND (inv.manager_id IS NULL OR mgr.is_active = 0)--OR inv.ma_cpmoa IS NULL)
 UNION ALL
SELECT 'FCT03-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT     inv
  LEFT JOIN odf_blueprints blp ON blp.id = inv.odf_blueprint_id
  LEFT JOIN odf_abstract_blueprints   blpa ON blp.id = blpa.id
 WHERE inv.is_active       = 1
   AND (inv.odf_blueprint_id IS NULL OR blpa.code != 'BP1005')
 UNION ALL
SELECT 'FCT03-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT           inv
 INNER JOIN prj_obs_associations poa ON record_id       = inv.id AND poa.table_name = 'SRM_PROJECTS'
 INNER JOIN nbi_dim_obs          ndo ON ndo.obs_unit_id = poa.unit_id
 WHERE inv.is_active        = 1
   AND ndo.obs_type_name = 'OBS Projets'
   AND ndo.path      NOT LIKE '%/Fonctionnement%'
 UNION ALL
SELECT 'FCT03-05' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 INNER JOIN pac_mnt_projects pmp ON pmp.id = inv.id
 WHERE inv.is_active       = 1
   AND pmp.status          = 'O'
 UNION ALL
SELECT 'FCT04-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active = 1
   AND inv.id IN (
 SELECT inv.id
   FROM FCT            inv
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  INNER JOIN prassignment          asg ON asg.prtaskid      = tsk.prid
  INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
  INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'DAILYRESOURCEESTCURVE'
  WHERE inv.ma_statut_prj   = 'actif' AND inv.is_active = 1
    AND slc.slice           > 0
    AND slc.slice_date      < (SELECT MIN(prstart) FROM prtimeperiod WHERE prisopen = 1)-- reste a faire avant 1ère periode de temps ouverte
)
 UNION ALL
SELECT 'FCT04-02' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active = 1
   AND inv.id IN (
 SELECT inv.id
   FROM FCT            inv
  INNER JOIN prtask                tsk ON tsk.prprojectid   = inv.id
  INNER JOIN prassignment          asg ON asg.prtaskid      = tsk.prid
  INNER JOIN srm_resources         rsc ON rsc.id            = asg.prresourceid
  INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
  INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'DAILYRESOURCEESTCURVE'
  WHERE inv.ma_statut_prj   = 'actif' AND inv.is_active = 1
    AND slc.slice           > 0
    AND rsc.is_active       = 0
 )
 UNION ALL
SELECT 'FCT04-03' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active = 1
   AND inv.id IN (
     SELECT inv.id
  FROM FCT      inv
      INNER JOIN inv_projects    prj ON prj.prid = inv.id
      INNER JOIN prtask          tsk ON tsk.prprojectid = inv.id
      WHERE inv.ma_statut_prj   = 'actif' AND inv.is_active = 1
        AND (LENGTH(tsk.prcategory) < 3 OR tsk.prcategory IS NULL)
AND tsk.pristask         = 1
    )
 UNION ALL
SELECT 'FCT04-04' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.id IN (
 SELECT inv.id
  FROM FCT inv
 INNER JOIN inv_projects    prj ON prj.prid        = inv.id
 INNER JOIN prtask          tsk ON tsk.prprojectid = inv.id
 INNER JOIN prassignment    asg ON asg.prtaskid    = tsk.prid
 INNER JOIN srm_resources   rsc ON rsc.id          = asg.prresourceid
 INNER JOIN odf_ca_resource ocr ON ocr.id          = rsc.id
 WHERE inv.ma_statut_prj   = 'actif'
   AND tsk.prfinish       <= SYSDATE + 30
   AND ocr.ma_prj_typ_res IN (5, 6, 8, 7)
   AND asg.prestsum        > 0
 )
 UNION ALL
 SELECT 'FCT05-01' numo_ref, (SELECT project_link FROM param) || inv.id AS lnk, 'Projet ' || inv.code || ' est paramétré de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM FCT inv
 WHERE inv.is_active = 1
   AND inv.id IN (
     SELECT inv.id
       FROM FCT                  inv
      INNER JOIN inv_projects    prj ON prj.prid = inv.id
      INNER JOIN prtask          tsk ON tsk.prprojectid = inv.id
      WHERE inv.ma_statut_prj   = 'actif' AND inv.is_active = 1
        AND (SUBSTR(SUBSTR(prcategory,INSTR(prcategory,'-')+1),INSTR(SUBSTR(prcategory,INSTR(prcategory,'-')+1),'-')+1) NOT IN ('AEF','AEM','AES','BPS','BQE','ECA','MAS','MCV','MFE','MNF','MPB','MPP','MSP','nim','NUO','SAM') OR
             SUBSTR(SUBSTR(prcategory,INSTR(prcategory,'-')+1),INSTR(SUBSTR(prcategory,INSTR(prcategory,'-')+1),'-')+1) IS NULL)
        AND tsk.pristask        = 1
		AND (inv.code         LIKE 'D7%'    OR inv.code LIKE 'D600%')
    )
 /* Projets - Fin */

 UNION ALL
 
 /* Resources - Début */
 --Extraire les ressources "inactives" de type  "Centre de Service" /" Prestataire" / "Salarié" /   ouvertes à la saisie des temps 
SELECT 'RES01-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'"Centre de Service"',2,'"Prestataire"',1,'"Salarié"') || ' est ouverte à la saisie des temps' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rsc.prisopen        = 1
 UNION ALL
 --Extraire les ressources "inactives" de tpe  "Centre de Service" /" Prestataire" / "Salarié" /    ayant un compte clarity " actif" ou "verrouillé"  
SELECT 'RES01-02' numo_ref, user_link || rsc.user_id || user_rsc_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'"Centre de Service"',2,'"Prestataire"',1,'"Salarié"') || ' a un compte clarity ' ||
DECODE(rsc.user_status_id,200,'actif',202,'verrouillé') AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rsc.user_status_id IN (200, 202)
   AND rsc.id              > 10 --Ne pas afficher les utilisateurs techniques (1 à 8 pour l'instant)   
 UNION ALL
 --Extraire les ressources "inactives"  de type  "Centre de Service" /" Prestataire" / "Salarié"  ayant une date de départ, si elle est renseignée, strictement postérieure à la date du jour 
SELECT 'RES01-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'Centre de Service',2,'Prestataire',1,'Salarié') || ' a une date de départ supérieure à la date du jour' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rsc.date_of_termination IS NOT NULL 
   AND rsc.date_of_termination-1 > SYSDATE
   UNION ALL
 --Extraire les ressources "inactives" de type  "Centre de Service" /" Prestataire" / "Salarié"  dont le Prénom  ou "Nom utilisateur" ne sont pas suffixés par "-AASS"  (AA = Année de désactivation et SS=Semaine de désactivation)   
 SELECT 'RES01-04' numo_ref, resource_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'Centre de Service',2,'Prestataire',1,'Salarié') || ' n''est pas suffixée par sa date de départ (format -AASS)' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rsc.obj_last_anonymized IS NULL
   AND NOT(    SUBSTR(rsc.first_name, -5, 1) = '-'
           AND SUBSTR(rsc.first_name, -4, 2) BETWEEN '00' AND '99'
	       AND SUBSTR(rsc.first_name, -2, 2) BETWEEN '01' AND '53'   
           AND SUBSTR(rsc.user_name, -5, 1) = '-'
           AND SUBSTR(rsc.user_name, -4, 2) BETWEEN '00' AND '99'
	       AND SUBSTR(rsc.user_name, -2, 2) BETWEEN '01' AND '53'
           --AND SUBSTR(rsc.unique_name, -5, 1) = '-'
           --AND SUBSTR(rsc.unique_name, -4, 2) BETWEEN '00' AND '99'
	       --AND SUBSTR(rsc.unique_name, -2, 2) BETWEEN '01' AND '53'		   
	   )
 UNION ALL
SELECT 'RES01-05' numo_ref, resource_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'Centre de Service',2,'Prestataire',1,'Salarié') || ' a le droit de gérer son calendrier' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 INNER JOIN CMN_SEC_ASSGND_OBJ_PERM rgt ON rgt.principal_id = rsc.user_id
 INNER JOIN cmn_sec_objects obj ON  obj.id = rgt.object_id
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rgt.RIGHT_ID = 51500
   AND rgt.principal_type = 'USER' 
   AND rgt.permission_id = '5'
   AND obj.object_code = 'ResourceCalendar'
   AND rgt.object_instance_id = rsc.id
 UNION ALL
SELECT 'RES01-05' numo_ref, resource_link || rsc.id AS lnk, 'La ressource inactive ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,4,'Centre de Service',2,'Prestataire',1,'Salarié') || ' a la case à cocher gérer son calendrier' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 0
   AND rsc.ma_prj_typ_res IN (4, 2, 1)
   AND rsc.ma_mgt_calend   = 1
   UNION ALL
SELECT 'RES02-01' numo_ref, resource_link || rsc.id AS lnk, 'Le rôle inactif ' || rsc.unique_name || ' n''est pas suffixé par AASS' AS msg_erreur, 'Action corrective' AS msg_action
  FROM srm_resources        rsc
 INNER JOIN prj_resources   prj ON prj.prid = rsc.id
 INNER JOIN odf_ca_resource ocr ON ocr.id   =rsc.id
 CROSS JOIN param
 WHERE rsc.is_active       = 0
   AND ocr.ma_prj_typ_res IN (5, 7, 6)
   AND prj.prisrole        = 1
   AND NOT(    (SUBSTR(rsc.unique_name, -5, 1) = '-')
           AND (SUBSTR(rsc.unique_name, -4, 2) BETWEEN '00' AND '99')
	       AND (SUBSTR(rsc.unique_name, -2, 2) BETWEEN '01' AND '53')
	   )
 UNION ALL
SELECT 'RES02-01' numo_ref, resource_link || rsc.id AS lnk, 'Le rôle inactif ' || rsc.unique_name || ' n''est pas suffixé par AASS' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 INNER JOIN prj_resources   prj ON prj.prid = rsc.id
 INNER JOIN odf_ca_resource ocr ON ocr.id   =rsc.id
 WHERE rsc.is_active       = 0
   --AND prj.prisrole        = 1
   AND ocr.ma_prj_typ_res IN (5, 7, 6)
   AND NOT(    SUBSTR(rsc.user_name, -5, 1) = '-'
           AND (SUBSTR(rsc.user_name, -4, 2) BETWEEN '00' AND '99')
	       AND (SUBSTR(rsc.user_name, -2, 2) BETWEEN '01' AND '53')
		   AND (SUBSTR(rsc.unique_name, -5, 1) = '-')
           AND (SUBSTR(rsc.unique_name, -4, 2) BETWEEN '00' AND '99')
	       AND (SUBSTR(rsc.unique_name, -2, 2) BETWEEN '01' AND '53')
	   )	   
UNION ALL
SELECT 'RES03-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource active ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,5,'Rôle',7,'Charge en instance',6,'Charge non allouée',8,'Contingence',0,'Pas de type') || ' est ouverte à la saisie des temps' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (5, 7, 6, 8, 0) AND rsc.prisopen = 1
UNION ALL
SELECT 'RES03-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource active ' || rsc.unique_name || ' de type ' ||
       DECODE(rsc.ma_prj_typ_res,1,'Salarié',2,'Prestataire',4,'Centre de service') || ' n''est pas ouverte à la saisie des temps' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (1, 2, 4)       AND rsc.prisopen = 0
 UNION ALL
SELECT 'RES03-02' numo_ref, group_link || rsc.user_id AS lnk, 'La ressource active ' || rsc.unique_name || ' ne possède pas le groupe "Groupe de base pour accès utilisateur" ou l''un des deux groupes suivants: "Utilisateur Clarity" ou "Utilisateur Clarity hors approbation feuille de temps"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources            rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (1, 2, 4)
   AND (rsc.user_id NOT IN (
         SELECT grp.user_id
           FROM cmn_sec_user_groups   grp
          INNER JOIN cmn_sec_groups_v grv ON grv.id = grp.group_id
          WHERE grv.group_code     = 'baseUserGroup'
        )
        OR rsc.user_id NOT IN (
         SELECT grp.user_id
           FROM cmn_sec_user_groups   grp
          INNER JOIN cmn_sec_groups_v grv ON grv.id = grp.group_id
          WHERE grv.group_code     IN ('ma_users_clarity', 	'ma_users_clarity_hors_fdt')
        )
	)
 UNION ALL
SELECT 'RES03-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' ne possède pas les 2 groupes de base' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (2, 4)
   AND rsc.date_of_hire IS NULL
   UNION ALL
SELECT 'RES03-04' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte. Date de départ '||rsc.date_of_termination||DECODE(rsc.date_of_termination,NULL,'nulle')  AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (2, 4)
   AND (rsc.date_of_termination IS NULL OR rsc.date_of_termination < SYSDATE) 
 UNION ALL
 /*--Regle à remettre?
 SELECT 'RES03-05' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' n''a pas le droit de gérer son calendrier' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (1, 2, 4)
   AND rsc.id NOT IN (
			SELECT rsc.id
			  FROM mcf_resources        rsc
			 INNER JOIN CMN_SEC_ASSGND_OBJ_PERM rgt ON rgt.principal_id = rsc.user_id
			 INNER JOIN cmn_sec_objects obj ON  obj.id = rgt.object_id
			 WHERE rsc.is_active       = 1
			   AND rsc.ma_prj_typ_res IN (1, 2, 4)
			   AND rgt.RIGHT_ID = 51500
			   AND rgt.principal_type = 'USER' 
			   AND rgt.permission_id = '5'
			   AND obj.object_code = 'ResourceCalendar'
			   AND rgt.object_instance_id = rsc.id
		)
 UNION ALL*/
SELECT 'RES03-05' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' n''a pas la case "Autoriser à gérer son calendrier" cochée' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (1, 2, 4)
   AND rsc.ma_mgt_calend   != 1
 UNION ALL
SELECT 'RES03-06' numo_ref, rsc.resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 INNER JOIN mcf_resources   pil ON pil.user_id = rsc.manager_id
 WHERE rsc.is_active       = 1
   AND pil.is_active       = 0
 UNION ALL
SELECT 'RES03-07' numo_ref, rsc.resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 INNER JOIN mcf_resources   rol ON rol.id   = rsc.prprimaryroleid
 WHERE rsc.is_active       = 1
   AND rsc.prisrole        = 0
   AND rol.is_active       = 0
 UNION ALL
SELECT 'RES03-08' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND (rsc.ma_prj_typ_res IN (1, 2) OR (rsc.ma_prj_typ_res = 4 /*AND UPPER(rsc.prcategory) LIKE 'MOA%'*/))
   AND rsc.date_of_hire IS NULL
   AND rsc.user_status_id NOT IN (200, 202)
 UNION ALL
SELECT 'RES03-09' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.last_name || ', ' || rsc.first_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources      rsc
 WHERE rsc.prisrole = 0
   AND UPPER(rsc.last_name) || UPPER(rsc.first_name) IN (
    SELECT UPPER(last_name) || UPPER(first_name)
      FROM mcf_resources 
     GROUP BY UPPER(last_name) || UPPER(first_name)
    HAVING COUNT(*) > 1
)
 UNION ALL
SELECT 'RES04-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est activée financièrement' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE NOT(rsc.ma_prj_typ_res IN (1, 4) OR (rsc.ma_prj_typ_res = 2 AND rsc.type_prestation_aff = '2a'))
   AND rsc.active = 1
 UNION ALL
SELECT 'RES04-02' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' n''est pas activée financièrement ou l''est avec un code de valorisation nul' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
    --    ressource salariée ou CDS ou prestataire mutualisée 
    -- ET pas activée financièrement ou activée financièrement avec code d'imputation nul
    -- ET ressource active
 WHERE (rsc.ma_prj_typ_res IN (1, 4) OR (rsc.ma_prj_typ_res = 2 AND rsc.type_prestation_aff = '2a'))
   AND (rsc.active = 0 OR rsc.active IS NULL OR (rsc.active = 1 AND rsc.prtypecodeid IS NULL))
   AND rsc.is_active = 1
 UNION ALL
SELECT 'RES04-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' ne respecte pas les règles de cohérence de la gestion financière' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE (rsc.ma_prj_typ_res IN (1, 4) OR (rsc.ma_prj_typ_res = 2 AND rsc.type_prestation_aff = '2a'))
   AND rsc.active = 1 AND rsc.is_active = 1
   AND (   (rsc.prcategory    = 'DDSIG'                            AND (rsc.resource_class != 'DIT'   OR rsc.transclass != '07_DDSIG'))
        OR (rsc.prcategory LIKE 'MOA%'  AND rsc.ma_prj_typ_res = 1 AND (rsc.resource_class != 'MOA'   OR rsc.transclass != '01_Inter'))
        OR (rsc.prcategory LIKE 'MOA%'  AND rsc.ma_prj_typ_res = 4 AND (rsc.resource_class != 'MOA'   OR rsc.transclass != '02_Prest'))
        OR (rsc.prcategory    = 'GERAP' AND rsc.ma_prj_typ_res = 1 AND (rsc.resource_class != 'GERAP' OR rsc.transclass != '10_Part' ))
       )
 UNION ALL
SELECT 'RES05-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' a un code catégorie différent de "MOE*", "MOA*"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   --AND (rsc.prcategory IS NULL OR rsc.prcategory NOT IN ('DDSIG','MOA','MOA-MUT','MOA-MMU','MOA-PIF','MOA-PNO','MOA-PNE','MOA-PSE','MOA-PSO','GERAP','SBA_SOCRAM_MOA','SBE_SOCRAM_MOE'))
   AND (rsc.prcategory IS NULL OR SUBSTR(rsc.prcategory,0,3) NOT IN ('MOE', 'MOA-SAM'))
 UNION ALL
 SELECT 'RES06-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND (    (rsc.prcategory != 'MOE-SAM' AND (rsc.prusertext2     LIKE 'D7%' OR  rsc.prusertext2  = 'D600')) 
         OR (rsc.prcategory  = 'MOE-SAM' AND (rsc.prusertext2 NOT LIKE 'D7%' AND rsc.prusertext2 != 'D600'))
         OR (rsc.prcategory  = 'MOE-SAM' AND  rsc.prusertext2  IS NULL)
   )
 UNION ALL
SELECT 'RES06-02' numo_ref, rsc.resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
  LEFT JOIN srm_resources   rol ON rol.id      = rsc.prprimaryroleid
  LEFT JOIN srm_resources   pil ON pil.user_id = rsc.manager_id
 WHERE rsc.is_active    = 1
   AND rsc.prcategory   = 'MOE-SAM'
   AND (rsc.prusertext2 = 'D600' OR rsc.prusertext2 LIKE 'D7%')
   AND (pil.is_active   = 0 OR pil.id IS NULL OR rol.is_active = 0 OR rol.id IS NULL)
 UNION ALL
SELECT 'RES06-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM prj_obs_units pou
 INNER JOIN prj_obs_types pot ON pot.id = pou.type_id AND pot.unique_name = 'ma_groupe_macif'
 INNER JOIN prj_obs_associations poa ON poa.unit_id = pou.id AND poa.table_name  = 'SRM_RESOURCES'
 INNER JOIN mcf_resources rsc ON rsc.id = poa.record_id
 INNER JOIN nbi_dim_obs ndo ON ndo.obs_unit_id = pou.id
 WHERE UPPER(ndo.path) NOT LIKE '%DDSIG%'
   AND (rsc.prcategory = 'MOE-SAM' OR (rsc.prusertext2 LIKE 'D7%' OR rsc.prusertext2 = 'D600'))
   AND rsc.is_active   = 1
 UNION ALL
SELECT 'RES07-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (1, 5) 
   AND (rsc.person_type NOT IN (300, 5000160) OR rsc.is_external = 1)
 UNION ALL
SELECT 'RES07-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (5, 7, 6, 8, 0)
   AND (rsc.person_type != 0 OR rsc.person_type IS NOT NULL OR rsc.is_external = 1)
 UNION ALL
SELECT 'RES07-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active       = 1
   AND rsc.ma_prj_typ_res IN (2, 4)
   AND (rsc.person_type NOT IN 301 OR rsc.is_external = 0) 
 UNION ALL
SELECT 'RES07-02' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.ma_prj_typ_res NOT IN (2, 7, 6)
   AND rsc.ma_typ_prest       != 'non_app'
   AND rsc.is_active           = 1
 UNION ALL
SELECT 'RES07-02' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.ma_prj_typ_res IN (2, 7, 6)
   AND rsc.ma_typ_prest    = 'non_app'
   AND rsc.is_active       = 1
 UNION ALL
/*SELECT 'RES07-02' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.ma_prj_typ_res = 2
   AND (rsc.prcategory    = 'MOE-MUT' OR rsc.prcategory LIKE 'MOA%')
   AND rsc.ma_typ_prest   = '2a'
   AND rsc.is_active      = 1
 UNION ALL*/
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Rôle" et catégorie "MOE-SAM" dont l''ID ne débute pas par "COMP_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 5
   AND rsc.prcategory            = 'MOE-SAM'
   AND rsc.unique_name    NOT LIKE 'COMP_%'
 UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Rôle" et catégorie "MOA" ou "MOE-M" dont l''ID ne débute pas par "ROLE_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 5
   AND (rsc.prcategory        LIKE 'MOA%'    OR rsc.prcategory LIKE 'MOE-M%')
   AND rsc.unique_name    NOT LIKE 'ROLE_%'
 UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Centre de services" dont l''ID ne débute pas par "E_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 4
   AND rsc.unique_name    NOT LIKE 'E_%'
/* UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Prestataire régie" dont l''ID ne débute pas par "H" ou "ATGR" ou par "G" si catégorie =MOA-MMU' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 2
   AND rsc.prcategory = 'MOA-MMU'
   AND NOT(rsc.unique_name LIKE 'H%' OR rsc.unique_name LIKE 'ATGR%' OR rsc.unique_name LIKE 'G%') */
 UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Charges en instance" dont l''ID ne débute pas par "ICOMP_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 7
   AND rsc.unique_name    NOT LIKE 'ICOMP_%'
 UNION ALL
-- Charges en instance ou charges non allouée
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Charges en instance" dont l''ID ne débute pas par "NCOMP_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 7
   AND rsc.unique_name    NOT LIKE 'NCOMP_%'
 UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Charges non allouée" dont l''ID ne débute pas par "QCOMP_"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 6
   AND rsc.unique_name    NOT LIKE 'QCOMP_%'
 UNION ALL
SELECT 'RES07-03' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || ' est une ressource active de type "Salarié"
- catégorie "MOE-SAM" dont le matricule ne débute pas par "S" ou 
- catégorie "MOA-MSP" ou "MOE-MSP" dont le matricule ne débute pas par "U" ou 
- catégorie "MOE-MFE" dont le matricule ne débute pas par "C" ou
- catégorie "MOA-MFE" dont le matricule ne débute pas par "C"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 1
   AND (   (rsc.prcategory  = 'MOE-SAM'            AND rsc.unique_name NOT LIKE 'S%')
        OR (rsc.prcategory IN ('MOA-MSP','MOE-MSP') AND rsc.unique_name NOT LIKE 'U%')
        OR (rsc.prcategory  = 'MOE-MFE'             AND rsc.unique_name NOT LIKE 'C%')
        OR (rsc.prcategory  = 'MOA-MFE'             AND rsc.unique_name NOT LIKE 'C%')
   )
 UNION ALL
SELECT 'RES08-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active   = 1
   AND rsc.person_type = 301
   AND rsc.prusertext1 IS NULL
 UNION ALL
SELECT 'RES08-02' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 2
   AND rsc.unique_name    NOT LIKE 'ATGR%'
   AND rsc.last_name      NOT LIKE '%.ext'
  UNION ALL
SELECT 'RES09-01' numo_ref, resource_link || rsc.id AS lnk, 'La ressource ' || rsc.unique_name || '  est paramétrée de façon incorrecte' AS msg_erreur, 'Action corrective' AS msg_action
  FROM mcf_resources        rsc
 WHERE rsc.is_active             = 1
   AND rsc.ma_prj_typ_res        = 5
   AND (rsc.prprimaryroleid IS NULL OR rsc.prprimaryroleid NOT IN (SELECT id FROM mcf_resources WHERE is_active = 1))
 UNION ALL
SELECT 'FEU01-01' numo_ref, new_ui_timesheet_link || rsc.id || new_ui_period_id_link || ptp.prid AS lnk, 'La feuille de temps de la ressource ' || rsc.unique_name || ' est au statut soumise sur la période ouverte "' || TO_CHAR(ptp.prstart,'YYYY-MM-DD') || '"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM prtimesheet        pts
 INNER JOIN prtimeperiod  ptp ON ptp.prid = pts.prtimeperiodid
 INNER JOIN mcf_resources rsc ON rsc.id   = pts.prresourceid
 WHERE pts.prstatus = 1
   AND ptp.prisopen = 1
 UNION ALL
SELECT 'FEU01-02' numo_ref, new_ui_timesheet_link || rsc.id || new_ui_period_id_link || ptp.prid AS lnk, 'La feuille de temps de la ressource ' || rsc.unique_name || ' est au statut renvoyée avec une charge sur la période ouverte "' || TO_CHAR(ptp.prstart,'YYYY-MM-DD') || '"' AS msg_erreur, 'Action corrective' AS msg_action
  FROM prtimesheet        pts
 INNER JOIN prtimeperiod  ptp ON ptp.prid          = pts.prtimeperiodid
 INNER JOIN mcf_resources rsc ON rsc.id            = pts.prresourceid
 INNER JOIN prtimeentry   pte ON pte.prtimesheetid = pts.prid
 WHERE pts.prstatus = 2
   AND ptp.prisopen = 1
 GROUP BY new_ui_timesheet_link, rsc.id, new_ui_period_id_link, ptp.prid, rsc.unique_name, TO_CHAR(ptp.prstart, 'YYYY-MM-DD')
HAVING SUM(pte.practsum) > 0

 UNION ALL
SELECT numo_ref, (SELECT user_link FROM param) || id AS lnk, erreur AS msg_erreur, '' AS msg_action
 FROM (
  SELECT 'Utilisateur '|| user_name ||' dans le cas 1, date de dernière connexion '||last_logged_in_date||DECODE(last_logged_in_date,NULL,'nulle') AS erreur, 'LIC01-01' numo_ref, id, user_name, user_status_id, last_logged_in_date,
       lic_right_type, MAX(licence_priority) licence_priority
  FROM LIC01
 WHERE ma_prj_typ_res     IN (2, 1)
   AND lic_right_type      IN ('full', 'restricted')
   AND (last_logged_in_date IS NOT NULL AND last_logged_in_date < SYSDATE - 365) 
   AND user_status_id  = 202
   AND id NOT IN ( 
		SELECT csu.id
		  FROM cmn_sec_users        csu
     INNER JOIN srm_resources   rsc ON rsc.user_id      = csu.id
		 INNER JOIN prassignment    asg ON asg.prresourceid = rsc.id
		 INNER JOIN prtask          tsk ON tsk.prid         = asg.prtaskid
		 INNER JOIN inv_investments inv ON inv.id           = tsk.prprojectid
		 WHERE inv.is_active = 1
    )
   AND id IN ( 
      SELECT csu.id
        FROM cmn_sec_users              csu
       INNER JOIN srm_resources         rsc ON rsc.user_id       = csu.id
       INNER JOIN prassignment          asg ON asg.prresourceid  = rsc.id
       INNER JOIN prtask                tsk ON tsk.prid          = asg.prtaskid
	     INNER JOIN inv_investments       inv ON inv.id            = tsk.prprojectid
       INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
       INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'DAILYRESOURCEACTCURVE'
		-- WHERE inv.is_active = 1
       GROUP BY csu.id
		  HAVING MAX(slc.slice_date) <= SYSDATE - 183  
   ) 
   
 GROUP BY id, user_name, user_status_id, last_logged_in_date,
       lic_right_type
 /*UNION ALL
SELECT 'Utilisateur '|| user_name ||' dans le cas 2 avec dernière date de connexion '||last_logged_in_date||DECODE(last_logged_in_date,NULL,'nulle') AS erreur, 'LIC01-01' numo_ref, id, user_name, user_status_id, last_logged_in_date,
       lic_right_type, MAX(licence_priority) licence_priority
  FROM LIC01
 WHERE ma_prj_typ_res     IN (2, 1)
   AND lic_right_type      = 'restricted'
   AND last_logged_in_date < SYSDATE - 365
 GROUP BY id, user_name, user_status_id, last_logged_in_date,
       lic_right_type
 UNION ALL
SELECT 'Utilisateur '|| user_name ||' dans le cas 3 ne s''est jamais connecté (date de création : '||created_date||')' AS erreur, 'LIC01-01' numo_ref, id, user_name, user_status_id, last_logged_in_date,
       lic_right_type, MAX(licence_priority) licence_priority
  FROM LIC01
 WHERE lic_right_type      = 'restricted'
   AND last_logged_in_date IS NULL
   AND created_date         < ADD_MONTHS(SYSDATE, -6)
 GROUP BY id, user_name, user_status_id, last_logged_in_date,
       lic_right_type, created_date*/
UNION ALL
 SELECT 'Utilisateur '|| user_name ||' dans le cas 2, aucune connexion depuis sa création le '||created_date AS erreur, 'LIC01-01' numo_ref, id, user_name, user_status_id, last_logged_in_date,
       lic_right_type, MAX(licence_priority) licence_priority
  FROM LIC01
 WHERE ma_prj_typ_res     IN (2, 1)
   AND lic_right_type      IN ('full', 'restricted')
   AND last_logged_in_date IS NULL
   AND created_date < SYSDATE - 183
   --AND user_status_id  = 202
   AND id NOT IN ( 
		SELECT csu.id
		  FROM cmn_sec_users        csu
     INNER JOIN srm_resources   rsc ON rsc.user_id      = csu.id
		 INNER JOIN prassignment    asg ON asg.prresourceid = rsc.id
		 INNER JOIN prtask          tsk ON tsk.prid         = asg.prtaskid
		 INNER JOIN inv_investments inv ON inv.id           = tsk.prprojectid
		 WHERE inv.is_active = 1
    )
   AND id IN ( 
      SELECT csu.id
        FROM cmn_sec_users              csu
       INNER JOIN srm_resources         rsc ON rsc.user_id       = csu.id
       INNER JOIN prassignment          asg ON asg.prresourceid  = rsc.id
       INNER JOIN prtask                tsk ON tsk.prid          = asg.prtaskid
	     INNER JOIN inv_investments       inv ON inv.id            = tsk.prprojectid
       INNER JOIN prj_blb_slices        slc ON slc.prj_object_id = asg.prid
       INNER JOIN prj_blb_slicerequests slr ON slr.id            = slc.slice_request_id AND slr.request_name = 'DAILYRESOURCEACTCURVE'
	   WHERE inv.is_active = 1
       GROUP BY csu.id
		  HAVING MAX(slc.slice_date) <= SYSDATE - 183  
   ) 
   
 GROUP BY id, user_name, user_status_id, last_logged_in_date, created_date,
       lic_right_type
 
)     
 /* Resources - Fin */
) QRY
INNER JOIN odf_ca_ma_reg_gest octr ON octr.code        = QRY.numo_ref
CROSS JOIN param_filter       filt
WHERE (filt.objet     IS NULL OR octr.ma_objet     = filt.objet)
  AND (filt.controle  IS NULL OR octr.ma_controle  = filt.controle)
  AND (filt.acteur    IS NULL OR octr.ma_acteur    = filt.acteur)
  AND (filt.proprio   IS NULL OR octr.ma_proprio   = filt.proprio)
  AND (filt.criticite IS NULL OR octr.ma_criticite = filt.criticite)
  AND octr.ma_stat    =  1
) CTRL
WHERE @FILTER@]]></nsql>
            <attribute id="id" required="false"/>
            <attribute id="numo_ref" required="false"/>
            <attribute id="msg_erreur" required="false"/>
            <attribute id="msg_action" required="false"/>
            <attribute id="msg_extract" required="false"/>
            <attribute id="url_link" required="false"/>
            <attribute id="objet_code" required="false"/>
            <attribute id="objet" required="false"/>
            <attribute id="param_acteur" lookup="MA_CTRL_ACT" required="false">
              <nls languageCode="ca" name="param_acteur"/>
              <nls languageCode="cs" name="param_acteur"/>
              <nls languageCode="da" name="param_acteur"/>
              <nls languageCode="de" name="param_acteur"/>
              <nls languageCode="en" name="param_acteur"/>
              <nls languageCode="es" name="param_acteur"/>
              <nls languageCode="fi" name="param_acteur"/>
              <nls languageCode="fr" name="param_acteur"/>
              <nls languageCode="hu" name="param_acteur"/>
              <nls languageCode="it" name="param_acteur"/>
              <nls languageCode="ja" name="param_acteur"/>
              <nls languageCode="ko" name="param_acteur"/>
              <nls languageCode="nl" name="param_acteur"/>
              <nls languageCode="no" name="param_acteur"/>
              <nls languageCode="pl" name="param_acteur"/>
              <nls languageCode="pt" name="param_acteur"/>
              <nls languageCode="ru" name="param_acteur"/>
              <nls languageCode="sv" name="param_acteur"/>
              <nls languageCode="tr" name="param_acteur"/>
              <nls languageCode="zh" name="param_acteur"/>
              <nls languageCode="zh_TW" name="param_acteur"/>
            </attribute>
            <attribute id="param_criticite" lookup="MA_CTRL_CRIT" required="false">
              <nls languageCode="ca" name="param_criticite"/>
              <nls languageCode="cs" name="param_criticite"/>
              <nls languageCode="da" name="param_criticite"/>
              <nls languageCode="de" name="param_criticite"/>
              <nls languageCode="en" name="param_criticite"/>
              <nls languageCode="fi" name="param_criticite"/>
              <nls languageCode="fr" name="param_criticite"/>
              <nls languageCode="hu" name="param_criticite"/>
              <nls languageCode="ja" name="param_criticite"/>
              <nls languageCode="ko" name="param_criticite"/>
              <nls languageCode="no" name="param_criticite"/>
              <nls languageCode="pl" name="param_criticite"/>
              <nls languageCode="pt" name="param_criticite"/>
              <nls languageCode="ru" name="param_criticite"/>
              <nls languageCode="sv" name="param_criticite"/>
              <nls languageCode="tr" name="param_criticite"/>
              <nls languageCode="zh" name="param_criticite"/>
              <nls languageCode="zh_TW" name="param_criticite"/>
              <nls languageCode="es" name="param_criticite"/>
              <nls languageCode="it" name="param_criticite"/>
              <nls languageCode="nl" name="param_criticite"/>
            </attribute>
            <attribute id="param_proprio" lookup="MA_CTRL_REGLE" required="false">
              <nls languageCode="ca" name="param_proprio"/>
              <nls languageCode="cs" name="param_proprio"/>
              <nls languageCode="da" name="param_proprio"/>
              <nls languageCode="es" name="param_proprio"/>
              <nls languageCode="de" name="param_proprio"/>
              <nls languageCode="en" name="param_proprio"/>
              <nls languageCode="fi" name="param_proprio"/>
              <nls languageCode="fr" name="param_proprio"/>
              <nls languageCode="hu" name="param_proprio"/>
              <nls languageCode="it" name="param_proprio"/>
              <nls languageCode="ja" name="param_proprio"/>
              <nls languageCode="ko" name="param_proprio"/>
              <nls languageCode="nl" name="param_proprio"/>
              <nls languageCode="no" name="param_proprio"/>
              <nls languageCode="pl" name="param_proprio"/>
              <nls languageCode="pt" name="param_proprio"/>
              <nls languageCode="ru" name="param_proprio"/>
              <nls languageCode="sv" name="param_proprio"/>
              <nls languageCode="tr" name="param_proprio"/>
              <nls languageCode="zh" name="param_proprio"/>
              <nls languageCode="zh_TW" name="param_proprio"/>
            </attribute>
            <attribute id="param_controle" lookup="MA_CTRL_CTRL" required="false">
              <nls languageCode="ca" name="param_controle"/>
              <nls languageCode="cs" name="param_controle"/>
              <nls languageCode="fi" name="param_controle"/>
              <nls languageCode="fr" name="param_controle"/>
              <nls languageCode="it" name="param_controle"/>
              <nls languageCode="da" name="param_controle"/>
              <nls languageCode="de" name="param_controle"/>
              <nls languageCode="en" name="param_controle"/>
              <nls languageCode="es" name="param_controle"/>
              <nls languageCode="hu" name="param_controle"/>
              <nls languageCode="ja" name="param_controle"/>
              <nls languageCode="ko" name="param_controle"/>
              <nls languageCode="nl" name="param_controle"/>
              <nls languageCode="no" name="param_controle"/>
              <nls languageCode="pl" name="param_controle"/>
              <nls languageCode="pt" name="param_controle"/>
              <nls languageCode="ru" name="param_controle"/>
              <nls languageCode="sv" name="param_controle"/>
              <nls languageCode="tr" name="param_controle"/>
              <nls languageCode="zh" name="param_controle"/>
              <nls languageCode="zh_TW" name="param_controle"/>
            </attribute>
            <attribute id="param_objet" lookup="MA_CTRL_OBJ" required="false">
              <nls languageCode="ca" name="param_objet"/>
              <nls languageCode="cs" name="param_objet"/>
              <nls languageCode="da" name="param_objet"/>
              <nls languageCode="de" name="param_objet"/>
              <nls languageCode="en" name="param_objet"/>
              <nls languageCode="es" name="param_objet"/>
              <nls languageCode="fi" name="param_objet"/>
              <nls languageCode="fr" name="param_objet"/>
              <nls languageCode="hu" name="param_objet"/>
              <nls languageCode="it" name="param_objet"/>
              <nls languageCode="ja" name="param_objet"/>
              <nls languageCode="ko" name="param_objet"/>
              <nls languageCode="nl" name="param_objet"/>
              <nls languageCode="no" name="param_objet"/>
              <nls languageCode="pl" name="param_objet"/>
              <nls languageCode="pt" name="param_objet"/>
              <nls languageCode="ru" name="param_objet"/>
              <nls languageCode="sv" name="param_objet"/>
              <nls languageCode="tr" name="param_objet"/>
              <nls languageCode="zh" name="param_objet"/>
              <nls languageCode="zh_TW" name="param_objet"/>
            </attribute>
          </query>
        </queries>
       </contentPack>
    </NikuDataBus>
  