Loading module/Import/src/Import/Service/SynchroService.php +17 −4 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ namespace Import\Service; use DateTime; use Doctrine\DBAL\ConnectionException; use Doctrine\DBAL\DBALException; use Doctrine\ORM\OptimisticLockException; use Import\Model\SynchroLog; use UnicaenApp\Exception\LogicException; use UnicaenApp\Exception\RuntimeException; Loading Loading @@ -54,11 +53,13 @@ class SynchroService throw new LogicException("Aucun service à synchroniser"); } // ajout en premier des appels de procédures permettant d'enregistrer certains changements durant la synchro $calls = $this->getProcedureCallsForStoringObservImportResults(); // détermination des appels de procédures de synchro à faire $calls = []; foreach ($this->services as $service => $params) { $sqlFilter = isset($params['sql_filter']) ? $params['sql_filter'] : []; $calls = array_merge($calls, $this->getImportProcedureCallsForService($service, $sqlFilter)); $calls = array_merge($calls, $this->getProcedureCallsForImportingService($service, $sqlFilter)); } // suppression des appels en double EN CONSERVANT LE DERNIER appel et non le premier $calls = array_reverse(array_unique(array_reverse($calls))); Loading Loading @@ -101,6 +102,18 @@ class SynchroService } } /** * Retourne les appels de procédures permettant d'enregistrer certains changements durant la synchro. * * @return string[] */ private function getProcedureCallsForStoringObservImportResults() { return [ 'APP_IMPORT.STORE_OBSERV_RESULTS();', ]; } /** * Retourne, pour un service donné, les appels ORDONNÉS de procédures de synchronisation à lancer. * Loading @@ -108,7 +121,7 @@ class SynchroService * @param string $sqlFilter * @return string[] */ private function getImportProcedureCallsForService($serviceName, $sqlFilter = null) private function getProcedureCallsForImportingService($serviceName, $sqlFilter = null) { $sqlFilterSnippet = $sqlFilter ? "'WHERE " . str_replace("'", "''", $sqlFilter) . "'" : ''; Loading Loading
module/Import/src/Import/Service/SynchroService.php +17 −4 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ namespace Import\Service; use DateTime; use Doctrine\DBAL\ConnectionException; use Doctrine\DBAL\DBALException; use Doctrine\ORM\OptimisticLockException; use Import\Model\SynchroLog; use UnicaenApp\Exception\LogicException; use UnicaenApp\Exception\RuntimeException; Loading Loading @@ -54,11 +53,13 @@ class SynchroService throw new LogicException("Aucun service à synchroniser"); } // ajout en premier des appels de procédures permettant d'enregistrer certains changements durant la synchro $calls = $this->getProcedureCallsForStoringObservImportResults(); // détermination des appels de procédures de synchro à faire $calls = []; foreach ($this->services as $service => $params) { $sqlFilter = isset($params['sql_filter']) ? $params['sql_filter'] : []; $calls = array_merge($calls, $this->getImportProcedureCallsForService($service, $sqlFilter)); $calls = array_merge($calls, $this->getProcedureCallsForImportingService($service, $sqlFilter)); } // suppression des appels en double EN CONSERVANT LE DERNIER appel et non le premier $calls = array_reverse(array_unique(array_reverse($calls))); Loading Loading @@ -101,6 +102,18 @@ class SynchroService } } /** * Retourne les appels de procédures permettant d'enregistrer certains changements durant la synchro. * * @return string[] */ private function getProcedureCallsForStoringObservImportResults() { return [ 'APP_IMPORT.STORE_OBSERV_RESULTS();', ]; } /** * Retourne, pour un service donné, les appels ORDONNÉS de procédures de synchronisation à lancer. * Loading @@ -108,7 +121,7 @@ class SynchroService * @param string $sqlFilter * @return string[] */ private function getImportProcedureCallsForService($serviceName, $sqlFilter = null) private function getProcedureCallsForImportingService($serviceName, $sqlFilter = null) { $sqlFilterSnippet = $sqlFilter ? "'WHERE " . str_replace("'", "''", $sqlFilter) . "'" : ''; Loading