콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
1892 화면

Hello.

I am trying to create an automated action that when a user creates a purchase request, an email is automatically sent with the quote request template, this is my code:




Enviar correos al generar una solicitud de presupuesto en compras


email
on_create



It works perfectly, if you execute the action, but now what I'm trying to do is send that same email to other specific users, I'm trying to do the search through their ids in res.users, but when creating a purchase request, it doesn't do That function doesn't even execute the print that I have in the log...

can you help me?

# -*- coding: utf-8 -*-

from odoo import models, fields, api


class PurchaseOrder(models.Model):
_inherit = 'purchase.order'

@api.model
def create(self, vals):
res = super(PurchaseOrder, self).create(vals)
usuarios = self.env['res.users'].search([('id', 'in', [8, 9])])
if usuarios:
for order in self:
template = self.env.ref('purchase.email_template_edi_purchase')
for usuario in usuarios:
if usuario.email:
try:
template.send_mail(order.id, force_send=True, email_to=usuario.email)
except Exception as e:
print(f"Error sending email to {usuario.email}: {e}")

return res

Thanks, odoo 13 community.

Note: the outgoing email servers are configured correctly, but I repeat, the function does not even create the email, it does not create anything.

아바타
취소
베스트 답변

Hi,

Change the line of code:  for order in self:  to for order in res      and see if it makes any difference,

Thanks

아바타
취소
작성자

Ok, now at least it prints the except prints and it gives me this error: Error sending email to mail@gmail.com: send_mail() got an unexpected keyword argument 'email_to', I will search from here on out, thanks for your help and sorry for the inconvenience caused.

작성자

I was now able to solve the problem, thank you very much for your help!

관련 게시물 답글 화면 활동
4
12월 24
2764
2
5월 24
2005
1
4월 24
1761
3
6월 23
10872
2
2월 25
1429