diff --git a/modules/basket/view_baskets.php b/modules/basket/view_baskets.php
index 1c429134c5218e03dee6f9a6e38a5207c6c995a6..b2116ef28a3529bd2cac5efa2ad049f6d23380ee 100755
--- a/modules/basket/view_baskets.php
+++ b/modules/basket/view_baskets.php
@@ -70,7 +70,9 @@ if (empty($_GET['defaultAction'])) {
     $_GET['defaultAction'] = $_SESSION['current_basket']['default_action'];
 }
 
-if (!empty($_GET['resId'])) {
+if (empty($_GET['resId'])) {
+    $_GET['resId'] = "'none'";
+} elseif (!empty($_GET['resId'])) {
     require_once('core/class/class_security.php');
     $security = new security();
     $aResId = explode(',', $_GET['resId']);
@@ -81,10 +83,6 @@ if (!empty($_GET['resId'])) {
     }
 }
 
-if (empty($_GET['resId'])) {
-    $_GET['resId'] = "'none'";
-}
-
 $_SESSION['urlV2Basket'] = $_GET;
 echo '<script language="javascript">';
 if (!empty($_GET['backToBasket'])) {
diff --git a/rest/index.php b/rest/index.php
index 62e8483046dc628ba1a84f95c178aee38542e151..c259f4b10dc5de09ce6f4f814ed389202f4f1d8e 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -253,7 +253,7 @@ $app->post('/res', \Resource\controllers\ResController::class . ':createRes');
 $app->post('/resExt', \Resource\controllers\ResController::class . ':createExt');
 $app->get('/res/{resId}/content', \Resource\controllers\ResController::class . ':getFileContent');
 $app->get('/res/{resId}/thumbnail', \Resource\controllers\ResController::class . ':getThumbnailContent');
-$app->get('/res/{resId}/acknowledgementReceipt/{id}', \Resource\controllers\ResController::class . ':getAcknowledgementReceipt');
+$app->get('/res/{resId}/acknowledgementReceipt/{id}', \AcknowledgementReceipt\controllers\AcknowledgementReceiptController::class . ':getAcknowledgementReceipt');
 $app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus');
 $app->post('/res/list', \Resource\controllers\ResController::class . ':getList');
 $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById');
diff --git a/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php b/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php
index 7283fa31b26bee2a16329b664f149114d9eca189..2ac14e64c22aeabd3559c7fc067149eb2bec48c1 100644
--- a/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php
+++ b/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php
@@ -14,25 +14,26 @@
 
 namespace AcknowledgementReceipt\controllers;
 
-use setasign\Fpdi\Tcpdf\Fpdi;
-use AcknowledgementReceipt\models\AcknowledgementReceiptModel;
-use SrcCore\controllers\PreparedClauseController;
+use Slim\Http\Request;
+use Slim\Http\Response;
 use User\models\UserModel;
-use Basket\models\BasketModel;
 use Resource\models\ResModel;
-use Resource\controllers\ResController;
+use setasign\Fpdi\Tcpdf\Fpdi;
+use Basket\models\BasketModel;
+use Entity\models\EntityModel;
+use Contact\models\ContactModel;
+use Respect\Validation\Validator;
+use SrcCore\models\DatabaseModel;
+use Template\models\TemplateModel;
+use Doctype\models\DoctypeExtModel;
 use Docserver\models\DocserverModel;
+use Resource\controllers\ResController;
 use Docserver\models\DocserverTypeModel;
 use Resource\controllers\StoreController;
-use Slim\Http\Request;
-use Slim\Http\Response;
-use Respect\Validation\Validator;
+use History\controllers\HistoryController;
 use Resource\controllers\ResourceListController;
-use Contact\models\ContactModel;
-use SrcCore\models\DatabaseModel;
-use Doctype\models\DoctypeExtModel;
-use Template\models\TemplateModel;
-use Entity\models\EntityModel;
+use SrcCore\controllers\PreparedClauseController;
+use AcknowledgementReceipt\models\AcknowledgementReceiptModel;
 
 class AcknowledgementReceiptController
 {
@@ -307,4 +308,66 @@ class AcknowledgementReceiptController
 
         return $response->withJson(['sendEmail' => $sendEmail, 'sendPaper' => $sendPaper, 'noSendAR' => $noSendAR, 'alreadySend' => $alreadySend, 'alreadyGenerated' => $alreadyGenerated]);
     }
+
+    public function getAcknowledgementReceipt(Request $request, Response $response, array $aArgs)
+    {
+        if (!Validator::intVal()->validate($aArgs['resId']) || !ResController::hasRightByResId(['resId' => $aArgs['resId'], 'userId' => $GLOBALS['userId']])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']);
+        }
+
+        $mainDocument = ResModel::getById(['select' => ['docserver_id', 'path', 'filename', 'fingerprint'], 'resId' => $aArgs['resId']]);
+        $extDocument = ResModel::getExtById(['select' => ['category_id', 'alt_identifier'], 'resId' => $aArgs['resId']]);
+        if (empty($mainDocument) || empty($extDocument)) {
+            return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']);
+        }
+
+        $document = AcknowledgementReceiptModel::getByIds([
+            'select'  => ['docserver_id', 'path', 'filename', 'fingerprint'],
+            'ids'      => [$aArgs['id']]
+        ]);
+
+        $docserver = DocserverModel::getByDocserverId(['docserverId' => $document[0]['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]);
+        if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']);
+        }
+
+        $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document[0]['path']) . $document[0]['filename'];
+
+        if (!file_exists($pathToDocument)) {
+            return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']);
+        }
+
+        $fingerprint = StoreController::getFingerPrint(['filePath' => $pathToDocument]);
+        if (!empty($document[0]['fingerprint']) && $document[0]['fingerprint'] != $fingerprint) {
+            return $response->withStatus(400)->withJson(['errors' => 'Fingerprints do not match']);
+        }
+
+        $fileContent = file_get_contents($pathToDocument);
+
+        if ($fileContent === false) {
+            return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']);
+        }
+
+        $finfo    = new \finfo(FILEINFO_MIME_TYPE);
+        $mimeType = $finfo->buffer($fileContent);
+        $pathInfo = pathinfo($pathToDocument);
+
+        $response->write($fileContent);
+        $response = $response->withAddedHeader('Content-Disposition', "inline; filename=maarch.{$pathInfo['extension']}");
+
+        HistoryController::add([
+            'tableName' => 'acknowledgement_receipt',
+            'recordId'  => $aArgs['id'],
+            'eventType' => 'VIEW',
+            'info'      => _ACKNOWLEDGEMENT_RECEIPT_DISPLAYING . " : {$aArgs['id']}",
+            'moduleId'  => 'res',
+            'eventId'   => 'acknowledgementreceiptview',
+        ]);
+
+        if ($mimeType == 'text/plain') {
+            $mimeType = 'text/html';
+        }
+
+        return $response->withHeader('Content-Type', $mimeType);
+    }
 }
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index ab4f5b83ea0723963e4cd93a32f4a32b57f19559..c12203c05640290417cb7520a503ad61334ecbae 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -38,7 +38,6 @@ use SrcCore\models\CoreConfigModel;
 use SrcCore\models\ValidatorModel;
 use Status\models\StatusModel;
 use User\models\UserModel;
-use AcknowledgementReceipt\models\AcknowledgementReceiptModel;
 
 class ResController
 {
@@ -391,68 +390,6 @@ class ResController
         return $response->withHeader('Content-Type', $mimeType);
     }
 
-    public function getAcknowledgementReceipt(Request $request, Response $response, array $aArgs)
-    {
-        if (!Validator::intVal()->validate($aArgs['resId']) || !ResController::hasRightByResId(['resId' => $aArgs['resId'], 'userId' => $GLOBALS['userId']])) {
-            return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']);
-        }
-
-        $mainDocument = ResModel::getById(['select' => ['docserver_id', 'path', 'filename', 'fingerprint'], 'resId' => $aArgs['resId']]);
-        $extDocument = ResModel::getExtById(['select' => ['category_id', 'alt_identifier'], 'resId' => $aArgs['resId']]);
-        if (empty($mainDocument) || empty($extDocument)) {
-            return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']);
-        }
-
-        $document = AcknowledgementReceiptModel::getByIds([
-            'select'  => ['docserver_id', 'path', 'filename', 'fingerprint'],
-            'ids'      => [$aArgs['id']]
-        ]);
-
-        $docserver = DocserverModel::getByDocserverId(['docserverId' => $document[0]['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]);
-        if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
-            return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']);
-        }
-
-        $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document[0]['path']) . $document[0]['filename'];
-
-        if (!file_exists($pathToDocument)) {
-            return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']);
-        }
-
-        $fingerprint = StoreController::getFingerPrint(['filePath' => $pathToDocument]);
-        if (!empty($document[0]['fingerprint']) && $document[0]['fingerprint'] != $fingerprint) {
-            return $response->withStatus(400)->withJson(['errors' => 'Fingerprints do not match']);
-        }
-
-        $fileContent = file_get_contents($pathToDocument);
-
-        if ($fileContent === false) {
-            return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']);
-        }
-
-        $finfo    = new \finfo(FILEINFO_MIME_TYPE);
-        $mimeType = $finfo->buffer($fileContent);
-        $pathInfo = pathinfo($pathToDocument);
-
-        $response->write($fileContent);
-        $response = $response->withAddedHeader('Content-Disposition', "inline; filename=maarch.{$pathInfo['extension']}");
-
-        HistoryController::add([
-            'tableName' => 'res_letterbox',
-            'recordId'  => $aArgs['resId'],
-            'eventType' => 'VIEW',
-            'info'      => _DOC_DISPLAYING . " : {$aArgs['resId']}",
-            'moduleId'  => 'res',
-            'eventId'   => 'resview',
-        ]);
-
-        if ($mimeType == 'text/plain') {
-            $mimeType = 'text/html';
-        }
-
-        return $response->withHeader('Content-Type', $mimeType);
-    }
-
     public function getThumbnailContent(Request $request, Response $response, array $aArgs)
     {
         if (!Validator::intVal()->validate($aArgs['resId'])) {
diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php
index b61aa371e34e01bd7a6857a93e1cc42106f326a4..92174ed6e89d2621ddaa73a185b737662c43d14c 100755
--- a/src/core/lang/lang-en.php
+++ b/src/core/lang/lang-en.php
@@ -459,3 +459,5 @@ define('_UPDATE_ACKNOWLEDGEMENT_SEND_DATE', 'update acknowledgement send date');
 
 define("_M2M_ACTION_DONE", "done by");
 define("_M2M_ENTITY_DESTINATION", "Mail is in the department");
+
+define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Displaying acknowledgement receipt');
diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php
index 0ef8a2010cd5ae735f9db42eacb16dd41ff8c5f0..e7b847ad00dea969d5213c553557a4c4ffc21e28 100755
--- a/src/core/lang/lang-fr.php
+++ b/src/core/lang/lang-fr.php
@@ -459,3 +459,5 @@ define('_UPDATE_ACKNOWLEDGEMENT_SEND_DATE', 'Mettre à jour la date d\'envoi des
 
 define("_M2M_ACTION_DONE", "actionné par");
 define("_M2M_ENTITY_DESTINATION", "Le courrier est dans l'entité");
+
+define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Visualisation de l\'accusé de réception');
diff --git a/src/core/lang/lang-nl.php b/src/core/lang/lang-nl.php
index bf24626946e97188eacb1dac1f9072933b52d5b9..eafc0d8851ab95072954c7473fb6cca4e98d6246 100644
--- a/src/core/lang/lang-nl.php
+++ b/src/core/lang/lang-nl.php
@@ -460,3 +460,5 @@ define('_AR_DISPLAYING', 'Displaying acknowledgement receipt_TO_TRANSLATE');
 
 define('_M2M_ACTION_DONE', 'in werking gesteld door');
 define('_M2M_ENTITY_DESTINATION', 'De brief is in de dienst');
+
+define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Displaying acknowledgement receipt_TO_TRANSLATE');
diff --git a/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts b/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts
index 037cf4fbbd940f454ef46f5f511772465ef32577..a9227debc327158a82d369f4698f1d9fc1b5e6d1 100644
--- a/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts
+++ b/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts
@@ -32,7 +32,6 @@ export class CreateAcknowledgementReceiptActionComponent implements OnInit {
         this.loadingInit = true;
         this.http.post('../../rest/resourcesList/users/' + this.data.currentBasketInfo.ownerId + '/groups/' + this.data.currentBasketInfo.groupId + '/baskets/' + this.data.currentBasketInfo.basketId + '/checkAcknowledgementReceipt', {resources : this.data.selectedRes})
         .subscribe((data : any) => {
-            console.log(data);
             this.acknowledgement = data;
             this.loadingInit = false;
         }, (err) => {