Browse Source

[IMP] Set lot/serial number when returning orders

pull/467/head
Iván Todorovich 5 years ago
parent
commit
54920fd90f
  1. 1
      pos_order_mgmt/models/pos_order.py
  2. 20
      pos_order_mgmt/static/src/js/widgets.js

1
pos_order_mgmt/models/pos_order.py

@ -136,6 +136,7 @@ class PosOrder(models.Model):
'qty': order_line.qty, 'qty': order_line.qty,
'price_unit': order_line.price_unit, 'price_unit': order_line.price_unit,
'discount': order_line.discount, 'discount': order_line.discount,
'pack_lot_names': order_line.pack_lot_ids.mapped('lot_name'),
} }
@api.multi @api.multi

20
pos_order_mgmt/static/src/js/widgets.js

@ -12,7 +12,7 @@ odoo.define('pos_order_mgmt.widgets', function (require) {
var screens = require('point_of_sale.screens'); var screens = require('point_of_sale.screens');
var gui = require('point_of_sale.gui'); var gui = require('point_of_sale.gui');
var chrome = require('point_of_sale.chrome'); var chrome = require('point_of_sale.chrome');
var pos = require('point_of_sale.models');
var models = require('point_of_sale.models');
var QWeb = core.qweb; var QWeb = core.qweb;
var ScreenWidget = screens.ScreenWidget; var ScreenWidget = screens.ScreenWidget;
@ -210,12 +210,24 @@ odoo.define('pos_order_mgmt.widgets', function (require) {
order.trigger('change'); order.trigger('change');
this.pos.get('orders').add(order); this.pos.get('orders').add(order);
this.pos.set('selectedOrder', order); this.pos.set('selectedOrder', order);
order.get_orderlines().forEach(function (orderline) {
if (orderline.pack_lot_lines)
{
_.each(orderline.return_pack_lot_names, function(lot_name) {
orderline.pack_lot_lines.add(new models.Packlotline(
{'lot_name': lot_name}, {'order_line': orderline}
));
})
order.save_to_db();
orderline.trigger('change', orderline);
}
});
return order; return order;
}, },
_prepare_order_from_order_data: function (order_data, action) { _prepare_order_from_order_data: function (order_data, action) {
var self = this; var self = this;
var order = new pos.Order({}, {
var order = new models.Order({}, {
pos: this.pos, pos: this.pos,
}); });
@ -324,12 +336,14 @@ odoo.define('pos_order_mgmt.widgets', function (require) {
// Invert line quantities // Invert line quantities
qty *= -1; qty *= -1;
} }
return { return {
price: line.price_unit, price: line.price_unit,
quantity: qty, quantity: qty,
discount: line.discount, discount: line.discount,
merge: false, merge: false,
extras: {
return_pack_lot_names: line.pack_lot_names,
},
} }
}, },

Loading…
Cancel
Save