Commit 9134fbc7 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Synchro : la colonne 'source_id' peut être présente dans la table/vue source.

parent 1ac56607
Loading
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGELOG.md: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
Changelog
=========

5.2.2
-----
- [FIX] Synchro : la colonne 'source_id' peut être présente dans la table/vue source.

5.2.1
-----
- [FIX] Dysfonctionnement total de la synchro avec table intermédiaire lorsque le 'code' de la source est spécifié dans la config
+12 −2
Changes for src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.php: 12 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -342,6 +342,8 @@ EOT;
        $diffViewName = $this->generateDiffViewName($destinationTable);
        $now = $this->platform->getNowExpression();

        $sourceIdExistsInColumns = in_array('source_id', $columns) || in_array('SOURCE_ID', $columns);

        $useSequenceForId = true;
        if ($idColumnSequence === false) {
            // si false est spécifié comme nom de séquence pour la colonne 'id', le type de cette colonne devra être
@@ -358,11 +360,15 @@ EOT;

        // génération des noms de colonnes de la table destination pour l'INSERT.
        $destinationColumns = $columns;
        if (!$sourceIdExistsInColumns) {
            array_unshift($destinationColumns,
                'source_id',
            );
        }
        array_unshift($destinationColumns,
            $createdOnCol,
            $createdByCol,
            $sourceCodeColumn,
            'source_id',
        );
        if ($useSequenceForId) {
            array_unshift($destinationColumns,
@@ -374,11 +380,15 @@ EOT;
        $selectExpressions = array_map(function (string $columnName) {
            return Synchro::V_DIFF_SRC_COLUMN_PREFIX . strtoupper($columnName);
        }, $columns);
        if (!$sourceIdExistsInColumns) {
            array_unshift($destinationColumns,
                'source_id',
            );
        }
        array_unshift($selectExpressions,
            $now,
            $createdByValue !== null ? $createdByValue : 'NULL',
            $sourceCodeColumn,
            'source_id',
        );
        if ($useSequenceForId) {
            $idExpr = $this->generateSQLForSequenceNextVal($idColumnSequence);