From 69f0af6c0e0f0ce92b50d6581566fb6e1b64276e Mon Sep 17 00:00:00 2001 From: Joaquin Gutierrez Date: Tue, 1 Oct 2013 18:28:19 +0200 Subject: [PATCH] [MRG]: Port account_char_update to version 7.0 [FIX]: Changed types to orm.Model, orm.TransientModel and orm.AbstractModel. [FIX]: Fix deletion method for some fields of objects. [FIX]: Contributions have been written in the standard format of the community. [FIX]: Changes in the form to work as a real wizard. [FIX]: Remove 'init_xml' keys, because it's no longer needed in v7. [FIX]: Rename 'demo_xml' key to the new standard 'demo'. [FIX]: Change imports calls. [FIX]: Remove __author__ variables in files, because authors are put on manifest file (__openerp__.py). [FIX]: Update view definitions to version 7.0 [FIX]: Rename variables to OpenERP standard. [FIX]: Increased compatibility with standard PEP8. --- account_chart_update/__init__.py | 25 + account_chart_update/__openerp__.py | 69 + .../i18n/account_chart_update.pot | 752 +++++++++ account_chart_update/i18n/ca.po | 835 ++++++++++ account_chart_update/i18n/ca_ES.po | 323 ++++ account_chart_update/i18n/es.po | 808 ++++++++++ account_chart_update/i18n/es_ES.po | 807 ++++++++++ account_chart_update/i18n/pt.po | 844 ++++++++++ account_chart_update/i18n/sv.po | 765 +++++++++ account_chart_update/wizard/__init__.py | 25 + .../wizard/wizard_chart_update.py | 1364 +++++++++++++++++ .../wizard/wizard_chart_update_view.xml | 176 +++ 12 files changed, 6793 insertions(+) create mode 100644 account_chart_update/__init__.py create mode 100644 account_chart_update/__openerp__.py create mode 100644 account_chart_update/i18n/account_chart_update.pot create mode 100644 account_chart_update/i18n/ca.po create mode 100644 account_chart_update/i18n/ca_ES.po create mode 100644 account_chart_update/i18n/es.po create mode 100644 account_chart_update/i18n/es_ES.po create mode 100644 account_chart_update/i18n/pt.po create mode 100644 account_chart_update/i18n/sv.po create mode 100644 account_chart_update/wizard/__init__.py create mode 100644 account_chart_update/wizard/wizard_chart_update.py create mode 100644 account_chart_update/wizard/wizard_chart_update_view.xml diff --git a/account_chart_update/__init__.py b/account_chart_update/__init__.py new file mode 100644 index 000000000..36d5407d0 --- /dev/null +++ b/account_chart_update/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2010 Zikzakmedia S.L. (http://www.zikzakmedia.com) +# Copyright (c) 2010 Pexego Sistemas Informáticos S.L. (http://www.pexego.es) +# @authors: Jordi Esteve (Zikzakmedia), Borja López Soilán (Pexego) +# +# 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 . +# +############################################################################## +""" +Account Chart Update Wizard +""" +import wizard diff --git a/account_chart_update/__openerp__.py b/account_chart_update/__openerp__.py new file mode 100644 index 000000000..79b16c087 --- /dev/null +++ b/account_chart_update/__openerp__.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2010 Zikzakmedia S.L. (http://www.zikzakmedia.com) +# Copyright (c) 2010 Pexego Sistemas Informáticos S.L. (http://www.pexego.es) +# Copyright (c) 2013 Joaquin Gutierrez (http://www.gutierrezweb.es) +# Pedro Manuel Baeza +# $Id$ +# 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 . +# +# 2013/09/08 - Joaquín Gutierrez: Adaptación a la versión +# +############################################################################## + +{ + 'name': "Detect changes and update the Account Chart from a template", + 'version': "1.0", + 'author': "Zikzakmedia SL", + 'website': "www.zikzakmedia.com", + 'depends': ["account"], + 'category': "Generic Modules/Accounting", + 'contributors': ['Joaquin Gutierrez', 'Pedro M. Baeza'], + 'description': """ +Adds a wizard to update a company account chart from a chart template. +====================================================================== + +This is a pretty useful tool to update OpenERP instalations after tax reforms +on the oficial charts of accounts, or to apply fixes performed on the chart +template. + +The wizard: +- Allows the user to compare a chart and a template showing differences + on accounts, taxes, tax codes and fiscal positions. +- It may create the new account, taxes, tax codes and fiscal positions detected + on the template. +- It can also update (overwrite) the accounts, taxes, tax codes and fiscal + positions that got modified on the template. + +The wizard lets the user select what kind of objects must be checked/updated, +and whether old records must be checked for changes and updated. +It will display all the accounts to be created / updated with some information +about the detected differences, and allow the user to exclude records +individually. +Any problem found while updating will be shown on the last step. +""", + 'license': "AGPL-3", + "depends": [ + "account", + "base", + ], + "demo" : [], + "data": [ + 'wizard/wizard_chart_update_view.xml', + ], + "active": False, + "installable": True +} diff --git a/account_chart_update/i18n/account_chart_update.pot b/account_chart_update/i18n/account_chart_update.pot new file mode 100644 index 000000000..48fb6fccc --- /dev/null +++ b/account_chart_update/i18n/account_chart_update.pot @@ -0,0 +1,752 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0-20130927-231103\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-30 21:45+0000\n" +"PO-Revision-Date: 2013-09-30 21:45+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: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:359 +#, python-format +msgid "The code field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:753 +#, python-format +msgid "Created tax code %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1083 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1161 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:892 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:362 +#, python-format +msgid "The info field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +msgid "Update Chart of Accounts from a Chart Template\n" +" " +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:762 +#, python-format +msgid "Updated tax code %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:853 +#, python-format +msgid "Created tax %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:456 +#, python-format +msgid "The base sign field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438 +#, python-format +msgid "The type field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:888 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:625 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:432 +#, python-format +msgid "The sequence field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:645 +#, python-format +msgid "Account mapping not found on the fiscal position instance: %s -> %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462 +#, python-format +msgid "The include base amount field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:648 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +"" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1085 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1002 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450 +#, python-format +msgid "The python compute field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1187 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:886 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1015 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1028 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:239 +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:705 +#, python-format +msgid "Update Chart of Accounts from a Chart Template " +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534 +#, python-format +msgid "The name is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:777 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435 +#, python-format +msgid "The amount field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447 +#, python-format +msgid "The child depend field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1011 +#, python-format +msgid "Updated account %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465 +#, python-format +msgid "The type tax use field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:884 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:365 +#, python-format +msgid "The sign field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:862 +#, python-format +msgid "Updated tax %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:927 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "Error" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537 +#, python-format +msgid "The type is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Note:Not all the fields are tested for changes, just the main ones" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:890 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459 +#, python-format +msgid "The tax sign field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "One or more errors detected!\n" +"\n" +"%s" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1189 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441 +#, python-format +msgid "The applicable type field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:627 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +"" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540 +#, python-format +msgid "The user type is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "This wizard will update your accounts, taxes and fiscal positions according to the selected chart template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:543 +#, python-format +msgid "The reconcile is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444 +#, python-format +msgid "The domain field is different.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1253 +#, python-format +msgid "Update Accounts" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1191 +#, python-format +msgid "Created or updated fiscal position %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1159 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +"" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,lang:0 +msgid "For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:998 +#, python-format +msgid "Created account %s.\n" +"" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update the parent of accounts that seem (based on the code) to be children of the newly created ones. If you had an account 430 with a child 4300000, and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "If set, the wizard will continue to the next step even if there are minor errors (for example the parent account of a new account couldn't be set)." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "" + diff --git a/account_chart_update/i18n/ca.po b/account_chart_update/i18n/ca.po new file mode 100644 index 000000000..5fdd7db88 --- /dev/null +++ b/account_chart_update/i18n/ca.po @@ -0,0 +1,835 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.7\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2010-06-10 15:41+0000\n" +"PO-Revision-Date: 2010-06-21 16:16+0000\n" +"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " +"\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-11-28 04:55+0000\n" +"X-Generator: Launchpad (build 16309)\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "Idioma" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created or updated fiscal position %s.\n" +msgstr "Creada o actualitzada posició fiscal %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +msgstr "Excepció creant compte %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +msgstr "Excepció escrivint compte %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +msgstr "Excepció establint el pare dels fills del compte %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated account %s.\n" +msgstr "Actualitzat compte %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created account %s.\n" +msgstr "Creat compte %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax %s.\n" +msgstr "Creat impost %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax %s.\n" +msgstr "Actualitzat impost %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax code %s.\n" +msgstr "Creat codi d'impost %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax code %s.\n" +msgstr "Actualitzat codi d'impost %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +msgstr "La plantilla té comptes que la instància de posició fiscal no.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The base sign field is different.\n" +msgstr "El camp signe base és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "Posició fiscal" + +#. module: account_chart_update +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nom de model invàlid a la definició d'acció." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "Actualitza pare dels comptes fills" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "Posició fiscal a actualitzar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "Impostos actualitzats" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The child depend field is different.\n" +msgstr "El camp impost en fills és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Note: Not all the fields are tested for changes, just the main ones." +msgstr "" +"Nota: No es busquen canvis en tots els camps, només en els principals." + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "Plantilla actualitzada" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "Companyia" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "" +"No. of Digits to use for account code. Make sure it is the same number as " +"existing accounts." +msgstr "" +"Número de dígits a utilitzar en el codi de compte. Assegureu-vos que sigui " +"el mateix número de dígits que el dels comptes existents." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "Actualitza comptes" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "Posicions fiscals actualitzades" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"One or more errors detected!\n" +"\n" +"%s" +msgstr "" +"Un o més errors detectats!\n" +"\n" +"%s" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "Compte" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Ok" +msgstr "D'acord" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "Notes" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "Impostos" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +msgstr "Impost %s: No s'ha pogut establir el compte a pagar.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "Assistent completat" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +msgstr "" +"Impost %s: No s'ha pogut establir el codi d'impost per a l'impost %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "Nous impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "Nous codis d'impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "Impost a actualitzar" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The python compute field is different.\n" +msgstr "El camp càlcul Python és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "Impost" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "wizard.update.charts.accounts.tax" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "wizard.update.charts.accounts.account" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +msgstr "Posició fiscal %s: No s'ha pogut establir l'impost origen %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "Comptes" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax group field is different.\n" +msgstr "El camp grup d'impostos és diferent.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The name is different.\n" +msgstr "El nom és diferent.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "" +"Els codis d'impostos existents seran actualitzats. Els codis d'impostos es " +"cercaran per nom." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The code field is different.\n" +msgstr "El camp codi és diferent.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +msgstr "" +"Impost %s: No s'ha pogut establir el codi d'impost per a la base %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +msgstr "" +"Impost %s: No s'ha pogut establir el codi d'impost per a la devolució " +"d'impost %s.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "Nova plantilla" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "Comptes actualitzats" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "Tipus" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "Pla comptable" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sequence field is different.\n" +msgstr "El camp seqüència és diferent.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "Pas 1" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "Pas 2" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +msgstr "Posició fiscal %s: No s'ha pogut establir el compte d'origen %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "Continua després d'errors" + +#. module: account_chart_update +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML invàlid per a l'estructura de la vista!" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "wizard.update.charts.accounts.tax.code" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "Núm. de dígits" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "Actualitza posicions fiscals" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +msgstr "" +"Impost %s: No s'ha pogut establir el codi d'impost per a la base de " +"devolució %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +msgstr "Impost %s: No s'ha pogut establir el compte a rebre.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "Anterior" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +msgstr "Impost %s: No s'ha pogut establir l'impost pare %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The domain field is different.\n" +msgstr "El camp domini és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "Incidències" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax sign field is different.\n" +msgstr "El camp signe d'impost és diferent.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "Codis d'impostos actualitzats" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "Codi d'impost a actualitzar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "Missatges i errors" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The user type is different.\n" +msgstr "El tipus d'usuari és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"If you leave these options set, the wizard will not just create new records, " +"but also update records with changes (i.e. different tax amount)." +msgstr "" +"Si deixeu marcades aquestes opcions, l'assistent no només crearà nous " +"registres, si no que també actualitzarà registres amb canvis (p.ex. diferent " +"import d'impost)" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "Codis d'impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "Estat" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" +"Mapeig de compte no trobat en la instància de la posició fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "Plantilla de posició fiscal" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "Resum d'objectes actualitzats" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +msgstr "Compte %s: No s'ha pogut establir el compte pare %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "" +"Els comptes comptables existents seran actualitzats. Els comptes es cercaran " +"per codi." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +msgstr "Codi d'impost %s: No s'ha pogut establir el codi d'impost pare %s.\n" + +#. module: account_chart_update +#: model:ir.module.module,description:account_chart_update.module_meta_information +msgid "" +"\n" +"Adds a wizard to update a company account chart from a chart template.\n" +"\n" +"This is a pretty useful tool to update OpenERP instalations after tax " +"reforms\n" +"on the oficial charts of accounts, or to apply fixes performed on the chart\n" +"template.\n" +"\n" +"The wizard:\n" +"\n" +"- Allows the user to compare a chart and a template showing differences\n" +" on accounts, taxes, tax codes and fiscal positions.\n" +"- It may create the new account, taxes, tax codes and fiscal positions " +"detected\n" +" on the template.\n" +"- It can also update (overwrite) the accounts, taxes, tax codes and fiscal\n" +" positions that got modified on the template.\n" +"\n" +"The wizard lets the user select what kind of objects must be " +"checked/updated,\n" +"and whether old records must be checked for changes and updated.\n" +"It will display all the accounts to be created / updated with some " +"information\n" +"about the detected differences, and allow the user to exclude records\n" +"individually.\n" +"Any problem found while updating will be shown on the last step.\n" +"\n" +"Authors:\n" +" Jordi Esteve (Zikzakmedia) \n" +" Borja López Soilán (Pexego) \n" +msgstr "" +"\n" +"Afegeix un assistent per actualitzar el pla de comptes d'una companyia des " +"d'una plantilla.\n" +"\n" +"És una eina força útil per actualitzar instal·lacions d'OpenERP desprès de " +"reformes d'impostos\n" +"en els plans comptables oficials, o per aplicar correccions realitzades a la " +"plantilla del\n" +"pla comptable.\n" +"\n" +"L'assistent:\n" +"\n" +"- Permet a l'usuari comparar un pla i una plantilla mostrant les " +"diferències\n" +" en comptes, impostos, codis d'impostos i posicions fiscals.\n" +"- Pot crear els nous comptes, impostos, codis d'impostos i posicions " +"fiscals\n" +" detectades a la plantilla.\n" +"- També pot actualitzar (sobreescriure) els comptes, impostos, codis " +"d'impostos i posicions\n" +" fiscals que s'han modificat a la plantilla.\n" +"\n" +"L'assistent permet a l'usuari seleccionar quina classe d'objectes han de " +"ser\n" +"comprovats/actualitzats, i si s'han de buscar canvis als registres existents " +"i actualitzar-los.\n" +"Mostrarà tots els comptes a crear / actualitzar amb alguna informació\n" +"sobre les diferències detectades, permetent a l'usuari excloure registres\n" +"individualment.\n" +"Qualsevol problema trobat durant l'actualització es mostrarà a l'últim pas.\n" +"\n" +"Autors:\n" +" Jordi Esteve (Zikzakmedia) \n" +" Borja López Soilán (Pexego) \n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The reconcile is different.\n" +msgstr "El camp reconciliar és diferent.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +msgstr "" +"Mapeig de comptes no trobat a la instància de posició fiscal: %s -> Cap.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "Actualitza codis d'impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "Compte a actualitzar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "Plantilla de comptes" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Error" +msgstr "Error" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "Següent" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +msgstr "La plantilla té impostos que la instància de posició fiscal no té.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +msgstr "" +"Posició fiscal %s: No s'ha pogut establir el compte de destinació %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type field is different.\n" +msgstr "El camp tipus és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "Resum d'objectes creats" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "Posicions fiscals" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "Actualitza impostos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "Cancel·la" + +#. module: account_chart_update +#: model:ir.module.module,shortdesc:account_chart_update.module_meta_information +msgid "Detect changes and update the Account Chart from a template" +msgstr "Detecta canvis i actualitza pla comptable a partir d'una plantilla" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The info field is different.\n" +msgstr "El camp info és diferent.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "" +"Els impostos existents seran actualitzats. Els impostos es cercaran per nom." + +#. module: account_chart_update +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"L'objecte ha de començar amb x_ i no pot tenir cap caràcter especial!" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The applicable type field is different.\n" +msgstr "El camp tipus aplicable és diferent.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "Crea/Actualitza" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The amount field is different.\n" +msgstr "El camp import és diferent.\n" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "Actualitza pla comptable a partir d'una plantilla de pla comptable" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The include base amount field is different.\n" +msgstr "El camp incloure en import base és diferent.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "Plantilla pla comptable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "Altres opcions" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "Noves posicions fiscals" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"This wizard will update your accounts, taxes and fiscal positions according " +"to the selected chart template." +msgstr "" +"Aquest assistent actualitzarà els vostres comptes comptables, impostos i " +"posicions fiscals segons la plantilla de plan comptable seleccionada." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "Nous comptes" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "Plantilla d'impost" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "Actualitza registres?" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "" +"Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "" +"Les posicions fiscals existents seran actualitzades. Les posicions fiscals " +"es cercaran per nom." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "Assistent per a actualitzar el pla comptable" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "wizard.update.charts.accounts.fiscal.position" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type is different.\n" +msgstr "El tipus és diferent.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +msgstr "Posició fiscal %s: No s'ha pogut establir el compte destinació %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "Registres a crear/actualitzar" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "wizard.update.charts.accounts" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "Plantilla de codi d'impost" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"Account mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" +"Mapeig de compte no trobat en la instància de posició fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "" +"Update the parent of accounts that seem (based on the code) to be children " +"of the newly created ones. If you had an account 430 with a child 4300000, " +"and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "" +"Actualitza el pare dels comptes que semblen (basant-se en el codi) ser fills " +"dels comptes acabats de crear. Si teniu un compte 430 amb un fill 4300000 i " +"es crea un compte 4300, el compte 4300 serà el nou pare del compte 4300000." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sign field is different.\n" +msgstr "El camp signe és diferent.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type tax use field is different.\n" +msgstr "El camp aplicació impost és diferent.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "" +"If set, the wizard will continue to the next step even if there are minor " +"errors (for example the parent account of a new account couldn't be set)." +msgstr "" +"Si ho marqueu, l'assistent continuarà al pas següent fins i tot si hi ha " +"errors menors (per exemple no s'ha pogut establir el compte pare d'un nou " +"compte)." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "Codi d'impost" diff --git a/account_chart_update/i18n/ca_ES.po b/account_chart_update/i18n/ca_ES.po new file mode 100644 index 000000000..7468585aa --- /dev/null +++ b/account_chart_update/i18n/ca_ES.po @@ -0,0 +1,323 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.7\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2010-03-26 12:06:35+0000\n" +"PO-Revision-Date: 2010-03-26 13:10+0100\n" +"Last-Translator: Jordi Esteve (Zikzakmedia) \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: account_chart_update +#: constraint:ir.model:0 +msgid "The Object name must start with x_ and not contain any special character !" +msgstr "L'objecte ha de començar amb x_ i no pot tenir cap caràcter especial!" + +#. module: account_chart_update +#: model:ir.module.module,description:account_chart_update.module_meta_information +msgid "" +"\n" +"Adds a wizard to update a company account chart from a template:\n" +" * Generates the new accounts from the template and assigns them to the right company\n" +" * Generates the new taxes and tax codes, changing account assignations\n" +" * Generates the new fiscal positions, changing account and taxes assignations\n" +"\n" +"Before creating the new accounts, taxes, tax codes and fiscal positions, the user can select\n" +"which ones must be created.\n" +"\n" +"The user can also choose to update the existing accounts, taxes, tax codes and fiscal positions\n" +"from a template.\n" +"\n" +"The problems occurred during the creation/updating of the account chart are shown in the last step.\n" +"\n" +"It is useful when the account law has changed and you want to transfer the new accounts, taxes and\n" +"fiscal positions included in the account chart template to an existing company account chart.\n" +"\n" +"Note: Due to the memory limitation of the osv_memory OpenERP objects, only a maximum number of \n" +"objects can be created each time. If a lot of new accounts, taxes, tax codes or fiscal positions\n" +"must be created, the wizard should be run several times.\n" +msgstr "" +"\n" +"Afegeix un assistent per a actualitzar el pla comptable d'una companyia a partir d'una plantilla:\n" +" * Genera nous comptes comptables des de la plantilla assignant-los la companyia corresponent.\n" +" * Genera nous impostos i codis d'impostos, canviant les assignacions de comptes comptables.\n" +" * Genera noves posicions fiscals, canviant les assignacions de comptes comptables i impostos.\n" +"\n" +"Abans de crear els nous comptes, impostos i codis d'impostos, l'usuari pot seleccionar\n" +"quins seran creats.\n" +"\n" +"L'usuari pot seleccionar l'actualització dels comptes, impostos, codis d'impostos i\n" +"posicions fiscals existents a partir de la plantilla.\n" +"\n" +"Els problemes que apareguin durant la creació i actualització del pla comptable es mostren en l'últim pas.\n" +"\n" +"Aquest mòdul és útil quan la llei fiscal ha canviat i voleu transferir els nous comptes, impostos i\n" +"posicions fiscals incloses en la plantilla de pla comptable cap un pla comptable existent d'una companyia.\n" +"\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "Actualitza codis d'impostos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "Crea/Actualitza" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "Següent" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "Actualitza pla comptable a partir d'una plantilla de pla comptable" + +#. module: account_chart_update +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nom de model invàlid a la definició d'acció." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "Plantilla pla comptable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update of account chart objects" +msgstr "Actualització d'entitats del pla comptable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax codes" +msgstr "Codis d'impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "Estat" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Existing records are updated? (by default only new ones are created)" +msgstr "Els registres existents s'actualitzaran? (per defecte només els nous es crearan)" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Creation of account chart objects" +msgstr "Creació d'entitats del pla comptable" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_code:0 +msgid "Create - Tax codes" +msgstr "Crea - Codis d'impostos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Generate Chart of Accounts from a Chart Template" +msgstr "Genera comptes comptables a partir d'una plantilla de pla comptable" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "Companyia" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts." +msgstr "Número de dígits a utilitzar en el codi de compte. Assegureu-vos que sigui el mateix número de dígits que el dels comptes existents." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fp:0 +msgid "Create - Fiscal positions" +msgstr "Crea - Posicions fiscals" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "Pas 1" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "Els comptes comptables existents seran actualitzats. Els comptes es cercaran per codi." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_account:0 +msgid "Update - Accounts" +msgstr "Actualitza - Comptes" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "Les posicions fiscals existents seran actualitzades. Les posicions fiscals es cercaran per nom." + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "Pas 2" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "Actualitza impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_account:0 +msgid "Create - Accounts" +msgstr "Crea - Comptes" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax:0 +msgid "Create - Taxes" +msgstr "Crea - Impostos" + +#. module: account_chart_update +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML invàlid per a l'estructura de la vista!" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax:0 +msgid "Update - Taxes" +msgstr "Actualitza - Impostos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Ok" +msgstr "D'acord" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "wizard.update.charts.accounts.tax.code" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "Assistent per a actualitzar el pla comptable" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fp:0 +msgid "Update - Fiscal positions" +msgstr "Actualitza - Posicions fiscals" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Taxes" +msgstr "Impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "Núm. de dígits" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "Assistent completat" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "Actualitza comptes" + +#. module: account_chart_update +#: model:ir.module.module,shortdesc:account_chart_update.module_meta_information +msgid "Update account chart from template" +msgstr "Actualitza pla comptable a partir d'una plantilla" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "This will automatically updates your chart of accounts, taxes and fiscal positions according to the selected template" +msgstr "Actualitzarà automàticament els vostres comptes comptables, impostos i posicions fiscals des de la plantilla seleccionada." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "Actualitza posicions fiscals" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "wizard.update.charts.accounts.fiscal.position" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,logs:0 +msgid "Logs" +msgstr "Incidències" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_code:0 +msgid "Update - Tax codes" +msgstr "Actualitza - Codis d'impostos" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "wizard.update.charts.accounts" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "wizard.update.charts.accounts.tax" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "wizard.update.charts.accounts.account" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal positions" +msgstr "Posicions fiscals" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Accounts" +msgstr "Comptes" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "Cancel·la" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "Els codis d'impostos existents seran actualitzats. Els codis d'impostos es cercaran per nom." + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "Els impostos existents seran actualitzats. Els impostos es cercaran per nom." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "Anterior" + diff --git a/account_chart_update/i18n/es.po b/account_chart_update/i18n/es.po new file mode 100644 index 000000000..591cc7886 --- /dev/null +++ b/account_chart_update/i18n/es.po @@ -0,0 +1,808 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.10\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-30 21:45+0000\n" +"PO-Revision-Date: 2013-09-30 23:52+0100\n" +"Last-Translator: Joaquin Gutierrez \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-11-28 04:55+0000\n" +"X-Generator: Launchpad (build 16309)\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "Cuenta a actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:359 +#, python-format +msgid "The code field is different.\n" +msgstr "El campo código es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "Posición fiscal" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "Actualizar padre de cuentas hijas" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "Posición fiscal a actualizar" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "Las cuentas contables existentes serán actualizadas. Las cuentas se buscarán por código." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:753 +#, python-format +msgid "Created tax code %s.\n" +msgstr "Creado código de impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1083 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer la cuenta a recibir.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "Nuevas cuentas" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "Plantilla actualizada" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1161 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta destino %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:892 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la devolución de impuesto %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)" +msgstr "Si deja marcadas estas opciones, el asistente no sólo creará nuevos registros, sino que también actualizará registros con cambios (p.ej. diferente importe de impuesto)" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "Códigos de impuesto actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +msgstr "La plantilla tiene impuestos que la instancia de posición fiscal no.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "Actualizar cuentas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "Cuenta" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "Notas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "Impuestos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:362 +#, python-format +msgid "The info field is different.\n" +msgstr "El campo info es diferente.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "Asistente completado" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#, fuzzy +msgid "" +"Update Chart of Accounts from a Chart Template\n" +"\t\t\t" +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "Nuevos impuestos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:762 +#, python-format +msgid "Updated tax code %s.\n" +msgstr "Actualizado código de impuesto %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "Nuevos códigos de impuesto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "Impuesto a actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:853 +#, python-format +msgid "Created tax %s.\n" +msgstr "Creado impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:456 +#, python-format +msgid "The base sign field is different.\n" +msgstr "El campo signo base es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438 +#, python-format +msgid "The type field is different.\n" +msgstr "El campo tipo es diferente.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "wizard.update.charts.accounts.account" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "Cuentas" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:888 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para el impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:625 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "Mapeo de cuenta no encontrado en la instancia de la posición fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "Los códigos de impuestos existentes serán actualizados. Los códigos de impuestos se buscarán por nombre." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "Anterior" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "Impuesto" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "Siguiente" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "Nueva plantilla" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:432 +#, python-format +msgid "The sequence field is different.\n" +msgstr "El campo secuencia es diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "Cuentas actualizadas" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:645 +#, python-format +msgid "Account mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "Mapeo de cuenta no encontrado en la instancia de posición fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "wizard.update.charts.accounts.tax" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "Impuestos actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462 +#, python-format +msgid "The include base amount field is different.\n" +msgstr "El campo incluir en importe base es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "Plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:648 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +msgstr "La plantilla tiene cuentas que la instancia de posición fiscal no.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "Paso 1" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "Paso 2" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1085 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer la cuenta a pagar.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1002 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +msgstr "Excepción creando cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "Continuar tras errores" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450 +#, python-format +msgid "The python compute field is different.\n" +msgstr "El campo cálculo python es diferente.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "wizard.update.charts.accounts.tax.code" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1187 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta de origen %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "Núm. de dígitos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:886 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1015 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +msgstr "Excepción escribiendo cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1028 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +msgstr "Cuenta %s: No se pudo establecer la cuenta padre %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "Actualizar posiciones fiscales" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:239 +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:705 +#, fuzzy, python-format +msgid "Update Chart of Accounts from a Chart Template " +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534 +#, python-format +msgid "The name is different.\n" +msgstr "El nombre es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "Registro" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:777 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +msgstr "Código de impuesto %s: No se pudo establecer el código de impuesto padre %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435 +#, python-format +msgid "The amount field is different.\n" +msgstr "El campo importe es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447 +#, python-format +msgid "The child depend field is different.\n" +msgstr "El campo impuesto en hijos es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1011 +#, python-format +msgid "Updated account %s.\n" +msgstr "Actualizada cuenta %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "Código de impuesto a actualizar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "Mensajes y errores" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465 +#, python-format +msgid "The type tax use field is different.\n" +msgstr "El campo aplicación impuesto es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:884 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el impuesto padre %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "Códigos de impuestos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "Estado" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "Plantilla de posición fiscal" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "Resumen de objetos actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:365 +#, python-format +msgid "The sign field is different.\n" +msgstr "El campo signo es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:862 +#, python-format +msgid "Updated tax %s.\n" +msgstr "Actualizado impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:927 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +msgstr "Excepción estableciendo el padre de los hijos de la cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts." +msgstr "Número de dígitos para utilizar en el código de cuenta. Asegúrese que sea el mismo número de dígitos que el de las cuentas existentes." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "Actualizar códigos de impuestos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "Idioma" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "Plantilla de cuenta" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "Error" +msgstr "Error" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "Resumen de objetos creados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537 +#, python-format +msgid "The type is different.\n" +msgstr "El tipo es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "Posiciones fiscales" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "Actualizar impuestos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "Los impuestos existentes serán actualizados. Los impuestos se buscarán por nombre." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "Note:Not all the fields are tested for changes, just the main ones" +msgstr "Nota: No se buscan cambios en todos los campos, sólo en los principales." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "Crear/Actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:890 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base de devolución %s.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "wizard.update.charts.accounts" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "Plantilla plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459 +#, python-format +msgid "The tax sign field is different.\n" +msgstr "El campo signo de impuesto es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "" +"One or more errors detected!\n" +"\n" +"%s" +msgstr "" +"¡Uno o más errores detectados!\n" +"\n" +"%s" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1189 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta de destino %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "Nuevas posiciones fiscales" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441 +#, python-format +msgid "The applicable type field is different.\n" +msgstr "El campo tipo aplicable es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "Código de impuesto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "Plantilla de impuesto" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:627 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +msgstr "Mapeo de cuentas no encontrado en la instancia de posición fiscal: %s -> Ninguno.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "¿Actualizar registros?" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "Las posiciones fiscales existentes serán actualizadas. Las posiciones fiscales se buscarán por nombre." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540 +#, python-format +msgid "The user type is different.\n" +msgstr "El tipo de usuario es diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "Asistente para actualizar el plan contable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "This wizard will update your accounts, taxes and fiscal positions according to the selected chart template" +msgstr "Este asistente actualizará sus cuentas, impuestos y posiciones fiscales de acuerdo a la plantilla de plan contable seleccionada." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:543 +#, python-format +msgid "The reconcile is different.\n" +msgstr "El campo reconciliar es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444 +#, python-format +msgid "The domain field is different.\n" +msgstr "El campo dominio es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1253 +#, fuzzy, python-format +msgid "Update Accounts" +msgstr "Actualizar cuentas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "Otras opciones" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "wizard.update.charts.accounts.fiscal.position" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "Registros a crear/actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1191 +#, python-format +msgid "Created or updated fiscal position %s.\n" +msgstr "Creada o actualizada posición fiscal %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1159 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer el impuesto origen %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "Posiciones fiscales actualizadas" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,lang:0 +msgid "For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language." +msgstr "Para los registros de (impuestos, códigos de impuestos y posiciones fiscales) se comparan con los de la plantilla seleccionada, basándose en sus nombres." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:998 +#, python-format +msgid "Created account %s.\n" +msgstr "Creada cuenta %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update the parent of accounts that seem (based on the code) to be children of the newly created ones. If you had an account 430 with a child 4300000, and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "Actualizar el padre de las cuentas que parecen (basándose en el código) ser hijas de las cuentas recién creadas. Si tiene una cuenta 430 con una hija 4300000, y se crea una cuenta 4300, se establecerá la cuenta 4300 como padre de la cuenta 4300000." + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "If set, the wizard will continue to the next step even if there are minor errors (for example the parent account of a new account couldn't be set)." +msgstr "Si marcado, el asistente continuará al paso siguiente incluso si hay errores menores (por ejemplo no se pudo establecer la cuenta padre de una nueva cuenta)." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "Plantilla de código de impuesto" + +#~ msgid "Invalid model name in the action definition." +#~ msgstr "Nombre de modelo inválido en la definición de acción." + +#~ msgid "Ok" +#~ msgstr "Aceptar" + +#~ msgid "The tax group field is different.\n" +#~ msgstr "El campo grupo de impuestos es diferente.\n" + +#~ msgid "Invalid XML for View Architecture!" +#~ msgstr "¡XML inválido para la estructura de la vista!" + +#~ msgid "" +#~ "\n" +#~ "Adds a wizard to update a company account chart from a chart template.\n" +#~ "\n" +#~ "This is a pretty useful tool to update OpenERP instalations after tax " +#~ "reforms\n" +#~ "on the oficial charts of accounts, or to apply fixes performed on the " +#~ "chart\n" +#~ "template.\n" +#~ "\n" +#~ "The wizard:\n" +#~ "\n" +#~ "- Allows the user to compare a chart and a template showing differences\n" +#~ " on accounts, taxes, tax codes and fiscal positions.\n" +#~ "- It may create the new account, taxes, tax codes and fiscal positions " +#~ "detected\n" +#~ " on the template.\n" +#~ "- It can also update (overwrite) the accounts, taxes, tax codes and " +#~ "fiscal\n" +#~ " positions that got modified on the template.\n" +#~ "\n" +#~ "The wizard lets the user select what kind of objects must be checked/" +#~ "updated,\n" +#~ "and whether old records must be checked for changes and updated.\n" +#~ "It will display all the accounts to be created / updated with some " +#~ "information\n" +#~ "about the detected differences, and allow the user to exclude records\n" +#~ "individually.\n" +#~ "Any problem found while updating will be shown on the last step.\n" +#~ "\n" +#~ "Authors:\n" +#~ " Jordi Esteve (Zikzakmedia) \n" +#~ " Borja López Soilán (Pexego) \n" +#~ msgstr "" +#~ "\n" +#~ "Añade un asistente para actualizar el plan de cuentas de una compañía " +#~ "desde una plantilla.\n" +#~ "\n" +#~ "Es una herramienta bastante útil para actualizar instalaciones de OpenERP " +#~ "tras reformas de impuestos\n" +#~ "en los planes contables oficiales, o para aplicar correcciones realizadas " +#~ "en la plantilla del\n" +#~ "plan contable.\n" +#~ "\n" +#~ "El asistente:\n" +#~ "\n" +#~ "- Permite al usuario comparar un plan y una plantilla mostrando las " +#~ "diferencias\n" +#~ " en cuentas, impuestos, códigos de impuestos y posiciones fiscales.\n" +#~ "- Puede crear las nuevas cuentas, impuestos, códigos de impuestos y " +#~ "posiciones fiscales\n" +#~ " detectadas en la plantilla.\n" +#~ "- También puede actualizar (sobreescribir) las cuentas, impuestos, " +#~ "códigos de impuestos y posiciones\n" +#~ " fiscales que se modificaron en la plantilla.\n" +#~ "\n" +#~ "El asistente permite al usuario seleccionar que clase de objetos deben " +#~ "ser comprobados/actualizados,\n" +#~ "y si se deben buscar cambios en los registros existentes y " +#~ "actualizarlos.\n" +#~ "Mostrará todas las cuentas a crear / actualizar con alguna información\n" +#~ "sobre las diferencias detectadas, permitiendo al usuario excluir " +#~ "registros\n" +#~ "individualmente.\n" +#~ "Cualquier problema encontrado al actualizar se mostrará en el último " +#~ "paso.\n" +#~ "\n" +#~ "Autores:\n" +#~ " Jordi Esteve (Zikzakmedia) \n" +#~ " Borja López Soilán (Pexego) \n" + +#~ msgid "Detect changes and update the Account Chart from a template" +#~ msgstr "Detectar cambios y actualizar el Plan Contable desde una plantilla" + +#~ msgid "" +#~ "The Object name must start with x_ and not contain any special character !" +#~ msgstr "" +#~ "¡El objeto debe empezar con x_ y no puede contener ningún carácter " +#~ "especial!" diff --git a/account_chart_update/i18n/es_ES.po b/account_chart_update/i18n/es_ES.po new file mode 100644 index 000000000..145b0c601 --- /dev/null +++ b/account_chart_update/i18n/es_ES.po @@ -0,0 +1,807 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.10\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-30 21:45+0000\n" +"PO-Revision-Date: 2013-09-30 23:53+0100\n" +"Last-Translator: Joaquin Gutierrez \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "Cuenta a actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:359 +#, python-format +msgid "The code field is different.\n" +msgstr "El campo código es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "Posición fiscal" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "Actualizar padre de cuentas hijas" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "Posición fiscal a actualizar " + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "Las cuentas contables existentes serán actualizadas. Las cuentas se buscarán por código." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:753 +#, python-format +msgid "Created tax code %s.\n" +msgstr "Creado código de impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1083 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer la cuenta a recibir.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "Nuevas cuentas" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "Plantilla actualizada" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1161 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta destino %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:892 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la devolución de impuesto %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)" +msgstr "Si deja marcadas estas opciones, el asistente no sólo creará nuevos registros, sino que también actualizará registros con cambios (p.ej. diferente importe de impuesto)" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "Códigos de impuesto actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +msgstr "La plantilla tiene impuestos que la instancia de posición fiscal no.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "Actualizar cuentas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "Cuenta" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "Notas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "Impuestos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:362 +#, python-format +msgid "The info field is different.\n" +msgstr "El campo info es diferente.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "Asistente completado" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#, fuzzy +msgid "" +"Update Chart of Accounts from a Chart Template\n" +"\t\t\t" +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "Nuevos impuestos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:762 +#, python-format +msgid "Updated tax code %s.\n" +msgstr "Actualizado código de impuesto %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "Nuevos códigos de impuesto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "Impuesto a actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:853 +#, python-format +msgid "Created tax %s.\n" +msgstr "Creado impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:456 +#, python-format +msgid "The base sign field is different.\n" +msgstr "El campo signo base es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438 +#, python-format +msgid "The type field is different.\n" +msgstr "El campo tipo es diferente.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "wizard.update.charts.accounts.account" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "Cuentas" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:888 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para el impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:625 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "Mapeo de cuenta no encontrado en la instancia de la posición fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "Los códigos de impuestos existentes serán actualizados. Los códigos de impuestos se buscarán por nombre." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "Anterior" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "Impuesto" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "Siguiente" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "Nueva plantilla" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:432 +#, python-format +msgid "The sequence field is different.\n" +msgstr "El campo secuencia es diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "Cuentas actualizadas" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:645 +#, python-format +msgid "Account mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "Mapeo de cuenta no encontrado en la instancia de posición fiscal: %s -> %s.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "wizard.update.charts.accounts.tax" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "Impuestos actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462 +#, python-format +msgid "The include base amount field is different.\n" +msgstr "El campo incluir en importe base es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "Plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:648 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +msgstr "La plantilla tiene cuentas que la instancia de posición fiscal no.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "Paso 1" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "Paso 2" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1085 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer la cuenta a pagar.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1002 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +msgstr "Excepción creando cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "Continuar tras errores" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450 +#, python-format +msgid "The python compute field is different.\n" +msgstr "El campo cálculo python es diferente.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "wizard.update.charts.accounts.tax.code" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1187 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta de origen %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "Núm. de dígitos" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:886 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1015 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +msgstr "Excepción escribiendo cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1028 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +msgstr "Cuenta %s: No se pudo establecer la cuenta padre %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "Actualizar posiciones fiscales" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:239 +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:705 +#, fuzzy, python-format +msgid "Update Chart of Accounts from a Chart Template " +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534 +#, python-format +msgid "The name is different.\n" +msgstr "El nombre es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "Registro" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:777 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +msgstr "Código de impuesto %s: No se pudo establecer el código de impuesto padre %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435 +#, python-format +msgid "The amount field is different.\n" +msgstr "El campo importe es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447 +#, python-format +msgid "The child depend field is different.\n" +msgstr "El campo impuesto en hijos es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1011 +#, python-format +msgid "Updated account %s.\n" +msgstr "Actualizada cuenta %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "Código de impuesto a actualizar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "Mensajes y errores" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465 +#, python-format +msgid "The type tax use field is different.\n" +msgstr "El campo aplicación impuesto es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:884 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el impuesto padre %s.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "Códigos de impuestos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "Estado" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "Plantilla de posición fiscal" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "Resumen de objetos actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:365 +#, python-format +msgid "The sign field is different.\n" +msgstr "El campo signo es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:862 +#, python-format +msgid "Updated tax %s.\n" +msgstr "Actualizado impuesto %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:927 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +msgstr "Excepción estableciendo el padre de los hijos de la cuenta %s: %s - %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts." +msgstr "Número de dígitos para utilizar en el código de cuenta. Asegúrese que sea el mismo número de dígitos que el de las cuentas existentes." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "Actualizar códigos de impuestos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "Idioma" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "Plantilla de cuenta" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "Error" +msgstr "Error" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "Actualizar plan contable a partir de una plantilla de plan contable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "Resumen de objetos creados" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537 +#, python-format +msgid "The type is different.\n" +msgstr "El tipo es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "Posiciones fiscales" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "Actualizar impuestos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "Los impuestos existentes serán actualizados. Los impuestos se buscarán por nombre." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "Note:Not all the fields are tested for changes, just the main ones" +msgstr "Nota: No se buscan cambios en todos los campos, sólo en los principales." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "Crear/Actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:890 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base de devolución %s.\n" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "wizard.update.charts.accounts" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "Plantilla plan contable" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459 +#, python-format +msgid "The tax sign field is different.\n" +msgstr "El campo signo de impuesto es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226 +#, python-format +msgid "" +"One or more errors detected!\n" +"\n" +"%s" +msgstr "" +"¡Uno o más errores detectados!\n" +"\n" +"%s" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1189 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer la cuenta de destino %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "Nuevas posiciones fiscales" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441 +#, python-format +msgid "The applicable type field is different.\n" +msgstr "El campo tipo aplicable es diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "Código de impuesto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "Plantilla de impuesto" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:627 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +msgstr "Mapeo de cuentas no encontrado en la instancia de posición fiscal: %s -> Ninguno.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "¿Actualizar registros?" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "Las posiciones fiscales existentes serán actualizadas. Las posiciones fiscales se buscarán por nombre." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540 +#, python-format +msgid "The user type is different.\n" +msgstr "El tipo de usuario es diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "Asistente para actualizar el plan contable" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#, fuzzy +msgid "This wizard will update your accounts, taxes and fiscal positions according to the selected chart template" +msgstr "Este asistente actualizará sus cuentas, impuestos y posiciones fiscales de acuerdo a la plantilla de plan contable seleccionada." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:543 +#, python-format +msgid "The reconcile is different.\n" +msgstr "El campo reconciliar es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444 +#, python-format +msgid "The domain field is different.\n" +msgstr "El campo dominio es diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1253 +#, fuzzy, python-format +msgid "Update Accounts" +msgstr "Actualizar cuentas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "Otras opciones" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "wizard.update.charts.accounts.fiscal.position" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "Registros a crear/actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1191 +#, python-format +msgid "Created or updated fiscal position %s.\n" +msgstr "Creada o actualizada posición fiscal %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1159 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +msgstr "Posición fiscal %s: No se pudo establecer el impuesto origen %s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "Posiciones fiscales actualizadas" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,lang:0 +msgid "For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language." +msgstr "Para los registros de (impuestos, códigos de impuestos y posiciones fiscales) se comparan con los de la plantilla seleccionada, basándose en sus nombres." + +#. module: account_chart_update +#: code:addons/account_chart_update/wizard/wizard_chart_update.py:998 +#, python-format +msgid "Created account %s.\n" +msgstr "Creada cuenta %s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update the parent of accounts that seem (based on the code) to be children of the newly created ones. If you had an account 430 with a child 4300000, and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "Actualizar le padre de las cuentas que parecen (basándose en el código) ser hijas de las cuentas recién creadas. Si tiene una cuenta 430 con una hija 4300000, y se crea una cuenta 4300, se establecerá la cuenta 4300 como padre de la cuenta 4300000." + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "If set, the wizard will continue to the next step even if there are minor errors (for example the parent account of a new account couldn't be set)." +msgstr "Si marcado, el asistente continuará al paso siguiente incluso si hay errores menores (por ejemplo no se pudo establecer la cuenta padre de una nueva cuenta)." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "Plantilla de código de impuesto" + +#~ msgid "Invalid model name in the action definition." +#~ msgstr "Nombre de modelo inválido en la definición de acción." + +#~ msgid "Ok" +#~ msgstr "Aceptar" + +#~ msgid "The tax group field is different.\n" +#~ msgstr "El campo grupo de impuestos es diferente.\n" + +#~ msgid "Invalid XML for View Architecture!" +#~ msgstr "¡XML inválido para la estructura de la vista!" + +#~ msgid "" +#~ "\n" +#~ "Adds a wizard to update a company account chart from a chart template.\n" +#~ "\n" +#~ "This is a pretty useful tool to update OpenERP instalations after tax " +#~ "reforms\n" +#~ "on the oficial charts of accounts, or to apply fixes performed on the " +#~ "chart\n" +#~ "template.\n" +#~ "\n" +#~ "The wizard:\n" +#~ "\n" +#~ "- Allows the user to compare a chart and a template showing differences\n" +#~ " on accounts, taxes, tax codes and fiscal positions.\n" +#~ "- It may create the new account, taxes, tax codes and fiscal positions " +#~ "detected\n" +#~ " on the template.\n" +#~ "- It can also update (overwrite) the accounts, taxes, tax codes and " +#~ "fiscal\n" +#~ " positions that got modified on the template.\n" +#~ "\n" +#~ "The wizard lets the user select what kind of objects must be checked/" +#~ "updated,\n" +#~ "and whether old records must be checked for changes and updated.\n" +#~ "It will display all the accounts to be created / updated with some " +#~ "information\n" +#~ "about the detected differences, and allow the user to exclude records\n" +#~ "individually.\n" +#~ "Any problem found while updating will be shown on the last step.\n" +#~ "\n" +#~ "Authors:\n" +#~ " Jordi Esteve (Zikzakmedia) \n" +#~ " Borja López Soilán (Pexego) \n" +#~ msgstr "" +#~ "\n" +#~ "Añade un asistente para actualizar el plan de cuentas de una compañía " +#~ "desde una plantilla.\n" +#~ "\n" +#~ "Es una herramienta bastante útil para actualizar instalaciones de OpenERP " +#~ "tras reformas de impuestos\n" +#~ "en los planes contables oficiales, o para aplicar correcciones realizadas " +#~ "en la plantilla del\n" +#~ "plan contable.\n" +#~ "\n" +#~ "El asistente:\n" +#~ "\n" +#~ "- Permite al usuario comparar un plan y una plantilla mostrando las " +#~ "diferencias\n" +#~ " en cuentas, impuestos, códigos de impuestos y posiciones fiscales.\n" +#~ "- Puede crear la nuevas cuentas, impuestos, códigos de impuestos y " +#~ "posiciones fiscales\n" +#~ " detectadas en la plantilla.\n" +#~ "- También puede actualizar (sobreescribir) las cuentas, impuestos, " +#~ "códigos de impuestos y posiciones\n" +#~ " fiscales que se modificaron en la plantilla.\n" +#~ "\n" +#~ "El asistente permite al usuario seleccionar que clase de objetos deben " +#~ "ser comprobados/actualizados,\n" +#~ "y si se deben buscar cambios en los registros existentes y " +#~ "actualizarlos.\n" +#~ "Mostrará todas las cuentas a crear / actualizar con alguna información\n" +#~ "sobre las diferencias detectadas, permitiendo al usuario excluir " +#~ "registros\n" +#~ "individualmente.\n" +#~ "Cualquier problema encontrado al actualizar se mostrará en el último " +#~ "paso.\n" +#~ "\n" +#~ "Autores:\n" +#~ " Jordi Esteve (Zikzakmedia) \n" +#~ " Borja López Soilán (Pexego) \n" + +#~ msgid "Detect changes and update the Account Chart from a template" +#~ msgstr "Detectar cambios y actualizar el Plan Contable desde una plantilla" + +#~ msgid "" +#~ "The Object name must start with x_ and not contain any special character !" +#~ msgstr "" +#~ "¡El objeto debe empezar con x_ y no puede contener ningún carácter " +#~ "especial!" diff --git a/account_chart_update/i18n/pt.po b/account_chart_update/i18n/pt.po new file mode 100644 index 000000000..657f2aa6f --- /dev/null +++ b/account_chart_update/i18n/pt.po @@ -0,0 +1,844 @@ +# Portuguese translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2010-06-10 15:41+0000\n" +"PO-Revision-Date: 2010-11-29 16:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-11-28 04:55+0000\n" +"X-Generator: Launchpad (build 16309)\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "Linguagem" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created or updated fiscal position %s.\n" +msgstr "Posição fiscal criada ou actualizada %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +msgstr "Excepção da criação da conta %s :%s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +msgstr "Excepção ao escrever a conta %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +msgstr "Excepção na definição ascendente da conta descendente %s: %s - %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated account %s.\n" +msgstr "Conta %s actualizada.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created account %s.\n" +msgstr "Conta criada %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax %s.\n" +msgstr "Imposto criado %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax %s.\n" +msgstr "Imposto actualizado %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax code %s.\n" +msgstr "Código de imposto %s criado.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax code %s.\n" +msgstr "Código de imposto actualizado %s.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +msgstr "O modelo tem contas que a instância da posição fiscal não tem.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The base sign field is different.\n" +msgstr "O campo sinal base é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "Posição fiscal" + +#. module: account_chart_update +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nome do modelo inválido na definição da acção." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "Actualizar contas ascendentes de dependentes" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "Posição fiscal para actualizar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "Actualizar Impostos" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The child depend field is different.\n" +msgstr "O campo descendente dependente é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Note: Not all the fields are tested for changes, just the main ones." +msgstr "" +"Nota: Nem todos os campos foram testados para mudanças, apenas os principais." + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "Actualizar modelo" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "Empresa" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "" +"No. of Digits to use for account code. Make sure it is the same number as " +"existing accounts." +msgstr "" +"Nº de Dígitos para usar para o código da conta. Certifique-se que é o mesmo " +"número contas existentes." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "Contas Actualizadas" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "Posições fiscais actualizada" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"One or more errors detected!\n" +"\n" +"%s" +msgstr "" +"Um ou mais erros detectado!\n" +"\n" +"%s" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "Conta" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Ok" +msgstr "OK" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "Notas" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "Impostos" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +msgstr "Imposto %s: A conta paga não pode ser definida.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "Assistente Completo" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +msgstr "" +"Imposto %s: O código de imposto para o imposto %s não pode ser definido.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "Novos impostos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "Novo código de imposto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "Imposto para actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The python compute field is different.\n" +msgstr "O campo processamento python é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "Imposto" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "wizard.update.charts.accounts.tax" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "wizard.update.charts.accounts.account" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +msgstr "Posição fiscal %s: O imposto raíz %s não pode ser definido.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "Contas" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax group field is different.\n" +msgstr "O campo de grupo de imposto é diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The name is different.\n" +msgstr "O nome é diferente.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "" +"Os códigos de imposto existentes estão actualizados. O Código de impostos " +"são pesquisados pelo nome." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The code field is different.\n" +msgstr "O campo código é diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +msgstr "" +"Imposto %s: O código de imposto para a base %s não pode ser definido.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +msgstr "" +"Imposto %s: O código imposto para o reembolso do imposto %s não pode ser " +"definido.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "Novo modelo" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "Contas actualizadas" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "Lista de Contas" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sequence field is different.\n" +msgstr "O campo sequência é diferente.\n" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "Passo 1" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "Passo 2" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +msgstr "Posição fiscal %s: A conta raíz %s não pode ser definida.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "Continuar nos erros" + +#. module: account_chart_update +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML Inválido para Arquitectura de Vista!" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "wizard.update.charts.accounts.tax.code" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "# de Dígitos" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "Actualizar posições fiscais" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +msgstr "" +"Imposto %s: O código de imposto para o reembolso base %s não pode ser " +"definido.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +msgstr "Imposto %s: A conta colectada não pode ser definida.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "Anterior" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +msgstr "Imposto %s: O imposto ascendente %s não pode ser definido.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The domain field is different.\n" +msgstr "O campo domíno é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "Registo" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax sign field is different.\n" +msgstr "O campo sinal de imposto é diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "Códigos de imposto actualizado" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "Códido do imposto para actualizar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "Mensagens e Erros" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The user type is different.\n" +msgstr "O tipo de utilizador é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"If you leave these options set, the wizard will not just create new records, " +"but also update records with changes (i.e. different tax amount)." +msgstr "" +"Se deixar estas opções definidas o assistente não vai somente criar novas " +"gravações, mas também actualizar as gravações com alterações (exemplo: " +"montante do imposto diferente)." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "Códigos do imposto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "Estado" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" +"Mapeamento de imposto não encontrado na instância da posição fiscal: %s -> " +"%s.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "Modelo de posição fiscal" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "Resumo de objectos actualizados" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +msgstr "Conta %s: A conta ascendente %s não pode ser difenida.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "" +"As contas existentes estão actualizadas. As Contas são pesquisadas por " +"código." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +msgstr "" +"Código de imposto %s: O código de imposto ascendente %s não pode ser " +"definido.\n" + +#. module: account_chart_update +#: model:ir.module.module,description:account_chart_update.module_meta_information +msgid "" +"\n" +"Adds a wizard to update a company account chart from a chart template.\n" +"\n" +"This is a pretty useful tool to update OpenERP instalations after tax " +"reforms\n" +"on the oficial charts of accounts, or to apply fixes performed on the chart\n" +"template.\n" +"\n" +"The wizard:\n" +"\n" +"- Allows the user to compare a chart and a template showing differences\n" +" on accounts, taxes, tax codes and fiscal positions.\n" +"- It may create the new account, taxes, tax codes and fiscal positions " +"detected\n" +" on the template.\n" +"- It can also update (overwrite) the accounts, taxes, tax codes and fiscal\n" +" positions that got modified on the template.\n" +"\n" +"The wizard lets the user select what kind of objects must be " +"checked/updated,\n" +"and whether old records must be checked for changes and updated.\n" +"It will display all the accounts to be created / updated with some " +"information\n" +"about the detected differences, and allow the user to exclude records\n" +"individually.\n" +"Any problem found while updating will be shown on the last step.\n" +"\n" +"Authors:\n" +" Jordi Esteve (Zikzakmedia) \n" +" Borja López Soilán (Pexego) \n" +msgstr "" +"\n" +"Adiciona um assistente para actualizar a conta da empresa a partir de um " +"modelo de gráfico.\n" +"\n" +"Esta é uma ferramenta bastante útil para instalações actualizada de OpenERP " +"após as reformas fiscais \n" +"Nas contas oficiais , ou para aplicar correcções realizadas no modelo de " +"gráfico\n" +"modelo.\n" +"\n" +"A assistente:\n" +"\n" +"- Permite ao utilizador comparar um gráfico e um modelo que mostra as " +"diferenças \n" +" de contas, impostos, códigos fiscais e as posições fiscais.\n" +"- Permite criar a nova conta, os impostos, códigos fiscais e as situações " +"detectadas \n" +" no modelo.\n" +"- Também pode actualizar (substituir) as contas, impostos, códigos fiscais " +"e\n" +" posições que tem modificado no modelo.\n" +"\n" +"O assistente permite ao utilizador seleccionar o tipo de objectos que devem " +"ser verificados/actualizados\n" +"e se os registos mais antigos devem ser verificados para mudanças e " +"actualizado.\n" +"Irá exibir todas as contas a ser criado/actualizado com algumas informações " +"\n" +"sobre as diferenças detectadas, e permite ao utilizador excluir registros \n" +"individualmente.\n" +"Qualquer problema encontrado ao actualizar será mostrado o último passo.\n" +"\n" +"Authores:\n" +" Jordi Esteve (Zikzakmedia) \n" +" Borja López Soilán (Pexego) \n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The reconcile is different.\n" +msgstr "A conciliação é diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +msgstr "" +"Mapeamento do imposto não encontrado na intância da posição fiscal: %s -> " +"Nenhum.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "Actualizar códigos de imposto" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "Contas para actualizar" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "Modelo conta" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Error" +msgstr "Erro" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "Próximo" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +msgstr "O modelo tem impostos que a instância da posição fiscal não tem.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +msgstr "Posição fiscal %s: A conta destino %s não pode ser definida.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type field is different.\n" +msgstr "O campo tipo é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "Resuno de objectos criados" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "Posições fiscais" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "Actualizar impostos" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: account_chart_update +#: model:ir.module.module,shortdesc:account_chart_update.module_meta_information +msgid "Detect changes and update the Account Chart from a template" +msgstr "" +"Detectar mudanças e actualizar a Lista de Contas a partir de um modelo" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The info field is different.\n" +msgstr "O campo informação é diferente.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "" +"Os impostos existenstes estão actualizados. Os impostos são localizados pelo " +"nome." + +#. module: account_chart_update +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"O nome do Objecto precisa começar com x_ e não pode conter nenhum caracter " +"especial !" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The applicable type field is different.\n" +msgstr "O campo tipo aplicável é diferente.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "Criar/Actualizar" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The amount field is different.\n" +msgstr "O campo montante é diferente.\n" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "Actualizar a Lista de Contas a partir da Lista de Modelo" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The include base amount field is different.\n" +msgstr "O campo montante inclui base é diferente.\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "Lista de Modelo" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "Outras opções" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "Nova posição fiscal" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"This wizard will update your accounts, taxes and fiscal positions according " +"to the selected chart template." +msgstr "" +"Este assistente vai actualizar todas as contas impostos e posições fiscais " +"de acordo com a lista de modelo seleccionada." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "Novas contas" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "Imposto modelo" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "Actualizar gravações?" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "" +"Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "" +"As posições fiscais existentes estão actualizadas. Posições fiscais são " +"pesquisadas pelo nome." + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "Actualizar lista de assistente" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "wizard.update.charts.accounts.fiscal.position" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type is different.\n" +msgstr "O tipo é diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +msgstr "Posição fiscal %s: O destino do imposto %s não pode ser definido.\n" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "Gravações para criar/actualizar" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "wizard.update.charts.accounts" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "Modelo do código de imposto" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"Account mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" +"Mapeamento da conta não encontrada na instância da posição fiscal: %s -> " +"%s.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "" +"Update the parent of accounts that seem (based on the code) to be children " +"of the newly created ones. If you had an account 430 with a child 4300000, " +"and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "" +"Actualize contas ascendente que parecem (com base no código) a ser " +"descendentes dos recém-criado. Se tiver uma conta de 430 com uma descendente " +"4.300.000, e uma conta de 4300 é criado, ascendente 4.300.000 serão " +"definidos para 4300." + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sign field is different.\n" +msgstr "O campo sinal é diferente.\n" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type tax use field is different.\n" +msgstr "O campo tipo de imposto utilizado é diferente.\n" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "" +"If set, the wizard will continue to the next step even if there are minor " +"errors (for example the parent account of a new account couldn't be set)." +msgstr "" +"Se definido o assistente vai continuar o próximo passo mesmo que existam " +"erros menores (por exemplo, o ascendente da conta de uma nova conta não pode " +"ser definida)." + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "Código de imposto" diff --git a/account_chart_update/i18n/sv.po b/account_chart_update/i18n/sv.po new file mode 100644 index 000000000..1e35a7a6f --- /dev/null +++ b/account_chart_update/i18n/sv.po @@ -0,0 +1,765 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_chart_update +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.14\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2010-06-10 15:41+0000\n" +"PO-Revision-Date: 2010-11-22 23:07+0000\n" +"Last-Translator: Olivier Dony (OpenERP) \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-11-28 04:55+0000\n" +"X-Generator: Launchpad (build 16309)\n" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,lang:0 +msgid "Language" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created or updated fiscal position %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception creating account %s: %s - %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception writing account %s: %s - %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Exception setting the parent of account %s children: %s - %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated account %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created account %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Created tax code %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Updated tax code %s.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has accounts the fiscal position instance does not.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The base sign field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Fiscal position" +msgstr "" + +#. module: account_chart_update +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "Update children accounts parent" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,update_fiscal_position_id:0 +msgid "Fiscal position to update" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_taxes:0 +msgid "Updated taxes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The child depend field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Note: Not all the fields are tested for changes, just the main ones." +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "Updated template" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,company_id:0 +msgid "Company" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,code_digits:0 +msgid "" +"No. of Digits to use for account code. Make sure it is the same number as " +"existing accounts." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_account:0 +msgid "Update accounts" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_fps:0 +msgid "Updated fiscal positions" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"One or more errors detected!\n" +"\n" +"%s" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Account" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Ok" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts.account,notes:0 +#: field:wizard.update.charts.accounts.fiscal.position,notes:0 +#: field:wizard.update.charts.accounts.tax,notes:0 +#: field:wizard.update.charts.accounts.tax.code,notes:0 +msgid "Notes" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_ids:0 +msgid "Taxes" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The paid account can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Wizard Complete" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_taxes:0 +msgid "New taxes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_tax_codes:0 +msgid "New tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,update_tax_id:0 +msgid "Tax to update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The python compute field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax +msgid "wizard.update.charts.accounts.tax" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account +msgid "wizard.update.charts.accounts.account" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source tax %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,account_ids:0 +msgid "Accounts" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax group field is different.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The name is different.\n" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax_code:0 +msgid "Existing tax codes are updated. Tax codes are searched by name." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The code field is different.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the tax refund %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts.account,type:0 +#: selection:wizard.update.charts.accounts.fiscal.position,type:0 +#: selection:wizard.update.charts.accounts.tax,type:0 +#: selection:wizard.update.charts.accounts.tax.code,type:0 +msgid "New template" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_accounts:0 +msgid "Updated accounts" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,type:0 +#: field:wizard.update.charts.accounts.fiscal.position,type:0 +#: field:wizard.update.charts.accounts.tax,type:0 +#: field:wizard.update.charts.accounts.tax.code,type:0 +msgid "Type" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Chart of Accounts" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sequence field is different.\n" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 1" +msgstr "" + +#. module: account_chart_update +#: selection:wizard.update.charts.accounts,state:0 +msgid "Step 2" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The source account %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,continue_on_errors:0 +msgid "Continue on errors" +msgstr "" + +#. module: account_chart_update +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_tax_code +msgid "wizard.update.charts.accounts.tax.code" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "Update fiscal positions" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The tax code for the base refund %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The collected account can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Previous" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax %s: The parent tax %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The domain field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Log" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The tax sign field is different.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,updated_tax_codes:0 +msgid "Updated tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,update_tax_code_id:0 +msgid "Tax code to update" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,log:0 +msgid "Messages and Errors" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The user type is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"If you leave these options set, the wizard will not just create new records, " +"but also update records with changes (i.e. different tax amount)." +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,tax_code_ids:0 +msgid "Tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,state:0 +msgid "Status" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.fiscal.position,fiscal_position_id:0 +msgid "Fiscal position template" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of updated objects" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Account %s: The parent account %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_account:0 +msgid "Existing accounts are updated. Accounts are searched by code." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax code %s: The parent tax code %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: model:ir.module.module,description:account_chart_update.module_meta_information +msgid "" +"\n" +"Adds a wizard to update a company account chart from a chart template.\n" +"\n" +"This is a pretty useful tool to update OpenERP instalations after tax " +"reforms\n" +"on the oficial charts of accounts, or to apply fixes performed on the chart\n" +"template.\n" +"\n" +"The wizard:\n" +"\n" +"- Allows the user to compare a chart and a template showing differences\n" +" on accounts, taxes, tax codes and fiscal positions.\n" +"- It may create the new account, taxes, tax codes and fiscal positions " +"detected\n" +" on the template.\n" +"- It can also update (overwrite) the accounts, taxes, tax codes and fiscal\n" +" positions that got modified on the template.\n" +"\n" +"The wizard lets the user select what kind of objects must be " +"checked/updated,\n" +"and whether old records must be checked for changes and updated.\n" +"It will display all the accounts to be created / updated with some " +"information\n" +"about the detected differences, and allow the user to exclude records\n" +"individually.\n" +"Any problem found while updating will be shown on the last step.\n" +"\n" +"Authors:\n" +" Jordi Esteve (Zikzakmedia) \n" +" Borja López Soilán (Pexego) \n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The reconcile is different.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax_code:0 +msgid "Update tax codes" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_account_id:0 +msgid "Account to update" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,account_id:0 +msgid "Account template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Error" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Next" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The template has taxes the fiscal position instance does not.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination account %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Summary of created objects" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +#: field:wizard.update.charts.accounts,fiscal_position_ids:0 +msgid "Fiscal positions" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,update_tax:0 +msgid "Update taxes" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Cancel" +msgstr "" + +#. module: account_chart_update +#: model:ir.module.module,shortdesc:account_chart_update.module_meta_information +msgid "Detect changes and update the Account Chart from a template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The info field is different.\n" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_tax:0 +msgid "Existing taxes are updated. Taxes are searched by name." +msgstr "" + +#. module: account_chart_update +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The applicable type field is different.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Create/Update" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The amount field is different.\n" +msgstr "" + +#. module: account_chart_update +#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart +#: model:ir.ui.menu,name:account_chart_update.menu_wizard +#: view:wizard.update.charts.accounts:0 +msgid "Update Chart of Accounts from a Chart Template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The include base amount field is different.\n" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Other options" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_fps:0 +msgid "New fiscal positions" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "" +"This wizard will update your accounts, taxes and fiscal positions according " +"to the selected chart template." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts,new_accounts:0 +msgid "New accounts" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax,tax_id:0 +msgid "Tax template" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Update records?" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_fiscal_position:0 +msgid "" +"Existing fiscal positions are updated. Fiscal positions are searched by name." +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.account,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.fiscal.position,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax,update_chart_wizard_id:0 +#: field:wizard.update.charts.accounts.tax.code,update_chart_wizard_id:0 +msgid "Update chart wizard" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_fiscal_position +msgid "wizard.update.charts.accounts.fiscal.position" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type is different.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "Fiscal position %s: The destination tax %s can not be set.\n" +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Records to create/update" +msgstr "" + +#. module: account_chart_update +#: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts +msgid "wizard.update.charts.accounts" +msgstr "" + +#. module: account_chart_update +#: field:wizard.update.charts.accounts.tax.code,tax_code_id:0 +msgid "Tax code template" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "" +"Account mapping not found on the fiscal position instance: %s -> %s.\n" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,update_children_accounts_parent:0 +msgid "" +"Update the parent of accounts that seem (based on the code) to be children " +"of the newly created ones. If you had an account 430 with a child 4300000, " +"and a 4300 account is created, the 4300000 parent will be set to 4300." +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The sign field is different.\n" +msgstr "" + +#. module: account_chart_update +#: code:addons/account_chart_update/account.py:0 +#, python-format +msgid "The type tax use field is different.\n" +msgstr "" + +#. module: account_chart_update +#: help:wizard.update.charts.accounts,continue_on_errors:0 +msgid "" +"If set, the wizard will continue to the next step even if there are minor " +"errors (for example the parent account of a new account couldn't be set)." +msgstr "" + +#. module: account_chart_update +#: view:wizard.update.charts.accounts:0 +msgid "Tax code" +msgstr "" diff --git a/account_chart_update/wizard/__init__.py b/account_chart_update/wizard/__init__.py new file mode 100644 index 000000000..8d0cfc9ed --- /dev/null +++ b/account_chart_update/wizard/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2010 Zikzakmedia S.L. (http://www.zikzakmedia.com) +# Copyright (c) 2010 Pexego Sistemas Informáticos S.L. (http://www.pexego.es) +# @authors: Jordi Esteve (Zikzakmedia), Borja López Soilán (Pexego) +# +# 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 . +# +############################################################################## +""" +Account Chart Update Wizard +""" +import wizard_chart_update diff --git a/account_chart_update/wizard/wizard_chart_update.py b/account_chart_update/wizard/wizard_chart_update.py new file mode 100644 index 000000000..fb058b88f --- /dev/null +++ b/account_chart_update/wizard/wizard_chart_update.py @@ -0,0 +1,1364 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2010 Zikzakmedia S.L. (http://www.zikzakmedia.com) +# Copyright (c) 2010 Pexego Sistemas Informáticos S.L. (http://www.pexego.es) +# @authors: Jordi Esteve (Zikzakmedia), Borja López Soilán (Pexego) +# +# 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 . +# +############################################################################## +""" +Account Chart Update Wizard +""" + +from openerp.osv import fields, orm +from openerp.tools.translate import _ +import logging + + +class WizardLog: + """ + ******************************************************************* + Small helper class to store the messages and errors on the wizard. + ******************************************************************* + """ + def __init__(self): + self.messages = [] + self.errors = [] + + """ + Adds a message to the log. + """ + def add(self, message, is_error=False): + logger = logging.getLogger("account_chart_update") + if is_error: + logger.warning(u"Log line: %s" % message) + self.errors.append(message) + else: + logger.debug(u"Log line: %s" % message) + self.messages.append(message) + + """ + Returns whether errors where logged. + """ + def has_errors(self): + return self.errors + + def __call__(self): + return "".join(self.messages) + + def __str__(self): + return "".join(self.messages) + + def get_errors_str(self): + return "".join(self.errors) + + +class wizard_update_charts_accounts(orm.TransientModel): + _name = 'wizard.update.charts.accounts' + + """ + Gets the available languages for the selection. + """ + def _get_lang_selection_options(self, cr, uid, context={}): + obj = self.pool.get('res.lang') + ids = obj.search(cr, uid, [], context=context) + res = obj.read(cr, uid, ids, ['code', 'name'], context) + return [(r['code'], r['name']) for r in res] + [('', '')] + + _columns = { + 'state': fields.selection([ + ('init', 'Step 1'), + ('ready', 'Step 2'), + ('done', 'Wizard Complete') + ], 'Status', readonly=True), + 'company_id': fields.many2one('res.company', 'Company', required=True, ondelete='set null'), + 'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True, ondelete='set null'), + 'code_digits': fields.integer('# of Digits', required=True, help="No. of Digits to use for account code. Make sure it is the same number as existing accounts."), + 'lang': fields.selection(_get_lang_selection_options, 'Language', size=5, help="For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language."), + 'update_tax_code': fields.boolean('Update tax codes', help="Existing tax codes are updated. Tax codes are searched by name."), + 'update_tax': fields.boolean('Update taxes', help="Existing taxes are updated. Taxes are searched by name."), + 'update_account': fields.boolean('Update accounts', help="Existing accounts are updated. Accounts are searched by code."), + 'update_fiscal_position': fields.boolean('Update fiscal positions', help="Existing fiscal positions are updated. Fiscal positions are searched by name."), + 'update_children_accounts_parent': fields.boolean("Update children accounts parent", + help="Update the parent of accounts that seem (based on the code) to be children of the newly created ones. If you had an account 430 with a child 4300000, and a 4300 account is created, the 4300000 parent will be set to 4300."), + 'continue_on_errors': fields.boolean("Continue on errors", help="If set, the wizard will continue to the next step even if there are minor errors (for example the parent account of a new account couldn't be set)."), + 'tax_code_ids': fields.one2many('wizard.update.charts.accounts.tax.code', 'update_chart_wizard_id', 'Tax codes', ondelete='cascade'), + 'tax_ids': fields.one2many('wizard.update.charts.accounts.tax', 'update_chart_wizard_id', 'Taxes', ondelete='cascade'), + 'account_ids': fields.one2many('wizard.update.charts.accounts.account', 'update_chart_wizard_id', 'Accounts', ondelete='cascade'), + 'fiscal_position_ids': fields.one2many('wizard.update.charts.accounts.fiscal.position', 'update_chart_wizard_id', 'Fiscal positions', ondelete='cascade'), + 'new_tax_codes': fields.integer('New tax codes', readonly=True), + 'new_taxes': fields.integer('New taxes', readonly=True), + 'new_accounts': fields.integer('New accounts', readonly=True), + 'new_fps': fields.integer('New fiscal positions', readonly=True), + 'updated_tax_codes': fields.integer('Updated tax codes', readonly=True), + 'updated_taxes': fields.integer('Updated taxes', readonly=True), + 'updated_accounts': fields.integer('Updated accounts', readonly=True), + 'updated_fps': fields.integer('Updated fiscal positions', readonly=True), + 'log': fields.text('Messages and Errors', readonly=True) + } + """ + Redefine the search to search by company name. + """ + def name_search(self, cr, user, name, + args=None, operator='ilike', context=None, limit=80): + if not name: + name = '%' + if not args: + args = [] + if not context: + context = {} + args = args[:] + ids = [] + ids = self.search( + cr, user, [('company_id', operator, name)] + args, limit=limit) + return self.name_get(cr, user, ids, context=context) + + """ + Use the company name and template as name. + """ + def name_get(self, cr, uid, ids, context=None): + if context is None: + context = {} + if not len(ids): + return [] + records = self.browse(cr, uid, ids, context) + res = [] + for record in records: + res.append((record.id, record.company_id.name + + ' - ' + record.chart_template_id.name)) + return res + + """ + Returns the default chart template. + """ + def _get_chart(self, cr, uid, context=None): + if context is None: + context = {} + ids = self.pool.get( + 'account.chart.template').search(cr, uid, [], context=context) + if ids: + return ids[0] + return False + + """ + Returns the default code size for the accounts. + To figure out the number of digits of the accounts it look at the + code size of the default receivable account of the company + (or user's company if any company is given). + """ + def _get_code_digits(self, cr, uid, context=None, company_id=None): + if context is None: + context = {} + property_obj = self.pool.get('ir.property') + account_obj = self.pool.get('account.account') + if not company_id: + user = self.pool.get('res.users').browse(cr, uid, uid, context) + company_id = user.company_id.id + property_ids = property_obj.search( + cr, + uid, + [('name', '=', 'property_account_receivable'), + ('company_id', '=', company_id), + ('res_id', '=', False), + ('value_reference', '!=', False) + ]) + if not property_ids: + # Try to get a generic (no-company) property + property_ids = property_obj.search( + cr, + uid, + [('name', '=', 'property_account_receivable'), + ('res_id', '=', False), + ('value_reference', '!=', False) + ]) + number_digits = 6 + if property_ids: + prop = property_obj.browse( + cr, uid, property_ids[0], context=context) + account_id = prop.value_reference.id + + if account_id: + code = account_obj.read( + cr, uid, account_id, ['code'], context)['code'] + number_digits = len(code) + return number_digits + + _defaults = { + 'state': 'init', + 'company_id': lambda self, cr, uid, context: self.pool.get('res.users').browse(cr, uid, [uid], context)[0].company_id.id, + 'chart_template_id': _get_chart, + 'update_tax_code': True, + 'update_tax': True, + 'update_account': True, + 'update_fiscal_position': True, + 'update_children_accounts_parent': True, + 'continue_on_errors': False, + 'lang': lambda self, cr, uid, context: context and context.get('lang') or None, + } + + """ + Update the code size when the company changes + """ + def onchange_company_id(self, cr, uid, ids, company_id, context=None): + res = { + 'value': { + 'code_digits': self._get_code_digits( + cr, + uid, + context=context, + company_id=company_id), + } + } + return res + + """ + Initial action that sets the initial state. + """ + def action_init(self, cr, uid, ids, context=None): + if context is None: + context = {} + wizard = self.browse(cr, uid, ids[0], context=context) + self.write(cr, uid, ids, {'state': 'init'}, context) + view_wizard = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_chart_update', 'view_update_multi_chart') + view_wizard_id = view_wizard and view_wizard[1] or False, + res = { + 'type': 'ir.actions.act_window', + 'name': _("Update Chart of Accounts from a Chart Template "), + 'res_model': 'wizard.update.charts.accounts', + 'view_type': 'form', + 'view_mode': 'form', + 'res_id': wizard.id, + 'view_id': view_wizard_id, + 'context': context, + 'target': 'new', + } + return res + + return True + + ########################################################################## + # Helper methods + ########################################################################## + """ + Adds a tax template -> tax id to the mapping. + """ + def _map_tax_template(self, cr, uid, wizard, tax_template_mapping, tax_template, context=None): + if tax_template and not tax_template_mapping.get(tax_template.id): + taxes = self.pool.get('account.tax') + tax_ids = taxes.search(cr, uid, [ + ('name', '=', tax_template.name), + ('company_id', '=', wizard.company_id.id) + ], context=context) + if tax_ids: + tax_template_mapping[tax_template.id] = tax_ids[0] + + """ + Adds a tax code template -> tax code id to the mapping. + """ + def _map_tax_code_template(self, cr, uid, wizard, tax_code_template_mapping, tax_code_template, context=None): + if tax_code_template and not tax_code_template_mapping.get(tax_code_template.id): + tax_codes = self.pool.get('account.tax.code') + root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id + tax_code_name = (tax_code_template.id == root_tax_code_id) and wizard.company_id.name or tax_code_template.name + tax_code_ids = tax_codes.search(cr, uid, [ + ('name', '=', tax_code_name), + ('company_id', '=', wizard.company_id.id) + ]) + if tax_code_ids: + tax_code_template_mapping[ + tax_code_template.id] = tax_code_ids[0] + + """ + Adds an account template -> account id to the mapping + """ + def _map_account_template(self, cr, uid, wizard, account_template_mapping, account_template, context=None): + if account_template and not account_template_mapping.get(account_template.id): + accounts = self.pool.get('account.account') + code = account_template.code or '' + if account_template.type != 'view': + if len(code) > 0 and len(code) <= wizard.code_digits: + code = '%s%s' % ( + code, '0' * (wizard.code_digits - len(code))) + account_ids = accounts.search(cr, uid, [ + ('code', '=', code), + ('company_id', '=', wizard.company_id.id) + ], context=context) + if account_ids: + account_template_mapping[account_template.id] = account_ids[0] + """ + Adds a fiscal position template -> fiscal position id to the mapping. + """ + def _map_fp_template(self, cr, uid, wizard, fp_template_mapping, fp_template, context=None): + if fp_template and not fp_template_mapping.get(fp_template.id): + fiscalpositions = self.pool.get('account.fiscal.position') + fp_ids = fiscalpositions.search(cr, uid, [ + ('name', '=', fp_template.name), + ('company_id', '=', wizard.company_id.id) + ], context=context) + if fp_ids: + fp_template_mapping[fp_template.id] = fp_ids[0] + + """ + Search for, and load, tax code templates to create/update. + """ + def _find_tax_codes(self, cr, uid, wizard, context=None): + new_tax_codes = 0 + updated_tax_codes = 0 + tax_code_template_mapping = {} + + taxes_codes_templates = self.pool.get('account.tax.code.template') + taxcodes = self.pool.get('account.tax.code') + wiz_taxcodes = self.pool.get('wizard.update.charts.accounts.tax.code') + + # Remove previous tax codes + wiz_taxcodes.unlink( + cr, uid, wiz_taxcodes.search(cr, uid, [])) + + # + # Search for new / updated tax codes + # + root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id + children_tax_code_template = taxes_codes_templates.search(cr, uid, [( + 'parent_id', 'child_of', [root_tax_code_id])], order='id') + for tax_code_template in taxes_codes_templates.browse(cr, uid, children_tax_code_template): + # Ensure the tax code template is on the map (search for the mapped + # tax code id). + self._map_tax_code_template(cr, uid, wizard, tax_code_template_mapping, tax_code_template, context) + + tax_code_id = tax_code_template_mapping.get(tax_code_template.id) + if not tax_code_id: + new_tax_codes += 1 + wiz_taxcodes.create(cr, uid, { + 'tax_code_id': tax_code_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'new', + }, context) + elif wizard.update_tax_code: + # + # Check the tax code for changes. + # + modified = False + notes = "" + tax_code = taxcodes.browse( + cr, uid, tax_code_id, context=context) + + if tax_code.code != tax_code_template.code: + notes += _("The code field is different.\n") + modified = True + if tax_code.info != tax_code_template.info: + notes += _("The info field is different.\n") + modified = True + if tax_code.sign != tax_code_template.sign: + notes += _("The sign field is different.\n") + modified = True + + # TODO: We could check other account fields for changes... + + if modified: + # + # Tax code to update. + # + updated_tax_codes += 1 + wiz_taxcodes.create(cr, uid, { + 'tax_code_id': tax_code_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'updated', + 'update_tax_code_id': tax_code_id, + 'notes': notes, + }, context) + + return { + 'new': new_tax_codes, + 'updated': updated_tax_codes, + 'mapping': tax_code_template_mapping + } + """ + Search for, and load, tax templates to create/update. + """ + def _find_taxes(self, cr, uid, wizard, context=None): + new_taxes = 0 + updated_taxes = 0 + tax_template_mapping = {} + + taxes = self.pool.get('account.tax') + wiz_taxes = self.pool.get('wizard.update.charts.accounts.tax') + + delay_wiz_tax = [] + # Remove previous taxes + wiz_taxes.unlink(cr, uid, wiz_taxes.search(cr, uid, [])) + + # + # Search for new / updated taxes + # + for tax_template in wizard.chart_template_id.tax_template_ids: + # Ensure the tax template is on the map (search for the mapped tax + # id). + self._map_tax_template( + cr, uid, wizard, tax_template_mapping, tax_template, context) + + tax_id = tax_template_mapping.get(tax_template.id) + if not tax_id: + new_taxes += 1 + vals_wiz = { + 'tax_id': tax_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'new', + } + if not tax_template.parent_id: + wiz_taxes.create(cr, uid, vals_wiz, context) + else: + delay_wiz_tax.append(vals_wiz) + elif wizard.update_tax: + # + # Check the tax for changes. + # + modified = False + notes = "" + tax = taxes.browse(cr, uid, tax_id, context=context) + if tax.sequence != tax_template.sequence: + notes += _("The sequence field is different.\n") + modified = True + if tax.amount != tax_template.amount: + notes += _("The amount field is different.\n") + modified = True + if tax.type != tax_template.type: + notes += _("The type field is different.\n") + modified = True + if tax.applicable_type != tax_template.applicable_type: + notes += _("The applicable type field is different.\n") + modified = True + if tax.domain != tax_template.domain: + notes += _("The domain field is different.\n") + modified = True + if tax.child_depend != tax_template.child_depend: + notes += _("The child depend field is different.\n") + modified = True + if tax.python_compute != tax_template.python_compute: + notes += _("The python compute field is different.\n") + modified = True + # if tax.tax_group != tax_template.tax_group: + # notes += _("The tax group field is different.\n") + # modified = True + if tax.base_sign != tax_template.base_sign: + notes += _("The base sign field is different.\n") + modified = True + if tax.tax_sign != tax_template.tax_sign: + notes += _("The tax sign field is different.\n") + modified = True + if tax.include_base_amount != tax_template.include_base_amount: + notes += _("The include base amount field is different.\n") + modified = True + if tax.type_tax_use != tax_template.type_tax_use: + notes += _("The type tax use field is different.\n") + modified = True + # TODO: We could check other tax fields for changes... + + if modified: + # + # Tax code to update. + # + updated_taxes += 1 + wiz_taxes.create(cr, uid, { + 'tax_id': tax_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'updated', + 'update_tax_id': tax_id, + 'notes': notes, + }, context) + + for delay_vals_wiz in delay_wiz_tax: + wiz_taxes.create(cr, uid, delay_vals_wiz, context) + + return {'new': new_taxes, 'updated': updated_taxes, 'mapping': tax_template_mapping} + + """ + Search for, and load, account templates to create/update. + """ + def _find_accounts(self, cr, uid, wizard, context=None): + new_accounts = 0 + updated_accounts = 0 + account_template_mapping = {} + + accounts = self.pool.get('account.account') + accounts_template = self.pool.get('account.account.template') + wiz_accounts = self.pool.get( + 'wizard.update.charts.accounts.account') + + # Remove previous accounts + wiz_accounts.unlink( + cr, uid, wiz_accounts.search(cr, uid, [])) + + # + # Search for new / updated accounts + # + root_account_id = wizard.chart_template_id.account_root_id.id + children_acc_template = accounts_template.search(cr, uid, [( + 'parent_id', 'child_of', [root_account_id])], context=context) + children_acc_template.sort() + for account_template in accounts_template.browse(cr, uid, children_acc_template, context=context): + # Ensure the account template is on the map (search for the mapped + # account id). + self._map_account_template(cr, uid, wizard, account_template_mapping, account_template, context) + + account_id = account_template_mapping.get(account_template.id) + if not account_id: + new_accounts += 1 + wiz_accounts.create(cr, uid, { + 'account_id': account_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'new', + }, context) + elif wizard.update_account: + # + # Check the account for changes. + # + modified = False + notes = "" + account = accounts.browse( + cr, uid, account_id, context=context) + + if account.name != account_template.name and account.name != wizard.company_id.name: + notes += _("The name is different.\n") + modified = True + if account.type != account_template.type: + notes += _("The type is different.\n") + modified = True + if account.user_type != account_template.user_type: + notes += _("The user type is different.\n") + modified = True + if account.reconcile != account_template.reconcile: + notes += _("The reconcile is different.\n") + modified = True + + # TODO: We could check other account fields for changes... + + if modified: + # + # Account to update. + # + updated_accounts += 1 + wiz_accounts.create(cr, uid, { + 'account_id': account_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'updated', + 'update_account_id': account_id, + 'notes': notes, + }, context) + + return {'new': new_accounts, 'updated': updated_accounts, 'mapping': account_template_mapping} + + """ + Search for, and load, fiscal position templates to create/update. + """ + def _find_fiscal_positions(self, cr, uid, wizard, context=None): + new_fps = 0 + updated_fps = 0 + fp_template_mapping = {} + + fiscalpostitions_template = self.pool.get('account.fiscal.position.template') + fiscalpositions = self.pool.get('account.fiscal.position') + wiz_fiscalpositions = self.pool.get( + 'wizard.update.charts.accounts.fiscal.position') + + # Remove previous fiscal positions + wiz_fiscalpositions.unlink(cr, uid, wiz_fiscalpositions.search(cr, uid, [])) + + # + # Search for new / updated fiscal positions + # + fp_template_ids = fiscalpostitions_template.search(cr, uid, [('chart_template_id', '=', wizard.chart_template_id.id)], context=context) + for fp_template in fiscalpostitions_template.browse(cr, uid, fp_template_ids, context=context): + # Ensure the fiscal position template is on the map (search for the + # mapped fiscal position id). + self._map_fp_template( + cr, uid, wizard, fp_template_mapping, fp_template, context) + + fp_id = fp_template_mapping.get(fp_template.id) + if not fp_id: + # + # New fiscal position template. + # + new_fps += 1 + wiz_fiscalpositions.create(cr, uid, { + 'fiscal_position_id': fp_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'new', + }, context) + elif wizard.update_fiscal_position: + # + # Check the fiscal position for changes. + # + modified = False + notes = "" + fp = fiscalpositions.browse(cr, uid, fp_id, context=context) + + # + # Check fiscal position taxes for changes. + # + if fp_template.tax_ids and fp.tax_ids: + for fp_tax_template in fp_template.tax_ids: + found = False + for fp_tax in fp.tax_ids: + if fp_tax.tax_src_id.name == fp_tax_template.tax_src_id.name: + if fp_tax_template.tax_dest_id and fp_tax.tax_dest_id: + if fp_tax.tax_dest_id.name == fp_tax_template.tax_dest_id.name: + found = True + break + elif not fp_tax_template.tax_dest_id and not fp_tax.tax_dest_id: + found = True + break + if not found: + if fp_tax_template.tax_dest_id: + notes += _("Tax mapping not found on the fiscal position instance: %s -> %s.\n") % (fp_tax_template.tax_src_id.name, fp_tax_template.tax_dest_id.name) + else: + notes += _("Tax mapping not found on the fiscal position instance: %s -> None.\n") % fp_tax_template.tax_src_id.name + modified = True + elif fp_template.tax_ids and not fp.tax_ids: + notes += _("The template has taxes the fiscal position instance does not.\n") + modified = True + + # + # Check fiscal position accounts for changes. + # + if fp_template.account_ids and fp.account_ids: + for fp_account_template in fp_template.account_ids: + found = False + for fp_account in fp.account_ids: + if fp_account.account_src_id.name == fp_account_template.account_src_id.name: + if fp_account.account_dest_id.name == fp_account_template.account_dest_id.name: + found = True + break + if not found: + notes += _("Account mapping not found on the fiscal position instance: %s -> %s.\n") % (fp_account_template.account_src_id.name, fp_account_template.account_dest_id.name) + modified = True + elif fp_template.account_ids and not fp.account_ids: + notes += _("The template has accounts the fiscal position instance does not.\n") + modified = True + + if modified: + # + # Fiscal position template to update. + # + updated_fps += 1 + wiz_fiscalpositions.create(cr, uid, { + 'fiscal_position_id': fp_template.id, + 'update_chart_wizard_id': wizard.id, + 'type': 'updated', + 'update_fiscal_position_id': fp_id, + 'notes': notes, + }, context) + + return {'new': new_fps, 'updated': updated_fps, 'mapping': fp_template_mapping} + + """ + Searchs for records to update/create and shows them + """ + def action_find_records(self, cr, uid, ids, context=None): + if context is None: + context = {} + wizard = self.browse(cr, uid, ids[0], context=context) + + if wizard.lang: + context['lang'] = wizard.lang + elif context.get('lang'): + del context['lang'] + + # + # Search for, and load, the records to create/update. + # + tax_codes_res = self._find_tax_codes(cr, uid, wizard, context=context) + taxes_res = self._find_taxes(cr, uid, wizard, context=context) + accounts_res = self._find_accounts(cr, uid, wizard, context=context) + fps_res = self._find_fiscal_positions(cr, uid, wizard, context=context) + + # + # Write the results, and go to the next step. + # + self.write(cr, uid, [wizard.id], { + 'state': 'ready', + 'new_tax_codes': tax_codes_res.get('new', 0), + 'new_taxes': taxes_res.get('new', 0), + 'new_accounts': accounts_res.get('new', 0), + 'new_fps': fps_res.get('new', 0), + 'updated_tax_codes': tax_codes_res.get('updated', 0), + 'updated_taxes': taxes_res.get('updated', 0), + 'updated_accounts': accounts_res.get('updated', 0), + 'updated_fps': fps_res.get('updated', 0), + }, context) + view_wizard = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_chart_update', 'view_update_multi_chart') + view_wizard_id = view_wizard and view_wizard[1] or False, + res = { + 'type': 'ir.actions.act_window', + 'name': _("Update Chart of Accounts from a Chart Template "), + 'res_model': 'wizard.update.charts.accounts', + 'view_type': 'form', + 'view_mode': 'form', + 'res_id': wizard.id, + 'view_id': view_wizard_id, + 'context': context, + 'target': 'new', + } + return res + + """ + Search for, and load, tax code templates to create/update. + """ + def _update_tax_codes(self, cr, uid, wizard, log, context=None): + taxcodes = self.pool.get('account.tax.code') + root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id + new_tax_codes = 0 + updated_tax_codes = 0 + tax_code_template_mapping = {} + + for wiz_tax_code in wizard.tax_code_ids: + tax_code_template = wiz_tax_code.tax_code_id + tax_code_name = (root_tax_code_id == tax_code_template.id) and wizard.company_id.name or tax_code_template.name + + # Ensure the parent tax code template is on the map. + self._map_tax_code_template(cr, uid, wizard, tax_code_template_mapping, tax_code_template.parent_id, context) + + # + # Values + # + vals = { + 'name': tax_code_name, + 'code': tax_code_template.code, + 'info': tax_code_template.info, + 'parent_id': tax_code_template.parent_id and tax_code_template_mapping.get(tax_code_template.parent_id.id), + 'company_id': wizard.company_id.id, + 'sign': tax_code_template.sign, + } + + tax_code_id = None + modified = False + + if wiz_tax_code.type == 'new': + # + # Create the tax code + # + tax_code_id = taxcodes.create(cr, uid, vals) + log.add(_("Created tax code %s.\n") % tax_code_name) + new_tax_codes += 1 + modified = True + elif wizard.update_tax_code and wiz_tax_code.update_tax_code_id: + # + # Update the tax code + # + tax_code_id = wiz_tax_code.update_tax_code_id.id + taxcodes.write(cr, uid, [tax_code_id], vals) + log.add(_("Updated tax code %s.\n") % tax_code_name) + updated_tax_codes += 1 + modified = True + else: + tax_code_id = wiz_tax_code.update_tax_code_id and wiz_tax_code.update_tax_code_id.id + modified = False + + # Store the tax codes on the map + tax_code_template_mapping[tax_code_template.id] = tax_code_id + + if modified: + # + # Detect errors + # + if tax_code_template.parent_id and not tax_code_template_mapping.get(tax_code_template.parent_id.id): + log.add(_("Tax code %s: The parent tax code %s can not be set.\n") % (tax_code_name, tax_code_template.parent_id.name), True) + + return { + 'new': new_tax_codes, + 'updated': updated_tax_codes, + 'mapping': tax_code_template_mapping + } + + """ + Search for, and load, tax templates to create/update. + """ + def _update_taxes(self, cr, uid, wizard, log, tax_code_template_mapping, context=None): + taxes = self.pool.get('account.tax') + + new_taxes = 0 + updated_taxes = 0 + tax_template_mapping = {} + taxes_pending_for_accounts = {} + + for wiz_tax in wizard.tax_ids: + tax_template = wiz_tax.tax_id + + # Ensure the parent tax template is on the map. + self._map_tax_template(cr, uid, wizard, tax_template_mapping, + tax_template.parent_id, context) + + # + # Ensure the referenced tax codes are on the map. + # + tax_code_templates_to_find = [ + tax_template.base_code_id, + tax_template.tax_code_id, + tax_template.ref_base_code_id, + tax_template.ref_tax_code_id + ] + for tax_code_template in [tmpl for tmpl in tax_code_templates_to_find if tmpl]: + self._map_tax_code_template(cr, uid, wizard, tax_code_template_mapping, tax_code_template) + + # + # Values + # + vals_tax = { + 'name': tax_template.name, + 'sequence': tax_template.sequence, + 'amount': tax_template.amount, + 'type': tax_template.type, + 'applicable_type': tax_template.applicable_type, + 'domain': tax_template.domain, + 'parent_id': tax_template.parent_id and tax_template_mapping.get(tax_template.parent_id.id), + 'child_depend': tax_template.child_depend, + 'python_compute': tax_template.python_compute, + 'python_compute_inv': tax_template.python_compute_inv, + 'python_applicable': tax_template.python_applicable, + #'tax_group': tax_template.tax_group, + 'base_code_id': tax_template.base_code_id and tax_code_template_mapping.get(tax_template.base_code_id.id), + 'tax_code_id': tax_template.tax_code_id and tax_code_template_mapping.get(tax_template.tax_code_id.id), + 'base_sign': tax_template.base_sign, + 'tax_sign': tax_template.tax_sign, + 'ref_base_code_id': tax_template.ref_base_code_id and tax_code_template_mapping.get(tax_template.ref_base_code_id.id), + 'ref_tax_code_id': tax_template.ref_tax_code_id and tax_code_template_mapping.get(tax_template.ref_tax_code_id.id), + 'ref_base_sign': tax_template.ref_base_sign, + 'ref_tax_sign': tax_template.ref_tax_sign, + 'include_base_amount': tax_template.include_base_amount, + 'description': tax_template.description, + 'company_id': wizard.company_id.id, + 'type_tax_use': tax_template.type_tax_use + } + + tax_id = None + modified = False + + if wiz_tax.type == 'new': + # + # Create a new tax. + # + tax_id = taxes.create(cr, uid, vals_tax) + log.add(_("Created tax %s.\n") % tax_template.name) + new_taxes += 1 + modified = True + elif wizard.update_tax and wiz_tax.update_tax_id: + # + # Update a tax. + # + tax_id = wiz_tax.update_tax_id.id + taxes.write(cr, uid, [tax_id], vals_tax) + log.add(_("Updated tax %s.\n") % tax_template.name) + updated_taxes += 1 + modified = True + else: + tax_id = wiz_tax.update_tax_id and wiz_tax.update_tax_id.id + + # Update the tax template map + tax_template_mapping[tax_template.id] = tax_id + + if modified: + # + # Add to the dict of taxes waiting for accounts. + # + taxes_pending_for_accounts[tax_id] = { + 'account_collected_id': tax_template.account_collected_id and tax_template.account_collected_id.id or False, + 'account_paid_id': tax_template.account_paid_id and tax_template.account_paid_id.id or False, + } + + # + # Detect errors + # + if tax_template.parent_id and not tax_template_mapping.get(tax_template.parent_id.id): + log.add(_("Tax %s: The parent tax %s can not be set.\n") % (tax_template.name, tax_template.parent_id.name), True) + if tax_template.base_code_id and not tax_code_template_mapping.get(tax_template.base_code_id.id): + log.add(_("Tax %s: The tax code for the base %s can not be set.\n") % (tax_template.name, tax_template.base_code_id.name), True) + if tax_template.tax_code_id and not tax_code_template_mapping.get(tax_template.tax_code_id.id): + log.add(_("Tax %s: The tax code for the tax %s can not be set.\n") % (tax_template.name, tax_template.tax_code_id.name), True) + if tax_template.ref_base_code_id and not tax_code_template_mapping.get(tax_template.ref_base_code_id.id): + log.add(_("Tax %s: The tax code for the base refund %s can not be set.\n") % (tax_template.name, tax_template.ref_base_code_id.name), True) + if tax_template.ref_tax_code_id and not tax_code_template_mapping.get(tax_template.ref_tax_code_id.id): + log.add(_("Tax %s: The tax code for the tax refund %s can not be set.\n") % (tax_template.name, tax_template.ref_tax_code_id.name), True) + + return { + 'new': new_taxes, + 'updated': updated_taxes, + 'mapping': tax_template_mapping, + 'pending': taxes_pending_for_accounts + } + + """ + Updates the parent_id of accounts that seem to be children of the + given account (accounts that start with the same code and are brothers + of the first account). + """ + def _update_children_accounts_parent(self, cr, uid, wizard, log, parent_account_id, context=None): + account_account = self.pool.get('account.account') + parent_account = account_account.browse( + cr, uid, parent_account_id, context=context) + + if not parent_account.parent_id or not parent_account.code: + return False + + children_ids = account_account.search(cr, uid, [ + ('company_id', '=', + parent_account.company_id and parent_account.company_id.id), + ('parent_id', '=', parent_account.parent_id.id), + ('code', '=like', "%s%%" % parent_account.code), + ('id', '!=', parent_account.id), + ], context=context) + + if children_ids: + try: + account_account.write(cr, uid, children_ids, {'parent_id': + parent_account.id}, context=context) + except orm.except_orm, ex: + log.add(_("Exception setting the parent of account %s children: %s - %s.\n") % (parent_account.code, ex.name, ex.value), True) + + return True + + """ + Search for, and load, account templates to create/update. + """ + def _update_accounts(self, cr, uid, wizard, log, tax_template_mapping, context=None): + accounts = self.pool.get('account.account') + root_account_id = wizard.chart_template_id.account_root_id.id + + # Disable the parent_store computing on account_account during the batch + # processing, we will force _parent_store_compute afterwards. + self.pool._init = True + new_accounts = 0 + updated_accounts = 0 + account_template_mapping = {} + + for wiz_account in wizard.account_ids: + account_template = wiz_account.account_id + + # Ensure the parent account template is on the map. + self._map_account_template(cr, uid, wizard, account_template_mapping, account_template.parent_id, context) + + # + # Ensure the related tax templates are on the map. + # + for tax_template in account_template.tax_ids: + self._map_tax_template(cr, uid, wizard, tax_template_mapping, + tax_template, context) + + # Get the tax ids + tax_ids = [tax_template_mapping[tax_template.id] for tax_template in account_template.tax_ids if tax_template_mapping[tax_template.id]] + + # + # Calculate the account code (we need to add zeros to non-view + # account codes) + # + code = account_template.code or '' + if account_template.type != 'view': + if len(code) > 0 and len(code) <= wizard.code_digits: + code = '%s%s' % ( + code, '0' * (wizard.code_digits - len(code))) + + # + # Values + # + vals = { + 'name': (root_account_id == account_template.id) and wizard.company_id.name or account_template.name, + #'sign': account_template.sign, + 'currency_id': account_template.currency_id and account_template.currency_id.id or False, + 'code': code, + 'type': account_template.type, + 'user_type': account_template.user_type and account_template.user_type.id or False, + 'reconcile': account_template.reconcile, + 'shortcut': account_template.shortcut, + 'note': account_template.note, + 'parent_id': account_template.parent_id and account_template_mapping.get(account_template.parent_id.id) or False, + 'tax_ids': [(6, 0, tax_ids)], + 'company_id': wizard.company_id.id, + } + + account_id = None + modified = False + + if wiz_account.type == 'new': + # + # Create the account + # + try: + account_id = accounts.create(cr, uid, vals) + log.add(_("Created account %s.\n") % code) + new_accounts += 1 + modified = True + except orm.except_orm, ex: + log.add(_("Exception creating account %s: %s - %s.\n") + % (code, ex.name, ex.value), True) + elif wizard.update_account and wiz_account.update_account_id: + # + # Update the account + # + account_id = wiz_account.update_account_id.id + try: + accounts.write(cr, uid, [account_id], vals) + log.add(_("Updated account %s.\n") % code) + updated_accounts += 1 + modified = True + except orm.except_orm, ex: + log.add(_("Exception writing account %s: %s - %s.\n") + % (code, ex.name, ex.value), True) + else: + account_id = wiz_account.update_account_id and wiz_account.update_account_id.id + + # Store the account on the map + account_template_mapping[account_template.id] = account_id + + if modified: + # + # Detect errors + # + if account_template.parent_id and not account_template_mapping.get(account_template.parent_id.id): + log.add(_("Account %s: The parent account %s can not be set.\n") % (code, account_template.parent_id.code), True) + + # + # Set this account as the parent of the accounts that seem to + # be its children (brothers starting with the same code). + # + if wizard.update_children_accounts_parent: + self._update_children_accounts_parent( + cr, uid, wizard, log, account_id, context=context) + + # + # Reenable the parent_store computing on account_account + # and force the recomputation. + # + self.pool._init = False + self.pool.get('account.account')._parent_store_compute(cr) + + return { + 'new': new_accounts, + 'updated': updated_accounts, + 'mapping': account_template_mapping + } + + """ + Updates the taxes (created or updated on previous steps) to set + the references to the accounts (the taxes where created/updated first, + when the referenced accounts where still not available). + """ + def _update_taxes_pending_for_accounts(self, cr, uid, wizard, log, taxes_pending_for_accounts, account_template_mapping, context=None): + taxes = self.pool.get('account.tax') + accounts_template = self.pool.get('account.account.template') + + for key, value in taxes_pending_for_accounts.items(): + # + # Ensure the related account templates are on the map. + # + if value['account_collected_id']: + account_template = accounts_template.browse( + cr, uid, value['account_collected_id'], context=context) + self._map_account_template(cr, uid, wizard, account_template_mapping, account_template, context) + if value['account_paid_id']: + account_template = accounts_template.browse( + cr, uid, value['account_paid_id'], context=context) + self._map_account_template(cr, uid, wizard, account_template_mapping, account_template, context) + + if value['account_collected_id'] or value['account_paid_id']: + if account_template_mapping.get(value['account_collected_id']) and account_template_mapping.get(value['account_paid_id']): + vals = { + 'account_collected_id': account_template_mapping[value['account_collected_id']], + 'account_paid_id': account_template_mapping[value['account_paid_id']], + } + taxes.write(cr, uid, [key], vals) + else: + tax = taxes.browse(cr, uid, key) + if not account_template_mapping.get(value['account_collected_id']): + log.add(_("Tax %s: The collected account can not be set.\n") % (tax.name), True) + if not account_template_mapping.get(value['account_paid_id']): + log.add(_("Tax %s: The paid account can not be set.\n") + % (tax.name), True) + + """ + Search for, and load, fiscal position templates to create/update. + """ + def _update_fiscal_positions(self, cr, uid, wizard, log, tax_template_mapping, account_template_mapping, context=None): + fiscalpositions = self.pool.get('account.fiscal.position') + fiscalpositions_taxes = self.pool.get('account.fiscal.position.tax') + fiscalpositions_account = self.pool.get('account.fiscal.position.account') + + new_fps = 0 + updated_fps = 0 + + for wiz_fp in wizard.fiscal_position_ids: + fp_template = wiz_fp.fiscal_position_id + fp_id = None + modified = False + if wiz_fp.type == 'new': + # + # Create a new fiscal position + # + vals_fp = { + 'company_id': wizard.company_id.id, + 'name': fp_template.name, + } + fp_id = fiscalpositions.create(cr, uid, vals_fp) + new_fps += 1 + modified = True + elif wizard.update_fiscal_position and wiz_fp.update_fiscal_position_id: + # + # Update the given fiscal position (remove the tax and account + # mappings, that will be regenerated later) + # + fp_id = wiz_fp.update_fiscal_position_id.id + updated_fps += 1 + modified = True + # Remove the tax mappings + fp_tax_ids = fiscalpositions_taxes.search( + cr, uid, [('position_id', '=', fp_id)]) + fiscalpositions_taxes.unlink(cr, uid, fp_tax_ids) + # Remove the account mappings + fp_account_ids = fiscalpositions_account.search( + cr, uid, [('position_id', '=', fp_id)]) + fiscalpositions_account.unlink(cr, uid, fp_account_ids) + else: + fp_id = wiz_fp.update_fiscal_position_id and wiz_fp.update_fiscal_position_id.id + + if modified: + # + # (Re)create the tax mappings + # + for fp_tax in fp_template.tax_ids: + # + # Ensure the related tax templates are on the map. + # + self._map_tax_template(cr, uid, wizard, tax_template_mapping, fp_tax.tax_src_id, context) + if fp_tax.tax_dest_id: + self._map_tax_template(cr, uid, wizard, tax_template_mapping, fp_tax.tax_dest_id, context) + + # + # Create the fp tax mapping + # + vals_tax = { + 'tax_src_id': tax_template_mapping.get(fp_tax.tax_src_id.id), + 'tax_dest_id': fp_tax.tax_dest_id and tax_template_mapping.get(fp_tax.tax_dest_id.id), + 'position_id': fp_id, + } + fiscalpositions_taxes.create(cr, uid, vals_tax) + + # + # Check for errors + # + if not tax_template_mapping.get(fp_tax.tax_src_id.id): + log.add(_("Fiscal position %s: The source tax %s can not be set.\n") % (fp_template.name, fp_tax.tax_src_id.code), True) + if fp_tax.tax_dest_id and not tax_template_mapping.get(fp_tax.tax_dest_id.id): + log.add(_("Fiscal position %s: The destination tax %s can not be set.\n") % (fp_template.name, fp_tax.tax_dest_id.name), True) + # + # (Re)create the account mappings + # + for fp_account in fp_template.account_ids: + # + # Ensure the related account templates are on the map. + # + self._map_account_template(cr, uid, wizard, account_template_mapping, fp_account.account_src_id, context) + if fp_account.account_dest_id: + self._map_account_template(cr, uid, wizard, account_template_mapping, fp_account.account_dest_id, context) + + # + # Create the fp account mapping + # + vals_account = { + 'account_src_id': account_template_mapping.get(fp_account.account_src_id.id), + 'account_dest_id': fp_account.account_dest_id and account_template_mapping.get(fp_account.account_dest_id.id), + 'position_id': fp_id, + } + fiscalpositions_account.create(cr, uid, vals_account) + + # + # Check for errors + # + if not account_template_mapping.get(fp_account.account_src_id.id): + log.add(_("Fiscal position %s: The source account %s can not be set.\n") % (fp_template.name, fp_account.account_src_id.code), True) + if fp_account.account_dest_id and not account_template_mapping.get(fp_account.account_dest_id.id): + log.add(_("Fiscal position %s: The destination account %s can not be set.\n") % (fp_template.name, fp_account.account_dest_id.code), True) + + log.add(_("Created or updated fiscal position %s.\n") + % fp_template.name) + return {'new': new_fps, 'updated': updated_fps} + + """ + Action that creates/updates the selected elements. + """ + def action_update_records(self, cr, uid, ids, context=None): + if context is None: + context = {} + wizard = self.browse(cr, uid, ids[0], context=context) + + if wizard.lang: + context['lang'] = wizard.lang + elif context.get('lang'): + del context['lang'] + + log = WizardLog() + + # + # Create or update the records. + # + tax_codes_res = self._update_tax_codes( + cr, uid, wizard, log, context=context) + taxes_res = self._update_taxes( + cr, uid, wizard, log, tax_codes_res['mapping'], context=context) + accounts_res = self._update_accounts( + cr, uid, wizard, log, taxes_res['pending'], context=context) + self._update_taxes_pending_for_accounts(cr, uid, wizard, log, taxes_res['pending'], accounts_res['mapping'], context=context) + fps_res = self._update_fiscal_positions(cr, uid, wizard, log, taxes_res['mapping'], accounts_res['mapping'], context=context) + + # + # Check if errors where detected and wether we should stop. + # + if log.has_errors() and not wizard.continue_on_errors: + raise orm.except_orm(_('Error'), _( + "One or more errors detected!\n\n%s") % log.get_errors_str()) + + # + # Store the data and go to the next step. + # + self.write(cr, uid, [wizard.id], { + 'state': 'done', + 'new_tax_codes': tax_codes_res.get('new', 0), + 'new_taxes': taxes_res.get('new', 0), + 'new_accounts': accounts_res .get('new', 0), + 'new_fps': fps_res.get('new', 0), + 'updated_tax_codes': tax_codes_res.get('updated', 0), + 'updated_taxes': taxes_res.get('updated', 0), + 'updated_accounts': accounts_res.get('updated', 0), + 'updated_fps': fps_res.get('updated', 0), + 'log': log(), + }, context) + + view_ref = self.pool.get('ir.model.data').get_object_reference( + cr, + uid, + 'account', + 'view_account_list') + view_id = view_ref and view_ref[1] or False, + res = { + 'type': 'ir.actions.act_window', + 'name': _("Update Accounts"), + 'res_model': 'account.account', + 'view_type': 'form', + 'view_mode': 'tree', + 'view_id': view_id, + 'context': context, + 'target': 'current', + } + return res + +wizard_update_charts_accounts() + + +class wizard_update_charts_accounts_tax_code(orm.TransientModel): + """ + ****************************************************************** + Tax code that needs to be updated (new or updated in the template). + ****************************************************************** + """ + _name = 'wizard.update.charts.accounts.tax.code' + _columns = { + 'tax_code_id': fields.many2one('account.tax.code.template', 'Tax code template', required=True, ondelete='set null'), + 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'), + 'type': fields.selection([ + ('new', 'New template'), + ('updated', 'Updated template'), + ], 'Type'), + 'update_tax_code_id': fields.many2one('account.tax.code', 'Tax code to update', required=False, ondelete='set null'), + 'notes': fields.text('Notes'), + } + _defaults = { + } + +wizard_update_charts_accounts_tax_code() + + +class wizard_update_charts_accounts_tax(orm.TransientModel): + """ + ************************************************************** + Tax that needs to be updated (new or updated in the template). + ************************************************************** + """ + _name = 'wizard.update.charts.accounts.tax' + _columns = { + 'tax_id': fields.many2one('account.tax.template', 'Tax template', required=True, ondelete='set null'), + 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'), + 'type': fields.selection([ + ('new', 'New template'), + ('updated', 'Updated template'), + ], 'Type'), + 'update_tax_id': fields.many2one('account.tax', 'Tax to update', required=False, ondelete='set null'), + 'notes': fields.text('Notes'), + } + + _defaults = { + } + +wizard_update_charts_accounts_tax() + + +class wizard_update_charts_accounts_account(orm.TransientModel): + """ + ****************************************************************** + Account that needs to be updated (new or updated in the template). + ******************************************************************* + """ + _name = 'wizard.update.charts.accounts.account' + # The chart of accounts can have a lot of accounts, so we need an higher + # limit for the objects in memory to let the wizard create all the items + # at once. + _max_count = 4096 + _columns = { + 'account_id': fields.many2one('account.account.template', 'Account template', required=True, ondelete='set null'), + 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'), + 'type': fields.selection([ + ('new', 'New template'), + ('updated', 'Updated template'), + ], 'Type'), + 'update_account_id': fields.many2one('account.account', 'Account to update', required=False, ondelete='set null'), + 'notes': fields.text('Notes'), + } + + _defaults = { + } + +wizard_update_charts_accounts_account() + + +class wizard_update_charts_accounts_fiscal_position(orm.TransientModel): + """ + ************************************************************************** + Fiscal position that needs to be updated (new or updated in the template). + ************************************************************************** + """ + _name = 'wizard.update.charts.accounts.fiscal.position' + _columns = { + 'fiscal_position_id': fields.many2one('account.fiscal.position.template', 'Fiscal position template', required=True, ondelete='set null'), + 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'), + 'type': fields.selection([ + ('new', 'New template'), + ('updated', 'Updated template'), + ], 'Type'), + 'update_fiscal_position_id': fields.many2one('account.fiscal.position', 'Fiscal position to update', required=False, ondelete='set null'), + 'notes': fields.text('Notes'), + } + _defaults = { + } + + +wizard_update_charts_accounts_fiscal_position() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/account_chart_update/wizard/wizard_chart_update_view.xml b/account_chart_update/wizard/wizard_chart_update_view.xml new file mode 100644 index 000000000..66e76dbc4 --- /dev/null +++ b/account_chart_update/wizard/wizard_chart_update_view.xml @@ -0,0 +1,176 @@ + + + + + + + + Update Chart of Accounts from a Chart Template + + wizard.update.charts.accounts + + +
+
+ +
+ +

+

This wizard will update your accounts, taxes and fiscal positions according to the selected chart template

+ +

+
+ + + + + + + + + + + + + + + + + + + + +
+

If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)

+

Note:Not all the fields are tested for changes, just the main ones

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+
+
+ + + + + + + +
+ + + + + + +
+
+
+ + + + + + + +
+ + + + + + +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+
+ + + Update Chart of Accounts from a Chart Template + + ir.actions.act_window + wizard.update.charts.accounts + form + form + new + + + + +
+