mirror of
https://github.com/bringout/oca-mrp.git
synced 2026-04-26 16:52:00 +02:00
Initial commit: OCA Mrp packages (117 packages)
This commit is contained in:
commit
277e84fd7a
4403 changed files with 395154 additions and 0 deletions
|
|
@ -0,0 +1,3 @@
|
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import test_mrp_subcontracting_inhibit
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
# Copyright 2022 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
from odoo.tests import Form, common
|
||||
|
||||
|
||||
class TestMrpSubcontractingInhibit(common.TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.subcontractor_mto_route = cls.env.ref(
|
||||
"mrp_subcontracting.route_resupply_subcontractor_mto"
|
||||
)
|
||||
cls.subcontractor_mto_route.subcontracting_inhibit = True
|
||||
cls.buy_route = cls.env.ref("purchase_stock.route_warehouse0_buy")
|
||||
cls.supplier = cls.env["res.partner"].create({"name": "Mr Odoo"})
|
||||
cls.product = cls.env["product.product"].create(
|
||||
{
|
||||
"name": "Test product",
|
||||
"type": "product",
|
||||
"seller_ids": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"partner_id": cls.supplier.id,
|
||||
"min_qty": 1,
|
||||
"price": 10,
|
||||
},
|
||||
),
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"partner_id": cls.supplier.id,
|
||||
"min_qty": 1,
|
||||
"price": 5,
|
||||
"subcontracting_inhibit": True,
|
||||
},
|
||||
),
|
||||
],
|
||||
}
|
||||
)
|
||||
cls.component = cls.env["product.product"].create(
|
||||
{
|
||||
"name": "Test Component",
|
||||
"route_ids": [(6, 0, [cls.subcontractor_mto_route.id])],
|
||||
}
|
||||
)
|
||||
cls.bom = cls._create_mrp_bom(cls)
|
||||
|
||||
def _create_mrp_bom(self):
|
||||
mrp_bom_form = Form(self.env["mrp.bom"])
|
||||
mrp_bom_form.product_tmpl_id = self.product.product_tmpl_id
|
||||
mrp_bom_form.type = "subcontract"
|
||||
mrp_bom_form.subcontractor_ids.add(self.supplier)
|
||||
with mrp_bom_form.bom_line_ids.new() as line_form:
|
||||
line_form.product_id = self.component
|
||||
line_form.product_qty = 1
|
||||
return mrp_bom_form.save()
|
||||
|
||||
def _product_replenish(self, product, qty, route_id):
|
||||
replenish_form = Form(
|
||||
self.env["product.replenish"].with_context(default_product_id=product.id)
|
||||
)
|
||||
replenish_form.quantity = qty
|
||||
replenish_form.route_ids.add(route_id)
|
||||
replenish = replenish_form.save()
|
||||
replenish.launch_replenishment()
|
||||
|
||||
def _get_purchase_order(self):
|
||||
return self.env["purchase.order"].search(
|
||||
[("partner_id", "=", self.supplier.id)]
|
||||
)
|
||||
|
||||
def _get_mrp_production_total(self):
|
||||
return self.env["mrp.production"].search_count([("bom_id", "=", self.bom.id)])
|
||||
|
||||
def test_misc_buy_route(self):
|
||||
# Check if the value is correct
|
||||
self._product_replenish(self.product, 1, self.buy_route)
|
||||
order = self._get_purchase_order()
|
||||
self.assertFalse(order.order_line.subcontracting_inhibit)
|
||||
# Check if price is correct
|
||||
self.assertEqual(order.order_line.price_unit, 10)
|
||||
order.order_line.product_qty = 2
|
||||
order.order_line._onchange_quantity()
|
||||
self.assertEqual(order.order_line.price_unit, 10)
|
||||
order.button_confirm()
|
||||
self.assertEqual(self._get_mrp_production_total(), 1)
|
||||
|
||||
def test_misc_buy_subcontractor_route(self):
|
||||
# Check if the value is correct
|
||||
self._product_replenish(self.product, 1, self.subcontractor_mto_route)
|
||||
order = self._get_purchase_order()
|
||||
self.assertTrue(order.order_line.subcontracting_inhibit)
|
||||
# Check if price is correct
|
||||
self.assertEqual(order.order_line.price_unit, 5)
|
||||
order.order_line.product_qty = 2
|
||||
order.order_line._onchange_quantity()
|
||||
self.assertEqual(order.order_line.price_unit, 5)
|
||||
order.button_confirm()
|
||||
self.assertEqual(self._get_mrp_production_total(), 0)
|
||||
|
||||
def test_change_purchase_order_line_subcontracting_inhibit(self):
|
||||
order_form = Form(self.env["purchase.order"])
|
||||
order_form.partner_id = self.supplier
|
||||
with order_form.order_line.new() as line_form:
|
||||
line_form.product_id = self.product
|
||||
line_form.product_qty = 1
|
||||
self.assertEqual(line_form.price_unit, 10)
|
||||
line_form.subcontracting_inhibit = True
|
||||
self.assertEqual(line_form.price_unit, 5)
|
||||
Loading…
Add table
Add a link
Reference in a new issue