|
|
@ -60,27 +60,6 @@ class PosOrder(models.Model): |
|
|
|
vals["name"] = self._compute_order_name() |
|
|
|
return super(PosOrder, self).write(vals) |
|
|
|
|
|
|
|
# @api.model_create_multi |
|
|
|
# def create(self, vals_list): |
|
|
|
# """Override create function with notification (replace 'your_model.name' with your actual model name)""" |
|
|
|
# |
|
|
|
# # 1. Notification on creation |
|
|
|
# message = { |
|
|
|
# 'res_model': self._name, |
|
|
|
# 'message': 'pos_order_created' |
|
|
|
# } |
|
|
|
# self.env["bus.bus"]._sendone('pos_order_created', "notification", |
|
|
|
# message) |
|
|
|
# |
|
|
|
# for vals in vals_list: |
|
|
|
# for order in self: |
|
|
|
# if order.name == '/': |
|
|
|
# vals['name'] = self._compute_order_name() |
|
|
|
# session = self.env['pos.session'].browse(vals['session_id']) |
|
|
|
# vals = self._complete_values_from_session(session, vals) |
|
|
|
# |
|
|
|
# return super().create(vals_list) |
|
|
|
|
|
|
|
@api.model_create_multi |
|
|
|
def create(self, vals_list): |
|
|
|
"""Override create function for the validation of the order""" |
|
|
@ -88,7 +67,6 @@ class PosOrder(models.Model): |
|
|
|
'res_model': self._name, |
|
|
|
'message': 'pos_order_created' |
|
|
|
} |
|
|
|
|
|
|
|
self.env["bus.bus"]._sendone('pos_order_created', |
|
|
|
"notification", |
|
|
|
message) |
|
|
@ -97,19 +75,11 @@ class PosOrder(models.Model): |
|
|
|
[("pos_reference", "=", vals["pos_reference"])]) |
|
|
|
if pos_orders: |
|
|
|
for rec in pos_orders.lines: |
|
|
|
print("L", rec) |
|
|
|
if "lines" in vals_list[0] and isinstance(vals_list[0]["lines"], list): |
|
|
|
for lin in vals_list[0]["lines"]: |
|
|
|
print("P", lin) |
|
|
|
if lin[2]["product_id"] == rec.product_id.id: |
|
|
|
lin[2]["order_status"] = rec.order_status |
|
|
|
else: |
|
|
|
# Handle the case where "lines" is not a list |
|
|
|
print("Error: vals_list[0]['lines'] is not a list") |
|
|
|
vals_list[0]["order_status"] = pos_orders.order_status |
|
|
|
print("Val_list", vals_list) |
|
|
|
return super().create(vals_list) |
|
|
|
|
|
|
|
for lin in vals_list[0]["lines"]: |
|
|
|
if lin[2]["product_id"] == rec.product_id.id: |
|
|
|
lin[2]["order_status"] = rec.order_status |
|
|
|
vals_list[0]["order_status"] = pos_orders.order_status |
|
|
|
return super().create(vals_list) |
|
|
|
|
|
|
|
else: |
|
|
|
if vals.get('order_id') and not vals.get('name'): |
|
|
@ -138,7 +108,7 @@ class PosOrder(models.Model): |
|
|
|
kitchen_screen = self.env["kitchen.screen"].sudo().search( |
|
|
|
[("pos_config_id", "=", shop_id)]) |
|
|
|
pos_orders = self.env["pos.order.line"].search( |
|
|
|
[("is_cooking", "=", True), |
|
|
|
["&", ("is_cooking", "=", True), |
|
|
|
("product_id.pos_categ_ids", "in", |
|
|
|
[rec.id for rec in kitchen_screen.pos_categ_ids])]) |
|
|
|
pos = self.env["pos.order"].search( |
|
|
@ -276,39 +246,3 @@ class PosOrderLine(models.Model): |
|
|
|
self.order_status = 'waiting' |
|
|
|
else: |
|
|
|
self.order_status = 'ready' |
|
|
|
|
|
|
|
@api.model_create_multi |
|
|
|
def create(self, vals_list): |
|
|
|
"""Override create function for the validation of the order""" |
|
|
|
message = { |
|
|
|
'res_model': self._name, |
|
|
|
'message': 'pos_order_created' |
|
|
|
} |
|
|
|
self.env["bus.bus"]._sendone('pos_order_created', |
|
|
|
"notification", |
|
|
|
message) |
|
|
|
for vals in vals_list: |
|
|
|
pos_orders = self.search( |
|
|
|
[("order_id", "=", vals["order_id"])]) |
|
|
|
if pos_orders: |
|
|
|
for vals in vals_list: |
|
|
|
pos_orders = self.env['pos.order'].search([('order_id', '=', vals['order_id'])]) |
|
|
|
if pos_orders: |
|
|
|
for pos_order in pos_orders: |
|
|
|
for rec in pos_order.lines: |
|
|
|
for lin in vals.get('lines', []): |
|
|
|
if lin[2]["product_id"] == rec.product_id.id: |
|
|
|
lin[2]["order_status"] = rec.order_status |
|
|
|
vals['order_status'] = pos_orders[0].order_status |
|
|
|
return super().create(vals_list) |
|
|
|
else: |
|
|
|
if vals.get('order_id') and not vals.get('name'): |
|
|
|
# set name based on the sequence specified on the config |
|
|
|
config = self.env['pos.order'].browse(vals['order_id']).session_id.config_id |
|
|
|
if config.sequence_line_id: |
|
|
|
vals['name'] = config.sequence_line_id._next() |
|
|
|
if not vals.get('name'): |
|
|
|
# fallback on any pos.order sequence |
|
|
|
vals['name'] = self.env['ir.sequence'].next_by_code('pos.order.line') |
|
|
|
return super().create(vals_list) |
|
|
|
|
|
|
|