Browse Source

Mar 24 : [UPDT] Bug Fixed 'subscription_package'

dependabot/npm_and_yarn/odoo_website_helpdesk/static/src/cdn/minimist-1.2.8
AjmalCybro 2 years ago
parent
commit
dfc296ef3d
  1. 2
      subscription_package/models/recurrence_period.py
  2. 6
      subscription_package/models/res_partner.py
  3. 29
      subscription_package/models/subscription_package.py
  4. 5
      subscription_package/models/subscription_renew.py
  5. 76
      subscription_package/views/subscription_package.xml

2
subscription_package/models/recurrence_period.py

@ -31,7 +31,7 @@ class RecurrencePeriod(models.Model):
name = fields.Char(string="Name")
duration = fields.Float(string="Duration")
unit = fields.Selection([('hours', 'hours'),
('days', 'Report'),('weeks', 'Report'),('months', 'Report'),('years', 'Report')],
('days', 'Days'),('weeks', 'Weeks'),('months', 'Months'),('years', 'Years')],
string= 'Unit' )

6
subscription_package/models/res_partner.py

@ -32,3 +32,9 @@ class Partner(models.Model):
subscription_product_line_ids = fields.One2many(
'subscription.package.product.line', 'res_partner_id',
ondelete='restrict', string='Products Line')
def _valid_field_parameter(self, field, name):
if name == 'ondelete':
return True
return super(Partner,
self)._valid_field_parameter(field, name)

29
subscription_package/models/subscription_package.py

