diff --git a/sql/develop.sql b/sql/develop.sql
index 4f97c9c05bb71137ebc2117abb6fd147b9ec0f9a..cf29b342df5ca603dae92471e0fbec9d5d142db6 100755
--- a/sql/develop.sql
+++ b/sql/develop.sql
@@ -101,11 +101,11 @@ CREATE TABLE exports_templates
 (
 id serial NOT NULL,
 user_id INTEGER NOT NULL,
-type character varying(3) NOT NULL,
+format character varying(3) NOT NULL,
 delimiter character varying(3),
 data json DEFAULT '[]' NOT NULL,
 CONSTRAINT exports_templates_pkey PRIMARY KEY (id),
-CONSTRAINT exports_templates_unique_key UNIQUE (user_id, type)
+CONSTRAINT exports_templates_unique_key UNIQUE (user_id, format)
 )
 WITH (OIDS=FALSE);
 
diff --git a/sql/structure.sql b/sql/structure.sql
index 1201e0f9927a33495f3bc6b9b410affd9e09c6ae..ce503d09458bcb639958e29fea625e5af6639313 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -2189,10 +2189,10 @@ CREATE TABLE exports_templates
 id serial NOT NULL,
 user_id INTEGER NOT NULL,
 delimiter character varying(3),
-type character varying(3) NOT NULL,
+format character varying(3) NOT NULL,
 data json DEFAULT '[]' NOT NULL,
 CONSTRAINT exports_templates_pkey PRIMARY KEY (id),
-CONSTRAINT exports_templates_unique_key UNIQUE (user_id, type)
+CONSTRAINT exports_templates_unique_key UNIQUE (user_id, format)
 )
 WITH (OIDS=FALSE);
 
diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php
index 413b5be5badd6652fe9fd014ec4760765bc6f7ac..d8ad8d15c54e93d8b9ac50baaa4a351b1b01f5c1 100644
--- a/src/app/resource/controllers/ExportController.php
+++ b/src/app/resource/controllers/ExportController.php
@@ -38,13 +38,13 @@ class ExportController
     {
         $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
 
-        $rawTemplates      = ExportTemplateModel::getByUserId(['userId' => $currentUser['id']]);
+        $rawTemplates = ExportTemplateModel::getByUserId(['userId' => $currentUser['id']]);
 
-        $templates = ['pdf' => [], 'csv' => []];
+        $templates = ['pdf' => ['data' => []], 'csv' => ['data' => []]];
         foreach ($rawTemplates as $rawTemplate) {
-            if ($rawTemplate['type'] == 'pdf') {
+            if ($rawTemplate['format'] == 'pdf') {
                 $templates['pdf'] = ['data' => (array)json_decode($rawTemplate['data'])];
-            } elseif ($rawTemplate['type'] == 'csv') {
+            } elseif ($rawTemplate['format'] == 'csv') {
                 $templates['csv'] = ['delimiter' => $rawTemplate['delimiter'], 'data' => (array)json_decode($rawTemplate['data'])];
             }
         }
@@ -63,9 +63,9 @@ class ExportController
 
         $body = $request->getParsedBody();
 
-        if (!Validator::stringType()->notEmpty()->validate($body['type']) || !in_array($body['type'], ['pdf', 'csv'])) {
-            return $response->withStatus(400)->withJson(['errors' => 'Data type is empty or not a string between [\'pdf\', \'csv\']']);
-        } elseif ($body['type'] == 'csv' && (!Validator::stringType()->notEmpty()->validate($body['delimiter']) || !in_array($body['delimiter'], [',', ';', 'TAB']))) {
+        if (!Validator::stringType()->notEmpty()->validate($body['format']) || !in_array($body['format'], ['pdf', 'csv'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Data format is empty or not a string between [\'pdf\', \'csv\']']);
+        } elseif ($body['format'] == 'csv' && (!Validator::stringType()->notEmpty()->validate($body['delimiter']) || !in_array($body['delimiter'], [',', ';', 'TAB']))) {
             return $response->withStatus(400)->withJson(['errors' => 'Delimiter is empty or not a string between [\',\', \';\', \'TAB\']']);
         } elseif (!Validator::arrayType()->notEmpty()->validate($body['data'])) {
             return $response->withStatus(400)->withJson(['errors' => 'Data data is empty or not an array']);
@@ -101,21 +101,22 @@ class ExportController
         }
         $order .= 'END';
 
-        $template = ExportTemplateModel::getByUserId(['select' => [1], 'userId' => $currentUser['id']]);
+        $template = ExportTemplateModel::get(['select' => [1], 'where' => ['user_id = ?', 'format = ?'], 'data' => [$currentUser['id'], $body['format']]]);
         if (empty($template)) {
             ExportTemplateModel::create([
                 'userId'    => $currentUser['id'],
-                'delimiter' => $body['delimiter'],
+                'format'      => $body['format'],
+                'delimiter' => empty($body['delimiter']) ? null : $body['delimiter'],
                 'data'      => json_encode($body['data'])
             ]);
         } else {
             ExportTemplateModel::update([
                 'set'   => [
-                    'delimiter' => $body['delimiter'],
+                    'delimiter' => empty($body['delimiter']) ? null : $body['delimiter'],
                     'data'      => json_encode($body['data'])
                 ],
-                'where' => ['user_id = ?'],
-                'data'  => [$currentUser['id']]
+                'where' => ['user_id = ?', 'format = ?'],
+                'data'  => [$currentUser['id'], $body['format']]
             ]);
         }
 
@@ -241,6 +242,84 @@ class ExportController
         return $response->withHeader('Content-Type', 'application/vnd.ms-excel');
     }
 
+    public function getCsv(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['delimiter', 'data', 'resources']);
+        ValidatorModel::stringType($aArgs, ['delimiter']);
+        ValidatorModel::arrayType($aArgs, ['data', 'resources']);
+
+        $file = fopen('php://memory', 'w');
+        $delimiter = ($aArgs['delimiter'] == 'TAB' ? "\t" : $aArgs['delimiter']);
+
+        $csvHead = [];
+        foreach ($aArgs['data'] as $value) {
+            $csvHead[] = $value['label'];
+        }
+
+        fputcsv($file, $csvHead, $delimiter);
+
+        foreach ($aArgs['resources'] as $resource) {
+            $csvContent = [];
+            foreach ($body['data'] as $value) {
+                if (empty($value['value'])) {
+                    $csvContent[] = '';
+                    continue;
+                }
+                if ($value['isFunction']) {
+                    if ($value['value'] == 'getStatus') {
+                        $csvContent[] = $resource['status.label_status'];
+                    } elseif ($value['value'] == 'getPriority') {
+                        $csvContent[] = $resource['priorities.label'];
+                    } elseif ($value['value'] == 'getCopies') {
+                        $csvContent[] = ExportController::getCopies(['resId' => $resource['res_id']]);
+                    } elseif ($value['value'] == 'getDetailLink') {
+                        $csvContent[] = str_replace('rest/', "apps/maarch_entreprise/index.php?page=details&dir=indexing_searching&id={$resource['res_id']}", \Url::coreurl());
+                    } elseif ($value['value'] == 'getParentFolder') {
+                        $csvContent[] = $resource['folders.folder_name'];
+                    } elseif ($value['value'] == 'getCategory') {
+                        $csvContent[] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]);
+                    } elseif ($value['value'] == 'getInitiatorEntity') {
+                        $csvContent[] = $resource['enone.short_label'];
+                    } elseif ($value['value'] == 'getDestinationEntity') {
+                        $csvContent[] = $resource['entwo.short_label'];
+                    } elseif ($value['value'] == 'getDestinationEntityType') {
+                        $csvContent[] = $resource['enthree.entity_type'];
+                    } elseif ($value['value'] == 'getSender') {
+                        //TODO
+                        $csvContent[] = '';
+                    } elseif ($value['value'] == 'getRecipient') {
+                        //TODO
+                        $csvContent[] = '';
+                    } elseif ($value['value'] == 'getTypist') {
+                        $csvContent[] = UserModel::getLabelledUserById(['login' => $resource['typist']]);
+                    } elseif ($value['value'] == 'getAssignee') {
+                        $csvContent[] = UserModel::getLabelledUserById(['login' => $resource['dest_user']]);
+                    } elseif ($value['value'] == 'getTags') {
+                        $csvContent[] = ExportController::getTags(['resId' => $resource['res_id']]);
+                    } elseif ($value['value'] == 'getSignatories') {
+                        $csvContent[] = ExportController::getSignatories(['resId' => $resource['res_id']]);
+                    } elseif ($value['value'] == 'getSignatureDates') {
+                        $csvContent[] = ExportController::getSignatureDates(['resId' => $resource['res_id']]);
+                    }
+                } else {
+                    $allDates = ['doc_date', 'departure_date', 'admission_date', 'process_limit_date', 'opinion_limit_date', 'closing_date', 'sve_start_date'];
+                    if (in_array($value['value'], $allDates)) {
+                        $csvContent[] = TextFormatModel::formatDate($resource[$value['value']]);
+                    } else {
+                        $csvContent[] = $resource[$value['value']];
+                    }
+                }
+            }
+            fputcsv($file, $csvContent, $delimiter);
+        }
+
+        rewind($file);
+        $response->write(stream_get_contents($file));
+        $response = $response->withAddedHeader('Content-Disposition', 'attachment; filename=export_maarch.csv');
+
+        return $response->withHeader('Content-Type', 'application/vnd.ms-excel');
+    }
+
     private static function getCopies(array $args)
     {
         ValidatorModel::notEmpty($args, ['resId']);
diff --git a/src/app/resource/models/ExportTemplateModel.php b/src/app/resource/models/ExportTemplateModel.php
index c249bfdc35d479c2e6cb2fc3a790c8abe12c7888..df7e0a40769212efa88b193a5de2332b578f83c6 100644
--- a/src/app/resource/models/ExportTemplateModel.php
+++ b/src/app/resource/models/ExportTemplateModel.php
@@ -19,6 +19,23 @@ use SrcCore\models\ValidatorModel;
 
 class ExportTemplateModel
 {
+    public static function get(array $aArgs = [])
+    {
+        ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
+        ValidatorModel::intType($aArgs, ['limit']);
+
+        $aTemplates = DatabaseModel::select([
+            'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
+            'table'     => ['exports_templates'],
+            'where'     => empty($aArgs['where']) ? [] : $aArgs['where'],
+            'data'      => empty($aArgs['data']) ? [] : $aArgs['data'],
+            'order_by'  => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'],
+            'limit'     => empty($aArgs['limit']) ? 0 : $aArgs['limit']
+        ]);
+
+        return $aTemplates;
+    }
+
     public static function getByUserId(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['userId']);
@@ -37,15 +54,15 @@ class ExportTemplateModel
 
     public static function create(array $aArgs)
     {
-        ValidatorModel::notEmpty($aArgs, ['userId', 'type', 'data']);
-        ValidatorModel::stringType($aArgs, ['type', 'delimiter', 'data']);
+        ValidatorModel::notEmpty($aArgs, ['userId', 'format', 'data']);
+        ValidatorModel::stringType($aArgs, ['format', 'delimiter', 'data']);
         ValidatorModel::intVal($aArgs, ['userId']);
 
         DatabaseModel::insert([
             'table'         => 'exports_templates',
             'columnsValues' => [
                 'user_id'   => $aArgs['userId'],
-                'type'      => $aArgs['type'],
+                'format'    => $aArgs['format'],
                 'delimiter' => empty($aArgs['delimiter']) ? null : $aArgs['delimiter'],
                 'data'      => $aArgs['data']
             ]
diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php
index a8e0b0bb21582d00423610a1bd61a8f1ed21dab6..a127bbaf9e5d8bf716c279e444e77f9f21b7821e 100755
--- a/src/app/user/controllers/UserController.php
+++ b/src/app/user/controllers/UserController.php
@@ -498,12 +498,11 @@ class UserController
             'data'      => [$aArgs['userId']]
         ]);
 
-        if (!empty($user)) {
-            $user = $user[0];
-            return $response->withJson(['status' => $user['status']]);
+        if (empty($user[0])) {
+            return $response->withJson(['status' => null]);
         }
 
-        return $response->withJson(['status' => null]);
+        return $response->withJson(['status' => $user[0]['status']]);
     }
 
     public function updateStatus(Request $request, Response $response, array $aArgs)