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
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
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
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
AanmeldenGerelateerde posts | Antwoorden | Weergaven | Activiteit | |
---|---|---|---|---|
|
0
dec. 18
|
5458 | ||
|
2
feb. 18
|
20163 | ||
|
1
mrt. 15
|
22683 | ||
|
1
nov. 21
|
11457 | ||
|
0
jan. 17
|
2446 |
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