Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
20300 Lượt xem

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?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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;">
        &nbsp;&nbsp;Admission Number: <strong>${object.admit_no}</strong><br />
        &nbsp;&nbsp;University Number: <strong>${object.exam_reg_no}</strong><br />
        &nbsp;&nbsp;Programme: <strong>${object.programme_id.name}</strong><br />
        &nbsp;&nbsp;Grade: <strong>${object.grade_id.name}</strong><br />
        &nbsp;&nbsp;Area: <strong>${object.area_id.name}</strong><br />
        &nbsp;&nbsp;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.

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

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?

Ảnh đại diện
Huỷ bỏ

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, }

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 10 15
16243
3
thg 3 15
6983
2
thg 3 15
10341
1
thg 6 24
471
5
thg 1 23
5681