oca-ocb-sale/odoo-bringout-oca-ocb-pos_sale/pos_sale/tests/test_pos_sale_lot.py
Ernad Husremovic 73afc09215 19.0 vanilla
2026-03-09 09:32:12 +01:00

66 lines
2.8 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo
from odoo import fields
from odoo.addons.point_of_sale.tests.common import CommonPosTest
@odoo.tests.tagged('post_install', '-at_install')
class TestPointOfSaleFlow(CommonPosTest):
def test_ship_later_lots(self):
self.env.user.group_ids += self.env.ref('account.group_account_manager')
self.stock_location = self.company_data['default_warehouse'].lot_stock_id
self.twenty_dollars_no_tax.product_variant_id.write({
'tracking': 'serial',
'is_storable': True,
'taxes_id': []
})
lot_1 = self.env['stock.lot'].create({
'name': '1001',
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'company_id': self.env.company.id,
})
lot_2 = self.env['stock.lot'].create({
'name': '1002',
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'company_id': self.env.company.id,
})
self.env['stock.quant'].with_context(inventory_mode=True).create({
'inventory_quantity': 1,
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'location_id': self.stock_location.id,
'lot_id': lot_1.id
}).action_apply_inventory()
self.env['stock.quant'].with_context(inventory_mode=True).create({
'inventory_quantity': 1,
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'location_id': self.stock_location.id,
'lot_id': lot_2.id
}).action_apply_inventory()
sale_order = self.env['sale.order'].sudo().create({
'partner_id': self.partner_stva.id,
'order_line': [(0, 0, {
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'name': self.twenty_dollars_no_tax.product_variant_id.name,
'price_unit': self.twenty_dollars_no_tax.product_variant_id.lst_price,
'product_uom_qty': 2,
})],
})
sale_order.action_confirm()
order, _ = self.create_backend_pos_order({
'order_data': {
'partner_id': self.partner_stva.id,
'shipping_date': fields.Date.today(),
},
'line_data': [{
'product_id': self.twenty_dollars_no_tax.product_variant_id.id,
'pack_lot_ids': [[0, 0, {'lot_name': lot_1.name}]],
'sale_order_line_id': sale_order.order_line[0].id,
'sale_order_origin_id': sale_order.id,
}],
'payment_data': [
{'payment_method_id': self.pos_config_usd.payment_method_ids[0].id}
]
})
self.assertEqual(order.picking_ids.move_line_ids.lot_id, lot_1)