Skip to content
Snippets Groups Projects
Commit c3286b6c authored by Rémi - Le Filament's avatar Rémi - Le Filament
Browse files

[DEL] remove dependency to Alfresco not used anymore

parent ef87e548
No related branches found
No related tags found
No related merge requests found
......@@ -6,15 +6,11 @@
'version': '12.0.1.0.1',
'license': "AGPL-3",
'depends': [
'cmis',
'cmis_field',
'adefpat_project',
'account',
'adefpat_alfresco_generation',
'web_domain_field',
],
'data': [
# "security/ir.model.access.csv",
# datas
'data/account_data.xml',
'report/account_invoice_template.xml',
......
......@@ -4,4 +4,3 @@
from . import account_invoice
from . import project
from . import product_template
from . import lefilament_alfresco
......@@ -6,13 +6,12 @@ import json
from odoo import api, models
from odoo import fields as odooFields
from odoo.addons.cmis_field import fields
from odoo.exceptions import UserError
class AccountInvoice(models.Model):
_name = 'account.invoice'
_inherit = ['account.invoice', 'lefilament.alfresco']
_inherit = 'account.invoice'
# ------------------------------------------------------
# Fields declaration
......@@ -32,10 +31,6 @@ class AccountInvoice(models.Model):
string="Type de convention de financement",
)
alfresco_file = odooFields.Char("Facture liée")
cmis_folder = fields.CmisFolder(
allow_create=True,
allow_delete=False,
)
task_ids = odooFields.One2many(
"project.task",
"invoice_id",
......@@ -121,89 +116,7 @@ class AccountInvoice(models.Model):
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
@api.multi
def generate_alfresco_file(self):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""
# Get proof folder nodeRef
backend = self.env['cmis.backend'].search([], limit=1)
# Si la facture a déjà été créée, ouvrir dans Alfresco
if self.alfresco_file:
prop = backend.get_cmis_repository().getFolder(
self.alfresco_file).getProperties()
url = backend.get_content_details_url_from_props(prop)
# Sinon, la créer, puis la stocker ainsi que les documents liées à la facture dans Alfresco
else:
project_folder = self.project_id.cmis_folder
self.cmis_folder = project_folder
if not project_folder:
raise UserError("Le dossier du projet n'est pas configuré")
# Get Mimetype
attachment = self.env.ref('account.account_invoices').retrieve_attachment(self)
if not attachment:
raise UserError("La facture n'a pas encore été générée. Imprimer la facture pour pouvoir la visualiser dans Alfresco")
content_type = attachment.mimetype
path_proj = backend.get_cmis_repository().getFolder(
project_folder).getPaths()
# Get template doc Facture
template_doc = self.env['adefpat.template.doc'].search([
('type_temp', '=', 'facture'),
('noderef_document', '=', False)])
# Get doc linked to Facture
template_doc_ids = self.env['adefpat.template.doc'].search([
('type_temp', '=', 'facture'),
('noderef_document', '!=', False)])
# Strore template in Alfresco
for template in template_doc_ids:
keys = self.fill_data()
self._publipostage_documents(template, keys, False)
path_n0 = path_proj + [template_doc.dossier.name]
path = '/'.join(path_n0)
cmis_obj = backend.get_folder_by_path(path)
file = cmis_obj.createDocument(
name=attachment.name,
properties={},
contentFile=base64.b64decode(attachment.datas),
contentType=content_type
)
file_id = file.getProperties().get('cmis:objectId')
self.alfresco_file = file.getObjectId()
prop = backend.get_cmis_repository().getFolder(
file_id).getProperties()
url = backend.get_content_details_url_from_props(prop)
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}
# ------------------------------------------------------
# Business methods
# ------------------------------------------------------
def fill_data(self):
parser = [
('partner_id:name_benef', ['name']),
('partner_id:title_benef', [('title', ['name'])]),
('partner_id:zip_benef', ['zip']),
('partner_id:city_benef', ['city']),
('partner_id:street_benef', ['street']),
('project_id:cfd_name', [('user_id', ['name'])]),
('project_id:cfd_mobile', [('user_id', ['mobile'])]),
('project_id:project_name', ['name']),
'amount_total:montant',
'date_invoice:date',
]
keys = self.json_build(parser)[0]
return keys
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, models
from odoo.exceptions import UserError
class LeFilamentAlfresco(models.AbstractModel):
""" Appelle l'API alfresco et implémente les fonctions suivantes :
"""
_inherit = 'lefilament.alfresco'
def publipostage_documents(self, url, path, template_doc, backend, keys=None, versionable=None):
if template_doc.type_temp == "facture":
template_name = "lettre_facture_" + self.partner_id.name + "_" + str(self.date_invoice) + ".docx"
# get NodeRef from folder linked
cmis_obj_nodeRef = backend.get_folder_by_path(path).getProperties()['alfcmis:nodeRef']
options = {
"destinationNodeRef": cmis_obj_nodeRef,
"versionable": versionable,
}
return self.alfresco_publipostage_documents(
url=url,
filename=template_name,
templateNodeRef=template_doc.noderef_document,
convertToPDF=False,
keys=keys,
options=options,
backend=backend)
else:
return super(LeFilamentAlfresco, self).publipostage_documents(url, path, template_doc, backend, keys, versionable)
......@@ -124,10 +124,6 @@ class ProjectTask(models.Model):
payment_date_invoice = fields.Date("Date de paiement de la facture")
date_account = fields.Date("Date de la facture")
# @api.multi
# def write(self, values):
# test = super(ProjectTask, self).write(values)
# return test
class AdefpatFinancement(models.Model):
_inherit = 'adefpat.project.financement'
......
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
......@@ -7,11 +7,6 @@
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<header position="inside">
<button string="Afficher dans Alfresco"
type="object" class="btn-secondary"
name="generate_alfresco_file"/>
</header>
<xpath expr="//field[@name='user_id']" position="after">
<field name="project_id"/>
<field name="num_dossier"/>
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
</data>
</odoo>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment