Newer
Older
# © 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, api
class ScopAlfrescoAdhesionPartner(models.Model):
_inherit = 'res.partner'
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
# Email
def get_recipients_adhesion(self):
"""
Get recipients for email adhesion
:return:
"""
recipient_ids = self.director_ids or self
res = ','.join(map(lambda x: str(x), recipient_ids.ids))
return res
@api.multi
def send_mail_adhesion(self):
"""
Send mail adhésion to coop
:return:
"""
self.ensure_one()
template_id = self.env.ref(
'cgscop_alfresco_adhesion.email_template_adhesion')
ir_model_data = self.env['ir.model.data']
try:
compose_form_id = ir_model_data.get_object_reference(
'mail', 'email_compose_message_wizard_form')[1]
except ValueError:
compose_form_id = False
ctx = {
'default_model': 'res.partner',
'default_res_id': self.id,
'default_use_template': True,
'default_template_id': template_id.id,
'default_composition_mode': 'comment',
}
return {
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'mail.compose.message',
'views': [(compose_form_id, 'form')],
'view_id': compose_form_id,
'target': 'new',
'context': ctx,
}
# ------------------------------------------------------
# Override parent
# ------------------------------------------------------
@api.multi
def scop_valid_cg_button(self):
"""
Inherit button to send mail
"""
super(ScopAlfrescoAdhesionPartner, self).scop_valid_cg_button()
@api.multi
def scop_valid_cg(self):
"""
Inherit function to :
- generate files on Alfresco
"""
res = super(ScopAlfrescoAdhesionPartner, self).scop_valid_cg()
if not self.partner_id.partner_cmis_folder:
folder_coop = self.partner_id.create_cmis_folder()
else:
folder_coop = self.partner_id.partner_cmis_folder
# Create & store Facture d'adhésion
invoice_file = self.env.ref('account.account_invoices'). \
render_qweb_pdf(res.id)[0]
self.push_alfresco_file(
file=invoice_file,
name="Facture d'Adhésion",
partner=self,
# Create & store Courrier adhésion
report_adhesion = self.env.ref(
'cgscop_adhesion.cgscop_adhesion_report'). \
render_qweb_pdf(self.id)[0]
self.push_alfresco_file(
file=report_adhesion,
name="Courrier d'Adhésion.pdf",
partner=self,
type='LDI',
folder=folder_coop)
@api.multi
def check_compulsory_docs(self):
"""
Override function to check docs with cmis query
:return:
"""
errors = ''
compulsory_docs = self.env['scop.adhesion.file'].search([
('is_compulsory', '=', True)
])
loaded_docs = self.env['scop.adhesion.file'].\
compulsory_doc_cmis_query(self)
compulsory_docs_list = compulsory_docs.mapped(lambda d: {'name': d.name, 'metadata': d.type_doc})
loaded_docs_list = list(map(lambda d: d.properties.get('crm:type'), loaded_docs))
for madatory_doc in compulsory_docs_list:
if madatory_doc.get('metadata') not in loaded_docs_list:
errors += "<li>" + madatory_doc.get('name') + "</li>"
if errors:
res = '<hr/><strong>Documents manquants :</strong><u:>' + errors + '</ul>'
return res
else:
return str()