Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
1 Beantwoorden
2001 Weergaven

Hi,

I set an automatic action to send an email when a sale order is created, it works correctly but for some orders I need send email only if specific fields are filled. 


My current solution is to set email destination as None if field is empty in the model, but i don't like it

${ (object.partner_id.email if object.x_studio_myfield == 'YES' else None)|safe}

Is there a better solution?

Thanks 


Avatar
Annuleer
Beste antwoord

Hi,

You can change the ‘Action to do’ in the automated action to ‘Execute Python Code’ instead of ‘Send Email’.
Then the give the following python code.

if record.x_studio_myfield == 'YES':
    mail_template = env.ref('sale.email_template_edi_sale')
    mail_template.send_mail(record.id, force_send=True)

You can provide the required email template’s XML ID inside env.ref(‘...’).
In order to find the XML ID of email templates you can enable developer mode , go to Settings > Technical > Email > Templates , select the required template , click on debug tool and click on ‘View Metadata’.
Another suggestion is that you can create a boolean field instead of the character field ‘x_studio_myfield’ and use the python code as:

if record.x_studio_my_boolean_field:
    mail_template = env.ref('sale.email_template_edi_sale')
    mail_template.send_mail(record.id, force_send=True)

Regards

Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
5
feb. 25
7326
0
jan. 17
2938
3
feb. 25
8659
3
sep. 24
8126
2
jul. 24
4504