From 94cb216945be78ee29ff222a4330f36cb132d2bd Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Tue, 25 Sep 2018 15:02:01 +0100
Subject: [PATCH] FIX #8402 get docserver_id from attachment himself

---
 modules/attachments/attachments_content.php | 58 ++++++++++++++-------
 1 file changed, 39 insertions(+), 19 deletions(-)

diff --git a/modules/attachments/attachments_content.php b/modules/attachments/attachments_content.php
index 62b5a587a10..1b1b0b73558 100755
--- a/modules/attachments/attachments_content.php
+++ b/modules/attachments/attachments_content.php
@@ -119,7 +119,8 @@ if (isset($_POST['add']) && $_POST['add']) {
                     } else {
                         //CHECK DOCSERVER SPACE
                         $newSize = $docserverControler->checkSize(
-                            $docserver, $_SESSION['upfile'][$numAttach]['size']
+                            $docserver,
+                            $_SESSION['upfile'][$numAttach]['size']
                         );
                         if ($newSize == 0) {
                             $error = _DOCSERVER_ERROR.' : '._NOT_ENOUGH_DISK_SPACE.'. '._MORE_INFOS; ?>
@@ -144,7 +145,8 @@ if (isset($_POST['add']) && $_POST['add']) {
                                 //SAVE FILE ON DOCSERVER
                                 $storeResult = array();
                                 $storeResult = $docserverControler->storeResourceOnDocserver(
-                                    $_SESSION['collection_id_choice'], $fileInfos
+                                    $_SESSION['collection_id_choice'],
+                                    $fileInfos
                                 );
                                 if ($attachment_types == 'outgoing_mail' && strpos($fileInfos['format'], 'xl') === false && strpos($fileInfos['format'], 'ppt') === false) {
                                     $_SESSION['upfile'][$numAttach]['outgoingMail'] = true;
@@ -436,8 +438,10 @@ if (isset($_POST['add']) && $_POST['add']) {
                                     $error = $resAttach->get_error();
                                 } else {
                                     // Delete temporary backup
-                                    $db->query("DELETE FROM res_attachments WHERE res_id = ? and status = 'TMP' and typist = ?",
-                                                    array($_SESSION['attachmentInfo'][$attachNum]['inProgressResId'], $_SESSION['user']['UserId']));
+                                    $db->query(
+                                        "DELETE FROM res_attachments WHERE res_id = ? and status = 'TMP' and typist = ?",
+                                        array($_SESSION['attachmentInfo'][$attachNum]['inProgressResId'], $_SESSION['user']['UserId'])
+                                    );
 
                                     if ($_SESSION['history']['attachadd'] == 'true') {
                                         $hist = new history();
@@ -445,7 +449,10 @@ if (isset($_POST['add']) && $_POST['add']) {
                                             $_SESSION['collection_id_choice']
                                         );
                                         $hist->add(
-                                            $view, $_SESSION['doc_id'], 'ADD', 'attachadd',
+                                            $view,
+                                            $_SESSION['doc_id'],
+                                            'ADD',
+                                            'attachadd',
                                             ucfirst(_DOC_NUM).$id.' '
                                             ._NEW_ATTACH_ADDED.' '._TO_MASTER_DOCUMENT
                                             .$_SESSION['doc_id'],
@@ -454,7 +461,10 @@ if (isset($_POST['add']) && $_POST['add']) {
                                         );
                                         $content = _NEW_ATTACH_ADDED;
                                         $hist->add(
-                                            RES_ATTACHMENTS_TABLE, $id, 'ADD', 'attachadd',
+                                            RES_ATTACHMENTS_TABLE,
+                                            $id,
+                                            'ADD',
+                                            'attachadd',
                                             $content.' ('.$title
                                             .') ',
                                             $_SESSION['config']['databasetype'],
@@ -514,7 +524,7 @@ if (isset($_POST['add']) && $_POST['add']) {
     }
     exit();
 
-    //BEGIN EDIT ATTACHMENT VALIDATE BUTTTON
+//BEGIN EDIT ATTACHMENT VALIDATE BUTTTON
 } elseif (isset($_POST['edit']) && $_POST['edit']) {
     $resAttach = new resource();
     $status = 0;
@@ -557,7 +567,8 @@ if (isset($_POST['add']) && $_POST['add']) {
         $storeResult = array();
 
         $storeResult = $docserverControler->storeResourceOnDocserver(
-            $_SESSION['collection_id_choice'], $fileInfos
+            $_SESSION['collection_id_choice'],
+            $fileInfos
         );
 
         if (isset($storeResult['error']) && $storeResult['error'] != '') {
@@ -756,7 +767,8 @@ if (isset($_POST['add']) && $_POST['add']) {
                 $storeResult['destination_dir'],
                 $storeResult['file_destination_name'],
                 $storeResult['path_template'],
-                $storeResult['docserver_id'], $_SESSION['data'],
+                $storeResult['docserver_id'],
+                $_SESSION['data'],
                 $_SESSION['config']['databasetype']
             );
 
@@ -799,16 +811,16 @@ if (isset($_POST['add']) && $_POST['add']) {
         //IF FILE IS EDITED
         if ($_SESSION['upfile'][0]['upAttachment'] != false) {
             //RETRIEVE CURRENT ATTACHMENT FILE
+            $stmt = $db->query('SELECT fingerprint, docserver_id FROM res_view_attachments WHERE '.$column_res." = ? and res_id_master = ? and status <> 'OBS'", array($_REQUEST['res_id'], $_SESSION['doc_id']));
+            $res = $stmt->fetchObject();
+
             require_once 'core/class/docserver_types_controler.php';
             require_once 'core/docservers_tools.php';
             $docserverTypeControler = new docserver_types_controler();
-            $docserverInfo = $docserverControler->getDocserverToInsert($collId);
-            $docserver = $docserverControler->get($docserverInfo->docserver_id);
-            $docserverTypeObject = $docserverTypeControler->get($docserver->docserver_type_id);
-
+            $docserver              = $docserverControler->get($res->docserver_id);
+            $docserverTypeObject    = $docserverTypeControler->get($docserver->docserver_type_id);
+            
             //HASH OLD AND NEW ATTACHMENT FILE
-            $stmt = $db->query('SELECT fingerprint FROM res_view_attachments WHERE '.$column_res." = ? and res_id_master = ? and status <> 'OBS'", array($_REQUEST['res_id'], $_SESSION['doc_id']));
-            $res = $stmt->fetchObject();
             $NewHash = Ds_doFingerprint($_SESSION['upfile'][0]['tmp_name'], $docserverTypeObject->fingerprint_mode);
             $OriginalHash = $res->fingerprint;
 
@@ -824,7 +836,8 @@ if (isset($_POST['add']) && $_POST['add']) {
                 );
                 $storeResult = array();
                 $storeResult = $docserverControler->storeResourceOnDocserver(
-                    $_SESSION['collection_id_choice'], $fileInfos
+                    $_SESSION['collection_id_choice'],
+                    $fileInfos
                 );
                 if (isset($storeResult['error']) && $storeResult['error'] != '') {
                     $error = $storeResult['error'];
@@ -846,7 +859,8 @@ if (isset($_POST['add']) && $_POST['add']) {
                     $set_update .= ', path = :path';
                     $set_update .= ', filename = :filename';
                     $set_update .= ', docserver_id = :docserver_id';
-                    $arrayPDO = array_merge($arrayPDO,
+                    $arrayPDO = array_merge(
+                        $arrayPDO,
                         array(':fingerprint' => $fingerprint,
                                 ':filesize' => $filesize,
                                 ':path' => $storeResult['destination_dir'],
@@ -939,7 +953,10 @@ if (isset($_POST['add']) && $_POST['add']) {
                 $_SESSION['collection_id_choice']
             );
             $hist->add(
-                $view, $_SESSION['doc_id'], 'UP', 'attachup',
+                $view,
+                $_SESSION['doc_id'],
+                'UP',
+                'attachup',
                 ucfirst(_DOC_NUM).$id.' '
                 ._ATTACH_UPDATED,
                 $_SESSION['config']['databasetype'],
@@ -947,7 +964,10 @@ if (isset($_POST['add']) && $_POST['add']) {
             );
             $content = _ATTACH_UPDATED;
             $hist->add(
-                RES_ATTACHMENTS_TABLE, $id, 'UP', 'attachup',
+                RES_ATTACHMENTS_TABLE,
+                $id,
+                'UP',
+                'attachup',
                 $_SESSION['info'].' ('.$title
                 .') ',
                 $_SESSION['config']['databasetype'],
-- 
GitLab