← Back to team overview

openobject-italia-core-devs team mailing list archive

[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/129575

[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.
-- 
https://code.launchpad.net/~dr.dran/openobject-italia/add_abi_cab/+merge/129575
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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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:26:19 +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>

=== 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:26:19 +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:26:19 +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