Skip to content
Snippets Groups Projects
Commit af47bdb9 authored by jordan's avatar jordan
Browse files

[update] send mail adhesion

parent 1df8a321
Branches
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@
"cmis_field",
],
"data": [
"datas/mail_data.xml",
"views/scop_adhesion_file.xml",
],
}
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Template and notification section -->
<record id="email_template_adhesion" model="mail.template">
<field name="name">CG Scop - Mail adhésion CG</field>
<field name="model_id" ref="model_res_partner"/>
<field name="email_from">${object.env.user.email_formatted |safe}</field>
<field name="partner_to">${object.get_recipients_adhesion()}</field>
<field name="subject">Adhésion CG Scop</field>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
<p>Chère Coopératrice, Cher Coopérateur,</p>
<p>Merci pour votre adhésion ! Vous trouverez sur votre espace personnel votre courrier et facture d'adhésion.</p>
<p>Si vous rencontrez des problèmes d'accès ou si vous ne savez pas comment vous connectez, n'hésitez pas à vous rapprocher de votre délégué qui pourra vous aider.</p>
<p>Nous vous prions d'agréer, Chère Coopératrice, Cher Coopérateur, nos sentiments les meilleurs.</p>
<p>Pour la CG Scop,</p>
<p>Christophe GENTREAU</p>
<p>Directeur Administratif et Exploitation</p>
</p>
</div>
</field>
<field name="lang">${object.lang}</field>
<field name="user_signature" eval="False"/>
<field name="auto_delete" eval="False"/>
</record>
</data>
</odoo>
......@@ -22,7 +22,7 @@ class ScopAlfrescoAdhesionPartner(models.Model):
# Actions
# ------------------------------------------------------
@api.multi
def generate_alfresco_file(self, invoice_id):
def generate_alfresco_file(self):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
......@@ -41,7 +41,11 @@ class ScopAlfrescoAdhesionPartner(models.Model):
###
# Invoice adhesion attachment
invoice_adhesion = self.env['account.invoice'].browse(invoice_id)
invoice_adhesion = self._get_invoice_adhesion()
if not invoice_adhesion:
raise UserError(
"Pas de facture associée à cette adhésion !"
)
invoice_adhesion = self.env.ref('account.account_invoices').\
render_qweb_pdf(invoice_adhesion.id)[0]
invoice_adhesion = base64.b64encode(invoice_adhesion)
......@@ -108,13 +112,73 @@ class ScopAlfrescoAdhesionPartner(models.Model):
self.alfresco_report_adhesion_file = \
file_report_adhesion.getObjectId()
# 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': False,
'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 Alfodoo
# ------------------------------------------------------
def _get_invoice_adhesion(self):
"""
:return: Dernière facture de la coop avec article adhésion
"""
invoice = False
invoice_line_ids = self.env['account.invoice.line'].search([
('partner_id', '=', self.id),
('product_id', '=', self.env.user.company_id.product_adhesion_id.id),
])
if invoice_line_ids:
invoice_ids = invoice_line_ids.mapped('invoice_id')
if invoice_ids:
invoice = invoice_ids.sorted(key='create_date')[-1]
return invoice
# ------------------------------------------------------
# Override Alfodoo
# ------------------------------------------------------
def _create_folder_adhesion(self, backend):
"""
Récupère ou crée le répertoire Adhésions s'il n'existe pas
:param records: lm records
:param backend: lm backend
:return: lm_cmis_folder objectId
"""
......@@ -134,16 +198,22 @@ class ScopAlfrescoAdhesionPartner(models.Model):
# ------------------------------------------------------
# Override parent
# ------------------------------------------------------
@api.multi
def scop_valid_cg_button(self):
"""
Inherit button to send mail
"""
# super(ScopAlfrescoAdhesionPartner, self).scop_valid_cg_button()
return self.send_mail_adhesion()
@api.multi
def scop_valid_cg(self):
"""
Inherit function to :
- generate files on Alfresco
"""
res = super(ScopAlfrescoAdhesionPartner, self).scop_valid_cg()
invoice_adhesion_id = res['invoice_adhesion']
self.generate_alfresco_file(invoice_adhesion_id.id)
return res
super(ScopAlfrescoAdhesionPartner, self).scop_valid_cg()
self.generate_alfresco_file()
@api.multi
def check_compulsory_docs(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment