Skip to content

Commit

Permalink
[MIG] subscription_oca: Migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
carolina-domatix committed Feb 7, 2024
1 parent 6dfa424 commit b9d9cd5
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 67 deletions.
2 changes: 1 addition & 1 deletion subscription_oca/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Subscription management
=======================

..
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
Expand Down
2 changes: 1 addition & 1 deletion subscription_oca/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
"name": "Subscription management",
"summary": "Generate recurring invoices.",
"version": "15.0.1.0.1",
"version": "16.0.1.0.0",
"development_status": "Beta",
"category": "Subscription Management",
"website": "https://github.com/OCA/contract",
Expand Down
4 changes: 2 additions & 2 deletions subscription_oca/models/sale_subscription.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def _read_group_stage_ids(self, stages, domain, order):
string="Stage",
tracking=True,
group_expand="_read_group_stage_ids",
store="true",
store=True,
)
stage_str = fields.Char(
related="stage_id.name",
Expand Down Expand Up @@ -228,7 +228,7 @@ def onchange_partner_id_fpos(self):
self.fiscal_position_id = (
self.env["account.fiscal.position"]
.with_company(self.company_id)
.get_fiscal_position(self.partner_id.id)
._get_fiscal_position(self.partner_id)
)

def action_start_subscription(self):
Expand Down
31 changes: 14 additions & 17 deletions subscription_oca/models/sale_subscription_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ def _compute_tax_ids(self):
for line in self:
fpos = (
line.sale_subscription_id.fiscal_position_id
or line.sale_subscription_id.fiscal_position_id.get_fiscal_position(
line.sale_subscription_id.partner_id.id
or line.sale_subscription_id.fiscal_position_id._get_fiscal_position(
line.sale_subscription_id.partner_id
)
)
# If company_id is set, always filter taxes by the company
Expand Down Expand Up @@ -174,10 +174,9 @@ def _compute_discount(self):
partner_id=record.sale_subscription_id.partner_id.id,
date=fields.Datetime.now(),
uom=record.product_id.uom_id.id,
).get_product_price_rule(
)._get_product_price_rule(
record.product_id,
record.product_uom_qty or 1.0,
record.sale_subscription_id.partner_id,
)
new_list_price, currency = record.with_context(
partner_id=record.sale_subscription_id.partner_id.id,
Expand All @@ -203,7 +202,7 @@ def _compute_discount(self):

def _get_real_price_currency(self, product, rule_id, qty, uom):
PricelistItem = self.env["product.pricelist.item"]
field_name = "lst_price"
product_price = product.lst_price
currency_id = None
product_currency = product.currency_id
if rule_id:
Expand All @@ -217,18 +216,18 @@ def _get_real_price_currency(self, product, rule_id, qty, uom):
):
_price, rule_id = pricelist_item.base_pricelist_id.with_context(
uom=uom.id
).get_product_price_rule(
product, qty, self.sale_subscription_id.partner_id
)
)._get_product_price_rule(product, qty)
pricelist_item = PricelistItem.browse(rule_id)

if pricelist_item.base == "standard_price":
field_name = "standard_price"
product_price = product.standard_price
product_currency = product.cost_currency_id
elif (
pricelist_item.base == "pricelist" and pricelist_item.base_pricelist_id
):
field_name = "price"
product_price = pricelist_item.base_pricelist_id._get_product_price(
product, self.product_uom_qty or 1.0, uom=self.product_id.uom_id
)
product = product.with_context(
pricelist=pricelist_item.base_pricelist_id.id
)
Expand Down Expand Up @@ -256,23 +255,21 @@ def _get_real_price_currency(self, product, rule_id, qty, uom):
else:
uom_factor = 1.0

return product[field_name] * uom_factor * cur_factor, currency_id
return product_price * uom_factor * cur_factor, currency_id

def _get_display_price(self, product):
if self.sale_subscription_id.pricelist_id.discount_policy == "with_discount":
return product.with_context(
pricelist=self.sale_subscription_id.pricelist_id.id,
uom=self.product_id.uom_id.id,
).price
return self.sale_subscription_id.pricelist_id._get_product_price(
product, self.product_uom_qty or 1.0, uom=self.product_id.uom_id
)

