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 <[email protected]> === 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: [email protected]\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 <[email protected]>\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 <[email protected]> Lorenzo Battistini <[email protected]> Roberto Onnis <[email protected]> +Franco Tampieri <[email protected]> === 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 <[email protected]> +Luca Subiaco <[email protected]> +Simone Orsi <[email protected]> +Mario Riva <[email protected]> +Mauro Soligo <[email protected]> +Giovanni Barzan <[email protected]> +Lorenzo Battistini <[email protected]> +Roberto Onnis <[email protected]> +Franco Tampieri <[email protected]> + === 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 <[email protected]>\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: [email protected]\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 <[email protected]>\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" +
_______________________________________________ Mailing list: https://launchpad.net/~openobject-italia-core-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~openobject-italia-core-devs More help : https://help.launchpad.net/ListHelp