@ -46,7 +46,7 @@ class SubscriptionPackageProductLine(models.Model):
product_uom_id = fields.Many2one('uom.uom', string='UoM', store=True,
related='product_id.uom_id',
ondelete='restrict')
uom_catg_id = fields.Many2one('uom.category', string='UoM', store=True,
uom_catg_id = fields.Many2one('uom.category', string='UoM Category', store=True,
related='product_id.uom_id.category_id')
unit_price = fields.Float(string='Unit Price', store=True, readonly=False,
related='product_id.list_price')
@ -57,7 +57,7 @@ class SubscriptionPackageProductLine(models.Model):
compute='_compute_total_amount')
sequence = fields.Integer('Sequence', help="Determine the display order",
index=True)
res_partner_id = fields.Many2one('res.partner', string='Currency',
res_partner_id = fields.Many2one('res.partner', string='Partner',
store=True,
related='subscription_id.partner_id')
@ -68,6 +68,12 @@ class SubscriptionPackageProductLine(models.Model):
if rec.product_id:
rec.total_amount = rec.unit_price * rec.product_qty
def _valid_field_parameter(self, field, name):
if name == 'ondelete':
return True
return super(SubscriptionPackageProductLine,
self)._valid_field_parameter(field, name)
class SubscriptionPackage(models.Model):
"""Subscription Package Model"""
@ -145,6 +151,12 @@ class SubscriptionPackage(models.Model):
compute='_compute_total_recurring_price',
store=True)
def _valid_field_parameter(self, field, name):
if name == 'ondelete':
return True
return super(SubscriptionPackage,
self)._valid_field_parameter(field, name)
""" Calculate Invoice count based on subscription package """
@api.depends('invoice_count')
@ -264,6 +276,7 @@ class SubscriptionPackage(models.Model):
def button_start_date(self):
"""Button to start subscription package"""
if not self.start_date:
self.start_date = datetime.date.today()
for rec in self:
@ -276,12 +289,10 @@ class SubscriptionPackage(models.Model):
else:
rec.write(
{'stage_id': (rec.env[
'subscription.package.stage'].search(
[
'subscription.package.stage'].search([
('category', '=', 'draft')]).id) + 1})
def button_sale_order(self):
"""Button to create sale order"""
this_products_line = []
for rec in self.product_line_ids:
@ -312,9 +323,10 @@ class SubscriptionPackage(models.Model):
'view_mode': 'tree,form'
}
@api.model
def create(self, vals):
@api.model_create_multi
def create(self, vals_list):
"""It displays subscription product in partner and generate sequence"""
for vals in vals_list:
partner = self.env['res.partner'].search(
[('id', '=', vals.get('partner_id'))])
partner.active_subscription = True
@ -356,7 +368,8 @@ class SubscriptionPackage(models.Model):
days=pending_subscription.plan_id.days_to_end)
difference = (pending_subscription.close_date -
pending_subscription.start_date).days / 10
renew_date = pending_subscription.close_date - relativedelta(days=difference)
renew_date = pending_subscription.close_date - relativedelta(
days=difference)
if today_date == renew_date:
pending_subscription.to_renew = True
self.env.ref(

5
subscription_package/models/subscription_renew.py

@ -34,9 +34,10 @@ class SaleOrder(models.Model):
sub_reference = fields.Char(string="Sub Reference Code", store=True,
compute="_compute_reference_code")
@api.model
def create(self, vals):
@api.model_create_multi
def create(self, vals_list):
""" It displays subscription in sale order """
for vals in vals_list:
if vals.get('is_subscription'):
vals.update({
'is_subscription': True,

76
subscription_package/views/subscription_package.xml

@ -10,7 +10,8 @@
</record>
</data>
<record id="subscription_action_subscriptions" model="ir.actions.act_window">
<record id="subscription_action_subscriptions"
model="ir.actions.act_window">
<field name="name">Subscriptions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">subscription.package</field>
@ -22,7 +23,8 @@
</field>
</record>
<record id="subscription_action_subscriptions_customers" model="ir.actions.act_window">
<record id="subscription_action_subscriptions_customers"
model="ir.actions.act_window">
<field name="name">Subscriptions Customers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
@ -35,7 +37,8 @@
</field>
</record>
<record id="subscription_action_subscriptions_to_renew" model="ir.actions.act_window">
<record id="subscription_action_subscriptions_to_renew"
model="ir.actions.act_window">
<field name="name">Subscriptions to Renew</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">subscription.package</field>
@ -65,30 +68,38 @@
<record id="subscription_package_form" model="ir.ui.view">
<field name="name">subscription.package.form</field>
<field name="model">subscription.package</field>
<field name="groups_id" eval="[(4, ref('subscription_package.group_subscription_user'))]"/>
<field name="groups_id"
eval="[(4, ref('subscription_package.group_subscription_user'))]"/>
<field name="arch" type="xml">
<form>
<header>
<field name="current_stage" invisible="1"/>
<field name="is_closed" invisible="1"/>
<button name="button_start_date" string="START"
type="object" class="btn-primary oe_read_only" attrs="{'invisible': [('stage_category','!=', 'draft')]}"/>
type="object" class="btn-primary"
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)]}"/>
<button name="button_payment" string="Invoice"
type="object" class="btn-primary oe_read_only"
attrs="{'invisible': [('so_count', '=', 0)]}"
invisible="1"/>
type="object" class="btn-primary"
attrs="{'invisible': [('stage_category','!=', 'progress')]}"/>
<button name="button_payment" string="Invoice" type="object"
class="btn-primary"
attrs="{'invisible': [('stage_category','!=', 'progress')]}"/>
<button name="button_close" string="Close Subscription"
type="object" class="btn-primary oe_read_only"
attrs="{'invisible': [('stage_category', 'in', ['draft', 'closed'])]}"/>
<button name="action_renew" string="Renew" type="object" class="btn-primary oe_read_only" attrs="{'invisible': [('so_count', '=', 0)]}"/>
<field name="stage_id" widget="statusbar" options="{'clickable' :0}"/>
type="object" class="btn-primary"
attrs="{'invisible': [('stage_category', '!=', 'progress')]}"/>
<button name="action_renew" string="Renew" type="object"
class="btn-primary oe_read_only"
attrs="{'invisible': [('so_count', '=', 0)]}"/>
<field name="stage_id" widget="statusbar"
options="{'clickable' :0}"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button name="button_sale_count" type="object" class="oe_stat_button"
icon="fa-credit-card" attrs="{'invisible': [('so_count', '=', 0)]}">
<button name="button_sale_count" type="object"
class="oe_stat_button"
icon="fa-credit-card"
attrs="{'invisible': [('so_count', '=', 0)]}">
<div class="o_field_widget o_stat_info">
<span class="o_stat_value">
<field name="so_count"/>
@ -98,8 +109,10 @@
</span>
</div>
</button>
<button name="button_invoice_count" type="object" class="oe_stat_button"
icon="fa-book" attrs="{'invisible': [('invoice_count','&lt;=',0)]}">
<button name="button_invoice_count" type="object"
class="oe_stat_button"
icon="fa-book"
attrs="{'invisible': [('invoice_count','&lt;=',0)]}">
<div class="o_field_widget o_stat_info">
<span class="o_stat_value">
<field name="invoice_count"/>
@ -123,7 +136,8 @@
</div>
<group>
<group>
<field name="partner_id" attrs="{'required': True}"/>
<field name="partner_id"
attrs="{'required': True}"/>
<field name="partner_invoice_id"/>
<field name="partner_shipping_id"/>
<field name="start_date"/>
@ -143,7 +157,8 @@
</group>
</group>
<notebook>
<page string="Subscriptions" name="subscription_products_line">
<page string="Subscriptions"
name="subscription_products_line">
<field name="product_line_ids">
<tree string="Product lines" editable="bottom">
<field name="sequence" widget="handle"/>
@ -156,14 +171,18 @@
<field name="total_amount" readonly="1"/>
</tree>
</field>
<group name="note_group" col="6" class="mt-2 mt-md-0">
<group class="oe_subtotal_footer oe_right" colspan="2" name="recurring_total">
<group name="note_group" col="6"
class="mt-2 mt-md-0">
<group class="oe_subtotal_footer oe_right"
colspan="2" name="recurring_total">
<field name="total_recurring_price"/>
</group>
</group>
</page>
<page string="Terms and Conditions" name="terms_and_conditions">
<field name="description" placeholder="Terms and Conditions."/>
<page string="Terms and Conditions"
name="terms_and_conditions">
<field name="description"
placeholder="Terms and Conditions."/>
</page>
<page string="Other Info" name="other_info">
<group>
@ -191,7 +210,8 @@
<field name="name">subscription.package.kanban</field>
<field name="model">subscription.package</field>
<field name="arch" type="xml">
<kanban default_group_by="stage_id" quick_create="false" class="o_kanban_mobile" sample="1">
<kanban default_group_by="stage_id" quick_create="false"
class="o_kanban_mobile" sample="1">
<field name="stage_id"/>
<field name="user_id"/>
<field name="to_renew"/>
@ -216,10 +236,12 @@
</div>
<div class="o_kanban_record_bottom">
<div class="oe_kanban_bottom_left">
<field name="activity_ids" widget="kanban_activity"/>
<field name="activity_ids"
widget="kanban_activity"/>
</div>
<div class="oe_kanban_bottom_right">
<field name="user_id" widget="many2one_avatar_user"/>
<field name="user_id"
widget="many2one_avatar_user"/>
</div>
</div>
</div>

Loading…
Cancel
Save