Skip to content

Commit

Permalink
Porting l10n_it_corrispettivi to 8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
shakin89 authored and monen17 committed Jan 26, 2019
1 parent 97d02f1 commit 2e686a2
Show file tree
Hide file tree
Showing 8 changed files with 178 additions and 219 deletions.
3 changes: 2 additions & 1 deletion l10n_it_corrispettivi/AUTHORS.txt
@@ -1 +1,2 @@
Lorenzo Battistini <lorenzo.battistini@agilebg.com>
Lorenzo Battistini <lorenzo.battistini@domsense.com>

4 changes: 2 additions & 2 deletions l10n_it_corrispettivi/__init__.py
@@ -1,5 +1,5 @@
# -*- encoding: utf-8 -*-
#
##############################################################################
#
# Copyright (C) 2011 Associazione OpenERP Italia
# (<http://www.openerp-italia.org>).
Expand All @@ -17,6 +17,6 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
##############################################################################
from . import account
from . import installer
15 changes: 7 additions & 8 deletions l10n_it_corrispettivi/__manifest__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
#
##############################################################################
#
# Copyright (C) 2011 Associazione OpenERP Italia
# (<http://www.openerp-italia.org>).
Expand All @@ -17,24 +17,23 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
##############################################################################
{
'name': 'Italian Localisation - Corrispettivi',
'version': '0.1',
'category': 'Localisation/Italy',
'description': """This module helps to easily input Corrispettivi within OpenERP.
Per maggiori informazioni:
http://planet.domsense.com/2011/11/openerp-registrare-i-corrispettivi/""",
'author': "OpenERP Italian Community,Odoo Community Association (OCA)",
Per maggiori informazioni:
http://planet.domsense.com/2011/11/openerp-registrare-i-corrispettivi/""",
'author': 'OpenERP Italian Community',
'website': 'http://www.openerp-italia.org',
'license': 'AGPL-3',
"depends": ['account_voucher'],
"data": [
'partner_data.xml',
'partner_data.xml',
'account_view.xml',
'installer_view.xml',
],
"active": False,
"installable": True
'installable': True
}
146 changes: 58 additions & 88 deletions l10n_it_corrispettivi/account.py
@@ -1,5 +1,5 @@
# -*- encoding: utf-8 -*-
#
##############################################################################
#
# Copyright (C) 2011 Associazione OpenERP Italia
# (<http://www.openerp-italia.org>).
Expand All @@ -17,119 +17,89 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
##############################################################################

from osv import fields, osv
from tools.translate import _
from openerp import models, fields, exceptions, api, _


class account_invoice(osv.osv):
class AccountInvoice(models.Model):
_inherit = 'account.invoice'
_columns = {
'corrispettivo': fields.boolean('Corrispettivo'),
}

def onchange_company_id(
self, cr, uid, ids, company_id, part_id, _type, invoice_line,
currency_id, context=None
):
if not context:
context = {}
journal_obj = self.pool.get('account.journal')
res = super(account_invoice, self).onchange_company_id(
cr, uid, ids, company_id, part_id,
_type, invoice_line, currency_id)
is_corrispettivo = context.get('corrispettivo', False)
corr_journal_ids = journal_obj.search(
cr, uid,
[('corrispettivi', '=', True), ('company_id', '=', company_id)])

# Se è un corrispettivo e la company ha almeno un sezionale
# corrispettivi
if is_corrispettivo and corr_journal_ids:
res['value']['journal_id'] = corr_journal_ids[0]

# Se la company ha almeno un sezionale corrispettivi ma l'invoice non è
# un corrispettivo
elif (
corr_journal_ids and
corr_journal_ids[0] in res['domain']['journal_id'][0][2]
):
# Se l'on_change di invoice ha impostato il journal corrispettivi
if (
corr_journal_ids[0] == res['value']['journal_id'] and
len(res['domain']['journal_id'][0][2]) > 1
):
for j_id in res['domain']['journal_id'][0][2]:
if corr_journal_ids[0] != j_id:
res['value']['journal_id'] = j_id
break
return res

def _get_account(self, cr, uid, context=None):
if context is None:
context = {}
is_corrispettivo = context.get('corrispettivo', False)
def _get_account(self):
is_corrispettivo = self._context.get('corrispettivo', False)
res = False
if is_corrispettivo:
partner_obj = partner_ids = self.pool.get('res.partner')
partner_ids = partner_obj.search(
cr, uid, [('corrispettivi', '=', True)])
partner_ids = self.env['res.partner'].search(
[('corrispettivi', '=', True)])
if not partner_ids:
raise osv.except_osv(_('Error!'),
_('No partner "corrispettivi" found'))
partner = partner_obj.browse(cr, uid, partner_ids[0])
raise exceptions.except_orm(
_('Error!'), _('No partner "corrispettivi" found'))
partner = self.env['res.partner'].browse(
self._cr, self._uid, partner_ids[0])
res = partner.property_account_receivable.id
return res

def _get_partner_id(self, cr, uid, context=None):
if context is None:
context = {}
is_corrispettivo = context.get('corrispettivo', False)
def _get_partner_id(self):
is_corrispettivo = self._context.get('corrispettivo', False)
res = False
if is_corrispettivo:
partner_obj = partner_ids = self.pool.get('res.partner')
partner_ids = partner_obj.search(
cr, uid, [('corrispettivi', '=', True)])
partner_ids = self.env['res.partner'].search(
[('corrispettivi', '=', True)])
if not partner_ids:
raise osv.except_osv(_('Error!'),
_('No partner "corrispettivi" found'))
raise exceptions.except_orm(
_('Error!'), _('No partner "corrispettivi" found'))
res = partner_ids[0]
return res

