Innah_Diallo
Innah_Diallo
Published 15.01.2024
Bonjour ici svp besoin d'aide sur les actions automatisés, nous voulions envoyer un mail automatique au responsable a chaque fois que un produit part en seuil minimale. Merci
Comments
Log in to comment.
nasser
15.01.2024

La méthode que je suggère pour le faire est celle-ci :


Il faut surcharger la fonction _run_scheduler_tasks() qui se trouve dans stock/models/stock_rule.py pour permettre à cette fonction d'envoyer un mail.

Après, il faut créer les règles d'approvisionnement dans Inventaire > Configuration > Règles de réapprovisionnement. Ainsi, lorsque le cron job Approvisionnement : lancer le planificateur (qui a pour nom technique stock.ir_cron_scheduler_action) va s'exécuter, le mail sera envoyé.

Il faut noter que les règles de réapprovisionnement permettent de définir les quantités minimales et maximales des produits.

Voici un exemple pour faire ce que j'ai expliqué

def send_email(self):
    mail_values = {
        'auto_delete': True, # ou False si tu ne veux pas supprimer le mail dans Odoo
        'body_html': body_html, # le contenu du mail
        'author_id': partner_id.id, # l'ID du partenaire qui envoie le mail
        'email_from': 'addr@mail.cc', # Email qui envoie le mail
        'email_to': 'rec@mai.l', # Email qui reçoit le mail
        'subject': 'Sujet du mail',
    }
    self.env['mail.mail'].sudo().create(mail_values)

@api.model
def _run_scheduler_tasks(self, use_new_cursor=False, company_id=False):
    super(NomDeTaClasse, self)._run_scheduler_tasks(
        use_new_cursor=use_new_cursor, 
        company_id=company_id
    )
    self.send_email()

Tu peux aussi utiliser ce module https://apps.odoo.com/apps/modules/14.0/bsi_product_minimum_qty_alert/ , mais je pense que la première méthode est plus appropriée