diff --git a/models/api_alfresco.py b/models/api_alfresco.py
index 1d077d8a25110601719c5d9fe9ec6dee96a23239..189bc89c0833fe28f62fedcc81c68ef3f6fd369b 100644
--- a/models/api_alfresco.py
+++ b/models/api_alfresco.py
@@ -5,7 +5,9 @@ import requests
 import logging
 import xml.etree.ElementTree as et
 
-from odoo import models, exceptions, tools
+from odoo import models, exceptions, fields
+from cmislib.exceptions import ContentAlreadyExistsException, \
+    ObjectNotFoundException, UpdateConflictException, InvalidArgumentException
 
 _logger = logging.getLogger(__name__)
 
@@ -205,3 +207,45 @@ class CgscopAlfresco(models.AbstractModel):
         """
         return result.get('nodeRef', '').replace(
             'workspace://SpacesStore/', '')
+
+    def push_alfresco_file(
+            self, file, name, partner, type,
+            context='STD', year=fields.Datetime.now().year):
+        """
+            Ajoute un fichier sur la GED Alfresco
+            @return: fonction get_partner_files() de res.partner
+        """
+        backend = self.env['cmis.backend'].search([], limit=1)
+
+        if not partner.partner_cmis_folder:
+            # TODO: commit value on creation because of error
+            folder = partner.create_cmis_folder()
+        else:
+            folder = partner.partner_cmis_folder
+
+        try:
+            cmis_obj = backend.get_cmis_repository().getObject(folder)
+
+            file_upload = cmis_obj.createDocument(
+                name=name,
+                properties={
+                    'cmis:objectTypeId': 'D:crm:document',
+                    'cmis:secondaryObjectTypeIds': ['P:crm:organisme'],
+                    'crm:type': type,
+                    'crm:contexte': context,
+                    'crm:annee': year
+                },
+                contentFile=file,
+                contentType='application/pdf'
+            )
+        except (ContentAlreadyExistsException, ObjectNotFoundException,
+                UpdateConflictException, InvalidArgumentException) as e:
+            _logger.error(e)
+            raise exceptions.ValidationError("""Erreur de mise à jour Alfresco :
+                - Code : %s
+                - Url : %s
+                - Détail : %s""" % (e.status, e.url, e.details))
+        except Exception as e:
+            raise exceptions.ValidationError(e)
+
+        return file_upload