Skip to content

Commit

Permalink
[FIX]sale_exception_credit_limit: cambios varios
Browse files Browse the repository at this point in the history
  • Loading branch information
jok-adhoc committed Aug 23, 2023
1 parent 9f76b20 commit 3597c4f
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 5 deletions.
3 changes: 2 additions & 1 deletion sale_exception_credit_limit/__manifest__.py
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
'name': 'Sale Exception Credit Limit',
'version': "16.0.1.3.0",
'version': "16.0.1.4.0",
'author': 'ADHOC SA',
'website': 'www.adhoc.com.ar',
'license': 'AGPL-3',
Expand All @@ -30,6 +30,7 @@
'data': [
'security/sale_exception_credit_limit_security.xml',
'data/exception_rule_data.xml',
'data/config_company_settings.xml',
'views/res_partner_views.xml',
'views/res_config_settings_views.xml',
],
Expand Down
4 changes: 4 additions & 0 deletions sale_exception_credit_limit/data/config_company_settings.xml
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<function model="res.company" name="_post_init_credit"/>
</odoo>
1 change: 1 addition & 0 deletions sale_exception_credit_limit/models/__init__.py
Expand Up @@ -4,3 +4,4 @@
##############################################################################
from . import sale_order
from . import res_partner
from . import res_company
13 changes: 13 additions & 0 deletions sale_exception_credit_limit/models/res_company.py
@@ -0,0 +1,13 @@
##############################################################################
# For copyright and license notices, see __manifest__.py file in module root
# directory
##############################################################################
from odoo import models, api


class ResCompany(models.Model):
_inherit = 'res.company'

@api.model
def _post_init_credit(self):
self.search([]).write({'account_use_credit_limit':True})
39 changes: 35 additions & 4 deletions sale_exception_credit_limit/models/res_partner.py
Expand Up @@ -4,6 +4,7 @@
##############################################################################
from odoo import models, fields, api
from odoo.exceptions import ValidationError
import json



Expand All @@ -15,10 +16,40 @@ class ResPartner(models.Model):
groups='account.group_account_invoice,account.group_account_readonly'
)

@api.constrains('credit_limit', 'use_partner_credit_limit')
def check_credit_limit_group(self):
if not self.env.user.has_group('sale_exception_credit_limit.credit_config') and not self._context.get('website_id'):
raise ValidationError('People without Credit limit Configuration Rights cannot modify credit limit parameters')
use_partner_credit_limit = fields.Boolean(groups='sale_exception_credit_limit.credit_config',)

credit_limit = fields.Float(
groups='sale_exception_credit_limit.credit_config')

credit_limit_only_view = fields.Float(compute='_compute_limit')
use_partner_credit_limit_only_view = fields.Boolean(string='Partner Limit',
compute='_compute_use_limit')

def _compute_limit(self):
self.credit_limit_only_view = self.sudo().credit_limit

def _compute_use_limit(self):
self.use_partner_credit_limit_only_view = self.sudo().use_partner_credit_limit

@api.model
def _get_view(self, view_id=None, view_type='form', **options):
arch, view = super()._get_view(view_id, view_type, **options)
if view_type == 'form':
if self.env.user.has_group('sale_exception_credit_limit.credit_config'):
invisible_fields = (arch.xpath("//group[@name='credit_limits_only_view']"))
for node in invisible_fields:
node.set('invisible', '1')
modifiers = json.loads(node.get("modifiers") or "{}")
modifiers['invisible'] = True
node.set("modifiers", json.dumps(modifiers))
if not self.env.user.has_group('sale_exception_credit_limit.credit_config'):
invisible_fields = (arch.xpath("//group[@name='credit_limits']"))
for node in invisible_fields:
node.set('invisible', '1')
modifiers = json.loads(node.get("modifiers") or "{}")
modifiers['invisible'] = True
node.set("modifiers", json.dumps(modifiers))
return arch, view

@api.depends_context('company')
def _compute_credit_with_confirmed_orders(self):
Expand Down
10 changes: 10 additions & 0 deletions sale_exception_credit_limit/views/res_partner_views.xml
Expand Up @@ -13,6 +13,16 @@
<field name="credit" position="after">
<field name="credit_with_confirmed_orders" attrs="{'invisible': [('use_partner_credit_limit', '=', False)]}"/>
</field>
<group name="credit_limits" position="after">
<group string="Credit Limits" name="credit_limits_only_view" groups="account.group_account_invoice,account.group_account_readonly" attrs="{'invisible': [('show_credit_limit', '=', False)]}">
<field name="credit_with_confirmed_orders" attrs="{'invisible': [('use_partner_credit_limit_only_view', '=', False)]}"/>
<label for="use_partner_credit_limit_only_view"/>
<div class="o_row">
<field name="use_partner_credit_limit_only_view" />
<field name="credit_limit_only_view" class="oe_inline" attrs="{'invisible': [('use_partner_credit_limit_only_view', '=', False)]}"/>
</div>
</group>
</group>
</field>
</record>

Expand Down

0 comments on commit 3597c4f

Please sign in to comment.