mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-19 15:52:06 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,2 @@
|
|||
from . import test_adjustment_wizard
|
||||
from . import test_adu_dlt_adjustment
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
# Copyright 2018 Camptocamp SA
|
||||
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from .test_common import TestDDMRPAdjustmentCommon
|
||||
|
||||
|
||||
class TestAdjustmentWizard(TestDDMRPAdjustmentCommon):
|
||||
def test_adjustment_generation(self):
|
||||
wiz = self._create_adjustment_wizard(3)
|
||||
self.assertEqual(len(wiz.line_ids), 0)
|
||||
wiz.apply_daf = True
|
||||
wiz.apply_ltaf = True
|
||||
wiz._onchange_sheet()
|
||||
self.assertEqual(len(wiz.line_ids), 6)
|
||||
|
||||
next_month = self.now + relativedelta(months=1)
|
||||
following_month = self.now + relativedelta(months=2)
|
||||
values = {
|
||||
"DAF": {
|
||||
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 1.5,
|
||||
getattr(self, "month_%i_%i" % (next_month.year, next_month.month)): 2,
|
||||
getattr(
|
||||
self, "month_%i_%i" % (following_month.year, following_month.month)
|
||||
): 1.8,
|
||||
},
|
||||
"LTAF": {
|
||||
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 2,
|
||||
getattr(self, "month_%i_%i" % (next_month.year, next_month.month)): 2.5,
|
||||
getattr(
|
||||
self, "month_%i_%i" % (following_month.year, following_month.month)
|
||||
): 2,
|
||||
},
|
||||
}
|
||||
for line in wiz.line_ids:
|
||||
line.value = values.get(line.factor).get(line.date_range_id)
|
||||
|
||||
demand_adjustment_ids = wiz.button_validate().get("domain")[0][2]
|
||||
self.assertEqual(len(demand_adjustment_ids), 6)
|
||||
adjustments = self.env["ddmrp.adjustment"].browse(demand_adjustment_ids)
|
||||
for adj in adjustments:
|
||||
self.assertEqual(adj.buffer_id, self.buffer)
|
||||
if adj.adjustment_type == "DAF":
|
||||
self.assertEqual(adj.value, values.get("DAF").get(adj.date_range_id))
|
||||
if adj.adjustment_type == "LTAF":
|
||||
self.assertEqual(adj.value, values.get("LTAF").get(adj.date_range_id))
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
# Copyright 2018 Camptocamp SA
|
||||
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from .test_common import TestDDMRPAdjustmentCommon
|
||||
|
||||
|
||||
class TestAduAdjustment(TestDDMRPAdjustmentCommon):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.env["stock.buffer"].cron_ddmrp_adu()
|
||||
self.buffer._compute_dlt()
|
||||
self.adu_before = self.buffer.adu
|
||||
self.dlt_before = self.buffer.dlt
|
||||
|
||||
def test_adu_adjustment(self):
|
||||
wiz = self._create_adjustment_wizard(1)
|
||||
wiz.apply_daf = True
|
||||
wiz._onchange_sheet()
|
||||
|
||||
values = {
|
||||
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 1.5,
|
||||
}
|
||||
for line in wiz.line_ids:
|
||||
line.value = values.get(line.date_range_id)
|
||||
wiz.button_validate()
|
||||
|
||||
self.env["stock.buffer"].cron_ddmrp_adu()
|
||||
|
||||
self.assertEqual(self.buffer.adu, self.adu_before * 1.5)
|
||||
|
||||
def test_dlt_adjustment(self):
|
||||
wiz = self._create_adjustment_wizard(1)
|
||||
wiz.apply_ltaf = True
|
||||
wiz._onchange_sheet()
|
||||
|
||||
values = {
|
||||
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 2,
|
||||
}
|
||||
for line in wiz.line_ids:
|
||||
line.value = values.get(line.date_range_id)
|
||||
wiz.button_validate()
|
||||
|
||||
self.buffer._compute_dlt()
|
||||
|
||||
self.assertEqual(self.buffer.dlt, self.dlt_before * 2)
|
||||
|
||||
def test_dummy(self):
|
||||
# Run actions
|
||||
self.assertTrue(self.buffer.action_view_demand_to_components())
|
||||
self.assertTrue(self.buffer.action_view_affecting_adu())
|
||||
self.assertTrue(self.buffer.action_view_parent_affecting_adu())
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
# Copyright 2018 Camptocamp SA
|
||||
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import datetime
|
||||
from calendar import monthrange
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo.tests import TransactionCase
|
||||
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
|
||||
|
||||
|
||||
class TestDDMRPAdjustmentCommon(TransactionCase):
|
||||
def _create_period(self, year, month, date_range_type):
|
||||
return self.env["date.range"].create(
|
||||
{
|
||||
"name": "%i-%i" % (year, month),
|
||||
"type_id": date_range_type.id,
|
||||
"date_start": datetime.datetime(year=year, month=month, day=1).strftime(
|
||||
DEFAULT_SERVER_DATE_FORMAT
|
||||
),
|
||||
"date_end": datetime.datetime(
|
||||
year=year, month=month, day=monthrange(year, month)[1]
|
||||
).strftime(DEFAULT_SERVER_DATE_FORMAT),
|
||||
}
|
||||
)
|
||||
|
||||
def _create_adjustment_wizard(self, number_of_periods):
|
||||
date_start = datetime.datetime(year=self.now.year, month=self.now.month, day=1)
|
||||
date_end = (
|
||||
date_start + relativedelta(months=number_of_periods) - relativedelta(days=1)
|
||||
)
|
||||
wiz = self.env["ddmrp.adjustment.sheet"].create(
|
||||
{
|
||||
"date_start": date_start.strftime(DEFAULT_SERVER_DATE_FORMAT),
|
||||
"date_end": date_end.strftime(DEFAULT_SERVER_DATE_FORMAT),
|
||||
"date_range_type_id": self.month_date_range_type.id,
|
||||
}
|
||||
)
|
||||
wiz.buffer_ids = [(4, self.buffer.id, False)]
|
||||
wiz._onchange_sheet()
|
||||
return wiz
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.now = datetime.datetime.now()
|
||||
self.month_date_range_type = self.env["date.range.type"].create(
|
||||
{"name": "Month", "allow_overlap": False}
|
||||
)
|
||||
# create date ranges for each month in actual and next years
|
||||
for y in (self.now.year, self.now.year + 1):
|
||||
for m in range(1, 13):
|
||||
date_range = self._create_period(y, m, self.month_date_range_type)
|
||||
setattr(self, "month_%i_%i" % (y, m), date_range)
|
||||
self.buffer = self.env.ref("ddmrp.stock_buffer_fp01")
|
||||
Loading…
Add table
Add a link
Reference in a new issue