robin.keunen
5 years ago
3 changed files with 93 additions and 19 deletions
-
2beesdoo_stock_coverage/__manifest__.py
-
6beesdoo_stock_coverage/models/product_template.py
-
104beesdoo_stock_coverage/tests/test_stock_coverage.py
@ -1,22 +1,96 @@ |
|||
# Copyright 2020 Coop IT Easy SCRL fs |
|||
# Robin Keunen <robin@coopiteasy.be> |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
# Copyright (C) 2019 - Today: GRAP (http://www.grap.coop) |
|||
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) |
|||
# @author: Robin Keunen <robin@coopiteasy.be> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo import fields |
|||
from odoo.tools import float_compare |
|||
from odoo.tests.common import TransactionCase |
|||
from datetime import timedelta |
|||
|
|||
|
|||
class TestProductTemplate(TransactionCase): |
|||
class TestModule(TransactionCase): |
|||
def setUp(self): |
|||
super(TestProductTemplate, self).setUp() |
|||
self.product1 = self.browse_ref( |
|||
"point_of_sale.whiteboard_pen" |
|||
).product_tmpl_id |
|||
super(TestModule, self).setUp() |
|||
|
|||
# Get Registry |
|||
self.PosOrder = self.env["pos.order"] |
|||
self.AccountPayment = self.env["account.payment"] |
|||
|
|||
# Get Object |
|||
self.pos_product = self.env.ref("product.product_product_25") |
|||
self.pos_template = self.pos_product.product_tmpl_id |
|||
self.pricelist = self.env.ref("product.list0") |
|||
self.partner = self.env.ref("base.res_partner_12") |
|||
|
|||
# Create a new pos config and open it |
|||
self.pos_config = self.env.ref("point_of_sale.pos_config_main").copy() |
|||
self.pos_config.open_session_cb() |
|||
|
|||
# Test Section |
|||
def test_compute_stock_coverage(self): |
|||
self.product1._compute_stock_coverage() |
|||
print("***") |
|||
print(self.product1.range_sales) |
|||
print(self.product1.daily_sales) |
|||
print(self.product1.stock_coverage) |
|||
print("***") |
|||
self._create_order() |
|||
self.pos_template._compute_stock_coverage() |
|||
self.assertEquals(1.0, self.pos_template.range_sales) |
|||
self.assertEqual( |
|||
float_compare( |
|||
0.0714, self.pos_template.daily_sales, precision_digits=2 |
|||
), |
|||
0, |
|||
) |
|||
self.assertEquals(210.0, self.pos_template.stock_coverage) |
|||
|
|||
def _create_order(self): |
|||
date = fields.Date.today() - timedelta(days=1) |
|||
date_str = fields.Date.to_string(date) |
|||
order_data = { |
|||
"id": u"0006-001-0010", |
|||
"to_invoice": True, |
|||
"data": { |
|||
"pricelist_id": self.pricelist.id, |
|||
"user_id": 1, |
|||
"name": "Order 0006-001-0010", |
|||
"partner_id": self.partner.id, |
|||
"amount_paid": 0.9, |
|||
"pos_session_id": self.pos_config.current_session_id.id, |
|||
"lines": [ |
|||
[ |
|||
0, |
|||
0, |
|||
{ |
|||
"product_id": self.pos_product.id, |
|||
"price_unit": 0.9, |
|||
"qty": 1, |
|||
"price_subtotal": 0.9, |
|||
"price_subtotal_incl": 0.9, |
|||
}, |
|||
] |
|||
], |
|||
"statement_ids": [ |
|||
[ |
|||
0, |
|||
0, |
|||
{ |
|||
"journal_id": self.pos_config.journal_ids[0].id, |
|||
"amount": 0.9, |
|||
"name": fields.Datetime.now(), |
|||
"account_id": self.env.user.partner_id.property_account_receivable_id.id, |
|||
"statement_id": self.pos_config.current_session_id.statement_ids[ |
|||
0 |
|||
].id, |
|||
}, |
|||
] |
|||
], |
|||
"creation_date": date_str, |
|||
"amount_tax": 0, |
|||
"fiscal_position_id": False, |
|||
"uid": u"00001-001-0001", |
|||
"amount_return": 0, |
|||
"sequence_number": 1, |
|||
"amount_total": 0.9, |
|||
}, |
|||
} |
|||
|
|||
result = self.PosOrder.create_from_ui([order_data]) |
|||
order = self.PosOrder.browse(result[0]) |
|||
return order |
Write
Preview
Loading…
Cancel
Save
Reference in new issue