]> _ Git - grandvision-ranking.git/commitdiff
wait #4406 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 4 May 2021 14:31:22 +0000 (16:31 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 4 May 2021 14:31:22 +0000 (16:31 +0200)
app/Models/FeedbackProcess.php
resources/js/app.js

index 09731f744388e562242b8fdb8d2df40a51f1208c..e657280be719c60ee5d3b7f967c8f434451563d0 100644 (file)
@@ -152,11 +152,12 @@ class FeedbackProcess
 
     public function process()
     {
-        PHP::neverStop(false);
+        //PHP::neverStop(false);
         // Open feedbacks
         $feedbackSheets = [];
         foreach ($this->getFeedbacks() as $feedback) {
             $reader = new Xlsx();
+            $reader->setReadDataOnly(true);
             $xlsx = $reader->load($feedback);
             foreach ($xlsx->getAllSheets() as $sheet) {
                 if ($sheet->getSheetState() !== Worksheet::SHEETSTATE_VISIBLE) {
@@ -171,7 +172,12 @@ class FeedbackProcess
         }
 
         $reader = new Xlsx();
-        $template = $reader->load($this->getTemplate());
+        try {
+            $template = $reader->load($this->getTemplate());
+        } catch (\Exception $e) {
+            $reader->setReadDataOnly(true);
+            $template = $reader->load($this->getTemplate());
+        }
         foreach ($template->getAllSheets() as $sheet) {
             if ($sheet->getSheetState() !== Worksheet::SHEETSTATE_VISIBLE) {
                 continue;
@@ -196,6 +202,11 @@ class FeedbackProcess
         return mb_strtolower(trim($sheet->getCellByColumnAndRow(1, 1)->getValue()));
     }
 
+    /**
+     * @param $sheet Worksheet
+     * @return int
+     * @throws \Exception
+     */
     protected function _getHeadersRow($sheet)
     {
         $highestRow = $sheet->getHighestRow();
@@ -205,6 +216,9 @@ class FeedbackProcess
                 break;
             }
         }
+        if (!isset($headersRow)) {
+            return null;
+        }
         return $headersRow;
     }
 
@@ -235,6 +249,9 @@ class FeedbackProcess
         // Find header row
         $highestRow = $templateSheet->getHighestRow();
         $headersRow = $this->_getHeadersRow($templateSheet);
+        if (null === $headersRow) {
+            return;
+        }
         $templateMaxCol = $this->_getMaxCol($templateSheet);
 
         // Add ranking column
@@ -266,6 +283,10 @@ class FeedbackProcess
             $maxrow = $feedback->getHighestRow();
             for ($j = $hr + 1; $j <= $maxrow; $j++) {
                 $ean = trim($feedback->getCellByColumnAndRow($eanCol, $j)->getValue());
+                if (null === $ean || $ean === '') {
+                    break;
+                }
+
                 if (!isset($merged[$ean])) {
                     $merged[$ean] = [];
                 }
@@ -275,6 +296,9 @@ class FeedbackProcess
                         $v = '';
                     }
                     $v = trim($v);
+                    if ($v === '' && isset($merged[$ean][$i - $startCol])) {
+                        continue;
+                    }
                     $merged[$ean][$i - $startCol] = $v;
                 }
             }
@@ -429,19 +453,32 @@ class FeedbackProcess
         foreach ($templateSheet->getDrawingCollection() as $drawing) {
             if ($drawing instanceof Drawing) {
                 $dim = getimagesize($drawing->getPath());
-                $drawing->setResizeProportional(false);
-                $drawing->setWidth($dim[0]);
-                $drawing->setHeight($dim[1]);
-                $drawing->setResizeProportional(true);
-                $drawing->setWidth(300);
+                if (false === $dim) {
+                    $e = explode('.', $drawing->getPath());
+                    $ext = array_pop($e);
+                    $hash = md5($drawing->getPath());
+                    $tmp = '/tmp/' . $hash . '.' . $ext;
+                    $converted = '/tmp/' . $hash . '.png';
+                    copy($drawing->getPath(), $tmp);
+                    $cmd = "inkscape -e $converted $tmp";
+                    `$cmd`;
+                    $drawing->setPath($converted);
+                    // $dim = getimagesize($converted);
+                }
+//                $drawing->setResizeProportional(false);
+//                $drawing->setWidth($dim[0]);
+//                $drawing->setHeight($dim[1]);
+//                $drawing->setResizeProportional(true);
+//                $drawing->setWidth(300);
+
             } else {
-                $drawing->setResizeProportional(false);
-                $drawing->setWidth(300);
-                $drawing->setHeight(80);
-                $drawing->setResizeProportional(true);
+//                $drawing->setResizeProportional(false);
+//                $drawing->setWidth(300);
+//                $drawing->setHeight(80);
+//                $drawing->setResizeProportional(true);
             }
-            $drawing->setOffsetX(0);
-            $drawing->setOffsetY(0);
+//            $drawing->setOffsetX(0);
+//            $drawing->setOffsetY(0);
 
         }
 
index 72e91b1c5d56be336ac1b4ead601dc6d2ac8286a..1e5f653b655a2891ae211eba22f01ab7b0c0781c 100644 (file)
@@ -89,6 +89,10 @@ $(function () {
             $(".submit").attr('value', 'Envoyer');
             $("#wait").hide();
             window.location = '/download?session=' + session;
+        }).fail(function () {
+            alert('Une erreur s\'est produite lors du traitement');
+            $(".submit").attr('value', 'Renvoyer');
+            $("#wait").hide();
         });
         return false;
     });