Skip to content

Instantly share code, notes, and snippets.

@eLBati
Created January 29, 2015 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eLBati/d0b190881f72b356f2a2 to your computer and use it in GitHub Desktop.
Save eLBati/d0b190881f72b356f2a2 to your computer and use it in GitHub Desktop.
diff --git a/l10n_it_corrispettivi/AUTHORS.txt b/l10n_it_corrispettivi/AUTHORS.txt
index 7106ca0..886ec56 100644
--- a/l10n_it_corrispettivi/AUTHORS.txt
+++ b/l10n_it_corrispettivi/AUTHORS.txt
@@ -1 +1,2 @@
-Lorenzo Battistini <lorenzo.battistini@agilebg.com>
+Lorenzo Battistini <lorenzo.battistini@domsense.com>
+
diff --git a/l10n_it_corrispettivi/__init__.py b/l10n_it_corrispettivi/__init__.py
index 4166e73..01176a4 100644
--- a/l10n_it_corrispettivi/__init__.py
+++ b/l10n_it_corrispettivi/__init__.py
@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*-
-#
-#
+##############################################################################
+#
# Copyright (C) 2011 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -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
+##############################################################################
+import account
+import installer
diff --git a/l10n_it_corrispettivi/__openerp__.py b/l10n_it_corrispettivi/__openerp__.py
index 6b8c09b..63ba337 100644
--- a/l10n_it_corrispettivi/__openerp__.py
+++ b/l10n_it_corrispettivi/__openerp__.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
-#
-#
+##############################################################################
+#
# Copyright (C) 2011 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -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/""",
+
+ 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',
+ "depends" : ['account_voucher'],
+ "data" : [
+ 'partner_data.xml',
'account_view.xml',
'installer_view.xml',
- ],
+ ],
"active": False,
- "installable": True
+ 'installable': True
}
diff --git a/l10n_it_corrispettivi/account.py b/l10n_it_corrispettivi/account.py
index 47ec428..ab147ae 100644
--- a/l10n_it_corrispettivi/account.py
+++ b/l10n_it_corrispettivi/account.py
@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*-
-#
-#
+##############################################################################
+#
# Copyright (C) 2011 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -17,119 +17,74 @@
# 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,
- [('corrispettivi', '=', True), ('company_id', '=', company_id)])
+ 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')
diff --git a/l10n_it_corrispettivi/account_view.xml b/l10n_it_corrispettivi/account_view.xml
index aa716ea..49f945e 100644
--- a/l10n_it_corrispettivi/account_view.xml
+++ b/l10n_it_corrispettivi/account_view.xml
@@ -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"/>
@@ -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"/>
@@ -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"
@@ -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>
@@ -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>
@@ -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>
@@ -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>
diff --git a/l10n_it_corrispettivi/i18n/it.po b/l10n_it_corrispettivi/i18n/it.po
index 11a6d25..c332331 100644
--- a/l10n_it_corrispettivi/i18n/it.po
+++ b/l10n_it_corrispettivi/i18n/it.po
@@ -8,7 +8,7 @@ msgstr ""
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-08-22 08:03+0000\n"
"PO-Revision-Date: 2011-08-22 10:05+0100\n"
-"Last-Translator: eLBati <lorenzo.battistini@agilebg.com>\n"
+"Last-Translator: eLBati <lorenzo.battistini@domsense.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/l10n_it_corrispettivi/installer.py b/l10n_it_corrispettivi/installer.py
index f0a5cd9..605262e 100644
--- a/l10n_it_corrispettivi/installer.py
+++ b/l10n_it_corrispettivi/installer.py
@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*-
-#
-#
+##############################################################################
+#
# Copyright (C) 2011 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -17,25 +17,17 @@
# 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 openerp.osv import osv
+from openerp import fields, models
-
-class corrispettivi_config_data(osv.osv_memory):
+class CorrispettiviConfigData(osv.osv_memory):
_name = 'corrispettivi.config.data'
_inherit = 'res.config'
- _columns = {
- 'default_credit_account_id': fields.many2one(
- 'account.account', 'Default credit account',
- domain=[('type', '!=', 'view')], required=True,
- help='If doubtful, use income account'),
- 'default_debit_account_id': fields.many2one(
- 'account.account', 'Default debit account',
- domain=[('type', '!=', 'view')], required=True,
- help='If doubtful, use income account'),
- }
+ default_credit_account_id = fields.Many2one('account.account', 'Default credit account', domain=[('type','!=','view')], required=True, help='If doubtful, use income account')
+ default_debit_account_id = fields.Many2one('account.account', 'Default debit account', domain=[('type','!=','view')], required=True, help='If doubtful, use income account')
def execute(self, cr, uid, ids, context=None):
for o in self.browse(cr, uid, ids, context=context):
@@ -43,8 +35,8 @@ class corrispettivi_config_data(osv.osv_memory):
'name': 'Sezionale Corrispettivi',
'padding': 3,
'prefix': 'COJ/%(year)s/',
- })
- self.pool.get('account.journal').create(cr, uid, {
+ })
+ journal_id = self.pool.get('account.journal').create(cr, uid, {
'code': 'COJ',
'name': 'Sezionale Corrispettivi',
'type': 'sale',
@@ -52,13 +44,11 @@ class corrispettivi_config_data(osv.osv_memory):
'sequence_id': seq_id,
'default_credit_account_id': o.default_credit_account_id.id,
'default_debit_account_id': o.default_debit_account_id.id,
- })
- self.pool.get('res.partner').create(cr, uid, {
+ })
+ partner_id = self.pool.get('res.partner').create(cr, uid, {
'name': 'Corrispettivi',
'ref': 'COJ',
'customer': False,
'supplier': False,
'corrispettivi': True,
- })
-
-corrispettivi_config_data()
+ })
diff --git a/l10n_it_corrispettivi/installer_view.xml b/l10n_it_corrispettivi/installer_view.xml
index a48608e..b049ec4 100644
--- a/l10n_it_corrispettivi/installer_view.xml
+++ b/l10n_it_corrispettivi/installer_view.xml
@@ -19,7 +19,7 @@
Select data to configure Corrispettivi module.
</p>
<group string="Configure corrispettivi" groups="account.group_account_user">
- <group colspan="4" >
+ <group colspan="4" >
<field name="default_credit_account_id"/>
<field name="default_debit_account_id"/>
</group>
@@ -49,6 +49,8 @@
<!-- register configuration wizard -->
<record id="config_wizard_step_corrispettivi_config_data" model="ir.actions.todo">
<field name="action_id" ref="action_corrispettivi_config_data"/>
+ <field name="sequence">3</field>
+ <field name="type">automatic</field>
<field name="restart">onskip</field>
<field name="groups_id" eval="[(6,0,[ref('base.group_no_one')])]"/>
</record>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment