openobject-italia-core-devs team mailing list archive
-
openobject-italia-core-devs team
-
Mailing list archive
-
Message #01016
[Merge] lp:~dr.dran/openobject-italia/add_abi_cab into lp:openobject-italia/6.1
Franco Tampieri - Agile BG - Domsense has proposed merging lp:~dr.dran/openobject-italia/add_abi_cab into lp:openobject-italia/6.1.
Requested reviews:
OpenERP Italia core devs (openobject-italia-core-devs)
For more details, see:
https://code.launchpad.net/~dr.dran/openobject-italia/add_abi_cab/+merge/129576
[Add] Abi/Cab code
[Add] New fiscal Code Management
[Add] l10n_it_ricevute_bancarie it translation
[Mod] l10n_it_account removed the fiscal code management
[Fix] l10n_it_sale add some usability improvement
--
https://code.launchpad.net/~dr.dran/openobject-italia/add_abi_cab/+merge/129576
Your team OpenERP Italia core devs is requested to review the proposed merge of lp:~dr.dran/openobject-italia/add_abi_cab into lp:openobject-italia/6.1.
=== added directory 'l10n_it_abicab'
=== added file 'l10n_it_abicab/AUTHORS.txt'
--- l10n_it_abicab/AUTHORS.txt 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/AUTHORS.txt 2012-10-13 22:49:21 +0000
@@ -0,0 +1,1 @@
+Franco Tampieri <franco.tampieri@xxxxxxxxxxx>
=== added file 'l10n_it_abicab/__init__.py'
--- l10n_it_abicab/__init__.py 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/__init__.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,24 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2012
+# Associazione OpenERP Italia (<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 by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# 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 Affero General Public License for more details.
+#
+# 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/>.
+#
+#############################################################################
+
+import abicab
+
=== added file 'l10n_it_abicab/__openerp__.py'
--- l10n_it_abicab/__openerp__.py 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/__openerp__.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,37 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2012
+# Associazione OpenERP Italia (<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 by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# 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 Affero General Public License for more details.
+#
+# 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 - Base Bank ABI/CAB codes',
+ 'version': '1.0',
+ 'category': 'Localisation/Italy',
+ 'description': """
+ Insert in the res.bank model the proprieties of the ABI/CAB
+ """,
+ 'author': 'OpenERP Italian Community',
+ 'depends': ['base'],
+ 'website': 'http://www.openerp-italia.org/',
+ 'update_xml': ['abicab_view.xml'],
+ 'installable': True,
+ 'active': False,
+ 'certificate': '',
+}
\ No newline at end of file
=== added file 'l10n_it_abicab/abicab.py'
--- l10n_it_abicab/abicab.py 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/abicab.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,46 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2012
+# Associazione OpenERP Italia (<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 by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# 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 Affero General Public License for more details.
+#
+# 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
+
+class res_bank(osv.osv):
+ _inherit = "res.bank"
+ _columns = {
+ 'abi': fields.char('ABI', size=5),
+ 'cab': fields.char('CAB', size=5),
+ }
+
+class res_partner_bank(osv.osv):
+ _inherit = "res.partner.bank"
+ _columns = {
+ 'bank_abi': fields.char('ABI', size=5),
+ 'bank_cab': fields.char('CAB', size=5),
+ }
+
+ def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):
+ result = super(res_partner_bank, self).onchange_bank_id(cr, uid, ids, bank_id, context=context)
+ if bank_id:
+ bank = self.pool.get('res.bank').browse(cr, uid, bank_id, context=context)
+ result['value']['bank_abi'] = bank.abi
+ result['value']['bank_cab'] = bank.cab
+ return result
+
=== added file 'l10n_it_abicab/abicab_view.xml'
--- l10n_it_abicab/abicab_view.xml 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/abicab_view.xml 2012-10-13 22:49:21 +0000
@@ -0,0 +1,46 @@
+<?xml version="1.0" ?>
+<openerp>
+ <data>
+
+ <record id="view_bank_tree_abicab" model="ir.ui.view">
+ <field name="name">res.bank.tree.abicab</field>
+ <field name="model">res.bank</field>
+ <field name="inherit_id" ref="base.view_res_bank_tree"/>
+ <field name="arch" type="xml">
+ <field name="name" position="after">
+ <field name="abi"/>
+ <field name="cab"/>
+ </field>
+ </field>
+ </record>
+
+ <record id="view_bank_form_abicab" model="ir.ui.view">
+ <field name="name">res.bank.form.abicab</field>
+ <field name="model">res.bank</field>
+ <field name="inherit_id" ref="base.view_res_bank_form"/>
+ <field name="arch" type="xml">
+ <field name="name" position="after">
+ <newline/>
+ <separator string="Bank Details" colspan="6"/>
+ <group colspan="6" col="6">
+ <field name="abi"/>
+ <field name="cab"/>
+ </group>
+ </field>
+ </field>
+ </record>
+
+ <record id="view_partner_bank_form_abicab" model="ir.ui.view">
+ <field name="name">res.partner.bank.form</field>
+ <field name="model">res.partner</field>
+ <field name="inherit_id" ref="base.view_partner_form"/>
+ <field name="arch" type="xml">
+ <field name="bank_name" position="after">
+ <field name="bank_abi"/>
+ <field name="bank_cab"/>
+ </field>
+ </field>
+ </record>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added directory 'l10n_it_abicab/i18n'
=== added file 'l10n_it_abicab/i18n/it.mo'
Binary files l10n_it_abicab/i18n/it.mo 1970-01-01 00:00:00 +0000 and l10n_it_abicab/i18n/it.mo 2012-10-13 22:49:21 +0000 differ
=== added file 'l10n_it_abicab/i18n/it.po'
--- l10n_it_abicab/i18n/it.po 1970-01-01 00:00:00 +0000
+++ l10n_it_abicab/i18n/it.po 2012-10-13 22:49:21 +0000
@@ -0,0 +1,37 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_it_abicab
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.3\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-12-29 13:07+0000\n"
+"PO-Revision-Date: 2011-12-29 14:08+0100\n"
+"Last-Translator: Franco Tampieri <info@xxxxxxxxxx>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_abicab
+#: field:res.bank,abi:0
+msgid "ABI"
+msgstr "ABI"
+
+#. module: l10n_it_abicab
+#: view:res.bank:0
+msgid "Bank Details"
+msgstr "Dettagli Banca"
+
+#. module: l10n_it_abicab
+#: model:ir.model,name:l10n_it_abicab.model_res_bank
+msgid "Bank"
+msgstr "Banca"
+
+#. module: l10n_it_abicab
+#: field:res.bank,cab:0
+msgid "CAB"
+msgstr "CAB"
+
=== modified file 'l10n_it_account/AUTHORS.txt'
--- l10n_it_account/AUTHORS.txt 2010-09-22 13:43:42 +0000
+++ l10n_it_account/AUTHORS.txt 2012-10-13 22:49:21 +0000
@@ -6,4 +6,5 @@
Giovanni Barzan <giovanni.barzan@xxxxxxxxx>
Lorenzo Battistini <lorenzo.battistini@xxxxxxxxxxx>
Roberto Onnis <onnis.roberto@xxxxxxxxx>
+Franco Tampieri <franco.tampieri@xxxxxxxxxxx>
=== modified file 'l10n_it_account/__init__.py'
--- l10n_it_account/__init__.py 2012-03-09 08:52:48 +0000
+++ l10n_it_account/__init__.py 2012-10-13 22:49:21 +0000
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# Copyright (C) 2010 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
@@ -21,5 +21,4 @@
##############################################################################
import account
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'l10n_it_account/__openerp__.py'
--- l10n_it_account/__openerp__.py 2012-03-09 08:52:48 +0000
+++ l10n_it_account/__openerp__.py 2012-10-13 22:49:21 +0000
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# Copyright (C) 2010-2012 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
@@ -34,8 +34,8 @@
'author': 'OpenERP Italian Community',
'website': 'http://www.openerp-italia.org',
'license': 'AGPL-3',
- "depends" : ['account','base_vat','account_chart','base_iban', 'l10n_it_base'],
- "init_xml" : ['account/partner_view.xml'],
+ "depends" : ['account','base_vat','account_chart','base_iban'],
+ "init_xml" : [],
"update_xml" : [],
"demo_xml" : [],
"active": False,
=== modified file 'l10n_it_account/account/__init__.py'
--- l10n_it_account/account/__init__.py 2012-03-09 08:52:48 +0000
+++ l10n_it_account/account/__init__.py 2012-10-13 22:49:21 +0000
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# Copyright (C) 2010 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
+# (<http://www.openerp-italia.org>).
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
@@ -20,5 +20,4 @@
#
##############################################################################
-import account
import invoice
=== removed file 'l10n_it_account/account/account.py'
--- l10n_it_account/account/account.py 2012-03-09 08:52:48 +0000
+++ l10n_it_account/account/account.py 1970-01-01 00:00:00 +0000
@@ -1,136 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Copyright (C) 2010-2012 Associazione OpenERP Italia
-# (<http://www.openerp-italia.org>).
-# All Rights Reserved
-#
-# 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 by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# 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 General Public License for more details.
-#
-# 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
-import datetime
-
-class res_partner(osv.osv):
- _inherit = 'res.partner'
-
- def check_fiscalcode(self, cr, uid, ids, context={}):
-
- for partner in self.browse(cr, uid, ids):
- if not partner.fiscalcode:
- return True
- if len(partner.fiscalcode) != 16:
- return False
-
- return True
-
- _columns = {
- 'fiscalcode': fields.char('Fiscal Code', size=16, help="Italian Fiscal Code"),
- 'fiscalcode_surname': fields.char('Surname', size=64),
- 'fiscalcode_firstname': fields.char('First name', size=64),
- 'birth_date': fields.date('Date of birth'),
- 'birth_city': fields.many2one('res.city', 'City of birth'),
- 'sex': fields.selection([
- ('M','Male'),
- ('F', 'Female'),
- ], "Sex"),
- }
- #_constraints = [(check_fiscalcode, "The fiscal code doesn't seem to be correct.", ["fiscalcode"])]
-
-
- def _codicefiscale(self, cognome, nome, giornonascita, mesenascita, annonascita,
- sesso, cittanascita):
-
- MESI = 'ABCDEHLMPRST'
- CONSONANTI = 'BCDFGHJKLMNPQRSTVWXYZ'
- VOCALI = 'AEIOU'
- LETTERE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- REGOLECONTROLLO = {
- 'A':(0,1), 'B':(1,0), 'C':(2,5), 'D':(3,7), 'E':(4,9),
- 'F':(5,13), 'G':(6,15), 'H':(7,17), 'I':(8,19), 'J':(9,21),
- 'K':(10,2), 'L':(11,4), 'M':(12,18), 'N':(13,20), 'O':(14,11),
- 'P':(15,3), 'Q':(16,6), 'R':(17,8), 'S':(18,12), 'T':(19,14),
- 'U':(20,16), 'V':(21,10), 'W':(22,22), 'X':(23,25), 'Y':(24,24),
- 'Z':(25,23),
- '0':(0,1), '1':(1,0), '2':(2,5), '3':(3,7), '4':(4,9),
- '5':(5,13), '6':(6,15), '7':(7,17), '8':(8,19), '9':(9,21)
- }
- ###
- # Funzioni
- ##
-
- def _surname(stringa):
- """Ricava, da stringa, 3 lettere in base alla convenzione dei CF."""
- cons = [c for c in stringa if c in CONSONANTI]
- voc = [c for c in stringa if c in VOCALI]
- chars=cons+voc
- if len(chars)<3:
- chars+=['X', 'X']
- return chars[:3]
-
- def _name(stringa):
- """Ricava, da stringa, 3 lettere in base alla convenzione dei CF."""
- cons = [c for c in stringa if c in CONSONANTI]
- voc = [c for c in stringa if c in VOCALI]
- if len(cons)>3:
- cons = [cons[0]] +[cons[2]] + [cons[3]]
- chars=cons+voc
- if len(chars)<3:
- chars+=['X', 'X']
- return chars[:3]
-
- def _datan(giorno, mese, anno, sesso):
- """Restituisce il campo data del CF."""
- chars = (list(anno[-2:]) + [MESI[int(mese)-1]])
- gn=int(giorno)
- if sesso=='F':
- gn+=40
- chars += list("%02d" % gn)
- return chars
-
- def _codicecontrollo(c):
- """Restituisce il codice di controllo, l'ultimo carattere del CF."""
- sommone = 0
- for i, car in enumerate(c):
- j = 1 - i % 2
- sommone += REGOLECONTROLLO[car][j]
- resto = sommone % 26
- return [LETTERE[resto]]
-
- """Restituisce il CF costruito sulla base degli argomenti."""
- nome=nome.upper()
- cognome=cognome.upper()
- sesso=sesso.upper()
- cittanascita = cittanascita.upper()
- chars = (_surname(cognome) +
- _name(nome) +
- _datan(giornonascita, mesenascita, annonascita, sesso) +
- list(cittanascita))
- chars += _codicecontrollo(chars)
- return ''.join(chars)
-
- def compute_fiscal_code(self, cr, uid, ids, context):
- partners = self.browse(cr, uid, ids, context)
- for partner in partners:
- if not partner.fiscalcode_surname or not partner.fiscalcode_firstname or not partner.birth_date or not partner.birth_city or not partner.sex:
- raise osv.except_osv('Error', 'One or more fields are missing')
- birth_date = datetime.datetime.strptime(partner.birth_date, "%Y-%m-%d")
- CF = self._codicefiscale(partner.fiscalcode_surname, partner.fiscalcode_firstname, str(birth_date.day),
- str(birth_date.month), str(birth_date.year), partner.sex,
- partner.birth_city.cadaster_code)
- self.write(cr, uid, partner.id, {'fiscalcode': CF})
- return True
-
-res_partner()
=== removed file 'l10n_it_account/account/partner_view.xml'
--- l10n_it_account/account/partner_view.xml 2010-10-28 16:05:31 +0000
+++ l10n_it_account/account/partner_view.xml 1970-01-01 00:00:00 +0000
@@ -1,27 +0,0 @@
-<?xml version="1.0" ?>
-<openerp>
- <data>
-
- <record id="view_partner_form_fiscalcode_data" model="ir.ui.view">
- <field name="name">res.partner.fiscalcode.data</field>
- <field name="model">res.partner</field>
- <field name="inherit_id" ref="base.view_partner_form"/>
- <field name="arch" type="xml">
- <page string="Notes" position="after" >
- <page string="Fiscal Code" >
- <separator colspan="4"/>
- <field name="fiscalcode"/>
- <newline/>
- <separator string="Compute Fiscal Code" colspan="4"/>
- <field name="fiscalcode_surname"/>
- <field name="fiscalcode_firstname"/>
- <field name="birth_date"/>
- <field name="birth_city"/>
- <field name="sex"/>
- <button name="compute_fiscal_code" type="object" string="Compute"/>
- </page>
- </page>
- </field>
- </record>
- </data>
-</openerp>
=== added directory 'l10n_it_fiscalcode'
=== added file 'l10n_it_fiscalcode/AUTHORS.txt'
--- l10n_it_fiscalcode/AUTHORS.txt 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/AUTHORS.txt 2012-10-13 22:49:21 +0000
@@ -0,0 +1,10 @@
+Davide Corio <davide.corio@xxxxxxxxxxxx>
+Luca Subiaco <subluca@xxxxxxxxx>
+Simone Orsi <simone.orsi@xxxxxxxxxxxx>
+Mario Riva <mario.riva@xxxxxxxxxxxx>
+Mauro Soligo <mauro.soligo@xxxxxxxxxx>
+Giovanni Barzan <giovanni.barzan@xxxxxxxxx>
+Lorenzo Battistini <lorenzo.battistini@xxxxxxxxxxx>
+Roberto Onnis <onnis.roberto@xxxxxxxxx>
+Franco Tampieri <franco.tampieri@xxxxxxxxxxx>
+
=== added file 'l10n_it_fiscalcode/__init__.py'
--- l10n_it_fiscalcode/__init__.py 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/__init__.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2012 Associazione OpenERP Italia
+# (<http://www.openerp-italia.org>).
+# All Rights Reserved
+#
+# 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 by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 General Public License for more details.
+#
+# 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/>.
+#
+##############################################################################
+
+import fiscalcode
+import wizard
+
=== added file 'l10n_it_fiscalcode/__openerp__.py'
--- l10n_it_fiscalcode/__openerp__.py 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/__openerp__.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2010-2012 Associazione OpenERP Italia
+# (<http://www.openerp-italia.org>).
+# All Rights Reserved
+#
+# 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
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 General Public License for more details.
+#
+# 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 - Fiscal Code',
+ 'version': '0.1',
+ 'category': 'Localisation/Italy',
+ 'description': """
+This module customizes OpenERP in order to fit italian laws and mores - Account version
+
+Functionalities:
+
+- Fiscal code computation for partner
+
+""",
+ 'author': 'OpenERP Italian Community',
+ 'website': 'http://www.openerp-italia.org',
+ 'license': 'AGPL-3',
+ "depends" : ['base', 'l10n_it_base'],
+ "init_xml" : [
+ 'fiscalcode_view.xml',
+ 'wizard/compute_fc_view.xml'
+ ],
+ "update_xml" : [],
+ "demo_xml" : [],
+ "active": False,
+ "installable": True
+}
=== added file 'l10n_it_fiscalcode/fiscalcode.py'
--- l10n_it_fiscalcode/fiscalcode.py 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/fiscalcode.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2010-2012 Associazione OpenERP Italia
+# (<http://www.openerp-italia.org>).
+# All Rights Reserved
+#
+# 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 by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 General Public License for more details.
+#
+# 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
+import tools
+import pooler
+from tools.translate import _
+import datetime
+
+class res_partner(osv.osv):
+ _inherit = 'res.partner'
+
+ def check_fiscalcode(self, cr, uid, ids, context={}):
+
+ for partner in self.browse(cr, uid, ids):
+ if not partner.fiscalcode:
+ return True
+ elif len(partner.fiscalcode) != 16 and partner.individual:
+ return False
+ else:
+ return True
+
+ _columns = {
+ 'fiscalcode': fields.char('Fiscal Code', size=16, help="Italian Fiscal Code"),
+ 'individual': fields.boolean('Individual', help="If checked the C.F. is referred to a Individual Person"),
+ }
+ _defaults = {
+ 'individual': False,
+ }
+ _constraints = [(check_fiscalcode, "The fiscal code doesn't seem to be correct.", ["fiscalcode"])]
\ No newline at end of file
=== added file 'l10n_it_fiscalcode/fiscalcode_view.xml'
--- l10n_it_fiscalcode/fiscalcode_view.xml 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/fiscalcode_view.xml 2012-10-13 22:49:21 +0000
@@ -0,0 +1,24 @@
+<?xml version="1.0" ?>
+<openerp>
+ <data>
+
+ <record id="view_partner_form_fiscalcode_data" model="ir.ui.view">
+ <field name="name">res.partner.fiscalcode.data</field>
+ <field name="model">res.partner</field>
+ <field name="inherit_id" ref="base.view_partner_form"/>
+ <field name="arch" type="xml">
+ <field name="property_account_payable" position="after">
+ <separator string="Fiscal Data" colspan="2"/>
+ <group colspan="2" col="6">
+ <field name="fiscalcode"/>
+ <field name="individual" colspan="1" groups="base.group_extended" />
+ </group>
+ </field>
+ <field name="property_account_position" position="before">
+ <separator string="Payment Mode" colspan="2"/>
+ </field>
+ </field>
+ </record>
+
+ </data>
+</openerp>
=== added directory 'l10n_it_fiscalcode/i18n'
=== added file 'l10n_it_fiscalcode/i18n/it.mo'
Binary files l10n_it_fiscalcode/i18n/it.mo 1970-01-01 00:00:00 +0000 and l10n_it_fiscalcode/i18n/it.mo 2012-10-13 22:49:21 +0000 differ
=== added file 'l10n_it_fiscalcode/i18n/it.po'
--- l10n_it_fiscalcode/i18n/it.po 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/i18n/it.po 2012-10-13 22:49:21 +0000
@@ -0,0 +1,113 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_it_fiscalcode
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-10-13 21:44+0000\n"
+"PO-Revision-Date: 2012-10-13 23:49+0100\n"
+"Last-Translator: Franco Tampieri <info@xxxxxxxxxxxxxxxxxx>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_fiscalcode
+#: field:wizard.compute.fc,fiscalcode_surname:0
+msgid "Surname"
+msgstr "Cognome"
+
+#. module: l10n_it_fiscalcode
+#: model:ir.model,name:l10n_it_fiscalcode.model_res_partner
+msgid "Partner"
+msgstr "Cliente"
+
+#. module: l10n_it_fiscalcode
+#: help:res.partner,individual:0
+msgid "If checked the C.F. is referred to a Individual Person"
+msgstr "Se selezionato il Cofice Fiscale farà riferimento a quello di una Persona Fisica"
+
+#. module: l10n_it_fiscalcode
+#: view:wizard.compute.fc:0
+msgid "Compute"
+msgstr "Calcola"
+
+#. module: l10n_it_fiscalcode
+#: field:wizard.compute.fc,birth_date:0
+msgid "Date of birth"
+msgstr "Data di nascita"
+
+#. module: l10n_it_fiscalcode
+#: view:res.partner:0
+msgid "Payment Mode"
+msgstr "Modalità di Pagamento"
+
+#. module: l10n_it_fiscalcode
+#: field:wizard.compute.fc,sex:0
+msgid "Sex"
+msgstr "Sesso"
+
+#. module: l10n_it_fiscalcode
+#: field:wizard.compute.fc,fiscalcode_firstname:0
+msgid "First name"
+msgstr "Nome"
+
+#. module: l10n_it_fiscalcode
+#: view:wizard.compute.fc:0
+msgid "Fiscal Code"
+msgstr "Codice Fiscale"
+
+#. module: l10n_it_fiscalcode
+#: field:res.partner,individual:0
+msgid "Individual"
+msgstr "Persona Fisica"
+
+#. module: l10n_it_fiscalcode
+#: view:wizard.compute.fc:0
+msgid "Individual Data"
+msgstr "Dati Persona Fisica"
+
+#. module: l10n_it_fiscalcode
+#: selection:wizard.compute.fc,sex:0
+msgid "Female"
+msgstr "Femmina"
+
+#. module: l10n_it_fiscalcode
+#: view:res.partner:0
+msgid "Fiscal Data"
+msgstr "Dati Fiscali"
+
+#. module: l10n_it_fiscalcode
+#: view:wizard.compute.fc:0
+msgid "Cancel"
+msgstr "Annulla"
+
+#. module: l10n_it_fiscalcode
+#: model:ir.actions.act_window,name:l10n_it_fiscalcode.action_compute_fc
+#: model:ir.model,name:l10n_it_fiscalcode.model_wizard_compute_fc
+msgid "Compute Fiscal Code"
+msgstr "Calcola il Codice Fiscale"
+
+#. module: l10n_it_fiscalcode
+#: view:res.partner:0
+msgid "Compute F.C."
+msgstr "Calcola C.F."
+
+#. module: l10n_it_fiscalcode
+#: selection:wizard.compute.fc,sex:0
+msgid "Male"
+msgstr "Maschio"
+
+#. module: l10n_it_fiscalcode
+#: field:wizard.compute.fc,birth_city:0
+msgid "City of birth"
+msgstr "Città di Nascita"
+
+#. module: l10n_it_fiscalcode
+#: constraint:res.partner:0
+msgid "The fiscal code doesn't seem to be correct."
+msgstr "Il Codice Fiscale non sembra corretto per una Persona Fisica."
+
=== added file 'l10n_it_fiscalcode/i18n/l10n_it_account.pot'
--- l10n_it_fiscalcode/i18n/l10n_it_account.pot 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/i18n/l10n_it_account.pot 2012-10-13 22:49:21 +0000
@@ -0,0 +1,117 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_it_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-05-05 16:44+0000\n"
+"PO-Revision-Date: 2011-05-05 16:44+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_account
+#: code:addons/l10n_it_account/account/invoice.py:45
+#, python-format
+msgid "Cannot create invoice! Post the invoice with a greater date"
+msgstr ""
+
+#. module: l10n_it_account
+#: view:res.partner:0
+msgid "Compute"
+msgstr ""
+
+#. module: l10n_it_account
+#: model:ir.model,name:l10n_it_account.model_account_invoice
+msgid "Invoice"
+msgstr ""
+
+#. module: l10n_it_account
+#: field:res.partner,birth_date:0
+msgid "Date of birth"
+msgstr ""
+
+#. module: l10n_it_account
+#: view:res.partner:0
+msgid "Notes"
+msgstr ""
+
+#. module: l10n_it_account
+#: model:ir.module.module,description:l10n_it_account.module_meta_information
+msgid "This module customizes OpenERP in order to fit italian laws and mores - Account version\n"
+"\n"
+"Functionalities:\n"
+"\n"
+"- Fiscal code computation for partner\n"
+"- Check invoice date consistency\n"
+"\n"
+""
+msgstr ""
+
+#. module: l10n_it_account
+#: help:res.partner,fiscalcode:0
+msgid "Italian Fiscal Code"
+msgstr ""
+
+#. module: l10n_it_account
+#: field:res.partner,sex:0
+msgid "Sex"
+msgstr ""
+
+#. module: l10n_it_account
+#: field:res.partner,fiscalcode_surname:0
+msgid "Surname"
+msgstr ""
+
+#. module: l10n_it_account
+#: field:res.partner,fiscalcode_firstname:0
+msgid "First name"
+msgstr ""
+
+#. module: l10n_it_account
+#: view:res.partner:0
+#: field:res.partner,fiscalcode:0
+msgid "Fiscal Code"
+msgstr ""
+
+#. module: l10n_it_account
+#: model:ir.module.module,shortdesc:l10n_it_account.module_meta_information
+msgid "Italian Localisation - Account"
+msgstr ""
+
+#. module: l10n_it_account
+#: selection:res.partner,sex:0
+msgid "Female"
+msgstr ""
+
+#. module: l10n_it_account
+#: model:ir.model,name:l10n_it_account.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: l10n_it_account
+#: view:res.partner:0
+msgid "Compute Fiscal Code"
+msgstr ""
+
+#. module: l10n_it_account
+#: selection:res.partner,sex:0
+msgid "Male"
+msgstr ""
+
+#. module: l10n_it_account
+#: code:addons/l10n_it_account/account/invoice.py:44
+#, python-format
+msgid "Date Inconsistency"
+msgstr ""
+
+#. module: l10n_it_account
+#: field:res.partner,birth_city:0
+msgid "City of birth"
+msgstr ""
+
=== added directory 'l10n_it_fiscalcode/wizard'
=== added file 'l10n_it_fiscalcode/wizard/__init__.py'
--- l10n_it_fiscalcode/wizard/__init__.py 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/wizard/__init__.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2012 Associazione OpenERP Italia
+# (<http://www.openerp-italia.org>).
+# All Rights Reserved
+#
+# 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 by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 General Public License for more details.
+#
+# 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/>.
+#
+##############################################################################
+
+import compute_fc
+
=== added file 'l10n_it_fiscalcode/wizard/compute_fc.py'
--- l10n_it_fiscalcode/wizard/compute_fc.py 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/wizard/compute_fc.py 2012-10-13 22:49:21 +0000
@@ -0,0 +1,125 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2010-2012 Associazione OpenERP Italia
+# (<http://www.openerp-italia.org>).
+# All Rights Reserved
+#
+# 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 by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 General Public License for more details.
+#
+# 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
+import tools
+import pooler
+from tools.translate import _
+
+import datetime
+
+class wizard_compute_fc(osv.osv_memory):
+
+ _name = "wizard.compute.fc"
+ _description = "Compute Fiscal Code"
+ _columns = {
+ 'fiscalcode_surname': fields.char('Surname', size=64),
+ 'fiscalcode_firstname': fields.char('First name', size=64),
+ 'birth_date': fields.date('Date of birth'),
+ 'birth_city': fields.many2one('res.city', 'City of birth'),
+ 'sex': fields.selection([('M','Male'),
+ ('F', 'Female'),
+ ], "Sex"),
+ }
+
+
+ def _codicefiscale(self, cognome, nome, giornonascita, mesenascita, annonascita, sesso, cittanascita):
+
+ MESI = 'ABCDEHLMPRST'
+ CONSONANTI = 'BCDFGHJKLMNPQRSTVWXYZ'
+ VOCALI = 'AEIOU'
+ LETTERE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+
+ REGOLECONTROLLO = {
+ 'A':(0,1), 'B':(1,0), 'C':(2,5), 'D':(3,7), 'E':(4,9),
+ 'F':(5,13), 'G':(6,15), 'H':(7,17), 'I':(8,19), 'J':(9,21),
+ 'K':(10,2), 'L':(11,4), 'M':(12,18), 'N':(13,20), 'O':(14,11),
+ 'P':(15,3), 'Q':(16,6), 'R':(17,8), 'S':(18,12), 'T':(19,14),
+ 'U':(20,16), 'V':(21,10), 'W':(22,22), 'X':(23,25), 'Y':(24,24),
+ 'Z':(25,23),
+ '0':(0,1), '1':(1,0), '2':(2,5), '3':(3,7), '4':(4,9),
+ '5':(5,13), '6':(6,15), '7':(7,17), '8':(8,19), '9':(9,21)
+ }
+
+ """Funzioni per il calcolo del C.F."""
+ def _surname(stringa):
+ """Ricava, da stringa, 3 lettere in base alla convenzione dei C.F."""
+ cons = [c for c in stringa if c in CONSONANTI]
+ voc = [c for c in stringa if c in VOCALI]
+ chars=cons+voc
+ if len(chars)<3:
+ chars+=['X', 'X']
+ return chars[:3]
+
+ def _name(stringa):
+ """Ricava, da stringa, 3 lettere in base alla convenzione dei C.F."""
+ cons = [c for c in stringa if c in CONSONANTI]
+ voc = [c for c in stringa if c in VOCALI]
+ if len(cons)>3:
+ cons = [cons[0]] +[cons[2]] + [cons[3]]
+ chars=cons+voc
+ if len(chars)<3:
+ chars+=['X', 'X']
+ return chars[:3]
+
+ def _datan(giorno, mese, anno, sesso):
+ """Restituisce il campo data del CF."""
+ chars = (list(anno[-2:]) + [MESI[int(mese)-1]])
+ gn=int(giorno)
+ if sesso=='F':
+ gn+=40
+ chars += list("%02d" % gn)
+ return chars
+
+ def _codicecontrollo(c):
+ """Restituisce il codice di controllo, l'ultimo carattere del C.F."""
+ sommone = 0
+ for i, car in enumerate(c):
+ j = 1 - i % 2
+ sommone += REGOLECONTROLLO[car][j]
+ resto = sommone % 26
+ return [LETTERE[resto]]
+
+ """Restituisce il C.F costruito sulla base degli argomenti."""
+ nome=nome.upper()
+ cognome=cognome.upper()
+ sesso=sesso.upper()
+ cittanascita = cittanascita.upper()
+ chars = (_surname(cognome) +
+ _name(nome) +
+ _datan(giornonascita, mesenascita, annonascita, sesso) +
+ list(cittanascita))
+ chars += _codicecontrollo(chars)
+ return ''.join(chars)
+
+ def compute_fc(self, cr, uid, ids, context):
+ active_id = context.get('active_id', [])
+ form_obj = self.browse(cr, uid, ids, context)
+ for fields in form_obj:
+ if not fields.fiscalcode_surname or not fields.fiscalcode_firstname or not fields.birth_date or not fields.birth_city or not fields.sex:
+ raise osv.except_osv('Error', 'One or more fields are missing')
+ birth_date = datetime.datetime.strptime(fields.birth_date, "%Y-%m-%d")
+ CF = self._codicefiscale(fields.fiscalcode_surname, fields.fiscalcode_firstname, str(birth_date.day),
+ str(birth_date.month), str(birth_date.year), fields.sex,
+ fields.birth_city.cadaster_code)
+ self.pool.get('res.partner').write(cr, uid, active_id, {'fiscalcode': CF, 'individual': True})
+ return {}
\ No newline at end of file
=== added file 'l10n_it_fiscalcode/wizard/compute_fc_view.xml'
--- l10n_it_fiscalcode/wizard/compute_fc_view.xml 1970-01-01 00:00:00 +0000
+++ l10n_it_fiscalcode/wizard/compute_fc_view.xml 2012-10-13 22:49:21 +0000
@@ -0,0 +1,50 @@
+<?xml version="1.0" ?>
+<openerp>
+ <data>
+
+ <record id="wizard_compute_fc_form" model="ir.ui.view">
+ <field name="name">wizard.compute.fc.form</field>
+ <field name="model">wizard.compute.fc</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Fiscal Code">
+ <group col="2" width="250">
+ <group string="Individual Data">
+ <field name="fiscalcode_surname" colspan="2" default_focus="1"/>
+ <field name="fiscalcode_firstname" colspan="2"/>
+ <field name="sex" colspan="2"/>
+ <field name="birth_date" colspan="2"/>
+ <field name="birth_city" colspan="2"/>
+ </group>
+ <newline/>
+ <group col="2">
+ <button string="Cancel" special="cancel" icon="gtk-cancel" colspan="1"/>
+ <button name="compute_fc" type="object" string="Compute" colspan="1"/>
+ </group>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_compute_fc" model="ir.actions.act_window">
+ <field name="name">Compute Fiscal Code</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">wizard.compute.fc</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <record id="view_partner_form_fiscalcode_button" model="ir.ui.view">
+ <field name="name">res.partner.fiscalcode.button</field>
+ <field name="model">res.partner</field>
+ <field name="inherit_id" ref="l10n_it_fiscalcode.view_partner_form_fiscalcode_data"/>
+ <field name="arch" type="xml">
+ <field name="fiscalcode" position="after">
+ <button name="%(l10n_it_fiscalcode.action_compute_fc)d" string="Compute F.C." type="action" icon="gtk-execute"/>
+ </field>
+ </field>
+ </record>
+
+ </data>
+</openerp>
=== modified file 'l10n_it_sale/AUTHORS.txt'
--- l10n_it_sale/AUTHORS.txt 2010-09-22 13:43:42 +0000
+++ l10n_it_sale/AUTHORS.txt 2012-10-13 22:49:21 +0000
@@ -6,4 +6,4 @@
Giovanni Barzan <giovanni.barzan@xxxxxxxxx>
Lorenzo Battistini <lorenzo.battistini@xxxxxxxxxxx>
Roberto Onnis <onnis.roberto@xxxxxxxxx>
-
+Franco Tampieri <franco.tampieri@xxxxxxxxxxx>
=== modified file 'l10n_it_sale/partner/partner_view.xml'
--- l10n_it_sale/partner/partner_view.xml 2010-10-10 12:42:33 +0000
+++ l10n_it_sale/partner/partner_view.xml 2012-10-13 22:49:21 +0000
@@ -7,14 +7,13 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
- <page string="Notes" position="after">
- <page string="Default shipping conditions">
- <field name="carriage_condition_id"/>
- <newline/>
- <field name="goods_description_id"/>
- <newline/>
- <field name="transportation_reason_id"/>
- </page>
+ <page string="Sales & Purchases" position="inside">
+ <group colspan="2" col="2" groups="base.group_extended">
+ <separator string="Default shipping conditions" colspan="2"/>
+ <field name="carriage_condition_id" groups="base.group_extended"/>
+ <field name="goods_description_id" groups="base.group_extended"/>
+ <field name="transportation_reason_id" groups="base.group_extended"/>
+ </group>
</page>
</field>
</record>
=== added file 'l10n_it_withholding_tax/i18n/it.mo'
Binary files l10n_it_withholding_tax/i18n/it.mo 1970-01-01 00:00:00 +0000 and l10n_it_withholding_tax/i18n/it.mo 2012-10-13 22:49:21 +0000 differ
=== added file 'l10n_it_withholding_tax/i18n/it.po'
--- l10n_it_withholding_tax/i18n/it.po 1970-01-01 00:00:00 +0000
+++ l10n_it_withholding_tax/i18n/it.po 2012-10-13 22:49:21 +0000
@@ -0,0 +1,150 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_it_withholding_tax
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-10-12 15:54+0000\n"
+"PO-Revision-Date: 2012-10-12 18:02+0100\n"
+"Last-Translator: Franco Tampieri <info@xxxxxxxxxxxxxxxxxx>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:90
+#, python-format
+msgid "The company does not have an associated Withholding Payment Term"
+msgstr "L'Azienda non ha associato nessun Termine di pagamento per le Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "Errore! Non è possibile creare aziende ricorsive."
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:106
+#, python-format
+msgid "The payment term %s does not have due dates"
+msgstr "The payment term %s does not have due dates"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:102
+#, python-format
+msgid "The payment term %s has too many due dates"
+msgstr "The payment term %s has too many due dates"
+
+#. module: l10n_it_withholding_tax
+#: view:account.voucher:0
+msgid "Withholding tax entries"
+msgstr "Voci Tasse Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: field:account.invoice,has_withholding:0
+msgid "With withholding tax"
+msgstr "Con tasse ritenute"
+
+#. module: l10n_it_withholding_tax
+#: field:res.company,withholding_payment_term_id:0
+msgid "Withholding tax Payment Term"
+msgstr "Termini Pagamento Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: field:res.company,withholding_account_id:0
+msgid "Withholding account"
+msgstr "Conto Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr "Il nome azienda deve essere unico!"
+
+#. module: l10n_it_withholding_tax
+#: field:account.invoice,net_pay:0
+msgid "Net Pay"
+msgstr "Netto da Pagare"
+
+#. module: l10n_it_withholding_tax
+#: model:ir.model,name:l10n_it_withholding_tax.model_res_company
+msgid "Companies"
+msgstr "Aziende"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:92
+#, python-format
+msgid "The company does not have an associated Withholding journal"
+msgstr "L'Azienda non ha un Sezionale associato per le Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:86
+#: code:addons/l10n_it_withholding_tax/account.py:88
+#: code:addons/l10n_it_withholding_tax/account.py:90
+#: code:addons/l10n_it_withholding_tax/account.py:92
+#: code:addons/l10n_it_withholding_tax/account.py:101
+#: code:addons/l10n_it_withholding_tax/account.py:105
+#, python-format
+msgid "Error"
+msgstr "Errore"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:86
+#, python-format
+msgid "Can't handle withholding tax with voucher of type other than payment"
+msgstr "Can't handle withholding tax with voucher of type other than payment"
+
+#. module: l10n_it_withholding_tax
+#: help:res.company,withholding_account_id:0
+msgid "Payable account used for amount due to tax authority"
+msgstr "Payable account used for amount due to tax authority"
+
+#. module: l10n_it_withholding_tax
+#: sql_constraint:account.invoice:0
+msgid "Invoice Number must be unique per Company!"
+msgstr "Nell'azienda il numero fattura dev'essere univoco!"
+
+#. module: l10n_it_withholding_tax
+#: help:res.company,withholding_journal_id:0
+msgid "Journal used for registration of witholding amounts to be paid"
+msgstr "Journal used for registration of witholding amounts to be paid"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:119
+#, python-format
+msgid "Payable withholding - "
+msgstr "Ritenute Pagabili - "
+
+#. module: l10n_it_withholding_tax
+#: model:ir.model,name:l10n_it_withholding_tax.model_account_voucher
+msgid "Accounting Voucher"
+msgstr "Voucher contabile"
+
+#. module: l10n_it_withholding_tax
+#: field:account.invoice,withholding_amount:0
+msgid "Withholding amount"
+msgstr "Totale Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: model:ir.model,name:l10n_it_withholding_tax.model_account_invoice
+msgid "Invoice"
+msgstr "Fattura"
+
+#. module: l10n_it_withholding_tax
+#: field:res.company,withholding_journal_id:0
+msgid "Withholding journal"
+msgstr "Sezionale Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: code:addons/l10n_it_withholding_tax/account.py:88
+#, python-format
+msgid "The company does not have an associated Withholding account"
+msgstr "L'Azienda non ha un conto associato per le Ritenute"
+
+#. module: l10n_it_withholding_tax
+#: field:account.voucher,withholding_move_ids:0
+msgid "Withholding Tax Entries"
+msgstr "Voci Tasse Ritenute"
+
Follow ups