From eb8c969db2748531b148e777b8e3c3a78d4a7d0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Tue, 10 May 2016 13:19:57 +0000
Subject: [PATCH] =?UTF-8?q?Ajout=20du=20script=20d'initialisation=20dans?=
 =?UTF-8?q?=20le=20r=C3=A9pertoire=20data?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 data/module.sql                               | 114 ++++++++++++++++++
 src/UnicaenImport/Service/AbstractService.php |   2 +-
 2 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 data/module.sql

diff --git a/data/module.sql b/data/module.sql
new file mode 100644
index 0000000..0b41f55
--- /dev/null
+++ b/data/module.sql
@@ -0,0 +1,114 @@
+CREATE TABLE SYNC_LOG
+(
+  ID NUMBER(*, 0) NOT NULL
+, DATE_SYNC TIMESTAMP(6) NOT NULL
+, MESSAGE CLOB NOT NULL
+, TABLE_NAME VARCHAR2(30 CHAR)
+, SOURCE_CODE VARCHAR2(200 CHAR)
+, CONSTRAINT SYNC_LOG_PK PRIMARY KEY (ID)
+  USING INDEX (CREATE UNIQUE INDEX SYNC_LOG_PK ON SYNC_LOG (ID ASC)) ENABLE
+);
+
+/
+
+create or replace PACKAGE UNICAEN_IMPORT AS
+
+  PROCEDURE set_current_user(p_current_user IN INTEGER);
+  FUNCTION get_current_user return INTEGER;
+
+  FUNCTION get_current_annee RETURN INTEGER;
+  PROCEDURE set_current_annee (p_current_annee INTEGER);
+
+  FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB;
+  PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL );
+
+  -- AUTOMATIC GENERATION --
+
+  -- END OF AUTOMATIC GENERATION --
+END UNICAEN_IMPORT;
+
+/
+
+create or replace PACKAGE BODY UNICAEN_IMPORT AS
+
+  v_current_user INTEGER;
+  v_current_annee INTEGER;
+
+
+
+  FUNCTION get_current_user RETURN INTEGER IS
+  BEGIN
+    IF v_current_user IS NULL THEN
+      v_current_user := NULL; -- A remplacer par l'utilisateur (ID de la table USER) qui sera le créateur ou le modificateur des données
+    END IF;
+    RETURN v_current_user;
+  END get_current_user;
+
+  PROCEDURE set_current_user (p_current_user INTEGER) is
+  BEGIN
+    v_current_user := p_current_user;
+  END set_current_user;
+
+
+
+  FUNCTION get_current_annee RETURN INTEGER IS
+  BEGIN
+    IF v_current_annee IS NULL THEN
+      v_current_annee := NULL; -- A remplacer par l'année d'import souhaitée (si vous avez de l'annualisation de prévue dans votre BDD)
+    END IF;
+    RETURN v_current_annee;
+  END get_current_annee;
+
+  PROCEDURE set_current_annee (p_current_annee INTEGER) IS
+  BEGIN
+    v_current_annee := p_current_annee;
+  END set_current_annee;
+
+
+
+  FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB IS
+  BEGIN
+    IF sql_criterion <> '' OR sql_criterion IS NOT NULL THEN
+      RETURN sql_criterion;
+    END IF;
+    RETURN '';
+    /* Exemple d'usage :
+
+    RETURN CASE table_name
+      WHEN 'INTERVENANT' THEN -- Met à jour toutes les données sauf le statut, qui sera traité à part
+        'WHERE IMPORT_ACTION IN (''delete'',''update'',''undelete'')'
+
+      WHEN 'AFFECTATION_RECHERCHE' THEN
+        'WHERE INTERVENANT_ID IS NOT NULL'
+
+      WHEN 'ADRESSE_INTERVENANT' THEN
+        'WHERE INTERVENANT_ID IS NOT NULL'
+
+      WHEN 'ELEMENT_TAUX_REGIMES' THEN
+        'WHERE IMPORT_ACTION IN (''delete'',''insert'',''undelete'')'
+
+      ELSE
+        ''
+    END;*/
+  END;
+
+
+
+  PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ) IS
+  BEGIN
+    INSERT INTO OSE.SYNC_LOG("ID","DATE_SYNC","MESSAGE","TABLE_NAME","SOURCE_CODE") VALUES (SYNC_LOG_ID_SEQ.NEXTVAL, SYSDATE, message,table_name,source_code);
+  END SYNC_LOG;
+
+
+
+  FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS
+  BEGIN
+    IF REGEXP_LIKE(CHAMPS, '(^|,)[ \t\r\n\v\f]*' || VALEUR || '[ \t\r\n\v\f]*(,|$)') THEN RETURN 1; END IF;
+    RETURN 0;
+  END;
+
+
+  -- AUTOMATIC GENERATION --
+
+  -- END OF AUTOMATIC GENERATION --
+END UNICAEN_IMPORT;
\ No newline at end of file
diff --git a/src/UnicaenImport/Service/AbstractService.php b/src/UnicaenImport/Service/AbstractService.php
index 50c13ac..d03305a 100644
--- a/src/UnicaenImport/Service/AbstractService.php
+++ b/src/UnicaenImport/Service/AbstractService.php
@@ -68,7 +68,7 @@ class AbstractService implements ServiceLocatorAwareInterface, EntityManagerAwar
             case 'double':
                 return (string)$value;
             case 'array':
-                return '(' . implode(',', array_map('Import\Service\Service::escape', $value)) . ')';
+                return '(' . implode(',', array_map(__class__.'::escape', $value)) . ')';
         }
         throw new Exception('La valeur transmise ne peut pas être convertie en SQL');
     }
-- 
GitLab