From 014a7be1ebb6d78ca04bb3ef3033b8090913757b Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Thu, 3 Dec 2020 11:11:59 +0100
Subject: [PATCH] FEAT #12026 TIME 0:35 Send date positions to MP

---
 .../controllers/MaarchParapheurController.php | 32 +++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
index 785be084a33..2b1b4b0b6e0 100755
--- a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
+++ b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
@@ -335,7 +335,21 @@ class MaarchParapheurController
                                     $signaturePositions = $step['signaturePositions'];
                                 }
                             }
-                            $workflow[(int)$step['sequence']] = ['userId' => $step['externalId'], 'mode' => $step['action'], 'signaturePositions' => $signaturePositions];
+                            $datePositions = null;
+                            if (!empty($step['datePositions']) && is_array($step['datePositions'])) {
+                                $valid = true;
+                                foreach ($step['datePositions'] as $keyDP => $datePosition) {
+                                    if (empty($signaturePosition['positionX']) || empty($signaturePosition['positionY']) || empty($signaturePosition['page'])) {
+                                        $valid = false;
+                                    } elseif (empty($signaturePosition['color']) || empty($signaturePosition['font']) || empty($signaturePosition['format']) || empty($signaturePosition['size'])) {
+                                        $valid = false;
+                                    }
+                                }
+                                if ($valid) {
+                                    $datePositions = $step['datePositions'];
+                                }
+                            }
+                            $workflow[(int)$step['sequence']] = ['userId' => $step['externalId'], 'mode' => $step['action'], 'signaturePositions' => $signaturePositions, 'datePositions' => $datePositions];
                         }
                     }
 
@@ -398,7 +412,21 @@ class MaarchParapheurController
                                     $signaturePositions = $step['signaturePositions'];
                                 }
                             }
-                            $workflow[(int)$step['sequence']] = ['userId' => $step['externalId'], 'mode' => $step['action'], 'signaturePositions' => $signaturePositions];
+                            $datePositions = null;
+                            if (!empty($step['datePositions']) && is_array($step['datePositions'])) {
+                                $valid = true;
+                                foreach ($step['datePositions'] as $keyDP => $datePosition) {
+                                    if (empty($signaturePosition['positionX']) || empty($signaturePosition['positionY']) || empty($signaturePosition['page'])) {
+                                        $valid = false;
+                                    } elseif (empty($signaturePosition['color']) || empty($signaturePosition['font']) || empty($signaturePosition['format']) || empty($signaturePosition['size'])) {
+                                        $valid = false;
+                                    }
+                                }
+                                if ($valid) {
+                                    $datePositions = $step['datePositions'];
+                                }
+                            }
+                            $workflow[(int)$step['sequence']] = ['userId' => $step['externalId'], 'mode' => $step['action'], 'signaturePositions' => $signaturePositions, 'datePositions' => $datePositions];
                         }
                     }
 
-- 
GitLab