Skip to content

Commit

Permalink
[MIG] contract_sale_generation: Migration to 15.0 [WIP]
Browse files Browse the repository at this point in the history
  • Loading branch information
ntsirintanis committed Jun 21, 2022
1 parent 8e08eff commit e0490fe
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 38 deletions.
10 changes: 2 additions & 8 deletions contract_sale_generation/models/abstract_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@
# Copyright 2017 Angel Moya <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import api, fields, models
from odoo import fields, models


class ContractAbstractContract(models.AbstractModel):
_inherit = "contract.abstract.contract"

sale_autoconfirm = fields.Boolean(string="Sale Autoconfirm")

@api.model
def _selection_generation_type(self):
res = super()._selection_generation_type()
res.append(("sale", "Sale"))
return res
sale_autoconfirm = fields.Boolean()
17 changes: 7 additions & 10 deletions contract_sale_generation/models/contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,11 @@ def recurring_create_sale(self):
self.message_post(
body=_(
"Contract manually sale order: "
'<a href="#" data-oe-model="%s" data-oe-id="%s">'
'<a href="#" data-oe-model="%(model)s" data-oe-id="%(id)s">'
"Sale Order"
"</a>"
)
% (sale_rec._name, sale_rec.id)
% {"model": sale_rec._name, "id": sale_rec.id}
)
return sales

Expand Down Expand Up @@ -123,13 +123,10 @@ def _recurring_create_sale(self, date_ref=False):
self._compute_recurring_next_date()
return sale_orders

@api.model
def _get_recurring_create_func(self, create_type="invoice"):
res = super()._get_recurring_create_func(create_type=create_type)
if create_type == "sale":
return self.__class__._recurring_create_sale
return res