def onchange_corrispettivo(
self, cr, uid, ids, corrispettivo=False, context=None
# set default option on inherited field
corrispettivo = fields.Boolean(string='Corrispettivo')
account_id = fields.Many2one(default=_get_account)
partner_id = fields.Many2one(default=_get_partner_id)

@api.multi
def onchange_company_id(
self, company_id, part_id, type, invoice_line, currency_id
):
res = super(AccountInvoice, self).onchange_company_id(
company_id, part_id, type, invoice_line, currency_id)
is_corrispettivo = self._context.get('corrispettivo', False)
corr_journal_ids = self.env['account.journal'].search(
[('corrispettivi', '=', True), ('company_id', '=', company_id)])

# if it is a "corrispettivo" and the company has at least one
# journal "corrispettivi"
if is_corrispettivo and corr_journal_ids:
res['value']['journal_id'] = corr_journal_ids[0]

# if the company has at least one journal "corrispettivi" but the
# invoice it isn't a corrispettivo
elif corr_journal_ids and corr_journal_ids[0] in \
res['domain']['journal_id'][0][2]:
# if invoice's on_change has set journal corrispettivi
if corr_journal_ids[0] == res['value']['journal_id'] and \
len(res['domain']['journal_id'][0][2]) > 1:
for j_id in res['domain']['journal_id'][0][2]:
if corr_journal_ids[0] != j_id:
res['value']['journal_id'] = j_id
break
return res

@api.multi
def onchange_corrispettivo(self, corrispettivo=False):
res = {}
user_obj = self.pool.get('res.users')
journal_obj = self.pool.get('account.journal')
company_id = user_obj.browse(cr, uid, uid).company_id.id
corr_journal_ids = journal_obj.search(
cr, uid,
company_id = self.env['res.users'].browse(self._uid).company_id.id
corr_journal_ids = self.env['account.journal'].search(
[('corrispettivi', '=', True), ('company_id', '=', company_id)])
if corr_journal_ids and corrispettivo:
res = {'value': {'journal_id': corr_journal_ids[0]}}
return res

_defaults = {
'partner_id': _get_partner_id,
'account_id': _get_account,
}

account_invoice()


class account_journal(osv.osv):
class AccountJournal(models.Model):
_inherit = 'account.journal'
_columns = {
'corrispettivi': fields.boolean('Corrispettivi'),
}
account_journal()
corrispettivi = fields.Boolean(string='Corrispettivi')


class res_partner(osv.osv):
class ResPartner(models.Model):
_inherit = 'res.partner'
_columns = {
'corrispettivi': fields.boolean('Corrispettivi'),
}
res_partner()
corrispettivi = fields.Boolean(string='Corrispettivi')
17 changes: 9 additions & 8 deletions l10n_it_corrispettivi/account_view.xml
Expand Up @@ -35,7 +35,7 @@
<field name="priority" eval="17"/>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Corrispettivo" version="7.0">
<form string="Corrispettivo" version="8.0">
<header>
<button name="invoice_open" states="draft" string="Validate" class="oe_highlight" groups="base.group_user"/>
<button name="invoice_cancel" states="draft,open" string="Cancel" groups="base.group_no_one"/>
Expand Down Expand Up @@ -64,7 +64,7 @@
<group>
<field name="date_invoice"/>
<field name="journal_id" groups="account.group_account_user"
on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
on_change="onchange_journal_id(journal_id)" widget="selection"/>
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]"
name="account_id" groups="account.group_account_user"/>

Expand All @@ -80,7 +80,7 @@
<field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}">
<tree string="Invoice Lines" editable="bottom">
<field name="product_id"
on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id)"/>
<field name="name"/>
<field name="company_id" invisible="1"/>
<field name="account_id" groups="account.group_account_user"
Expand All @@ -90,10 +90,10 @@
domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
<field name="quantity"/>
<field name="uos_id" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id)"/>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type':parent.type}"
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type': parent.type}"
domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
<field name="price_subtotal"/>
</tree>
Expand Down Expand Up @@ -178,7 +178,7 @@
<field name="inherit_id" ref="account.invoice_form"></field>
<field name="arch" type="xml">
<field name="company_id" position="replace">
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id,context)" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
</field>
</field>
</record>
Expand Down Expand Up @@ -226,7 +226,7 @@
<field name="view_mode">tree,form,calendar,graph</field>
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','out_invoice'),('corrispettivo','=',True)]</field>
<field name="context" eval="{'default_type':'out_invoice', 'dafault_journal_type': 'sale', 'default_corrispettivo': True, 'default_partner_id':ref('partner_corrispettivi')}"/>
<field name="context" eval="{'default_type':'out_invoice', 'default_journal_type': 'sale', 'default_corrispettivo': True, 'default_partner_id':ref('partner_corrispettivi')}"/>
<field name="search_view_id" ref="view_account_corrispettivi_filter"/>
</record>

Expand Down Expand Up @@ -257,9 +257,10 @@
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<!-- i've set the field in the "Accounting" page of the partner form -->
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="supplier" position="after">
<field name="last_reconciliation_date" position="after">
<field name="corrispettivi" groups="account.group_account_manager"/>
</field>
</field>
Expand Down

0 comments on commit 2e686a2

Please sign in to comment.