Hello, anyone have any idea of how to automatically attach a report to an email like Sale> Quote> Email? what is the relationship of this with the "edi" module?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
Yes you can use schedulers to send e-mails with attachment automatically (here reports) or you can configure the email template to attach reports automatically.
For example: I have created a scheduler on model student.student
as
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="ir.cron" id="cronjob_student_mail_scheduler">
<field name='name'>Send Email on Intervals</field>
<field name='interval_number'>1</field>
<field name='interval_type'>months</field>
<field name="numbercall">-1</field>
<field name="active">False</field>
<field name="doall" eval="False" />
<field name="model">student.student</field>
<field name="function">send_mail</field>
<field name="args">(None,)</field>
</record>
</data>
</openerp>
and it calls the send_mail method in student.student model and the method is
def send_mail(self, cr, uid, ids, cron_mode=True, context=None):
print '================send email=================='
template_id=self.pool.get('email.template').search(cr, uid, [('name', '=', 'Student Details - Send by Email')], context=context)[0]
print '........template id..........', template_id
email_obj=self.pool.get('email.template').send_mail(cr, uid, template_id, ids[0], force_send=True)
print 'email_obj................', email_obj
and I have created an email template as
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<!--Email template -->
<record id="email_template_student_details" model="email.template">
<field name="name">Student Details - Send by Email</field>
<field name="email_from">gopakumar@zbeanztech.com</field>
<field name="subject">Welcome</field>
<field name="email_to">${object.email}</field>
<field name="model_id" ref="model_student_student"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="student_report.student_report"/>
<field name="report_name">${(object.partner_id.name)}_Details</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.partner_id.name},</p>
<p>You have been registered in the ${object.user_id.company_id.name} with the following details.</p>
<p style="border-left: 1px solid #8e0000; margin-left: 30px;">
Admission Number: <strong>${object.admit_no}</strong><br />
University Number: <strong>${object.exam_reg_no}</strong><br />
Programme: <strong>${object.programme_id.name}</strong><br />
Grade: <strong>${object.grade_id.name}</strong><br />
Area: <strong>${object.area_id.name}</strong><br />
Division: <strong>${object.division_id.name}</strong><br />
</p>
<p>Please find the attachment.</p>
<p>Thanks</p>
</div>
]]></field>
</record>
</data>
</openerp>
and in that template I have specified the report student_report
in the module student_report (<field name="report_template" ref="student_report.student_report"/>
)
So on executing the scheduler the email will be send with the report as attachment.
Ok thanks for your answer, but I don't understand thi line : <field name="model_id" ref="model_student_student"/>
model_student_student is the id of what model?
It is the model student.student and it should be given in the model_id field of email template as 'model_student_student'
Is there a way to add the 'form' keyword to the 'datas' dictionary that is used in the email.template send_mail method?
Want to use the same report that is triggered by a button via: datas = { 'ids': [], 'model': 'timesheet.timesheet', 'form': data } return { 'type': 'ir.actions.report.xml', 'report_name': 'timesheet.monthly.report', 'datas': datas, }