@api.model
def cron_recurring_create_sale(self, date_ref=None):
return self._cron_recurring_create(date_ref, create_type="sale")
if not date_ref:
date_ref = fields.Date.context_today(self)
domain = self._get_contracts_to_invoice_domain(date_ref)
for contract in self.search(domain):
contract._recurring_create_sale(date_ref)
2 changes: 0 additions & 2 deletions contract_sale_generation/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ def setUpClass(cls):
"name": "Test Contract",
"partner_id": cls.partner.id,
"pricelist_id": cls.partner.property_product_pricelist.id,
"generation_type": "sale",
"sale_autoconfirm": False,
"group_id": cls.analytic_account.id,
"date_start": "2020-01-15",
Expand Down Expand Up @@ -106,7 +105,6 @@ def setUpClass(cls):
cls.contract2 = cls.env["contract.contract"].create(
{
"name": "Test Contract 2",
"generation_type": "sale",
"partner_id": cls.partner.id,
"pricelist_id": cls.partner.property_product_pricelist.id,
"contract_type": "purchase",
Expand Down
22 changes: 11 additions & 11 deletions contract_sale_generation/tests/test_contract_sale.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def test_contract(self):
self.assertAlmostEqual(self.contract_line.price_subtotal, 50.0)
self.contract_line.price_unit = 100.0
self.contract.partner_id = self.partner.id
self.contract.recurring_create_sale()
self.contract._recurring_create_sale()
self.sale_monthly = self.contract._get_related_sales()
self.assertTrue(self.sale_monthly)
self.assertEqual(self.contract_line.recurring_next_date, recurring_next_date)
Expand All @@ -39,7 +39,7 @@ def test_contract_autoconfirm(self):
self.assertAlmostEqual(self.contract_line.price_subtotal, 50.0)
self.contract_line.price_unit = 100.0
self.contract.partner_id = self.partner.id
self.contract.recurring_create_sale()
self.contract._recurring_create_sale()
self.sale_monthly = self.contract._get_related_sales()
self.assertTrue(self.sale_monthly)
self.assertEqual(self.contract_line.recurring_next_date, recurring_next_date)
Expand Down Expand Up @@ -77,17 +77,17 @@ def test_onchange_contract_template_id(self):
self.assertDictEqual(res, self.template_vals)

def test_contract_count_sale(self):
self.contract.recurring_create_sale()
self.contract.recurring_create_sale()
self.contract.recurring_create_sale()
self.contract._recurring_create_sale()
self.contract._recurring_create_sale()
self.contract._recurring_create_sale()
self.contract._compute_sale_count()
self.assertEqual(self.contract.sale_count, 3)

def test_contract_count_sale_2(self):
orders = self.env["sale.order"]
orders |= self.contract.recurring_create_sale()
orders |= self.contract.recurring_create_sale()
orders |= self.contract.recurring_create_sale()
orders |= self.contract._recurring_create_sale()
orders |= self.contract._recurring_create_sale()
orders |= self.contract._recurring_create_sale()
action = self.contract.action_show_sales()
self.assertEqual(set(action["domain"][0][2]), set(orders.ids))

Expand All @@ -98,8 +98,8 @@ def test_cron_recurring_create_sale(self):
self.contract_line._onchange_is_auto_renew()
contracts = self.contract2
for _i in range(10):
contracts |= self.contract.copy({"generation_type": "sale"})
self.env["contract.contract"]._cron_recurring_create(create_type="sale")
contracts |= self.contract.copy({"contract_type": "sale"})
contracts.cron_recurring_create_sale()
order_lines = self.env["sale.order.line"].search(
[("contract_line_id", "in", contracts.mapped("contract_line_ids").ids)]
)
Expand All @@ -110,5 +110,5 @@ def test_cron_recurring_create_sale(self):

def test_contract_sale_analytic(self):
orders = self.env["sale.order"].browse()
orders |= self.contract.recurring_create_sale()
orders |= self.contract._recurring_create_sale()
self.assertEqual(self.analytic_account, orders.mapped("analytic_account_id"))
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ def _create_contract(cls):
)
with Form(cls.contract) as contract_form:
contract_form.partner_id = cls.partner
contract_form.generation_type = "sale"
contract_form.group_id = cls.analytic_account
cls.contract = contract_form.save()

Expand Down Expand Up @@ -68,11 +67,11 @@ def test_contract_next_date(self):
fields.Date.to_date("2020-01-15"), self.contract.recurring_next_date
)

self.contract.recurring_create_sale()
self.contract._recurring_create_sale()
self.assertEqual(
fields.Date.to_date("2020-01-22"), self.contract.recurring_next_date
)
self.contract.recurring_create_sale()
self.contract._recurring_create_sale()
self.assertEqual(
fields.Date.to_date("2020-01-29"), self.contract.recurring_next_date
)
8 changes: 4 additions & 4 deletions contract_sale_generation/views/contract.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
<field name="model">contract.contract</field>
<field name="inherit_id" ref="contract.contract_contract_form_view" />
<field name="arch" type="xml">
<xpath expr="//field[@name='generation_type']" position="after">
<xpath expr="//button[@name='action_preview']" position="after">
<field
attrs="{'invisible':[('generation_type','!=', 'sale')]}"
attrs="{'invisible':[('contract_type','!=', 'sale')]}"
name="sale_autoconfirm"
/>
</xpath>
<xpath expr="//button[@name='recurring_create_invoice']" position="before">
<button
attrs="{'invisible': [('generation_type','!=','sale')]}"
attrs="{'invisible': [('contract_type','!=','sale')]}"
class="oe_link"
groups="base.group_no_one"
name="recurring_create_sale"
Expand All @@ -22,7 +22,7 @@
</xpath>
<xpath expr="//button[@name='action_show_invoices']" position="after">
<button
attrs="{'invisible': [('generation_type','!=','sale')]}"
attrs="{'invisible': [('contract_type','!=','sale')]}"
class="oe_stat_button"
icon="fa-list"
name="action_show_sales"
Expand Down

0 comments on commit e0490fe

Please sign in to comment.