Files
enterprise-addons/pos_enterprise_sms_whatsapp/models/pos_prep_order.py
T

30 lines
1.4 KiB
Python

from odoo import models, api
class PosPrepOrder(models.Model):
_inherit = 'pos.prep.order'
@api.model
def process_order(self, order_id, options={}):
"""Override to send order received notification via SMS/WhatsApp."""
if not order_id or not self.env['pos.order'].browse(order_id).exists():
return
order = self.env['pos.order'].browse(order_id)
existing_prep_orders = self.env['pos.prep.order'].search([('pos_order_id', '=', order.id)])
result = super().process_order(order_id, options)
new_prep_orders = self.env['pos.prep.order'].search([('pos_order_id', '=', order.id)])
prep_orders_added = new_prep_orders and not existing_prep_orders
# Send notification ONLY when prep orders are first created, not on subsequent calls.
# prep_orders_added is True when the prep orders are created for the first time to avoid sending multiple notifications to user phone number.
# it can be called two times with an online pm set.
if prep_orders_added and not options.get('cancelled') and order.partner_id and order.partner_id.phone:
category_ids = new_prep_orders.prep_line_ids.product_id.pos_categ_ids.ids
for p_dis in self.env['pos.prep.display']._get_preparation_displays(order, category_ids):
p_dis.send_order_notifications(order, 'received')
return result