[IMP] mrp_warehouse_calendar: black, isort

This commit is contained in:
Lois Rilo
2019-12-17 12:09:20 +01:00
committed by davidborromeo
parent 962dac2c07
commit f8c6e5f7c6
5 changed files with 96 additions and 92 deletions

View File

@@ -7,14 +7,10 @@
"version": "12.0.1.0.1",
"license": "LGPL-3",
"website": "https://github.com/stock-logistics-warehouse",
"author": "Eficent, "
"Odoo Community Association (OCA)",
"author": "Eficent, " "Odoo Community Association (OCA)",
"category": "Manufacturing",
"depends": [
"mrp",
"stock_warehouse_calendar",
],
"depends": ["mrp", "stock_warehouse_calendar"],
"installable": True,
'development_status': 'Beta',
'maintainers': ['jbeficent'],
"development_status": "Beta",
"maintainers": ["jbeficent"],
}

View File

@@ -5,15 +5,16 @@ from odoo import api, models
class MrpProduction(models.Model):
_inherit = 'mrp.production'
_inherit = "mrp.production"
@api.onchange('date_planned_start', 'product_id')
@api.onchange("date_planned_start", "product_id")
def onchange_date_planned(self):
dt_planned = self.date_planned_start
warehouse = self.picking_type_id.warehouse_id
if warehouse.calendar_id and self.product_id.produce_delay:
date_expected_finished = warehouse.calendar_id.plan_days(
+1 * self.product_id.produce_delay + 1, dt_planned)
+1 * self.product_id.produce_delay + 1, dt_planned
)
self.date_planned_finished = date_expected_finished
@api.multi
@@ -23,6 +24,7 @@ class MrpProduction(models.Model):
warehouse = mo.picking_type_id.warehouse_id
if warehouse.calendar_id and mo.product_id.produce_delay:
date_expected = warehouse.calendar_id.plan_days(
+1 * self.product_id.produce_delay + 1, dt_planned)
+1 * self.product_id.produce_delay + 1, dt_planned
)
mo.date_planned_finished = date_expected
return mo

View File

@@ -5,22 +5,19 @@ from odoo import fields, models
class StockRule(models.Model):
_inherit = 'stock.rule'
_inherit = "stock.rule"
def _get_date_planned(self, product_id, values):
date_planned = super(StockRule, self)._get_date_planned(
product_id, values)
picking_type = self.picking_type_id or \
values['warehouse_id'].manu_type_id
date_planned = super(StockRule, self)._get_date_planned(product_id, values)
picking_type = self.picking_type_id or values["warehouse_id"].manu_type_id
# We force the date planned to be at the beginning of the day.
# So no work intervals are found in planned date.
dt_planned = fields.Datetime.to_datetime(
values['date_planned']).replace(hour=0)
dt_planned = fields.Datetime.to_datetime(values["date_planned"]).replace(hour=0)
warehouse = picking_type.warehouse_id
if warehouse.calendar_id and product_id.produce_delay:
lead_days = values['company_id'].manufacturing_lead + \
product_id.produce_delay
date_expected = warehouse.calendar_id.plan_days(
-1 * lead_days, dt_planned)
lead_days = (
values["company_id"].manufacturing_lead + product_id.produce_delay
)
date_expected = warehouse.calendar_id.plan_days(-1 * lead_days, dt_planned)
date_planned = date_expected
return date_planned

View File

@@ -1 +1 @@
* Jordi Ballester (EFICENT) <jordi.ballester@eficent.com>.
* Jordi Ballester (EFICENT) <jordi.ballester@eficent.com>.

View File

@@ -5,68 +5,69 @@ from odoo.tests.common import TransactionCase
class TestMrpWarehouseCalendar(TransactionCase):
def setUp(self):
super(TestMrpWarehouseCalendar, self).setUp()
self.move_obj = self.env['stock.move']
self.company = self.env.ref('base.main_company')
self.warehouse = self.env.ref('stock.warehouse0')
self.customer_loc = self.env.ref('stock.stock_location_customers')
self.company_partner = self.env.ref('base.main_partner')
self.calendar = self.env.ref('resource.resource_calendar_std')
self.manufacture_route = self.env.ref(
'mrp.route_warehouse0_manufacture')
self.move_obj = self.env["stock.move"]
self.company = self.env.ref("base.main_company")
self.warehouse = self.env.ref("stock.warehouse0")
self.customer_loc = self.env.ref("stock.stock_location_customers")
self.company_partner = self.env.ref("base.main_partner")
self.calendar = self.env.ref("resource.resource_calendar_std")
self.manufacture_route = self.env.ref("mrp.route_warehouse0_manufacture")
self.warehouse.calendar_id = self.calendar.id
self.warehouse_2 = self.env['stock.warehouse'].create({
'code': 'WH-T',
'name': 'Warehouse Test',
'calendar_id': self.calendar.id,
})
self.warehouse_2 = self.env["stock.warehouse"].create(
{"code": "WH-T", "name": "Warehouse Test", "calendar_id": self.calendar.id}
)
self.product = self.env['product.product'].create({
'name': 'test product',
'default_code': 'PRD',
'type': 'product',
'produce_delay': 1,
})
self.product_2 = self.env['product.product'].create({
'name': 'test product 2',
'default_code': 'PRD 2',
'type': 'product',
})
self.bom = self.env['mrp.bom'].create({
'product_id': self.product.id,
'product_tmpl_id': self.product.product_tmpl_id.id,
'product_uom_id': self.product.uom_id.id,
'product_qty': 1.0,
'type': 'normal',
})
self.env['mrp.bom.line'].create({
'bom_id': self.bom.id,
'product_id': self.product_2.id,
'product_qty': 2,
})
self.product = self.env["product.product"].create(
{
"name": "test product",
"default_code": "PRD",
"type": "product",
"produce_delay": 1,
}
)
self.product_2 = self.env["product.product"].create(
{"name": "test product 2", "default_code": "PRD 2", "type": "product"}
)
self.bom = self.env["mrp.bom"].create(
{
"product_id": self.product.id,
"product_tmpl_id": self.product.product_tmpl_id.id,
"product_uom_id": self.product.uom_id.id,
"product_qty": 1.0,
"type": "normal",
}
)
self.env["mrp.bom.line"].create(
{"bom_id": self.bom.id, "product_id": self.product_2.id, "product_qty": 2}
)
self.product.route_ids = [(6, 0, self.manufacture_route.ids)]
def test_procurement_with_calendar(self):
values = {
'date_planned': '2097-01-07 09:00:00', # Monday
'warehouse_id': self.warehouse,
'company_id': self.company,
'rule_id': self.manufacture_route,
"date_planned": "2097-01-07 09:00:00", # Monday
"warehouse_id": self.warehouse,
"company_id": self.company,
"rule_id": self.manufacture_route,
}
self.env['procurement.group'].run(
self.product, 100,
self.env["procurement.group"].run(
self.product,
100,
self.product.uom_id,
self.warehouse.lot_stock_id, 'Test',
'Test', values)
mo = self.env['mrp.production'].search(
[('product_id', '=', self.product.id)], limit=1)
self.warehouse.lot_stock_id,
"Test",
"Test",
values,
)
mo = self.env["mrp.production"].search(
[("product_id", "=", self.product.id)], limit=1
)
date_plan_start = fields.Date.to_date(mo.date_planned_start)
# Friday 4th Jan 2097
friday = fields.Date.to_date('2097-01-04 09:00:00')
friday = fields.Date.to_date("2097-01-04 09:00:00")
self.assertEqual(date_plan_start, friday)
@@ -74,34 +75,42 @@ class TestMrpWarehouseCalendar(TransactionCase):
"""Test procuring at the beginning of the day, with no work intervals
before."""
values = {
'date_planned': '2097-01-07 01:00:00', # Monday
'warehouse_id': self.warehouse,
'company_id': self.company,
'rule_id': self.manufacture_route,
"date_planned": "2097-01-07 01:00:00", # Monday
"warehouse_id": self.warehouse,
"company_id": self.company,
"rule_id": self.manufacture_route,
}
self.env['procurement.group'].run(
self.product, 100,
self.env["procurement.group"].run(
self.product,
100,
self.product.uom_id,
self.warehouse.lot_stock_id, 'Test 2',
'Test 2', values)
mo = self.env['mrp.production'].search(
[('product_id', '=', self.product.id)], limit=1)
self.warehouse.lot_stock_id,
"Test 2",
"Test 2",
values,
)
mo = self.env["mrp.production"].search(
[("product_id", "=", self.product.id)], limit=1
)
date_plan_start = fields.Date.to_date(mo.date_planned_start)
# Friday 4th Jan 2097
friday = fields.Date.to_date('2097-01-04 09:00:00')
friday = fields.Date.to_date("2097-01-04 09:00:00")
self.assertEqual(date_plan_start, friday)
def test_onchange_date_planned(self):
mo = self.env['mrp.production'].new({
'product_id': self.product.id,
'bom_id': self.bom.id,
'product_qty': 1,
'picking_type_id':
self.env['mrp.production']._get_default_picking_type()
})
mo.date_planned_start = '2097-01-04 09:00:00'
mo = self.env["mrp.production"].new(
{
"product_id": self.product.id,
"bom_id": self.bom.id,
"product_qty": 1,
"picking_type_id": self.env[
"mrp.production"
]._get_default_picking_type(),
}
)
mo.date_planned_start = "2097-01-04 09:00:00"
mo.onchange_date_planned()
date_plan_finished = fields.Date.to_date(mo.date_planned_finished)
monday = fields.Date.to_date('2097-01-07 09:00:00')
monday = fields.Date.to_date("2097-01-07 09:00:00")
self.assertEqual(date_plan_finished, monday)