From b0eafd7dcb9e1159f47f3f06ac701b9bd3fd3429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr> Date: Fri, 2 Oct 2020 14:02:22 +0200 Subject: [PATCH] Correction de bug sur la gestion des dates --- admin/actions/test.php | 2 +- admin/src/BddAdmin/Driver/Oracle/Driver.php | 6 ++---- admin/src/BddAdmin/Table.php | 6 +++--- admin/src/DataGen.php | 6 +++--- data/ddl_config.php | 7 ++----- data/nomenclatures.php | 8 ++++---- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/admin/actions/test.php b/admin/actions/test.php index 1fd9848ffe..840733ef29 100644 --- a/admin/actions/test.php +++ b/admin/actions/test.php @@ -1,4 +1,4 @@ <?php -$bdd = $oa->getBdd(); +$oa->exec('UnicaenTbl build-procedures'); \ No newline at end of file diff --git a/admin/src/BddAdmin/Driver/Oracle/Driver.php b/admin/src/BddAdmin/Driver/Oracle/Driver.php index 1d6070477d..04c1789e29 100644 --- a/admin/src/BddAdmin/Driver/Oracle/Driver.php +++ b/admin/src/BddAdmin/Driver/Oracle/Driver.php @@ -67,7 +67,7 @@ class Driver implements DriverInterface throw $this->sendException($error); } - $this->exec('ALTER SESSION SET NLS_DATE_FORMAT = \'yyyy-mm-dd\''); + $this->exec('ALTER SESSION SET NLS_DATE_FORMAT = \'yyyy-mm-dd hh24:mi:ss\''); $this->exec('ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = \'yyyy-mm-dd"T"hh24:mi:ss\''); $this->exec('ALTER SESSION SET NLS_NUMERIC_CHARACTERS=". "'); @@ -335,10 +335,8 @@ class Driver implements DriverInterface case Bdd::TYPE_STRING: return (string)$variable; case Bdd::TYPE_DATE: - $date = \DateTime::createFromFormat('Y-m-d', $variable); + $date = \DateTime::createFromFormat('Y-m-d H:i:s', $variable); if ($date instanceof \DateTime) { - $date->setTime(0, 0, 0); - return $date; } else { return $variable; diff --git a/admin/src/BddAdmin/Table.php b/admin/src/BddAdmin/Table.php index aac7796ccc..efb78871db 100644 --- a/admin/src/BddAdmin/Table.php +++ b/admin/src/BddAdmin/Table.php @@ -455,8 +455,8 @@ class Table foreach ($old as $c => $ov) { $newc = isset($new[$c]) ? $new[$c] : null; $oldc = isset($old[$c]) ? $old[$c] : null; - if ($newc instanceof \DateTime) $newc = $newc->format('Y-m-d'); - if ($oldc instanceof \DateTime) $oldc = $oldc->format('Y-m-d'); + if ($newc instanceof \DateTime) $newc = $newc->format('Y-m-d H:i:s'); + if ($oldc instanceof \DateTime) $oldc = $oldc->format('Y-m-d H:i:s'); if ($newc != $oldc && array_key_exists($c, $new) && $c != 'ID') { $ok = empty($options['update-cols']); // OK par défaut si une liste n'a pas été établie manuellement @@ -507,7 +507,7 @@ class Table foreach ($keyArray as $v) { if ($keyVal != '') $keyVal .= '_'; if ($v instanceof \DateTime) { - $keyVal .= $v->format('Y-m-d'); + $keyVal .= $v->format('Y-m-d-H-i-s'); } else { $keyVal .= (string)$v; } diff --git a/admin/src/DataGen.php b/admin/src/DataGen.php index 892cd0322c..f9d9045b03 100644 --- a/admin/src/DataGen.php +++ b/admin/src/DataGen.php @@ -450,7 +450,7 @@ class DataGen foreach ($data as $i => $line) { foreach ($line as $col => $val) { if (isset($ddl['columns'][$col]) && $ddl['columns'][$col]['type'] == \BddAdmin\Bdd::TYPE_DATE && !empty($val) && is_string($val)) { - $data[$i][$col] = \DateTime::createFromFormat('Y-m-d', $val); + $data[$i][$col] = \DateTime::createFromFormat('Y-m-d H:i:s', $val); } } @@ -492,8 +492,8 @@ class DataGen { $annees = []; for ($a = 1950; $a < 2100; $a++) { - $dateDebut = \DateTime::createFromFormat('Y-m-d:H:i:s', $a . '-09-01:00:00:00'); - $dateFin = \DateTime::createFromFormat('Y-m-d:H:i:s', ($a + 1) . '-08-31:00:00:00'); + $dateDebut = \DateTime::createFromFormat('Y-m-d H:i:s', $a . '-09-01 00:00:00'); + $dateFin = \DateTime::createFromFormat('Y-m-d H:i:s', ($a + 1) . '-08-31 00:00:00'); $anneeRef = $this->getAnneeCourante(); $active = ($a >= $anneeRef && $a < $anneeRef + 3); diff --git a/data/ddl_config.php b/data/ddl_config.php index 709e848e88..2f2e996408 100644 --- a/data/ddl_config.php +++ b/data/ddl_config.php @@ -9,8 +9,8 @@ return [ ]], 'materialized-view' => ['includes' => [ - - ]], + + ], 'excludes' => ['MV_EXT_SERVICE']], 'view' => ['includes' => [ ]], @@ -22,8 +22,5 @@ return [ ]], 'sequence' => ['includes' => [ - ]], - 'materialized-view' => ['includes' => [ - ]], ]; \ No newline at end of file diff --git a/data/nomenclatures.php b/data/nomenclatures.php index 94123bf87f..1370386a81 100644 --- a/data/nomenclatures.php +++ b/data/nomenclatures.php @@ -483,14 +483,14 @@ return [ [ 'ID' => 1, 'VALEUR' => 40.91, - 'HISTO_CREATION' => '2010-07-01', - 'HISTO_MODIFICATION' => '2014-06-25', + 'HISTO_CREATION' => '2010-07-01 00:00:00', + 'HISTO_MODIFICATION' => '2014-06-25 00:00:00', ], [ 'ID' => 2, 'VALEUR' => 41.41, - 'HISTO_CREATION' => '2017-04-28', - 'HISTO_MODIFICATION' => '2017-04-28', + 'HISTO_CREATION' => '2017-04-28 00:00:00', + 'HISTO_MODIFICATION' => '2017-04-28 00:00:00', ], ], -- GitLab