Browse Source

Jun 8 [UPDT] : Bug Fixed 'subscription_package'

pull/201/merge
AjmalCybro 2 years ago
parent
commit
963f81453d
  1. 3
      subscription_package/__manifest__.py
  2. 2
      subscription_package/models/__init__.py
  3. 43
      subscription_package/models/recurrence_period.py
  4. 14
      subscription_package/models/subscription_package.py
  5. 1
      subscription_package/security/ir.model.access.csv
  6. 54
      subscription_package/views/recurrence_views.xml
  7. 6
      subscription_package/views/subscription_package.xml

3
subscription_package/__manifest__.py

@ -22,7 +22,7 @@
{
'name': 'Subscription Management For Community',
'Version': '15.0.1.0.0',
'version': '15.0.1.1.1',
'summary': 'Subscription Package Management Module For Odoo15 Community',
'description': 'Subscription Package Management Module For Odoo15 Community',
'category': 'Sales',
@ -47,6 +47,7 @@
'views/subscription_renew.xml',
'views/mail_activity_views.xml',
'views/res_partner.xml',
'views/recurrence_views.xml',
'report/subscription_report_view.xml',
],
'images': ['static/description/banner.png'],

2
subscription_package/models/__init__.py

@ -19,7 +19,6 @@
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import subscription_plan
from . import subscription_stage
from . import subscription_package
@ -27,3 +26,4 @@ from . import subscription_products
from . import subscription_close
from . import subscription_renew
from . import res_partner
from . import recurrence_period

43
subscription_package/models/recurrence_period.py

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models, fields
class RecurrencePeriod(models.Model):
"""This class is used to create new model recurrence period"""
_name = "recurrence.period"
_description = "Recurrence Period "
name = fields.Char(string="Name")
duration = fields.Float(string="Duration")
unit = fields.Selection([('hours', 'hours'),
('days', 'Days'), ('weeks', 'Weeks'),
('months', 'Months'), ('years', 'Years')],
string='Unit')
class SubPackages(models.Model):
""" This function is used to inherit subscription packages"""
_inherit = 'subscription.package'
recurrence_period_id = fields.Many2one("recurrence.period",
string="Recurrence Period")

14
subscription_package/models/subscription_package.py

@ -49,6 +49,7 @@ class SubscriptionPackageProductLine(models.Model):
related='product_id.uom_id.category_id')
unit_price = fields.Float(string='Unit Price', store=True, readonly=False,
related='product_id.list_price')
discount = fields.Float(string="Discount (%)")
currency_id = fields.Many2one('res.currency', string='Currency',
store=True,
related='subscription_id.currency_id')
@ -60,12 +61,14 @@ class SubscriptionPackageProductLine(models.Model):
store=True,
related='subscription_id.partner_id')
@api.depends('product_qty', 'unit_price')
@api.depends('product_qty', 'unit_price', 'discount')
def _compute_total_amount(self):
""" Calculate subtotal amount of product line """
for rec in self:
if rec.product_id:
rec.total_amount = rec.unit_price * rec.product_qty
if rec.discount != 0:
rec.total_amount -= rec.total_amount * (rec.discount / 100)
class SubscriptionPackage(models.Model):
@ -273,9 +276,9 @@ class SubscriptionPackage(models.Model):
this_products_line = []
for rec in self.product_line_ids:
rec_list = [0, 0, {'product_id': rec.product_id.id,
'product_uom_qty': rec.product_qty}]
'product_uom_qty': rec.product_qty,
'discount': rec.discount}]
this_products_line.append(rec_list)
# for order in self.sale_order:
orders = self.env['sale.order'].search([('subscription_id', '=', self.id), ('invoice_status', '=', 'no')])
if orders:
for order in orders:
@ -294,7 +297,10 @@ class SubscriptionPackage(models.Model):
'type': 'ir.actions.act_window',
'res_model': 'sale.order',
'domain': [('id', '=', so_id.id)],
'view_mode': 'tree,form'
'view_mode': 'tree,form',
'context': {
"create": False
}
}
@api.model

