How to automatically generate an email when sale order is confirmed?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
Hi,
If your are looking to generate email upon clicking the confirm button , just super the confirm and add the code for sending the email.
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.multi
def action_confirm(self, val):
res = super(SaleOrder, self).action_confirm()
# here add the code for sending emails
return res
Thanks
@Niyas raphy thankyou somuch for your answer. i have done the same but getting an error as TypeError: action_button_confirm() got multiple values for keyword argument 'context'
and this is my code
def action_button_confirm(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.signal_workflow(cr, uid, ids, 'order_confirm')
res = super(sale_order, self).action_button_confirm(cr, uid,ids, [('od_method', '=', 'service'),('state', 'in', 'manual')], context=context)
template_ids = self.pool['email.template'].search(cr, uid, [('name', '=', 'RSO service sale order confirmed mail')], context=context)
template_id = template_ids and template_ids[0] or False
print "template idd.......................>>>>>",template_id
self.pool['email.template'].send_mail(cr, uid, template_id, new_id, force_send=True, context=context)
return res
Most of the time we need to send an email after successfully completion of some tasks or event. To day I will show you how to send an email in odoo using button click.
@api.one def proposal_title_approved(self): template_obj = self.env['email.template'].sudo().search([('name','=','Create Section for Thesis')], limit=1) body = template_obj.body_html body=body.replace('--department--',self.department_id.name) body=body.replace('--session--',self.session_id.name) body=body.replace('--supervisor--',self.supervisor_id.name) body=body.replace('--rollno--',self.student_id.roll_no) body=body.replace('--caseno--',self.case_no) body=body.replace('--campus--',self.campus_id.name) if template_obj: mail_values = { 'subject': template_obj.subject, 'body_html': body, 'email_to':';'.join(map(lambda x: x, receipt_list)), 'email_cc':';'.join(map(lambda x: x, email_cc)), 'email_from': template_obj.email_from, } create_and_send_email = self.env['mail.mail'].create(mail_values).send()
Shaffaf R S: To send an email in odoo first of all we need create email template. We can create this email template using following two ways.
1- By using odoo Template Menu Interface
2- By using xml (code)
Get more detailed with code and description about Auto Generation of email [on button click]:
http://learnopenerp.blogspot.com/2017/08/odoo-how-to-send-email-on-button-click.html
Thanks
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
0
thg 12 18
|
5540 | ||
|
2
thg 2 18
|
20235 | ||
|
1
thg 3 15
|
22761 | ||
|
1
thg 11 21
|
11529 | ||
|
0
thg 1 17
|
2468 |
Hey Shaffaf R S,
You can use/create automated action feature available in Odoo.
Settings > Technical > Automation > Automated Actions > Create one as per your need. By selecting
1) 'Model' > Quotation (Sale order),
2) Action to do > Send Email or Python Code (If you want custom method),
3) Select Email template here if Action to do = Send Email.
4) You can specify Trigger condition as well (e.g On Update )
Hope this will help you.
Thanks