final_price, rule_id = self.sale_subscription_id.pricelist_id.with_context(
partner_id=self.sale_subscription_id.partner_id.id,
date=fields.Datetime.now(),
uom=self.product_id.uom_id.id,
).get_product_price_rule(
)._get_product_price_rule(
product or self.product_id,
self.product_uom_qty or 1.0,
self.sale_subscription_id.partner_id,
)
base_price, currency = self.with_context(
partner_id=self.sale_subscription_id.partner_id.id,
Expand Down
7 changes: 6 additions & 1 deletion subscription_oca/models/sale_subscription_stage.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class SaleSubscriptionStage(models.Model):

name = fields.Char(required=True, translate=True)
sequence = fields.Integer()
display_name = fields.Char(string="Display name")
display_name = fields.Char(string="Display name", compute="_compute_display_name")
in_progress = fields.Boolean(string="In progress", default=False)
fold = fields.Boolean(string="Kanban folded")
description = fields.Text(translate=True)
Expand All @@ -27,3 +27,8 @@ def _check_lot_product(self):
)
if len(post_stages) > 1:
raise ValidationError(_("There is already a Closed-type stage declared"))

@api.depends("name")
def _compute_display_name(self):
for stage in self:
stage.display_name = stage.name
1 change: 1 addition & 0 deletions subscription_oca/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
* Carlos Martínez <[email protected]>
* Carolina Ferrer <[email protected]>


* `Ooops404 <https://www.ooops404.com>`__:
Expand Down
2 changes: 1 addition & 1 deletion subscription_oca/readme/USAGE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ To make a subscription:
#. Go to *Subscriptions > Configuration > Subscription templates*.
#. Create the templates you consider, choosing the billing frequency: daily, monthly... and the method of creating the invoice and/or order.
#. Go to *Subscription > Subscriptions*.
#. Create a subscription and indicate the start date. When the *Subscriptions Management* cron job is executed, the subscription will begin and the first invoice will be created if the execution date matches the start date. The invoice will also be created when the execution date matches the next invoice date. Additionally, you can manually change the subscription status and create an invoice.
#. Create a subscription and indicate the start date. When the *Subscriptions Management* cron job is executed, the subscription will begin and the first invoice will be created if the execution date matches the start date. The invoice will also be created when the execution date matches the next invoice date. Additionally, you can manually change the subscription status and create an invoice by using the *Create Invoice* button. This action creates just an invoice even if the subscription template has the *Sale Order & Invoice* option selected, because the *Invoicing mode* option is triggered through the cron job.
#. The cron job will also end the subscription if its end date has been reached.

To create subscriptions with the sale of a product:
Expand Down
12 changes: 5 additions & 7 deletions subscription_oca/views/sale_subscription_stage_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,11 @@

</group>
</group>
<group>
<field
name="description"
placeholder="Add new description..."
nolabel="1"
/>
</group>
<field
name="description"
placeholder="Add new description..."
nolabel="1"
/>
</sheet>
</form>
</field>
Expand Down
66 changes: 31 additions & 35 deletions subscription_oca/views/sale_subscription_template_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,32 @@

<form>
<sheet>
<group>
<div class="oe_button_box" name="button_box">
<button
name="action_view_product_ids"
type="object"
class="oe_stat_button"
icon="fa-pencil-square-o"
>
<field
name="product_ids_count"
widget="statinfo"
string="Products"
/>
</button>
<button
name="action_view_subscription_ids"
type="object"
class="oe_stat_button"
icon="fa-pencil-square-o"
>
<field
name="subscription_count"
widget="statinfo"
string="Subscriptions"
/>
</button>
</div>
</group>
<div class="oe_button_box" name="button_box">
<button
name="action_view_product_ids"
type="object"
class="oe_stat_button"
icon="fa-pencil-square-o"
>
<field
name="product_ids_count"
widget="statinfo"
string="Products"
/>
</button>
<button
name="action_view_subscription_ids"
type="object"
class="oe_stat_button"
icon="fa-pencil-square-o"
>
<field
name="subscription_count"
widget="statinfo"
string="Subscriptions"
/>
</button>
</div>
<div class="oe_title">
<h1>
<field
Expand Down Expand Up @@ -91,13 +89,11 @@
</group>
</page>
<page string="Terms and Conditions">
<group>
<field
nolabel="1"
name="description"
placeholder="Terms and Conditions"
/>
</group>
<field
nolabel="1"
name="description"
placeholder="Terms and Conditions"
/>
</page>
</notebook>

Expand Down
4 changes: 2 additions & 2 deletions subscription_oca/views/sale_subscription_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
<field
name="stage_id"
widget="statusbar"
clickable="1"
options="{'fold_field': 'fold'}"
options="{'fold_field': 'fold', 'clickable': '1'}"
/>

</header>
Expand Down Expand Up @@ -104,6 +103,7 @@
name="recurring_next_date"
attrs="{'invisible': ['|', ('recurring_next_date', '=', False), ('in_progress', '=', False)]}"
/>
<field name="company_id" invisible="1" />
<field
name="company_id"
options="{'no_create': True}"
Expand Down

0 comments on commit b9d9cd5

Please sign in to comment.