1
subscription_package/security/ir.model.access.csv

@ -6,3 +6,4 @@ access_subscription_report,subscription.report,model_subscription_report,base.gr
access_subscription_package_product_line,subscription.package.product.line,model_subscription_package_product_line,base.group_user,1,1,1,1
access_subscription_package_stop,subscription.package.stop,model_subscription_package_stop,base.group_user,1,1,1,1
access_subscription_close_wizard,access.subscription.close.wizard,model_subscription_close_wizard,base.group_user,1,1,1,1
access_recurrence_period,access.recurrence.period,model_recurrence_period,base.group_user,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
6 access_subscription_package_product_line subscription.package.product.line model_subscription_package_product_line base.group_user 1 1 1 1
7 access_subscription_package_stop subscription.package.stop model_subscription_package_stop base.group_user 1 1 1 1
8 access_subscription_close_wizard access.subscription.close.wizard model_subscription_close_wizard base.group_user 1 1 1 1
9 access_recurrence_period access.recurrence.period model_recurrence_period base.group_user 1 1 1 1

54
subscription_package/views/recurrence_views.xml

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="recurrence_view_tree" model="ir.ui.view">
<field name="name">recurrence.period.tree</field>
<field name="model">recurrence.period</field>
<field name="arch" type="xml">
<tree string="Channel">
<field name="name"/>
<field name="duration"/>
<field name="unit"/>
</tree>
</field>
</record>
<record id="recurrence_period_views_form" model="ir.ui.view">
<field name="name">recurrence.period.form</field>
<field name="model">recurrence.period</field>
<field name="arch" type="xml">
<form string="Test">
<sheet>
<group>
<field name="name"/>
<field name="duration" widget="float_time"/>
<field name="unit"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="recurrence_menu_root_id" model="ir.actions.act_window">
<field name="name">Recurrence Period</field>
<field name="res_model">recurrence.period</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="subscription_config_menu_subscription_recurrence"
name="Recurrence Period"
parent="subscription_package.subscription_menu_config"
action="subscription_package.recurrence_menu_root_id"
sequence="24"/>
<record id="recurrence_id_form_inherit" model="ir.ui.view">
<field name="name">subscription.package.form.inherit</field>
<field name="model">subscription.package</field>
<field name="inherit_id" ref="subscription_package.subscription_package_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='reference_code']" position="after">
<field name="recurrence_period_id"/>
</xpath>
</field>
</record>
</odoo>

6
subscription_package/views/subscription_package.xml

@ -74,7 +74,8 @@
<button name="button_start_date" string="START"
type="object" class="btn-primary oe_read_only" attrs="{'invisible': [('stage_category','!=', 'draft')]}"/>
<button name="button_sale_order" string="Create Sale Order"
type="object" class="btn-primary oe_read_only" attrs="{'invisible': [('so_count','>',0)]}"/>
type="object" class="btn-primary oe_read_only"
attrs="{'invisible': ['|',('stage_category','!=', 'progress'),('so_count','>',0)]}"/>
<button name="button_payment" string="Invoice"
type="object" class="btn-primary oe_read_only"
attrs="{'invisible': [('so_count', '=', 0)]}"
@ -131,7 +132,7 @@
</group>
<group>
<field name="plan_id" attrs="{'required': True}"/>
<field name="to_renew"/>
<field name="to_renew" invisible="1"/>
<field name="reference_code"/>
<field name="analytic_account_id"/>
<field name="tag_ids" widget="many2many_tags"
@ -153,6 +154,7 @@
<field name="product_uom_id" required="1"/>
<field name="currency_id" invisible="1"/>
<field name="unit_price" required="1"/>
<field name="discount" required="1"/>
<field name="total_amount" readonly="1"/>
</tree>
</field>

Loading…
Cancel
Save