diff --git a/addons/account/__init__.py b/addons/account/__init__.py index 90fbdb83980..bc27e14380c 100644 --- a/addons/account/__init__.py +++ b/addons/account/__init__.py @@ -19,10 +19,10 @@ # ############################################################################## +import partner import account import installer import project -import partner import account_invoice import account_bank_statement import account_bank diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 064ba419ebd..012bde42eff 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1351,11 +1351,11 @@ class account_invoice_line(osv.osv): 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'), 'product_id': fields.many2one('product.product', 'Product', ondelete='set null'), 'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Account')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), 'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float", digits_compute= dp.get_precision('Account'), store=True), - 'quantity': fields.float('Quantity', required=True), - 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Account')), + 'quantity': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), + 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount')), 'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]), 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), 'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True), diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 5aca260bc12..143c5514141 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -273,6 +273,7 @@
+
@@ -426,6 +427,7 @@
+
diff --git a/addons/account/edi/invoice_action_data.xml b/addons/account/edi/invoice_action_data.xml index ce837c6662b..0eec6d27785 100644 --- a/addons/account/edi/invoice_action_data.xml +++ b/addons/account/edi/invoice_action_data.xml @@ -38,7 +38,7 @@ Automated Invoice Notification Mail - ${object.user_id.user_email or object.company_id.email or 'noreply@localhost'} + ${object.user_id.email or object.company_id.email or 'noreply@localhost'} ${object.company_id.name} Invoice (Ref ${object.number or 'n/a' }) ${object.partner_id.email or ''} @@ -58,7 +58,7 @@ % if object.origin:   Order reference: ${object.origin}
% endif -   Your contact: ${object.user_id.name} +   Your contact: ${object.user_id.name}

@@ -133,7 +133,7 @@ A new invoice is available for ${object.partner_id.name}: % if object.origin: | Order reference: ${object.origin} % endif - | Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} + | Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} You can view the invoice document, download it and pay online using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -160,7 +160,7 @@ Thank you for choosing ${object.company_id.name}! -- -${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} +${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/account/i18n/es_UY.po b/addons/account/i18n/es_UY.po new file mode 100644 index 00000000000..ba90609e994 --- /dev/null +++ b/addons/account/i18n/es_UY.po @@ -0,0 +1,10523 @@ +# Spanish (Uruguay) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:35+0000\n" +"PO-Revision-Date: 2012-08-14 15:07+0000\n" +"Last-Translator: Juan Andres Martinez Chaine \n" +"Language-Team: Spanish (Uruguay) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-08-15 04:40+0000\n" +"X-Generator: Launchpad (build 15801)\n" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "last month" +msgstr "el mes pasado" + +#. module: account +#: model:process.transition,name:account.process_transition_supplierreconcilepaid0 +msgid "System payment" +msgstr "Sistema de pagos" + +#. module: account +#: view:account.journal:0 +msgid "Other Configuration" +msgstr "Otra configuración" + +#. module: account +#: help:account.tax.code,sequence:0 +msgid "" +"Determine the display order in the report 'Accounting \\ Reporting \\ " +"Generic Reporting \\ Taxes \\ Taxes Report'" +msgstr "" +"Determina el órden de visualización en el informe 'Contabilidad\\informes\\ " +"informes genéricos\\ impuestos \\ informes de impuestos'" + +#. module: account +#: view:account.move.reconcile:0 +msgid "Journal Entry Reconcile" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.bank.statement:0 +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Account Statistics" +msgstr "Estadísticas de cuentas" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma/Open/Paid Invoices" +msgstr "Facturas proforma/abiertas/pagadas" + +#. module: account +#: field:report.invoice.created,residual:0 +msgid "Residual" +msgstr "" + +#. module: account +#: constraint:account.period:0 +msgid "Error ! The duration of the Period(s) is/are invalid. " +msgstr "¡Error! La duración de el/los período(s) no es válida. " + +#. module: account +#: field:account.analytic.line,currency_id:0 +msgid "Account currency" +msgstr "Moneda contable" + +#. module: account +#: view:account.tax:0 +msgid "Children Definition" +msgstr "Definición hijos" + +#. module: account +#: code:addons/account/account_bank_statement.py:302 +#, python-format +msgid "Journal item \"%s\" is not valid." +msgstr "El asiento \"%s\" no es válido" + +#. module: account +#: model:ir.model,name:account.model_report_aged_receivable +msgid "Aged Receivable Till Today" +msgstr "A cobrar vencidos hasta hoy" + +#. module: account +#: model:process.transition,name:account.process_transition_invoiceimport0 +msgid "Import from invoice or payment" +msgstr "Importar desde factura o pago" + +#. module: account +#: model:ir.model,name:account.model_wizard_multi_charts_accounts +msgid "wizard.multi.charts.accounts" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Total Debit" +msgstr "Total debe" + +#. module: account +#: view:account.unreconcile:0 +msgid "" +"If you unreconciliate transactions, you must also verify all the actions " +"that are linked to those transactions because they will not be disabled" +msgstr "" +"Si rompe la conciliación de transacciones, también debe verificar todas la " +"acciones que están relacionadas con esas transacciones porqué no serán " +"deshabilitadas." + +#. module: account +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"¡Error de configuración! La moneda elegida debería ser también la misma en " +"las cuentas por defecto" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.line,origin:0 +msgid "Origin" +msgstr "Original" + +#. module: account +#: view:account.account:0 +#: view:account.automatic.reconcile:0 +#: field:account.move.line,reconcile_id:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.writeoff:0 +msgid "Reconcile" +msgstr "Reconciliar" + +#. module: account +#: field:account.bank.statement.line,ref:0 +#: field:account.entries.report,ref:0 +#: view:account.invoice:0 +#: field:account.move,ref:0 +#: field:account.move.line,ref:0 +#: field:account.subscription,ref:0 +msgid "Reference" +msgstr "Referencia" + +#. module: account +#: view:account.open.closed.fiscalyear:0 +msgid "Choose Fiscal Year " +msgstr "Selecciona ejercicio fiscal " + +#. module: account +#: help:account.payment.term,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the payment " +"term without removing it." +msgstr "" +"Si el campo activo se desmarca, permite ocultar el plazo de pago sin " +"eliminarlo." + +#. module: account +#: code:addons/account/account_invoice.py:1428 +#, python-format +msgid "Warning!" +msgstr "¡Cuidado!" + +#. module: account +#: code:addons/account/account.py:3112 +#, python-format +msgid "Miscellaneous Journal" +msgstr "Diario varios" + +#. module: account +#: field:account.fiscal.position.account,account_src_id:0 +#: field:account.fiscal.position.account.template,account_src_id:0 +msgid "Account Source" +msgstr "Origen cuenta" + +#. module: account +#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal +msgid "All Analytic Entries" +msgstr "Todos los asientos analíticos" + +#. module: account +#: field:accounting.report,label_filter:0 +msgid "Column Label" +msgstr "Etiqueta de columna" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:95 +#, python-format +msgid "Journal: %s" +msgstr "Diario: %s" + +#. module: account +#: help:account.analytic.journal,type:0 +msgid "" +"Gives the type of the analytic journal. When it needs for a document (eg: an " +"invoice) to create analytic entries, OpenERP will look for a matching " +"journal of the same type." +msgstr "" +"Indica el tipo de diario analítico. Cuando se necesita para un documento " +"(por ej. una factura) para crear asientos analíticos, OpenERP buscará un " +"diario coincidente del mismo tipo." + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_template_form +#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form +msgid "Tax Templates" +msgstr "Plantillas de impuestos" + +#. module: account +#: model:ir.model,name:account.model_account_tax +msgid "account.tax" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile_select +msgid "Move line reconcile select" +msgstr "Seleccionar la línea de movimiento a conciliar" + +#. module: account +#: help:account.tax.code,notprintable:0 +#: help:account.tax.code.template,notprintable:0 +msgid "" +"Check this box if you don't want any VAT related to this Tax Code to appear " +"on invoices" +msgstr "" +"Marque esta opción si desea que no aparezca en las facturas ningún IVA " +"relacionado con este código de impuesto." + +#. module: account +#: code:addons/account/account_invoice.py:1241 +#, python-format +msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" +msgstr "" +"La factura '%s' está parcialmente pagada: %s%s de %s%s (%s%s pendiente)" + +#. module: account +#: model:process.transition,note:account.process_transition_supplierentriesreconcile0 +msgid "Accounting entries are an input of the reconciliation." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports +msgid "Belgian Reports" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1200 +#, python-format +msgid "You can not add/modify entries in a closed journal." +msgstr "No puede añadir/modificar asientos en un diario cerrado." + +#. module: account +#: help:account.account,user_type:0 +msgid "" +"Account Type is used for information purpose, to generate country-specific " +"legal reports, and set the rules to close a fiscal year and generate opening " +"entries." +msgstr "" +"El tipo de cuenta es usado con propósito informativo, para generar informes " +"legales específicos de cada país, y establecer las reglas para cerrar un año " +"fiscal y generar los apuntes de apertura." + +#. module: account +#: report:account.overdue:0 +msgid "Sub-Total :" +msgstr "Subtotal :" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry +#: model:ir.actions.act_window,name:account.action_view_account_use_model +#: model:ir.ui.menu,name:account.menu_action_manual_recurring +msgid "Manual Recurring" +msgstr "Recurrencia manual" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "Close Fiscalyear" +msgstr "Cerrar ejercicio fiscal" + +#. module: account +#: field:account.automatic.reconcile,allow_write_off:0 +msgid "Allow write off" +msgstr "Permitir desfase" + +#. module: account +#: view:account.analytic.chart:0 +msgid "Select the Period for Analysis" +msgstr "Seleccione el período de análisis" + +#. module: account +#: view:account.move.line:0 +msgid "St." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:551 +#, python-format +msgid "Invoice line account company does not match with invoice company." +msgstr "" +"La compañía de la cuenta de la línea de factura no concuerda con la compañía " +"de la factura." + +#. module: account +#: field:account.journal.column,field:0 +msgid "Field Name" +msgstr "Nombre del campo" + +#. module: account +#: help:account.installer,charts:0 +msgid "" +"Installs localized accounting charts to match as closely as possible the " +"accounting needs of your company based on your country." +msgstr "" +"Instala el plan contable de la localización que satisface las necesidades " +"contables de su compañía basadas en su país." + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:63 +#, python-format +msgid "" +"Can't find any account journal of %s type for this company.\n" +"\n" +"You can create one in the menu: \n" +"Configuration/Financial Accounting/Accounts/Journals." +msgstr "" +"No se encuentra ningún diario contable del tipo %s para esta compañía.\n" +"\n" +"Puede crear un diario en el menú: \n" +"Configuración/Contabilidad financiera/Cuentas/Diarios." + +#. module: account +#: model:ir.model,name:account.model_account_unreconcile +msgid "Account Unreconcile" +msgstr "Desconciliar cuenta" + +#. module: account +#: view:product.product:0 +#: view:product.template:0 +msgid "Purchase Properties" +msgstr "Propiedades de compra" + +#. module: account +#: help:account.financial.report,style_overwrite:0 +msgid "" +"You can set up here the format you want this record to be displayed. If you " +"leave the automatic formatting, it will be computed based on the financial " +"reports hierarchy (auto-computed field 'level')." +msgstr "" +"Puede configurar aquí el formato en que desea que se muestre este registro. " +"Si deja el formato automático, será calculado en base a la jerarquía de los " +"informes financieros (campo auto-calculado 'nivel')" + +#. module: account +#: view:account.installer:0 +msgid "Configure" +msgstr "Configurar" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "June" +msgstr "Junio" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_bank +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. Journal items are created by OpenERP if you use Bank Statements, " +"Cash Registers, or Customer/Supplier payments." +msgstr "" +"Los contables utilizan esta vista para introducir asientos masivamente en " +"OpenERP. Cuando utiliza los extractos bancarios, registros de caja, o pagos " +"de cliente/proveedor OpenERP crea automáticamente apuntes contables." + +#. module: account +#: constraint:account.move.line:0 +msgid "You can not create journal items on an account of type view." +msgstr "No puede crear asientos en una cuenta de tipo vista" + +#. module: account +#: model:ir.model,name:account.model_account_tax_template +msgid "account.tax.template" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_bank_accounts_wizard +msgid "account.bank.accounts.wizard" +msgstr "" + +#. module: account +#: field:account.move.line,date_created:0 +#: field:account.move.reconcile,create_date:0 +msgid "Creation date" +msgstr "Fecha de creación" + +#. module: account +#: selection:account.journal,type:0 +msgid "Purchase Refund" +msgstr "Reembolso de compra" + +#. module: account +#: selection:account.journal,type:0 +msgid "Opening/Closing Situation" +msgstr "" + +#. module: account +#: help:account.journal,currency:0 +msgid "The currency used to enter statement" +msgstr "" + +#. module: account +#: field:account.open.closed.fiscalyear,fyear_id:0 +msgid "Fiscal Year to Open" +msgstr "" + +#. module: account +#: help:account.journal,sequence_id:0 +msgid "" +"This field contains the informatin related to the numbering of the journal " +"entries of this journal." +msgstr "" + +#. module: account +#: field:account.journal,default_debit_account_id:0 +msgid "Default Debit Account" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Total Credit" +msgstr "" + +#. module: account +#: view:account.move.line.unreconcile.select:0 +msgid "Open for Unreconciliation" +msgstr "" + +#. module: account +#: field:account.account.template,chart_template_id:0 +#: field:account.fiscal.position.template,chart_template_id:0 +#: field:account.tax.template,chart_template_id:0 +#: field:wizard.multi.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "" + +#. module: account +#: help:account.model.line,amount_currency:0 +msgid "The amount expressed in an optional other currency." +msgstr "" + +#. module: account +#: field:accounting.report,enable_filter:0 +msgid "Enable Comparison" +msgstr "" + +#. module: account +#: help:account.journal.period,state:0 +msgid "" +"When journal period is created. The state is 'Draft'. If a report is printed " +"it comes to 'Printed' state. When all transactions are done, it comes in " +"'Done' state." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_tax_chart +msgid "" +"Chart of Taxes is a tree view reflecting the structure of the Tax Cases (or " +"tax codes) and shows the current tax situation. The tax chart represents the " +"amount of each area of the tax declaration for your country. It’s presented " +"in a hierarchical structure, which can be modified to fit your needs." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.automatic.reconcile,journal_id:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,journal_id:0 +#: report:account.central.journal:0 +#: view:account.entries.report:0 +#: field:account.entries.report,journal_id:0 +#: view:account.invoice:0 +#: field:account.invoice,journal_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,journal_id:0 +#: field:account.journal.period,journal_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.model:0 +#: field:account.model,journal_id:0 +#: view:account.move:0 +#: field:account.move,journal_id:0 +#: field:account.move.bank.reconcile,journal_id:0 +#: view:account.move.line:0 +#: field:account.move.line,journal_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,journal_id:0 +#: model:ir.actions.report.xml,name:account.account_journal +#: model:ir.model,name:account.model_account_journal +#: field:validate.account.move,journal_id:0 +msgid "Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_confirm +msgid "Confirm the selected invoices" +msgstr "" + +#. module: account +#: field:account.addtmpl.wizard,cparent_id:0 +msgid "Parent target" +msgstr "" + +#. module: account +#: field:account.bank.statement,account_id:0 +msgid "Account used in this journal" +msgstr "" + +#. module: account +#: help:account.aged.trial.balance,chart_account_id:0 +#: help:account.balance.report,chart_account_id:0 +#: help:account.central.journal,chart_account_id:0 +#: help:account.common.account.report,chart_account_id:0 +#: help:account.common.journal.report,chart_account_id:0 +#: help:account.common.partner.report,chart_account_id:0 +#: help:account.common.report,chart_account_id:0 +#: help:account.general.journal,chart_account_id:0 +#: help:account.partner.balance,chart_account_id:0 +#: help:account.partner.ledger,chart_account_id:0 +#: help:account.print.journal,chart_account_id:0 +#: help:account.report.general.ledger,chart_account_id:0 +#: help:account.vat.declaration,chart_account_id:0 +#: help:accounting.report,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "" + +#. module: account +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_refund +msgid "Invoice Refund" +msgstr "Reembolso de factura" + +#. module: account +#: report:account.overdue:0 +msgid "Li." +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,unreconciled:0 +msgid "Not reconciled transactions" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +msgid "Counterpart" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,tax_ids:0 +#: field:account.fiscal.position.template,tax_ids:0 +msgid "Tax Mapping" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close_state +#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state +msgid "Close a Fiscal Year" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0 +msgid "The accountant confirms the statement." +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.report.general.ledger,display_account:0 +#: selection:account.tax,type_tax_use:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "All" +msgstr "" + +#. module: account +#: field:account.invoice.report,address_invoice_id:0 +msgid "Invoice Address Name" +msgstr "" + +#. module: account +#: selection:account.installer,period:0 +msgid "3 Monthly" +msgstr "" + +#. module: account +#: view:account.unreconcile.reconcile:0 +msgid "" +"If you unreconciliate transactions, you must also verify all the actions " +"that are linked to those transactions because they will not be disable" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 30 Days " +msgstr "" + +#. module: account +#: field:ir.sequence,fiscal_ids:0 +msgid "Sequences" +msgstr "" + +#. module: account +#: field:account.financial.report,account_report_id:0 +#: selection:account.financial.report,type:0 +msgid "Report Value" +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +msgid "Taxes Mapping" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +msgid "Centralized Journal" +msgstr "" + +#. module: account +#: sql_constraint:account.sequence.fiscalyear:0 +msgid "Main Sequence must be different from current !" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1251 +#, python-format +msgid "No period found or more than one period found for the given date." +msgstr "" + +#. module: account +#: field:account.invoice.tax,tax_amount:0 +msgid "Tax Code Amount" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3116 +#, python-format +msgid "SAJ" +msgstr "" + +#. module: account +#: view:account.period:0 +#: view:account.period.close:0 +msgid "Close Period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_partner_report +msgid "Account Common Partner Report" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,period_id:0 +msgid "Opening Entries Period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_journal_period +msgid "Journal Period" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:750 +#: code:addons/account/account_move_line.py:803 +#, python-format +msgid "To reconcile the entries company should be the same for all entries" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "" +"The date of your Journal Entry is not in the defined period! You should " +"change the date or remove this constraint from the journal." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_report_general_ledger +msgid "General Ledger Report" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Re-Open" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Are you sure you want to create entries?" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Print Invoice" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,today_reconciled:0 +msgid "Partners Reconciled Today" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Sale journal in this year" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "Display children with hierarchy" +msgstr "" + +#. module: account +#: selection:account.payment.term.line,value:0 +#: selection:account.tax.template,type:0 +msgid "Percent" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_charts +msgid "Charts" +msgstr "" + +#. module: account +#: code:addons/account/project/wizard/project_account_analytic_line.py:47 +#: model:ir.model,name:account.model_project_account_analytic_line +#, python-format +msgid "Analytic Entries by line" +msgstr "" + +#. module: account +#: field:account.invoice.refund,filter_refund:0 +msgid "Refund Method" +msgstr "Método de reembolso" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:38 +#, python-format +msgid "You can only change currency for Draft Invoice !" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_report +msgid "Financial Report" +msgstr "" + +#. module: account +#: view:account.analytic.journal:0 +#: field:account.analytic.journal,type:0 +#: field:account.bank.statement.line,type:0 +#: field:account.financial.report,type:0 +#: field:account.invoice,type:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,type:0 +#: view:account.journal:0 +#: field:account.journal,type:0 +#: field:account.move.reconcile,type:0 +#: field:report.invoice.created,type:0 +msgid "Type" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:738 +#, python-format +msgid "" +"Taxes are missing!\n" +"Click on compute button." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_subscription_line +msgid "Account Subscription Line" +msgstr "" + +#. module: account +#: help:account.invoice,reference:0 +msgid "The partner reference of this invoice." +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Supplier Invoices And Refunds" +msgstr "Facturas y reembolsos de proveedor" + +#. module: account +#: view:account.move.line.unreconcile.select:0 +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +#: model:ir.model,name:account.model_account_move_line_unreconcile_select +msgid "Unreconciliation" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "At 14 net days 2 percent, remaining amount at 30 days end of month." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_journal_report +msgid "Account Analytic Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_automatic_reconcile +msgid "Automatic Reconcile" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "J.C./Move name" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_gain_loss +msgid "" +"When doing multi-currency transactions, you may loose or gain some amount " +"due to changes of exchange rate. This menu gives you a forecast of the Gain " +"or Loss you'd realized if those transactions were ended today. Only for " +"accounts having a secondary currency set." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "September" +msgstr "" + +#. module: account +#: selection:account.subscription,period_type:0 +msgid "days" +msgstr "" + +#. module: account +#: help:account.account.template,nocreate:0 +msgid "" +"If checked, the new chart of accounts will not contain this by default." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:110 +#, python-format +msgid "" +"Can not %s invoice which is already reconciled, invoice should be " +"unreconciled first. You can only Refund this invoice" +msgstr "" +"No se puede %s una factura que ya está conciliada, primero debería romper la " +"conciliación de la factura. Sólo puede hacer un reembolso (Nota de Crédito) " +"de esta factura." + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form_new +msgid "New Subscription" +msgstr "" + +#. module: account +#: view:account.payment.term:0 +msgid "Computation" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Cancel: refund invoice and reconcile" +msgstr "Cancelar: abonar factura y reconciliar" + +#. module: account +#: field:account.cashbox.line,pieces:0 +msgid "Values" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,delay_to_pay:0 +msgid "Avg. Delay To Pay" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_chart +#: model:ir.actions.act_window,name:account.action_tax_code_tree +#: model:ir.ui.menu,name:account.menu_action_tax_code_tree +msgid "Chart of Taxes" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Create 3 Months Periods" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Due" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1345 +#, python-format +msgid "" +"You cannot validate this journal entry because account \"%s\" does not " +"belong to chart of accounts \"%s\"!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:835 +#, python-format +msgid "" +"This account does not allow reconciliation! You should update the account " +"definition to change this." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.move:0 +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +msgid "Approve" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.move:0 +#: view:report.invoice.created:0 +msgid "Total Amount" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +msgid "Consolidation" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_liability +#: model:account.financial.report,name:account.account_financial_report_liability0 +#: model:account.financial.report,name:account.account_financial_report_liabilitysum0 +msgid "Liability" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_central_journal +msgid "Centralizing Journal" +msgstr "" + +#. module: account +#: selection:account.journal,type:0 +msgid "Sale Refund" +msgstr "Reembolso de ventas" + +#. module: account +#: model:process.node,note:account.process_node_accountingstatemententries0 +msgid "Bank statement" +msgstr "" + +#. module: account +#: field:account.analytic.line,move_id:0 +msgid "Move Line" +msgstr "" + +#. module: account +#: help:account.move.line,tax_amount:0 +msgid "" +"If the Tax account is a tax code account, this field will contain the taxed " +"amount.If the tax account is base tax code, this field will contain the " +"basic amount(without tax)." +msgstr "" + +#. module: account +#: code:addons/account/account.py:2596 +#, python-format +msgid "I can not locate a parent code for the template account!" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Purchases" +msgstr "" + +#. module: account +#: field:account.model,lines_id:0 +msgid "Model Entries" +msgstr "" + +#. module: account +#: field:account.account,code:0 +#: report:account.account.balance:0 +#: field:account.account.template,code:0 +#: field:account.account.type,code:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.journal:0 +#: field:account.analytic.line,code:0 +#: field:account.fiscalyear,code:0 +#: report:account.general.journal:0 +#: field:account.journal,code:0 +#: report:account.partner.balance:0 +#: field:account.period,code:0 +msgid "Code" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2268 +#: code:addons/account/account_bank_statement.py:357 +#: code:addons/account/account_invoice.py:73 +#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account_move_line.py:173 +#, python-format +msgid "No Analytic Journal !" +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +#: view:account.partner.balance:0 +#: model:ir.actions.act_window,name:account.action_account_partner_balance +#: model:ir.actions.report.xml,name:account.account_3rdparty_account_balance +#: model:ir.ui.menu,name:account.menu_account_partner_balance_report +msgid "Partner Balance" +msgstr "" + +#. module: account +#: field:account.bank.accounts.wizard,acc_name:0 +msgid "Account Name." +msgstr "" + +#. module: account +#: field:account.chart.template,property_reserve_and_surplus_account:0 +#: field:res.company,property_reserve_and_surplus_account:0 +msgid "Reserve and Profit/Loss Account" +msgstr "" + +#. module: account +#: field:report.account.receivable,name:0 +msgid "Week of Year" +msgstr "" + +#. module: account +#: field:account.report.general.ledger,landscape:0 +msgid "Landscape Mode" +msgstr "" + +#. module: account +#: code:addons/account/account.py:645 +#, python-format +msgid "" +"You cannot change the type of account from '%s' to '%s' type as it contains " +"journal items!" +msgstr "" + +#. module: account +#: field:account.report.general.ledger,sortby:0 +msgid "Sort by" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,fy_id:0 +msgid "Select a Fiscal year to close" +msgstr "" + +#. module: account +#: help:account.account.template,user_type:0 +msgid "" +"These types are defined according to your country. The type contains more " +"information about the account and its specificities." +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:842 +#, python-format +msgid "" +"You have to provide an account for the write off/exchange difference entry !" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Applicability Options" +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +msgid "In dispute" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree +#: model:ir.ui.menu,name:account.journal_cash_move_lines +msgid "Cash Registers" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "-" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: model:res.groups,name:account.group_account_manager +msgid "Manager" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +msgid "Generate Entries before:" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unbalanced Journal Items" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_bank +#: selection:account.bank.accounts.wizard,account_type:0 +#: code:addons/account/account.py:3003 +#, python-format +msgid "Bank" +msgstr "" + +#. module: account +#: field:account.period,date_start:0 +msgid "Start of Period" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0 +msgid "Confirm statement" +msgstr "" + +#. module: account +#: help:account.account,foreign_balance:0 +msgid "" +"Total amount (in Secondary currency) for transactions held in secondary " +"currency for this account." +msgstr "" + +#. module: account +#: field:account.fiscal.position.tax,tax_dest_id:0 +#: field:account.fiscal.position.tax.template,tax_dest_id:0 +msgid "Replacement Tax" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Credit Centralisation" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "All Months Sales by type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree2 +msgid "" +"With Supplier Invoices you can enter and manage invoices issued by your " +"suppliers. OpenERP can also generate draft invoices automatically from " +"purchase orders or receipts. This way, you can control the invoice from your " +"supplier according to what you purchased or received." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form +#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form +msgid "Tax Code Templates" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +msgid "Cancel Invoices" +msgstr "" + +#. module: account +#: help:account.journal,code:0 +msgid "The code will be displayed on reports." +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Taxes used in Purchases" +msgstr "" + +#. module: account +#: field:account.invoice.tax,tax_code_id:0 +#: field:account.tax,description:0 +#: field:account.tax.template,tax_code_id:0 +#: model:ir.model,name:account.model_account_tax_code +msgid "Tax Code" +msgstr "" + +#. module: account +#: field:account.account,currency_mode:0 +msgid "Outgoing Currencies Rate" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +msgid "Situation" +msgstr "" + +#. module: account +#: help:account.move.line,move_id:0 +msgid "The move of this entry line." +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1302 +#, python-format +msgid "" +"You can not use this general account in this journal, check the tab 'Entry " +"Controls' on the related journal !" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,trans_nbr:0 +msgid "# of Transaction" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Entry Label" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1129 +#, python-format +msgid "You can not modify/delete a journal with entries for this period !" +msgstr "" + +#. module: account +#: help:account.invoice,origin:0 +#: help:account.invoice.line,origin:0 +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: view:account.journal:0 +msgid "Others" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Draft Subscription" +msgstr "" + +#. module: account +#: view:account.account:0 +#: report:account.account.balance:0 +#: view:account.analytic.line:0 +#: field:account.automatic.reconcile,writeoff_acc_id:0 +#: field:account.bank.statement.line,account_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,account_id:0 +#: field:account.invoice,account_id:0 +#: field:account.invoice.line,account_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,account_id:0 +#: field:account.journal,account_control_ids:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,account_id:0 +#: view:account.move.line:0 +#: field:account.move.line,account_id:0 +#: field:account.move.line.reconcile.select,account_id:0 +#: field:account.move.line.unreconcile.select,account_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,account_id:0 +#: model:ir.model,name:account.model_account_account +#: field:report.account.sales,account_id:0 +msgid "Account" +msgstr "" + +#. module: account +#: field:account.tax,include_base_amount:0 +msgid "Included in base amount" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: model:ir.actions.act_window,name:account.action_account_entries_report_all +#: model:ir.ui.menu,name:account.menu_action_account_entries_report_all +msgid "Entries Analysis" +msgstr "" + +#. module: account +#: field:account.account,level:0 +#: field:account.financial.report,level:0 +msgid "Level" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.line:0 +#: field:account.invoice.line,invoice_line_tax_id:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: model:ir.actions.act_window,name:account.action_tax_form +#: model:ir.ui.menu,name:account.account_template_taxes +#: model:ir.ui.menu,name:account.menu_action_tax_form +#: model:ir.ui.menu,name:account.menu_tax_report +#: model:ir.ui.menu,name:account.next_id_27 +msgid "Taxes" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_financial_report.py:69 +#: code:addons/account/wizard/account_report_common.py:144 +#, python-format +msgid "Select a starting and an ending period" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_profitandloss0 +msgid "Profit and Loss" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_account_template +msgid "Templates for Accounts" +msgstr "" + +#. module: account +#: view:account.tax.code.template:0 +msgid "Search tax template" +msgstr "" + +#. module: account +#: view:account.move.reconcile:0 +#: model:ir.actions.act_window,name:account.action_account_reconcile_select +#: model:ir.actions.act_window,name:account.action_view_account_move_line_reconcile +msgid "Reconcile Entries" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_overdue +#: view:res.company:0 +msgid "Overdue Payments" +msgstr "" + +#. module: account +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Initial Balance" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Reset to Draft" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "Bank Information" +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: view:account.common.report:0 +msgid "Report Options" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_entries_report +msgid "Journal Items Analysis" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.next_id_22 +msgid "Partners" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: model:ir.model,name:account.model_account_bank_statement +#: model:process.node,name:account.process_node_accountingstatemententries0 +#: model:process.node,name:account.process_node_bankstatement0 +#: model:process.node,name:account.process_node_supplierbankstatement0 +msgid "Bank Statement" +msgstr "" + +#. module: account +#: field:res.partner,property_account_receivable:0 +msgid "Account Receivable" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_central_journal +msgid "Central Journal" +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.partner.balance,display_partner:0 +#: selection:account.report.general.ledger,display_account:0 +msgid "With balance is not equal to 0" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Search Taxes" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_cost_ledger +msgid "Account Analytic Cost Ledger" +msgstr "" + +#. module: account +#: view:account.model:0 +msgid "Create entries" +msgstr "" + +#. module: account +#: field:account.entries.report,nbr:0 +msgid "# of Items" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,max_amount:0 +msgid "Maximum write-off amount" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Compute Taxes" +msgstr "" + +#. module: account +#: field:account.chart.template,code_digits:0 +#: field:wizard.multi.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "" + +#. module: account +#: field:account.journal,entry_posted:0 +msgid "Skip 'Draft' State for Manual Entries" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,price_total:0 +msgid "Total Without Tax" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_move_journal_line +msgid "" +"A journal entry consists of several journal items, each of which is either a " +"debit or a credit transaction. OpenERP automatically creates one journal " +"entry per accounting document: invoice, refund, supplier payment, bank " +"statements, etc." +msgstr "" +"Un asiento de diario se compone de varios elementos del diario, cada uno " +"puede ser una transacción de crédito o débito. OpenERP crea automáticamente " +"una entrada en un diario por cada documento contable: factura, reembolso, " +"pago a proveedor, extractos de cuenta bancaria, etc" + +#. module: account +#: view:account.entries.report:0 +msgid "# of Entries " +msgstr "" + +#. module: account +#: help:account.fiscal.position,active:0 +msgid "" +"By unchecking the active field, you may hide a fiscal position without " +"deleting it." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_temp_range +msgid "A Temporary table used for Dashboard view" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree4 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree4 +msgid "Supplier Refunds" +msgstr "Nota de Crédito de proveedor" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.bank.statement,state:0 +#: selection:account.entries.report,type:0 +#: view:account.fiscalyear:0 +#: selection:account.fiscalyear,state:0 +#: selection:account.period,state:0 +msgid "Closed" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries +msgid "Recurring Entries" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_template +msgid "Template for Fiscal Position" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,reconciled:0 +msgid "Reconciled transactions" +msgstr "" + +#. module: account +#: field:account.journal.view,columns_id:0 +msgid "Columns" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "." +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "and Journals" +msgstr "" + +#. module: account +#: field:account.journal,groups_id:0 +msgid "Groups" +msgstr "" + +#. module: account +#: field:account.invoice,amount_untaxed:0 +#: field:report.invoice.created,amount_untaxed:0 +msgid "Untaxed" +msgstr "" + +#. module: account +#: view:account.partner.reconcile.process:0 +msgid "Go to Next Partner" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Search Bank Statements" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unposted Journal Items" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,property_account_payable:0 +msgid "Payable Account" +msgstr "" + +#. module: account +#: field:account.tax,account_paid_id:0 +#: field:account.tax.template,account_paid_id:0 +msgid "Refund Tax Account" +msgstr "Cuenta impuestos de reintegros" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement,line_ids:0 +msgid "Statement lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_bank_statement_tree +msgid "" +"A bank statement is a summary of all financial transactions occurring over a " +"given period of time on a deposit account, a credit card or any other type " +"of financial account. The starting balance will be proposed automatically " +"and the closing balance is to be found on your statement. When you are in " +"the Payment column of a line, you can press F1 to open the reconciliation " +"form." +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +msgid "Date/Code" +msgstr "" + +#. module: account +#: field:account.analytic.line,general_account_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,general_account_id:0 +msgid "General Account" +msgstr "" + +#. module: account +#: field:res.partner,debit_limit:0 +msgid "Payable Limit" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: field:account.move.line,invoice:0 +#: model:ir.model,name:account.model_account_invoice +#: model:res.request.link,name:account.req_link_invoice +msgid "Invoice" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_analytic0 +#: model:process.node,note:account.process_node_analyticcost0 +msgid "Analytic costs to invoice" +msgstr "" + +#. module: account +#: view:ir.sequence:0 +msgid "Fiscal Year Sequence" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,seq_journal:0 +msgid "Separated Journal Sequences" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Responsible" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "" +"Cancel Invoice: Creates the refund invoice, validate and reconcile it to " +"cancel the current invoice." +msgstr "" +"Cancelar factura: Crea la Nota de Crédito, la valida y concilia para " +"cancelar la factura actual." + +#. module: account +#: model:ir.ui.menu,name:account.periodical_processing_invoicing +msgid "Invoicing" +msgstr "" + +#. module: account +#: code:addons/account/report/account_partner_balance.py:115 +#, python-format +msgid "Unknown Partner" +msgstr "" + +#. module: account +#: field:account.tax.code,sum:0 +msgid "Year Sum" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1429 +#, python-format +msgid "" +"You selected an Unit of Measure which is not compatible with the product." +msgstr "" + +#. module: account +#: view:account.change.currency:0 +msgid "This wizard will change the currency of the invoice" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_chart +msgid "" +"Display your company chart of accounts per fiscal year and filter by period. " +"Have a complete tree view of all journal items per account code by clicking " +"on an account." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Pending Accounts" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Tax Declaration" +msgstr "" + +#. module: account +#: help:account.journal.period,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the journal " +"period without removing it." +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Supplier Debit" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all +msgid "Receivables & Payables" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_journal_report +msgid "Account Common Journal Report" +msgstr "" + +#. module: account +#: selection:account.partner.balance,display_partner:0 +msgid "All Partners" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +msgid "Analytic Account Charts" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: view:analytic.entries.report:0 +msgid "My Entries" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Customer Ref:" +msgstr "" + +#. module: account +#: code:addons/account/account_cash_statement.py:292 +#, python-format +msgid "User %s does not have rights to access %s journal !" +msgstr "" + +#. module: account +#: help:account.period,special:0 +msgid "These periods can overlap." +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_draftstatement0 +msgid "Draft statement" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Tax Declaration: Credit Notes" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,credit:0 +msgid "Credit amount" +msgstr "" + +#. module: account +#: code:addons/account/account.py:407 +#: code:addons/account/account.py:412 +#: code:addons/account/account.py:429 +#, python-format +msgid "Error!" +msgstr "" + +#. module: account +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_report_all +#: model:ir.ui.menu,name:account.menu_action_account_invoice_report_all +msgid "Invoices Analysis" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_period_close +msgid "period close" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "Configure Fiscal Year" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form +msgid "Entries By Line" +msgstr "" + +#. module: account +#: field:account.vat.declaration,based_on:0 +msgid "Based on" +msgstr "" + +#. module: account +#: field:account.invoice,move_id:0 +#: field:account.invoice,move_name:0 +msgid "Journal Entry" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Tax Declaration: Invoices" +msgstr "" + +#. module: account +#: field:account.cashbox.line,subtotal:0 +msgid "Sub Total" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.treasury.report:0 +#: model:ir.actions.act_window,name:account.action_account_treasury_report_all +#: model:ir.model,name:account.model_account_treasury_report +#: model:ir.ui.menu,name:account.menu_action_account_treasury_report_all +msgid "Treasury Analysis" +msgstr "" + +#. module: account +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase +msgid "Sale/Purchase Journal" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic account" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:339 +#, python-format +msgid "Please verify that an account is defined in the journal." +msgstr "" + +#. module: account +#: selection:account.entries.report,move_line_state:0 +#: selection:account.move.line,state:0 +msgid "Valid" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_print_journal +#: model:ir.model,name:account.model_account_print_journal +msgid "Account Print Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_product_category +msgid "Product Category" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +msgid "/" +msgstr "" + +#. module: account +#: help:res.company,property_reserve_and_surplus_account:0 +msgid "" +"This account is used for transferring Profit/Loss (If It is Profit: Amount " +"will be added, Loss : Amount will be deducted.), as calculated in Profit & " +"Loss Report" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_reconciliation0 +#: model:process.node,note:account.process_node_supplierreconciliation0 +msgid "Comparison between accounting and payment entries" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Tax Definition" +msgstr "" + +#. module: account +#: help:wizard.multi.charts.accounts,seq_journal:0 +msgid "" +"Check this box if you want to use a different sequence for each created " +"journal. Otherwise, all will use the same sequence." +msgstr "" + +#. module: account +#: help:account.partner.ledger,amount_currency:0 +#: help:account.report.general.ledger,amount_currency:0 +msgid "" +"It adds the currency column if the currency is different then the company " +"currency" +msgstr "" + +#. module: account +#: help:account.journal,allow_date:0 +msgid "" +"If set to True then do not accept the entry if the entry date is not into " +"the period dates" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:73 +#, python-format +msgid "You must define an analytic journal of type '%s'!" +msgstr "" + +#. module: account +#: field:account.installer,config_logo:0 +#: field:wizard.multi.charts.accounts,config_logo:0 +msgid "Image" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "" +"The selected account of your Journal Entry forces to provide a secondary " +"currency. You should remove the secondary currency on the account or select " +"a multi-currency view on the journal." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_financial_report_tree +msgid "Makes a generic system to draw financial reports easily." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:report.invoice.created:0 +msgid "Untaxed Amount" +msgstr "" + +#. module: account +#: help:account.tax,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the tax " +"without removing it." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Journal Items related to a sale journal." +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Italic Text (smaller)" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.invoice:0 +#: selection:account.invoice,state:0 +#: view:account.invoice.report:0 +#: selection:account.invoice.report,state:0 +#: selection:account.journal.period,state:0 +#: view:account.subscription:0 +#: selection:account.subscription,state:0 +#: selection:report.invoice.created,state:0 +msgid "Draft" +msgstr "" + +#. module: account +#: report:account.journal.period.print.sale.purchase:0 +msgid "VAT Declaration" +msgstr "" + +#. module: account +#: field:account.move.reconcile,line_partial_ids:0 +msgid "Partial Entry lines" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +#: field:account.treasury.report,fiscalyear_id:0 +msgid "Fiscalyear" +msgstr "" + +#. module: account +#: view:account.journal.select:0 +#: view:project.account.analytic.line:0 +msgid "Open Entries" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,account_ids:0 +msgid "Accounts to Reconcile" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_filestatement0 +msgid "Import of the statement in the system from an electronic file" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_importinvoice0 +msgid "Import from invoice" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "January" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Validations" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "This F.Year" +msgstr "" + +#. module: account +#: view:account.tax.chart:0 +msgid "Account tax charts" +msgstr "" + +#. module: account +#: constraint:account.period:0 +msgid "" +"Invalid period ! Some periods overlap or the date period is not in the scope " +"of the fiscal year. " +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:357 +#, python-format +msgid "You have to assign an analytic journal on the '%s' journal!" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: view:account.invoice.report:0 +#: selection:account.invoice.report,state:0 +#: selection:report.invoice.created,state:0 +msgid "Pro-forma" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1461 +#, python-format +msgid "" +"There is no default default debit account defined \n" +"on journal \"%s\"" +msgstr "" + +#. module: account +#: help:account.account.template,type:0 +#: help:account.entries.report,type:0 +msgid "" +"This type is used to differentiate types with special effects in OpenERP: " +"view can not have entries, consolidation are accounts that can have children " +"accounts for multi-company consolidations, payable/receivable are for " +"partners accounts (for debit/credit computations), closed for depreciated " +"accounts." +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Search Chart of Account Templates" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1277 +#, python-format +msgid "" +"Can not create an automatic sequence for this piece!\n" +"Put a sequence in the journal definition for automatic numbering or create a " +"sequence manually for this piece." +msgstr "" + +#. module: account +#: code:addons/account/account.py:787 +#, python-format +msgid "" +"You can not modify the company of this journal as its related record exist " +"in journal items" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Customer Code" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "" +"The default Chart of Accounts is matching your country selection. If no " +"certified Chart of Accounts exists for your specified country, a generic one " +"can be installed and will be selected by default." +msgstr "" + +#. module: account +#: view:account.account.type:0 +#: field:account.account.type,note:0 +#: view:account.analytic.account:0 +#: report:account.invoice:0 +#: field:account.invoice,name:0 +#: field:account.invoice.line,name:0 +#: field:account.invoice.refund,description:0 +#: report:account.overdue:0 +#: field:account.payment.term,note:0 +#: view:account.tax.code:0 +#: field:account.tax.code,info:0 +#: view:account.tax.code.template:0 +#: field:account.tax.code.template,info:0 +#: field:analytic.entries.report,name:0 +#: field:report.invoice.created,name:0 +msgid "Description" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3119 +#, python-format +msgid "ECNJ" +msgstr "" + +#. module: account +#: view:account.subscription:0 +#: selection:account.subscription,state:0 +msgid "Running" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:product.category,property_account_income_categ:0 +#: field:product.template,property_account_income:0 +msgid "Income Account" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:370 +#, python-format +msgid "There is no Accounting Journal of type Sale/Purchase defined!" +msgstr "" + +#. module: account +#: constraint:res.partner.bank:0 +msgid "The RIB and/or IBAN is not valid" +msgstr "" + +#. module: account +#: view:product.category:0 +msgid "Accounting Properties" +msgstr "" + +#. module: account +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +msgid "Entries Sorted By" +msgstr "" + +#. module: account +#: field:account.change.currency,currency_id:0 +msgid "Change to" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "# of Products Qty " +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_product_template +msgid "Product Template" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,fiscalyear_id:0 +#: field:account.balance.report,fiscalyear_id:0 +#: report:account.central.journal:0 +#: field:account.central.journal,fiscalyear_id:0 +#: field:account.common.account.report,fiscalyear_id:0 +#: field:account.common.journal.report,fiscalyear_id:0 +#: field:account.common.partner.report,fiscalyear_id:0 +#: field:account.common.report,fiscalyear_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,fiscalyear_id:0 +#: field:account.fiscalyear,name:0 +#: report:account.general.journal:0 +#: field:account.general.journal,fiscalyear_id:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.journal.period,fiscalyear_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,fiscalyear_id:0 +#: field:account.partner.ledger,fiscalyear_id:0 +#: field:account.period,fiscalyear_id:0 +#: field:account.print.journal,fiscalyear_id:0 +#: field:account.report.general.ledger,fiscalyear_id:0 +#: field:account.sequence.fiscalyear,fiscalyear_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,fiscalyear_id:0 +#: field:accounting.report,fiscalyear_id:0 +#: field:accounting.report,fiscalyear_id_cmp:0 +#: model:ir.model,name:account.model_account_fiscalyear +msgid "Fiscal Year" +msgstr "" + +#. module: account +#: help:account.aged.trial.balance,fiscalyear_id:0 +#: help:account.balance.report,fiscalyear_id:0 +#: help:account.central.journal,fiscalyear_id:0 +#: help:account.common.account.report,fiscalyear_id:0 +#: help:account.common.journal.report,fiscalyear_id:0 +#: help:account.common.partner.report,fiscalyear_id:0 +#: help:account.common.report,fiscalyear_id:0 +#: help:account.general.journal,fiscalyear_id:0 +#: help:account.partner.balance,fiscalyear_id:0 +#: help:account.partner.ledger,fiscalyear_id:0 +#: help:account.print.journal,fiscalyear_id:0 +#: help:account.report.general.ledger,fiscalyear_id:0 +#: help:account.vat.declaration,fiscalyear_id:0 +#: help:accounting.report,fiscalyear_id:0 +#: help:accounting.report,fiscalyear_id_cmp:0 +msgid "Keep empty for all open fiscal year" +msgstr "" + +#. module: account +#: field:account.invoice.report,account_line_id:0 +msgid "Account Line" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1468 +#, python-format +msgid "" +"There is no default default credit account defined \n" +"on journal \"%s\"" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_review_financial_journals_installer +msgid "" +"Setup your accounting journals. For bank accounts, it's better to use the " +"'Setup Your Bank Accounts' tool that will automatically create the accounts " +"and journals for you." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move +msgid "Account Entry" +msgstr "" + +#. module: account +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: account +#: field:account.sequence.fiscalyear,sequence_main_id:0 +msgid "Main Sequence" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:402 +#, python-format +msgid "" +"In order to delete a bank statement, you must first cancel it to delete " +"related journal items." +msgstr "" + +#. module: account +#: field:account.invoice,payment_term:0 +#: field:account.invoice.report,payment_term:0 +#: view:account.payment.term:0 +#: field:account.payment.term,name:0 +#: view:account.payment.term.line:0 +#: field:account.payment.term.line,payment_id:0 +#: model:ir.model,name:account.model_account_payment_term +#: field:res.partner,property_payment_term:0 +msgid "Payment Term" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form +#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form +msgid "Fiscal Positions" +msgstr "" + +#. module: account +#: constraint:account.account:0 +#: constraint:account.tax.code:0 +msgid "Error ! You can not create recursive accounts." +msgstr "" + +#. module: account +#: field:account.period.close,sure:0 +msgid "Check this box" +msgstr "" + +#. module: account +#: view:account.common.report:0 +msgid "Filters" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: selection:account.bank.statement,state:0 +#: view:account.fiscalyear:0 +#: selection:account.fiscalyear,state:0 +#: selection:account.invoice,state:0 +#: selection:account.invoice.report,state:0 +#: view:account.open.closed.fiscalyear:0 +#: selection:account.period,state:0 +#: code:addons/account/wizard/account_move_journal.py:106 +#: selection:report.invoice.created,state:0 +#, python-format +msgid "Open" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_draftinvoices0 +#: model:process.node,note:account.process_node_supplierdraftinvoices0 +msgid "Draft state of an invoice" +msgstr "" + +#. module: account +#: view:account.partner.reconcile.process:0 +msgid "Partner Reconciliation" +msgstr "" + +#. module: account +#: field:account.tax,tax_code_id:0 +#: view:account.tax.code:0 +msgid "Account Tax Code" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:572 +#, python-format +msgid "" +"Can't find any account journal of %s type for this company.\n" +"\n" +"You can create one in the menu: \n" +"Configuration\\Financial Accounting\\Accounts\\Journals." +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term_advance +#: model:account.payment.term,note:account.account_payment_term_advance +msgid "30% Advance End 30 Days" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Unreconciled entries" +msgstr "" + +#. module: account +#: field:account.invoice.tax,base_code_id:0 +#: field:account.tax.template,base_code_id:0 +msgid "Base Code" +msgstr "" + +#. module: account +#: help:account.invoice.tax,sequence:0 +msgid "Gives the sequence order when displaying a list of invoice tax." +msgstr "" + +#. module: account +#: field:account.tax,base_sign:0 +#: field:account.tax,ref_base_sign:0 +#: field:account.tax.template,base_sign:0 +#: field:account.tax.template,ref_base_sign:0 +msgid "Base Code Sign" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +msgid "" +"This menu prints a VAT declaration based on invoices or payments. Select one " +"or several periods of the fiscal year. The information required for a tax " +"declaration is automatically generated by OpenERP from invoices (or " +"payments, in some countries). This data is updated in real time. That’s very " +"useful because it enables you to preview at any time the tax that you owe at " +"the start and end of the month or quarter." +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Debit Centralisation" +msgstr "" + +#. module: account +#: view:account.invoice.confirm:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_confirm +msgid "Confirm Draft Invoices" +msgstr "" + +#. module: account +#: field:account.entries.report,day:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,day:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,day:0 +msgid "Day" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_renew_view +msgid "Accounts to Renew" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_model_line +msgid "Account Model Entries" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3117 +#, python-format +msgid "EXJ" +msgstr "" + +#. module: account +#: field:product.template,supplier_taxes_id:0 +msgid "Supplier Taxes" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "entries" +msgstr "" + +#. module: account +#: help:account.invoice,date_due:0 +#: help:account.invoice,payment_term:0 +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "Select period" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_pp_statements +msgid "Statements" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "Move Name" +msgstr "" + +#. module: account +#: help:res.partner,property_account_position:0 +msgid "" +"The fiscal position will determine taxes and the accounts used for the " +"partner." +msgstr "" + +#. module: account +#: view:account.print.journal:0 +msgid "" +"This report gives you an overview of the situation of a specific journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile_writeoff +msgid "Account move line reconcile (writeoff)" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.account_type_tax +#: report:account.invoice:0 +#: field:account.invoice,amount_tax:0 +#: field:account.move.line,account_tax_id:0 +msgid "Tax" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: field:account.bank.statement.line,analytic_account_id:0 +#: field:account.entries.report,analytic_account_id:0 +#: field:account.invoice.line,account_analytic_id:0 +#: field:account.model.line,analytic_account_id:0 +#: field:account.move.line,analytic_account_id:0 +#: field:account.move.line.reconcile.writeoff,analytic_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.financial.report,account_ids:0 +#: selection:account.financial.report,type:0 +#: view:account.journal:0 +#: model:ir.actions.act_window,name:account.action_account_form +#: model:ir.ui.menu,name:account.account_account_menu +#: model:ir.ui.menu,name:account.account_template_accounts +#: model:ir.ui.menu,name:account.menu_action_account_form +#: model:ir.ui.menu,name:account.menu_analytic +msgid "Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:369 +#, python-format +msgid "Configuration Error!" +msgstr "" + +#. module: account +#: field:account.invoice.report,price_average:0 +msgid "Average Price" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Date:" +msgstr "" + +#. module: account +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +msgid "Label" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:res.partner.bank:0 +msgid "Accounting Information" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Special Computation" +msgstr "" + +#. module: account +#: view:account.move.bank.reconcile:0 +#: model:ir.actions.act_window,name:account.action_account_bank_reconcile_tree +msgid "Bank reconciliation" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Disc.(%)" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.overdue:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Ref" +msgstr "" + +#. module: account +#: help:account.move.line,tax_code_id:0 +msgid "The Account can either be a base tax code or a tax code account." +msgstr "" + +#. module: account +#: sql_constraint:account.model.line:0 +msgid "Wrong credit or debit value in model, they must be positive!" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_automatic_reconcile +msgid "Automatic Reconciliation" +msgstr "" + +#. module: account +#: field:account.invoice,reconciled:0 +msgid "Paid/Reconciled" +msgstr "" + +#. module: account +#: field:account.tax,ref_base_code_id:0 +#: field:account.tax.template,ref_base_code_id:0 +msgid "Refund Base Code" +msgstr "Código base reintegro" + +#. module: account +#: selection:account.tax.template,applicable_type:0 +msgid "True" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.common.report:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:accounting.report:0 +msgid "Dates" +msgstr "" + +#. module: account +#: field:account.chart.template,parent_id:0 +msgid "Parent Chart Template" +msgstr "" + +#. module: account +#: field:account.tax,parent_id:0 +#: field:account.tax.template,parent_id:0 +msgid "Parent Tax Account" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:59 +#, python-format +msgid "New currency is not configured properly !" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +msgid "" +"Automatically generate entries based on what has been entered in the system " +"before a specific date." +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: model:ir.actions.act_window,name:account.action_account_aged_balance_view +#: model:ir.ui.menu,name:account.menu_aged_trial_balance +msgid "Aged Partner Balance" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_entriesreconcile0 +#: model:process.transition,name:account.process_transition_supplierentriesreconcile0 +msgid "Accounting entries" +msgstr "" + +#. module: account +#: field:account.invoice,reference_type:0 +msgid "Communication Type" +msgstr "" + +#. module: account +#: field:account.invoice.line,discount:0 +msgid "Discount (%)" +msgstr "" + +#. module: account +#: help:account.journal,entry_posted:0 +msgid "" +"Check this box if you don't want new journal entries to pass through the " +"'draft' state and instead goes directly to the 'posted state' without any " +"manual validation. \n" +"Note that journal entries that are automatically created by the system are " +"always skipping that state." +msgstr "" + +#. module: account +#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart +#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble +msgid "New Company Financial Setting" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "Configure Your Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "This wizard will create recurring accounting entries" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1321 +#, python-format +msgid "No sequence defined on the journal !" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2268 +#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account_move_line.py:173 +#, python-format +msgid "You have to define an analytic journal on the '%s' journal!" +msgstr "" + +#. module: account +#: code:addons/account/account.py:407 +#, python-format +msgid "" +"You need an Opening journal with centralisation checked to set the initial " +"balance!" +msgstr "" + +#. module: account +#: view:account.invoice.tax:0 +#: model:ir.actions.act_window,name:account.action_tax_code_list +#: model:ir.ui.menu,name:account.menu_action_tax_code_list +msgid "Tax Codes" +msgstr "" + +#. module: account +#: view:account.account:0 +msgid "Unrealized Gains and losses" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_customer +#: model:ir.ui.menu,name:account.menu_finance_receivables +msgid "Customers" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.journal:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Period to" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "August" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentreconcile0 +msgid "Payment entries are the second input of the reconciliation." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "October" +msgstr "" + +#. module: account +#: help:account.move.line,quantity:0 +msgid "" +"The optional quantity expressed by this line, eg: number of product sold. " +"The quantity is not a legal requirement but is very useful for some reports." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Line 2:" +msgstr "" + +#. module: account +#: field:account.journal.column,required:0 +msgid "Required" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:product.category,property_account_expense_categ:0 +#: field:product.template,property_account_expense:0 +msgid "Expense Account" +msgstr "" + +#. module: account +#: help:account.invoice,period_id:0 +msgid "Keep empty to use the period of the validation(invoice) date." +msgstr "" + +#. module: account +#: help:account.bank.statement,account_id:0 +msgid "" +"used in statement reconciliation domain, but shouldn't be used elswhere." +msgstr "" + +#. module: account +#: field:account.invoice.tax,base_amount:0 +msgid "Base Code Amount" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:392 +#, python-format +msgid "" +"You can not delete an invoice which is open or paid. We suggest you to " +"refund it instead." +msgstr "" +"No puede borrar una factura que está abierta o pagada. Le sugerimos que cree " +"una Nota de Crédito en su lugar." + +#. module: account +#: field:wizard.multi.charts.accounts,sale_tax:0 +msgid "Default Sale Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1013 +#, python-format +msgid "Invoice '%s' is validated." +msgstr "" + +#. module: account +#: help:account.model.line,date_maturity:0 +msgid "" +"The maturity date of the generated entries for this model. You can choose " +"between the creation date or the creation date of the entries plus the " +"partner payment terms." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_accounting +msgid "Financial Accounting" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_report_pl +msgid "Profit And Loss" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,name:0 +#: field:account.fiscal.position.account,position_id:0 +#: field:account.fiscal.position.tax,position_id:0 +#: field:account.fiscal.position.tax.template,position_id:0 +#: view:account.fiscal.position.template:0 +#: field:account.invoice,fiscal_position:0 +#: field:account.invoice.report,fiscal_position:0 +#: model:ir.model,name:account.model_account_fiscal_position +#: field:res.partner,property_account_position:0 +msgid "Fiscal Position" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:735 +#, python-format +msgid "" +"Tax base different!\n" +"Click on compute to update the tax base." +msgstr "" + +#. module: account +#: field:account.partner.ledger,page_split:0 +msgid "One Partner Per Page" +msgstr "" + +#. module: account +#: field:account.account,child_parent_ids:0 +#: field:account.account.template,child_parent_ids:0 +msgid "Children" +msgstr "" + +#. module: account +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: model:process.process,name:account.process_process_invoiceprocess0 +#: selection:report.invoice.created,type:0 +msgid "Customer Invoice" +msgstr "" + +#. module: account +#: help:account.tax.template,include_base_amount:0 +msgid "" +"Set if the amount of tax must be included in the base amount before " +"computing the next taxes." +msgstr "" + +#. module: account +#: help:account.journal,user_id:0 +msgid "The user responsible for this journal" +msgstr "" + +#. module: account +#: view:account.period:0 +msgid "Search Period" +msgstr "" + +#. module: account +#: view:account.change.currency:0 +msgid "Invoice Currency" +msgstr "" + +#. module: account +#: field:accounting.report,account_report_id:0 +#: model:ir.ui.menu,name:account.menu_account_financial_reports_tree +msgid "Account Reports" +msgstr "" + +#. module: account +#: field:account.payment.term,line_ids:0 +msgid "Terms" +msgstr "" + +#. module: account +#: field:account.bank.statement,total_entry_encoding:0 +msgid "Cash Transaction" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank account" +msgstr "" + +#. module: account +#: field:account.chart.template,tax_template_ids:0 +msgid "Tax Template List" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal +msgid "Sale/Purchase Journals" +msgstr "" + +#. module: account +#: help:account.account,currency_mode:0 +msgid "" +"This will select how the current currency rate for outgoing transactions is " +"computed. In most countries the legal method is \"average\" but only a few " +"software systems are able to manage this. So if you import from another " +"software system you may have to use the rate at date. Incoming transactions " +"always use the rate at date." +msgstr "" +"Permite seleccionar la forma en que se calcula la tasa de la divisa actual " +"en las transacciones de salida. En la mayoría de los países el método legal " +"es \"Promedio\", pero sólo unos pocos sistemas de software son capaces de " +"gestionarlo. Por lo tanto, si la importación procede de otro sistema de " +"software, es posible que tenga que utilizar la tasa \"En fecha\". Las " +"transacciones de entrada siempre utilizan la tasa \"En fecha\"." + +#. module: account +#: help:account.chart.template,code_digits:0 +#: help:wizard.multi.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code" +msgstr "" + +#. module: account +#: field:account.payment.term.line,name:0 +msgid "Line Name" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Search Fiscalyear" +msgstr "" + +#. module: account +#: selection:account.tax,applicable_type:0 +msgid "Always" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "Month-1" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Total Quantity" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,writeoff_acc_id:0 +msgid "Write-Off account" +msgstr "" + +#. module: account +#: field:account.model.line,model_id:0 +#: view:account.subscription:0 +#: field:account.subscription,model_id:0 +msgid "Model" +msgstr "" + +#. module: account +#: help:account.invoice.tax,base_code_id:0 +msgid "The account basis of the tax declaration." +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +#: selection:account.financial.report,type:0 +msgid "View" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3363 +#: code:addons/account/account_bank.py:90 +#, python-format +msgid "BNK" +msgstr "" + +#. module: account +#: field:account.move.line,analytic_lines:0 +msgid "Analytic lines" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma Invoices" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_electronicfile0 +msgid "Electronic File" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Customer Credit" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Day of the Month: 0" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Starts on" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_ledger +msgid "Account Partner Ledger" +msgstr "" + +#. module: account +#: help:account.journal.column,sequence:0 +msgid "Gives the sequence order to journal column." +msgstr "" + +#. module: account +#: help:account.account,currency_id:0 +#: help:account.account.template,currency_id:0 +#: help:account.bank.accounts.wizard,currency_id:0 +msgid "Forces all moves for this account to have this secondary currency." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_validate_account_move_line +msgid "" +"This wizard will validate all journal entries of a particular journal and " +"period. Once journal entries are validated, you can not update them anymore." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_chart_template_form +#: model:ir.ui.menu,name:account.menu_action_account_chart_template_form +msgid "Chart of Accounts Templates" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_wizard_multi_chart +msgid "Set Your Accounting Options" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +msgid "This months' Sales by type" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_unreconcile_reconcile +msgid "Account Unreconcile Reconcile" +msgstr "" + +#. module: account +#: sql_constraint:account.tax:0 +msgid "The description must be unique per company!" +msgstr "" + +#. module: account +#: help:account.account.type,close_method:0 +msgid "" +"Set here the method that will be used to generate the end of year journal " +"entries for all the accounts of this type.\n" +"\n" +" 'None' means that nothing will be done.\n" +" 'Balance' will generally be used for cash accounts.\n" +" 'Detail' will copy each existing journal item of the previous year, even " +"the reconciled ones.\n" +" 'Unreconciled' will copy only the journal items that were unreconciled on " +"the first day of the new fiscal year." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39 +#, python-format +msgid "No End of year journal defined for the fiscal year" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Keep empty to use the expense account" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,journal_ids:0 +#: field:account.analytic.cost.ledger.journal.report,journal:0 +#: field:account.balance.report,journal_ids:0 +#: field:account.central.journal,journal_ids:0 +#: field:account.common.account.report,journal_ids:0 +#: field:account.common.journal.report,journal_ids:0 +#: field:account.common.partner.report,journal_ids:0 +#: view:account.common.report:0 +#: field:account.common.report,journal_ids:0 +#: report:account.general.journal:0 +#: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.journal.period:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,journal_ids:0 +#: field:account.partner.ledger,journal_ids:0 +#: view:account.print.journal:0 +#: field:account.print.journal,journal_ids:0 +#: field:account.report.general.ledger,journal_ids:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,journal_ids:0 +#: field:accounting.report,journal_ids:0 +#: model:ir.actions.act_window,name:account.action_account_journal_form +#: model:ir.actions.act_window,name:account.action_account_journal_period_tree +#: model:ir.ui.menu,name:account.menu_account_print_journal +#: model:ir.ui.menu,name:account.menu_action_account_journal_form +#: model:ir.ui.menu,name:account.menu_journals +#: model:ir.ui.menu,name:account.menu_journals_report +msgid "Journals" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,to_reconcile:0 +msgid "Remaining Partners" +msgstr "" + +#. module: account +#: view:account.subscription:0 +#: field:account.subscription,lines_id:0 +msgid "Subscription Lines" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +#: view:account.journal:0 +#: selection:account.journal,type:0 +#: view:account.model:0 +#: selection:account.tax,type_tax_use:0 +#: view:account.tax.template:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "Purchase" +msgstr "" + +#. module: account +#: view:account.installer:0 +#: view:wizard.multi.charts.accounts:0 +msgid "Accounting Application Configuration" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Value amount: 0.02" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.open_board_account +#: model:ir.ui.menu,name:account.menu_board_account +msgid "Accounting Dashboard" +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_start:0 +#: field:account.treasury.report,starting_balance:0 +msgid "Starting Balance" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1332 +#, python-format +msgid "No Partner Defined !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_period_close +#: model:ir.actions.act_window,name:account.action_account_period_tree +#: model:ir.ui.menu,name:account.menu_action_account_period_close_tree +msgid "Close a Period" +msgstr "" + +#. module: account +#: field:account.financial.report,display_detail:0 +msgid "Display details" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "VAT:" +msgstr "" + +#. module: account +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "" + +#. module: account +#: help:account.analytic.line,amount_currency:0 +msgid "" +"The amount expressed in the related account currency if not equal to the " +"company one." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_unreconcile +#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile +#: model:ir.actions.act_window,name:account.action_account_unreconcile_select +msgid "Unreconcile Entries" +msgstr "" + +#. module: account +#: field:account.tax.code,notprintable:0 +#: field:account.tax.code.template,notprintable:0 +msgid "Not Printable in Invoice" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,chart_tax_id:0 +msgid "Chart of Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_cash_statement.py:314 +#, python-format +msgid "The closing balance should be the same than the computed balance!" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Search Account Journal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice +msgid "Pending Invoice" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: selection:account.subscription,period_type:0 +#: view:analytic.entries.report:0 +msgid "year" +msgstr "" + +#. module: account +#: view:product.product:0 +msgid "Purchase Taxes" +msgstr "" + +#. module: account +#: view:validate.account.move.lines:0 +msgid "" +"All selected journal entries will be validated and posted. It means you " +"won't be able to modify their accounting fields anymore." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_transfers +msgid "Transfers" +msgstr "" + +#. module: account +#: view:account.chart:0 +msgid "Account charts" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Tax Amount" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Search Move" +msgstr "" + +#. module: account +#: field:account.tax.code,name:0 +#: field:account.tax.code.template,name:0 +msgid "Tax Case Name" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: model:process.node,name:account.process_node_draftinvoices0 +msgid "Draft Invoice" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_state.py:68 +#, python-format +msgid "" +"Selected Invoice(s) cannot be cancelled as they are already in 'Cancelled' " +"or 'Done' state!" +msgstr "" + +#. module: account +#: view:account.invoice.line:0 +msgid "Quantity :" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,period_length:0 +msgid "Period Length (days)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal +msgid "Print Sale/Purchase Journal" +msgstr "" + +#. module: account +#: field:account.invoice.report,state:0 +msgid "Invoice State" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,categ_id:0 +msgid "Category of Product" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +#: model:ir.actions.act_window,name:account.action_account_addtmpl_wizard_form +msgid "Create Account" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_type_sales +msgid "Report of the Sales by Account Type" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unreconciled Journal Items" +msgstr "" + +#. module: account +#: sql_constraint:res.currency:0 +msgid "The currency code must be unique per company!" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +msgid "Detail" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:839 +#, python-format +msgid "" +"Can not create the invoice !\n" +"The related payment term is probably misconfigured as it gives a computed " +"amount greater than the total invoiced amount. The latest line of your " +"payment term must be of type 'balance' to avoid rounding issues." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "VAT :" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +#: report:account.general.ledger:0 +#: field:account.installer,charts:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: model:ir.actions.act_window,name:account.action_account_chart +#: model:ir.actions.act_window,name:account.action_account_tree +#: model:ir.ui.menu,name:account.menu_action_account_tree2 +msgid "Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.tax.chart:0 +msgid "(If you do not select period it will take all open periods)" +msgstr "" + +#. module: account +#: field:account.journal,centralisation:0 +msgid "Centralised counterpart" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:584 +#, python-format +msgid "You can not create journal items on a \"view\" account %s %s" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_reconcile_process +msgid "Reconcilation Process partner by partner" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "2" +msgstr "" + +#. module: account +#: view:account.chart:0 +msgid "(If you do not select Fiscal year it will take all open fiscal years)" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: report:account.analytic.account.journal:0 +#: selection:account.balance.report,filter:0 +#: field:account.bank.statement,date:0 +#: selection:account.central.journal,filter:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: selection:account.common.report,filter:0 +#: view:account.entries.report:0 +#: field:account.entries.report,date:0 +#: selection:account.general.journal,filter:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice.report,date:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.move:0 +#: field:account.move,date:0 +#: field:account.move.line.reconcile.writeoff,date_p:0 +#: report:account.overdue:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: selection:account.print.journal,filter:0 +#: selection:account.print.journal,sort_selection:0 +#: selection:account.report.general.ledger,filter:0 +#: selection:account.report.general.ledger,sortby:0 +#: field:account.subscription.generate,date:0 +#: field:account.subscription.line,date:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: selection:account.vat.declaration,filter:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +#: field:analytic.entries.report,date:0 +msgid "Date" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Post" +msgstr "" + +#. module: account +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +msgid "Unreconcile" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 +#: view:account.journal:0 +#: field:account.journal,user_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,user_id:0 +msgid "User" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Chart of Accounts Template" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2280 +#, python-format +msgid "" +"Maturity date of entry line generated by model line '%s' of model '%s' is " +"based on partner payment term!\n" +"Please define partner on it!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:837 +#, python-format +msgid "Some entries are already reconciled !" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Account Tax" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets +msgid "Budgets" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: selection:account.balance.report,filter:0 +#: selection:account.central.journal,filter:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: selection:account.common.report,filter:0 +#: selection:account.general.journal,filter:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: selection:account.print.journal,filter:0 +#: selection:account.report.general.ledger,filter:0 +#: selection:account.vat.declaration,filter:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +msgid "No Filters" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Pro-forma Invoices" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "History" +msgstr "" + +#. module: account +#: help:account.tax,applicable_type:0 +#: help:account.tax.template,applicable_type:0 +msgid "" +"If not applicable (computed through a Python code), the tax won't appear on " +"the invoice." +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Applicable Code (if type=code)" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,product_qty:0 +msgid "Qty" +msgstr "" + +#. module: account +#: field:account.invoice.report,address_contact_id:0 +msgid "Contact Address Name" +msgstr "" + +#. module: account +#: field:account.move.line,blocked:0 +msgid "Litigation" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Search Analytic Lines" +msgstr "" + +#. module: account +#: field:res.partner,property_account_payable:0 +msgid "Account Payable" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_supplierpaymentorder0 +msgid "Payment Order" +msgstr "" + +#. module: account +#: help:account.account.template,reconcile:0 +msgid "" +"Check this option if you want the user to reconcile entries in this account." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_account_balance_landscape +msgid "Account balance" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.line,price_unit:0 +msgid "Unit Price" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tree1 +msgid "Analytic Items" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1153 +#, python-format +msgid "Unable to change tax !" +msgstr "" + +#. module: account +#: field:analytic.entries.report,nbr:0 +msgid "#Entries" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Create a draft Refund" +msgstr "Crear una devolución en borrador" + +#. module: account +#: view:account.state.open:0 +msgid "Open Invoice" +msgstr "" + +#. module: account +#: field:account.invoice.tax,factor_tax:0 +msgid "Multipication factor Tax code" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +msgid "Mapping" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:921 +#, python-format +msgid "" +"You cannot create an invoice on a centralised journal. Uncheck the " +"centralised counterpart box in the related journal from the configuration " +"menu." +msgstr "" + +#. module: account +#: field:account.account,name:0 +#: field:account.account.template,name:0 +#: report:account.analytic.account.inverted.balance:0 +#: field:account.bank.statement,name:0 +#: field:account.chart.template,name:0 +#: field:account.model.line,name:0 +#: field:account.move.line,name:0 +#: field:account.move.reconcile,name:0 +#: field:account.subscription,name:0 +msgid "Name" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_aged_trial_balance +msgid "Account Aged Trial balance Report" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:591 +#, python-format +msgid "You can not create journal items on a closed account %s %s" +msgstr "" + +#. module: account +#: field:account.move.line,date:0 +msgid "Effective date" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_tree +#: model:ir.ui.menu,name:account.menu_action_bank_tree +msgid "Setup your Bank Accounts" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_bank_reconcile.py:53 +#, python-format +msgid "Standard Encoding" +msgstr "" + +#. module: account +#: help:account.journal,analytic_journal_id:0 +msgid "Journal for analytic entries" +msgstr "" + +#. module: account +#: constraint:account.aged.trial.balance:0 +#: constraint:account.balance.report:0 +#: constraint:account.central.journal:0 +#: constraint:account.common.account.report:0 +#: constraint:account.common.journal.report:0 +#: constraint:account.common.partner.report:0 +#: constraint:account.common.report:0 +#: constraint:account.general.journal:0 +#: constraint:account.partner.balance:0 +#: constraint:account.partner.ledger:0 +#: constraint:account.print.journal:0 +#: constraint:account.report.general.ledger:0 +#: constraint:account.vat.declaration:0 +#: constraint:accounting.report:0 +msgid "" +"The fiscalyear, periods or chart of account chosen have to belong to the " +"same company." +msgstr "" + +#. module: account +#: model:ir.actions.todo.category,name:account.category_accounting_configuration +#: model:ir.ui.menu,name:account.menu_finance +#: model:process.node,name:account.process_node_accountingentries0 +#: model:process.node,name:account.process_node_supplieraccountingentries0 +#: view:product.product:0 +#: view:product.template:0 +#: view:res.partner:0 +msgid "Accounting" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Journal Entries with period in current year" +msgstr "" + +#. module: account +#: help:account.central.journal,amount_currency:0 +#: help:account.common.journal.report,amount_currency:0 +#: help:account.general.journal,amount_currency:0 +#: help:account.print.journal,amount_currency:0 +msgid "" +"Print Report with the currency column if the currency is different then the " +"company currency" +msgstr "" + +#. module: account +#: help:account.account,unrealized_gain_loss:0 +msgid "" +"Value of Loss or Gain due to changes in exchange rate when doing multi-" +"currency transactions." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "General Accounting" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Balance :" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,journal_id:0 +msgid "" +"The best practice here is to use a journal dedicated to contain the opening " +"entries of all fiscal years. Note that you should define it with default " +"debit/credit accounts, of type 'situation' and with a centralized " +"counterpart." +msgstr "" + +#. module: account +#: view:account.installer:0 +#: view:wizard.multi.charts.accounts:0 +msgid "title" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.period:0 +#: view:account.subscription:0 +msgid "Set to Draft" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form +msgid "Recurring Lines" +msgstr "" + +#. module: account +#: field:account.partner.balance,display_partner:0 +msgid "Display Partners" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Validate" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_cost +#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger +msgid "Cost Ledger" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_assets0 +msgid "Assets" +msgstr "" + +#. module: account +#: view:account.invoice.confirm:0 +msgid "Confirm Invoices" +msgstr "" + +#. module: account +#: selection:account.account,currency_mode:0 +msgid "Average Rate" +msgstr "" + +#. module: account +#: field:account.balance.report,display_account:0 +#: field:account.common.account.report,display_account:0 +#: field:account.report.general.ledger,display_account:0 +msgid "Display Accounts" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "(Invoice should be unreconciled if you want to open it)" +msgstr "" + +#. module: account +#: field:account.chart,period_from:0 +msgid "Start period" +msgstr "" + +#. module: account +#: field:account.tax,name:0 +#: field:account.tax.template,name:0 +#: report:account.vat.declaration:0 +msgid "Tax Name" +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term +#: model:account.payment.term,note:account.account_payment_term +msgid "30 Days End of Month" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_balance +#: model:ir.actions.report.xml,name:account.account_analytic_account_balance +msgid "Analytic Balance" +msgstr "" + +#. module: account +#: help:account.account,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the account " +"without removing it." +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Posted Journal Items" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Search Tax Templates" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.periodical_processing_journal_entries_validation +msgid "Draft Entries" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Day of the Month= -1" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Number of Days: 30" +msgstr "" + +#. module: account +#: field:account.account,shortcut:0 +#: field:account.account.template,shortcut:0 +msgid "Shortcut" +msgstr "" + +#. module: account +#: constraint:account.fiscalyear:0 +msgid "Error! The start date of the fiscal year must be before his end date." +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,user_type:0 +#: view:account.account.template:0 +#: field:account.account.template,user_type:0 +#: view:account.account.type:0 +#: field:account.account.type,name:0 +#: field:account.bank.accounts.wizard,account_type:0 +#: field:account.entries.report,user_type:0 +#: selection:account.financial.report,type:0 +#: model:ir.model,name:account.model_account_account_type +#: field:report.account.receivable,type:0 +#: field:report.account_type.sales,user_type:0 +msgid "Account Type" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank Account Owner" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: view:account.balance.report:0 +#: model:ir.actions.act_window,name:account.action_account_balance_menu +#: model:ir.actions.report.xml,name:account.account_account_balance +#: model:ir.ui.menu,name:account.menu_general_Balance_report +msgid "Trial Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_cancel +msgid "Cancel the Selected Invoices" +msgstr "" + +#. module: account +#: help:product.category,property_account_income_categ:0 +#: help:product.template,property_account_income:0 +msgid "" +"This account will be used to value outgoing stock for the current product " +"category using sale price" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "3" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:97 +#, python-format +msgid "" +"You haven't supplied enough argument to compute the initial balance, please " +"select a period and journal in the context." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_supplieranalyticcost0 +msgid "" +"Analytic costs (timesheets, some purchased products, ...) come from analytic " +"accounts. These generate draft supplier invoices." +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Close CashBox" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,due_delay:0 +msgid "Avg. Due Delay" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Acc.Type" +msgstr "" + +#. module: account +#: field:account.entries.report,month:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,month:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,month:0 +#: field:report.account.sales,month:0 +#: field:report.account_type.sales,month:0 +msgid "Month" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1216 +#, python-format +msgid "" +"You can not do this modification on a confirmed entry! You can just change " +"some non legal fields or you must unconfirm the journal entry first! \n" +"%s" +msgstr "" + +#. module: account +#: field:res.company,paypal_account:0 +msgid "Paypal Account" +msgstr "" + +#. module: account +#: field:account.invoice.report,uom_name:0 +msgid "Reference UoM" +msgstr "" + +#. module: account +#: field:account.account,note:0 +#: field:account.account.template,note:0 +msgid "Note" +msgstr "" + +#. module: account +#: selection:account.financial.report,sign:0 +msgid "Reverse balance sign" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Overdue Account" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:184 +#, python-format +msgid "Balance Sheet (Liability account)" +msgstr "" + +#. module: account +#: help:account.invoice,date_invoice:0 +msgid "Keep empty to use the current date" +msgstr "" + +#. module: account +#: field:account.invoice,tax_line:0 +msgid "Tax Lines" +msgstr "" + +#. module: account +#: field:account.tax,base_code_id:0 +msgid "Account Base Code" +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:93 +#, python-format +msgid "There is no expense account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Customer Accounting Properties" +msgstr "" + +#. module: account +#: help:res.company,paypal_account:0 +msgid "Paypal username (usually email) for receiving online payments." +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,target_move:0 +#: selection:account.balance.report,target_move:0 +#: selection:account.central.journal,target_move:0 +#: selection:account.chart,target_move:0 +#: selection:account.common.account.report,target_move:0 +#: selection:account.common.journal.report,target_move:0 +#: selection:account.common.partner.report,target_move:0 +#: selection:account.common.report,target_move:0 +#: selection:account.general.journal,target_move:0 +#: selection:account.move.journal,target_move:0 +#: selection:account.partner.balance,target_move:0 +#: selection:account.partner.ledger,target_move:0 +#: selection:account.print.journal,target_move:0 +#: selection:account.report.general.ledger,target_move:0 +#: selection:account.tax.chart,target_move:0 +#: selection:account.vat.declaration,target_move:0 +#: selection:accounting.report,target_move:0 +#: code:addons/account/report/common_report_header.py:68 +#, python-format +msgid "All Posted Entries" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:367 +#, python-format +msgid "Statement %s is confirmed, journal items are created." +msgstr "" + +#. module: account +#: field:report.aged.receivable,name:0 +msgid "Month Range" +msgstr "" + +#. module: account +#: help:account.analytic.balance,empty_acc:0 +msgid "Check if you want to display Accounts with 0 balance too." +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Compute Code" +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Default taxes" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:41 +#, python-format +msgid "End of Fiscal Year Entry" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_periodical_processing +msgid "Periodical Processing" +msgstr "" + +#. module: account +#: constraint:account.analytic.line:0 +msgid "You can not create analytic line on view account." +msgstr "" + +#. module: account +#: help:account.move.line,state:0 +msgid "" +"When new move line is created the state will be 'Draft'.\n" +"* When all the payments are done it will be in 'Valid' state." +msgstr "" + +#. module: account +#: field:account.journal,view_id:0 +msgid "Display Mode" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_importinvoice0 +msgid "Statement from invoice or payment" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_chart +msgid "Account chart" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Main Title 1 (bold, underlined)" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.central.journal:0 +msgid "Account Name" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,report_name:0 +msgid "Give name of the new entries" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_report +msgid "Invoices Statistics" +msgstr "" + +#. module: account +#: field:account.account,exchange_rate:0 +msgid "Exchange Rate" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentorderreconcilation0 +msgid "Bank statements are entered in the system." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_reconcile.py:133 +#, python-format +msgid "Reconcile Writeoff" +msgstr "" + +#. module: account +#: view:report.account.receivable:0 +msgid "Accounts by Type" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement,balance_end_cash:0 +msgid "Closing Balance" +msgstr "" + +#. module: account +#: code:addons/account/report/common_report_header.py:92 +#, python-format +msgid "Not implemented" +msgstr "" + +#. module: account +#: field:account.chart.template,visible:0 +msgid "Can be Visible?" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_journal_select +msgid "Account Journal Select" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Credit Notes" +msgstr "" + +#. module: account +#: sql_constraint:account.period:0 +msgid "The name of the period must be unique per company!" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "res_config_contents" +msgstr "" + +#. module: account +#: view:account.unreconcile:0 +msgid "Unreconciliate Transactions" +msgstr "" + +#. module: account +#: help:account.chart.template,visible:0 +msgid "" +"Set this to False if you don't want this template to be used actively in the " +"wizard that generate Chart of Accounts from templates, this is useful when " +"you want to generate accounts of this template only when loading its child " +"template." +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create Entries From Models" +msgstr "" + +#. module: account +#: field:account.account,reconcile:0 +#: field:account.account.template,reconcile:0 +msgid "Allow Reconciliation" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1077 +#, python-format +msgid "" +"You can not modify company of this period as some journal items exists." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic Account Statistics" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Based On" +msgstr "" + +#. module: account +#: field:account.tax,price_include:0 +#: field:account.tax.template,price_include:0 +msgid "Tax Included in Price" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report +msgid "Account Analytic Cost Ledger For Journal Report" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_model_form +#: model:ir.ui.menu,name:account.menu_action_model_form +msgid "Recurring Models" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1251 +#, python-format +msgid "Encoding error" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "4" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Change" +msgstr "" + +#. module: account +#: selection:account.journal,type:0 +msgid "Bank and Cheques" +msgstr "" + +#. module: account +#: field:account.journal,type_control_ids:0 +msgid "Type Controls" +msgstr "" + +#. module: account +#: help:account.journal,default_credit_account_id:0 +msgid "It acts as a default account for credit amount" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_validate_account_move_line +#: model:ir.ui.menu,name:account.menu_validate_account_moves +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +msgid "Post Journal Entries" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: selection:account.invoice.report,state:0 +#: selection:report.invoice.created,state:0 +msgid "Cancelled" +msgstr "" + +#. module: account +#: help:account.bank.statement,balance_end_cash:0 +msgid "Closing balance based on cashBox" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Example" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:828 +#, python-format +msgid "" +"Please verify the price of the invoice !\n" +"The real total does not match the computed total." +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Keep empty to use the income account" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3299 +#, python-format +msgid "Purchase Tax %.2f%%" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +#: model:ir.actions.act_window,name:account.action_account_subscription_generate +#: model:ir.ui.menu,name:account.menu_generate_subscription +msgid "Generate Entries" +msgstr "" + +#. module: account +#: help:account.vat.declaration,chart_tax_id:0 +msgid "Select Charts of Taxes" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,account_ids:0 +#: field:account.fiscal.position.template,account_ids:0 +msgid "Account Mapping" +msgstr "" + +#. module: account +#: selection:account.bank.statement.line,type:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:337 +#, python-format +msgid "Customer" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Confirmed" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Cancelled Invoice" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1567 +#, python-format +msgid "" +"Couldn't create move with currency different from the secondary currency of " +"the account \"%s - %s\". Clear the secondary currency field of the account " +"definition if you want to accept all currencies." +msgstr "" + +#. module: account +#: selection:account.bank.statement,state:0 +msgid "New" +msgstr "" + +#. module: account +#: field:account.invoice.refund,date:0 +msgid "Operation date" +msgstr "" + +#. module: account +#: view:account.unreconcile.reconcile:0 +msgid "Unreconciliation Transactions" +msgstr "" + +#. module: account +#: field:account.tax,ref_tax_code_id:0 +#: field:account.tax.template,ref_tax_code_id:0 +msgid "Refund Tax Code" +msgstr "Código impuesto reintegro" + +#. module: account +#: view:validate.account.move:0 +msgid "" +"All draft account entries in this journal and period will be validated. It " +"means you won't be able to modify their accounting fields anymore." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_configuration +msgid "Configuration" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,date1:0 +msgid "Starting Date" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income:0 +msgid "Income Account on Product Template" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3120 +#, python-format +msgid "MISC" +msgstr "" + +#. module: account +#: model:email.template,subject:account.email_template_edi_invoice +msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })" +msgstr "" + +#. module: account +#: help:res.partner,last_reconciliation_date:0 +msgid "" +"Date on which the partner accounting entries were reconciled last time" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,fy2_id:0 +msgid "New Fiscal Year" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.tax.template:0 +#: selection:account.vat.declaration,based_on:0 +#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened +#: model:ir.actions.act_window,name:account.action_invoice_tree +#: model:ir.actions.report.xml,name:account.account_invoices +#: view:report.invoice.created:0 +#: field:res.partner,invoice_ids:0 +msgid "Invoices" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "My invoices" +msgstr "" + +#. module: account +#: selection:account.bank.accounts.wizard,account_type:0 +msgid "Check" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,user_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,user_id:0 +msgid "Salesman" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Invoiced" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Posted Journal Entries" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Use Model" +msgstr "" + +#. module: account +#: help:account.invoice,partner_bank_id:0 +msgid "" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Supplier Refund, otherwise a " +"Partner bank account number." +msgstr "" +"Numero de cuenta bancaria contra el que será pagada la factura. Una cuenta " +"bancaria de la compañía si esta es una factura de cliente o devolución de " +"proveedor, en otro caso una cuenta bancaria del cliente/proveedor." + +#. module: account +#: view:account.state.open:0 +msgid "No" +msgstr "" + +#. module: account +#: help:account.invoice.tax,tax_code_id:0 +msgid "The tax basis of the tax declaration." +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +msgid "Add" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: report:account.overdue:0 +msgid "Paid" +msgstr "" + +#. module: account +#: view:account.period.close:0 +msgid "Are you sure?" +msgstr "" + +#. module: account +#: help:account.move.line,statement_id:0 +msgid "The bank statement used for bank reconciliation" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0 +msgid "Draft invoices are validated. " +msgstr "" + +#. module: account +#: constraint:account.account.template:0 +msgid "" +"Configuration Error!\n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" + +#. module: account +#: code:addons/account/account.py:923 +#, python-format +msgid "Opening Period" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Journal Entries to Review" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.subscription:0 +msgid "Compute" +msgstr "" + +#. module: account +#: field:account.tax,type_tax_use:0 +msgid "Tax Application" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +#: code:addons/account/wizard/account_move_journal.py:153 +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line +#: model:ir.actions.act_window,name:account.act_account_move_to_account_move_line_open +#: model:ir.actions.act_window,name:account.act_account_partner_account_move +#: model:ir.actions.act_window,name:account.action_account_manual_reconcile +#: model:ir.actions.act_window,name:account.action_account_moves_all_a +#: model:ir.actions.act_window,name:account.action_account_moves_bank +#: model:ir.actions.act_window,name:account.action_account_moves_purchase +#: model:ir.actions.act_window,name:account.action_account_moves_sale +#: model:ir.actions.act_window,name:account.action_move_line_search +#: model:ir.actions.act_window,name:account.action_move_line_select +#: model:ir.actions.act_window,name:account.action_move_line_tree1 +#: model:ir.actions.act_window,name:account.action_tax_code_line_open +#: model:ir.model,name:account.model_account_move_line +#: model:ir.ui.menu,name:account.menu_action_account_moves_all +#: model:ir.ui.menu,name:account.menu_action_account_moves_bank +#: model:ir.ui.menu,name:account.menu_eaction_account_moves_purchase +#: model:ir.ui.menu,name:account.menu_eaction_account_moves_sale +#, python-format +msgid "Journal Items" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1088 +#: code:addons/account/account.py:1090 +#: code:addons/account/account.py:1321 +#: code:addons/account/account.py:1563 +#: code:addons/account/account.py:1567 +#: code:addons/account/account.py:3368 +#: code:addons/account/account_move_line.py:807 +#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:832 +#: code:addons/account/account_move_line.py:835 +#: code:addons/account/account_move_line.py:837 +#: code:addons/account/report/common_report_header.py:92 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 +#: code:addons/account/wizard/account_financial_report.py:69 +#: code:addons/account/wizard/account_move_bank_reconcile.py:49 +#: code:addons/account/wizard/account_report_common.py:144 +#: code:addons/account/wizard/account_report_common.py:150 +#, python-format +msgid "Error" +msgstr "" + +#. module: account +#: field:account.analytic.balance,date2:0 +#: field:account.analytic.cost.ledger,date2:0 +#: field:account.analytic.cost.ledger.journal.report,date2:0 +#: field:account.analytic.inverted.balance,date2:0 +#: field:account.analytic.journal.report,date2:0 +msgid "End of period" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank Details" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_partner_balance +msgid "" +"This report is analysis by partner. It is a PDF report containing one line " +"per partner representing the cumulative credit balance." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_analytic_journal_tree +msgid "" +"To print an analytics (or costs) journal for a given period. The report give " +"code, move name, account number, general amount and analytic amount." +msgstr "" + +#. module: account +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_receivable_graph +msgid "Balance by Type of Account" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "Generate Fiscal Year Opening Entries" +msgstr "" + +#. module: account +#: model:res.groups,name:account.group_account_user +msgid "Accountant" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_treasury_report_all +msgid "" +"From this view, have an analysis of your treasury. It sums the balance of " +"every accounting entries made on liquidity accounts per period." +msgstr "" + +#. module: account +#: field:account.journal,group_invoice_lines:0 +msgid "Group Invoice Lines" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +#: view:account.invoice.confirm:0 +msgid "Close" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,move_ids:0 +msgid "Moves" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Sale journal in this month" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_vat_declaration +#: model:ir.model,name:account.model_account_vat_declaration +msgid "Account Vat Declaration" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Price" +msgstr "" + +#. module: account +#: view:account.period:0 +msgid "To Close" +msgstr "" + +#. module: account +#: field:account.treasury.report,date:0 +msgid "Beginning of Period Date" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1351 +#, python-format +msgid "" +"You can not modify a posted entry of this journal !\n" +"You should set the journal to allow cancelling entries if you want to do " +"that." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.account_template_folder +msgid "Templates" +msgstr "" + +#. module: account +#: field:account.invoice.tax,name:0 +msgid "Tax Description" +msgstr "" + +#. module: account +#: field:account.tax,child_ids:0 +msgid "Child Tax Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1090 +#, python-format +msgid "Start period should be smaller then End period" +msgstr "" + +#. module: account +#: help:account.tax,price_include:0 +#: help:account.tax.template,price_include:0 +msgid "" +"Check this if the price you use on the product and invoices includes this " +"tax." +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +msgid "Analytic Balance -" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,target_move:0 +#: field:account.balance.report,target_move:0 +#: report:account.central.journal:0 +#: field:account.central.journal,target_move:0 +#: field:account.chart,target_move:0 +#: field:account.common.account.report,target_move:0 +#: field:account.common.journal.report,target_move:0 +#: field:account.common.partner.report,target_move:0 +#: field:account.common.report,target_move:0 +#: report:account.general.journal:0 +#: field:account.general.journal,target_move:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.move.journal,target_move:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,target_move:0 +#: field:account.partner.ledger,target_move:0 +#: field:account.print.journal,target_move:0 +#: field:account.report.general.ledger,target_move:0 +#: field:account.tax.chart,target_move:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,target_move:0 +#: field:accounting.report,target_move:0 +msgid "Target Moves" +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term_net +#: model:account.payment.term,note:account.account_payment_term_net +msgid "30 Net Days" +msgstr "" + +#. module: account +#: field:account.subscription,period_type:0 +msgid "Period Type" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,payment_ids:0 +#: selection:account.vat.declaration,based_on:0 +msgid "Payments" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Reverse Compute Code" +msgstr "" + +#. module: account +#: field:account.subscription.line,move_id:0 +msgid "Entry" +msgstr "" + +#. module: account +#: field:account.tax,python_compute_inv:0 +#: field:account.tax.template,python_compute_inv:0 +msgid "Python Code (reverse)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_payment_term_form +#: model:ir.ui.menu,name:account.menu_action_payment_term_form +msgid "Payment Terms" +msgstr "" + +#. module: account +#: help:account.chart.template,complete_tax_set:0 +msgid "" +"This boolean helps you to choose if you want to propose to the user to " +"encode the sale and purchase rates or choose from list of taxes. This last " +"choice assumes that the set of tax defined on this template is complete" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +#: field:account.financial.report,children_ids:0 +#: model:ir.model,name:account.model_account_financial_report +msgid "Account Report" +msgstr "" + +#. module: account +#: field:account.journal.column,name:0 +msgid "Column Name" +msgstr "" + +#. module: account +#: view:account.general.journal:0 +msgid "" +"This report gives you an overview of the situation of your general journals" +msgstr "" + +#. module: account +#: field:account.entries.report,year:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,year:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,year:0 +#: field:report.account.sales,name:0 +#: field:report.account_type.sales,name:0 +msgid "Year" +msgstr "" + +#. module: account +#: field:account.bank.statement,starting_details_ids:0 +msgid "Opening Cashbox" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Line 1:" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1307 +#, python-format +msgid "Integrity Error !" +msgstr "" + +#. module: account +#: field:account.tax.template,description:0 +msgid "Internal Name" +msgstr "" + +#. module: account +#: selection:account.subscription,period_type:0 +msgid "month" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,next_partner_id:0 +msgid "Next Partner to Reconcile" +msgstr "" + +#. module: account +#: field:account.invoice.tax,account_id:0 +#: field:account.move.line,tax_code_id:0 +msgid "Tax Account" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +msgid "Reconciliation Result" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_balancesheet0 +#: model:ir.ui.menu,name:account.menu_account_report_bs +msgid "Balance Sheet" +msgstr "" + +#. module: account +#: view:account.general.journal:0 +#: model:ir.ui.menu,name:account.menu_account_general_journal +msgid "General Journals" +msgstr "" + +#. module: account +#: field:account.journal,allow_date:0 +msgid "Check Date in Period" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.final_accounting_reports +msgid "Accounting Reports" +msgstr "" + +#. module: account +#: field:account.move,line_id:0 +#: view:analytic.entries.report:0 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open +#: model:ir.actions.act_window,name:account.action_move_line_form +msgid "Entries" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "This Period" +msgstr "" + +#. module: account +#: field:account.analytic.line,product_uom_id:0 +#: field:account.move.line,product_uom_id:0 +msgid "UoM" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:146 +#, python-format +msgid "No Period found on Invoice!" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Compute Code (if type=code)" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +#: view:account.journal:0 +#: selection:account.journal,type:0 +#: view:account.model:0 +#: selection:account.tax,type_tax_use:0 +#: view:account.tax.template:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "Sale" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Report" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.bank.statement.line,amount:0 +#: report:account.invoice:0 +#: field:account.invoice.tax,amount:0 +#: view:account.move:0 +#: field:account.move,amount:0 +#: view:account.move.line:0 +#: field:account.tax,amount:0 +#: field:account.tax.template,amount:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,amount:0 +msgid "Amount" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_customerinvoice0 +#: model:process.transition,name:account.process_transition_paymentorderreconcilation0 +#: model:process.transition,name:account.process_transition_statemententries0 +#: model:process.transition,name:account.process_transition_suppliercustomerinvoice0 +#: model:process.transition,name:account.process_transition_suppliervalidentries0 +#: model:process.transition,name:account.process_transition_validentries0 +msgid "Validation" +msgstr "" + +#. module: account +#: field:account.tax,child_depend:0 +#: field:account.tax.template,child_depend:0 +msgid "Tax on Children" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_tax_template +msgid "Template Tax Fiscal Position" +msgstr "" + +#. module: account +#: field:account.journal,update_posted:0 +msgid "Allow Cancelling Entries" +msgstr "" + +#. module: account +#: field:account.tax.code,sign:0 +msgid "Coefficent for parent" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic Accounts with a past deadline." +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +msgid "(Account/Partner) Name" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Transaction" +msgstr "" + +#. module: account +#: help:account.tax,base_code_id:0 +#: help:account.tax,ref_base_code_id:0 +#: help:account.tax,ref_tax_code_id:0 +#: help:account.tax,tax_code_id:0 +#: help:account.tax.template,base_code_id:0 +#: help:account.tax.template,ref_base_code_id:0 +#: help:account.tax.template,ref_tax_code_id:0 +#: help:account.tax.template,tax_code_id:0 +msgid "Use this code for the VAT declaration." +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,progress:0 +msgid "Progress" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Analytic Entries Stats" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,bank_accounts_id:0 +msgid "Cash and Banks" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_installer +msgid "account.installer" +msgstr "" + +#. module: account +#: field:account.tax.template,include_base_amount:0 +msgid "Include in Base Amount" +msgstr "" + +#. module: account +#: help:account.payment.term.line,days:0 +msgid "" +"Number of days to add before computation of the day of month.If Date=15/01, " +"Number of Days=22, Day of Month=-1, then the due date is 28/02." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Amount Computation" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Entry Controls" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +#: view:project.account.analytic.line:0 +msgid "(Keep empty to open the current situation)" +msgstr "" + +#. module: account +#: field:account.analytic.balance,date1:0 +#: field:account.analytic.cost.ledger,date1:0 +#: field:account.analytic.cost.ledger.journal.report,date1:0 +#: field:account.analytic.inverted.balance,date1:0 +#: field:account.analytic.journal.report,date1:0 +msgid "Start of period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_account_report +msgid "Account Common Account Report" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,name:0 +#: field:account.invoice,reference:0 +msgid "Communication" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_analytic_accounting +msgid "Analytic Accounting" +msgstr "" + +#. module: account +#: field:account.partner.ledger,initial_balance:0 +#: field:account.report.general.ledger,initial_balance:0 +msgid "Include Initial Balances" +msgstr "" + +#. module: account +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: selection:report.invoice.created,type:0 +msgid "Customer Refund" +msgstr "Nota de Crédito de cliente" + +#. module: account +#: constraint:account.move:0 +msgid "" +"You can not create more than one move per period on centralized journal" +msgstr "" + +#. module: account +#: field:account.tax,ref_tax_sign:0 +#: field:account.tax,tax_sign:0 +#: field:account.tax.template,ref_tax_sign:0 +#: field:account.tax.template,tax_sign:0 +msgid "Tax Code Sign" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_invoice_created +msgid "Report of Invoices Created within Last 15 days" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Number of Days: 14" +msgstr "" + +#. module: account +#: field:account.fiscalyear,end_journal_period_id:0 +msgid "End of Year Entries Journal" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3446 +#: code:addons/account/account_bank_statement.py:338 +#: code:addons/account/account_invoice.py:427 +#: code:addons/account/account_invoice.py:527 +#: code:addons/account/account_invoice.py:542 +#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:572 +#: code:addons/account/wizard/account_move_journal.py:63 +#, python-format +msgid "Configuration Error !" +msgstr "" + +#. module: account +#: field:account.payment.term.line,value_amount:0 +msgid "Amount To Pay" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,to_reconcile:0 +msgid "" +"This is the remaining partners for who you should check if there is " +"something to reconcile or not. This figure already count the current partner " +"as reconciled." +msgstr "" + +#. module: account +#: view:account.subscription.line:0 +msgid "Subscription lines" +msgstr "" + +#. module: account +#: field:account.entries.report,quantity:0 +msgid "Products Quantity" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: selection:account.entries.report,move_state:0 +#: view:account.move:0 +#: selection:account.move,state:0 +#: view:account.move.line:0 +msgid "Unposted" +msgstr "" + +#. module: account +#: view:account.change.currency:0 +#: model:ir.actions.act_window,name:account.action_account_change_currency +#: model:ir.model,name:account.model_account_change_currency +msgid "Change Currency" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "This action will erase taxes" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_accountingentries0 +#: model:process.node,note:account.process_node_supplieraccountingentries0 +msgid "Accounting entries." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Payment Date" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_account_form +#: model:ir.ui.menu,name:account.account_analytic_def_account +msgid "Analytic Accounts" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer Invoices And Refunds" +msgstr "Facturas y Notas de Crédito de clientes" + +#. module: account +#: field:account.analytic.line,amount_currency:0 +#: field:account.entries.report,amount_currency:0 +#: field:account.model.line,amount_currency:0 +#: field:account.move.line,amount_currency:0 +msgid "Amount Currency" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_validate_account_move.py:39 +#, python-format +msgid "" +"Specified Journal does not have any account move entries in draft state for " +"this period" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_move_line +msgid "Lines to reconcile" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: report:account.invoice:0 +#: field:account.invoice.line,quantity:0 +#: field:account.model.line,quantity:0 +#: field:account.move.line,quantity:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,unit_amount:0 +#: field:report.account.sales,quantity:0 +#: field:report.account_type.sales,quantity:0 +msgid "Quantity" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Number (Move)" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries during last 7 days" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Normal Text" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice Options" +msgstr "Opciones de Nota de Crédito" + +#. module: account +#: help:account.automatic.reconcile,power:0 +msgid "" +"Number of partial amounts that can be combined to find a balance point can " +"be chosen as the power of the automatic reconciliation" +msgstr "" + +#. module: account +#: help:account.payment.term.line,sequence:0 +msgid "" +"The sequence field is used to order the payment term lines from the lowest " +"sequences to the higher ones" +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +#: field:account.fiscal.position.template,name:0 +msgid "Fiscal Position Template" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +#: view:account.chart:0 +#: view:account.tax.chart:0 +msgid "Open Charts" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "" +"If no additional entries should be recorded on a fiscal year, you can close " +"it from here. It will close all opened periods in this year that will make " +"impossible any new entry record. Close a fiscal year when you need to " +"finalize your end of year results definitive " +msgstr "" + +#. module: account +#: field:account.central.journal,amount_currency:0 +#: field:account.common.journal.report,amount_currency:0 +#: field:account.general.journal,amount_currency:0 +#: field:account.partner.ledger,amount_currency:0 +#: field:account.print.journal,amount_currency:0 +#: field:account.report.general.ledger,amount_currency:0 +msgid "With Currency" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Open CashBox" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Automatic formatting" +msgstr "" + +#. module: account +#: code:addons/account/account.py:963 +#, python-format +msgid "" +"No fiscal year defined for this date !\n" +"Please create one from the configuration of the accounting menu." +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +msgid "Reconcile With Write-Off" +msgstr "" + +#. module: account +#: selection:account.payment.term.line,value:0 +#: selection:account.tax,type:0 +msgid "Fixed Amount" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Valid Up to" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Invoicing Data" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_automatic_reconcile +msgid "Account Automatic Reconcile" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Journal Item" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_journal +msgid "Move journal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close +#: model:ir.ui.menu,name:account.menu_wizard_fy_close +msgid "Generate Opening Entries" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:759 +#, python-format +msgid "Already Reconciled!" +msgstr "" + +#. module: account +#: help:account.tax,type:0 +msgid "The computation method for the tax amount." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Due Date Computation" +msgstr "" + +#. module: account +#: field:report.invoice.created,create_date:0 +msgid "Create Date" +msgstr "" + +#. module: account +#: view:account.analytic.journal:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form +#: model:ir.ui.menu,name:account.account_def_analytic_journal +msgid "Analytic Journals" +msgstr "" + +#. module: account +#: field:account.account,child_id:0 +msgid "Child Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1214 +#, python-format +msgid "Move name (id): %s (%s)" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +#: code:addons/account/account_move_line.py:857 +#, python-format +msgid "Write-Off" +msgstr "" + +#. module: account +#: field:res.partner,debit:0 +msgid "Total Payable" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_income +#: model:account.financial.report,name:account.account_financial_report_income0 +msgid "Income" +msgstr "" + +#. module: account +#: selection:account.bank.statement.line,type:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:339 +#, python-format +msgid "Supplier" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "March" +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Account Template" +msgstr "" + +#. module: account +#: report:account.journal.period.print.sale.purchase:0 +msgid "VAT" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "Account n°" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:88 +#, python-format +msgid "Free Reference" +msgstr "" + +#. module: account +#: field:account.payment.term.line,value:0 +msgid "Valuation" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,result_selection:0 +#: selection:account.common.partner.report,result_selection:0 +#: selection:account.partner.balance,result_selection:0 +#: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_partner_balance.py:301 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "" + +#. module: account +#: field:account.fiscal.position.account.template,position_id:0 +msgid "Fiscal Mapping" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_state_open +#: model:ir.model,name:account.model_account_state_open +msgid "Account State Open" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Max Qty:" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice" +msgstr "Reintegrar factura" + +#. module: account +#: field:account.invoice,address_invoice_id:0 +msgid "Invoice Address" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_entries_report_all +msgid "" +"From this view, have an analysis of your different financial accounts. The " +"document shows your debit and credit taking in consideration some criteria " +"you can choose by using the search tool." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_tax_code_list +msgid "" +"The tax code definition depends on the tax declaration of your country. " +"OpenERP allows you to define the tax structure and manage it from this menu. " +"You can define both numeric and alphanumeric tax codes." +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,progress:0 +msgid "" +"Shows you the progress made today on the reconciliation process. Given by \n" +"Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)" +msgstr "" + +#. module: account +#: help:account.payment.term.line,value:0 +msgid "" +"Select here the kind of valuation related to this payment term line. Note " +"that you should have your last line with the type 'Balance' to ensure that " +"the whole amount will be threated." +msgstr "" + +#. module: account +#: field:account.invoice,period_id:0 +#: field:account.invoice.report,period_id:0 +#: field:report.account.sales,period_id:0 +#: field:report.account_type.sales,period_id:0 +msgid "Force Period" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,filter:0 +#: field:account.balance.report,filter:0 +#: field:account.central.journal,filter:0 +#: field:account.common.account.report,filter:0 +#: field:account.common.journal.report,filter:0 +#: field:account.common.partner.report,filter:0 +#: field:account.common.report,filter:0 +#: field:account.general.journal,filter:0 +#: field:account.partner.balance,filter:0 +#: field:account.partner.ledger,filter:0 +#: field:account.print.journal,filter:0 +#: field:account.report.general.ledger,filter:0 +#: field:account.vat.declaration,filter:0 +#: field:accounting.report,filter:0 +#: field:accounting.report,filter_cmp:0 +msgid "Filter by" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2256 +#, python-format +msgid "You have a wrong expression \"%(...)s\" in your model !" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,date:0 +msgid "Entry Date" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1155 +#: code:addons/account/account_move_line.py:1238 +#, python-format +msgid "You can not use an inactive account!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:830 +#, python-format +msgid "Entries are not of the same account or already reconciled ! " +msgstr "" + +#. module: account +#: help:account.bank.statement,balance_end:0 +msgid "Balance as calculated based on Starting Balance and transaction lines" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 +#, python-format +msgid "Current currency is not configured properly !" +msgstr "" + +#. module: account +#: field:account.tax,account_collected_id:0 +#: field:account.tax.template,account_collected_id:0 +msgid "Invoice Tax Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_general_journal +#: model:ir.model,name:account.model_account_general_journal +msgid "Account General Journal" +msgstr "" + +#. module: account +#: field:account.payment.term.line,days:0 +msgid "Number of Days" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:402 +#: code:addons/account/account_invoice.py:392 +#: code:addons/account/wizard/account_period_close.py:51 +#, python-format +msgid "Invalid action !" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:102 +#, python-format +msgid "Period: %s" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_review_financial_journals_installer +msgid "Review your Financial Journals" +msgstr "" + +#. module: account +#: help:account.tax,name:0 +msgid "This name will be displayed on reports" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Printing date" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 +msgid "None" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 365 Days " +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree3 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree3 +msgid "Customer Refunds" +msgstr "Notas de Crédito de clientes" + +#. module: account +#: field:account.account,foreign_balance:0 +msgid "Foreign Balance" +msgstr "" + +#. module: account +#: field:account.journal.period,name:0 +msgid "Journal-Period Name" +msgstr "" + +#. module: account +#: field:account.invoice.tax,factor_base:0 +msgid "Multipication factor for Base code" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_common.py:150 +#, python-format +msgid "not implemented" +msgstr "" + +#. module: account +#: help:account.journal,company_id:0 +msgid "Company related to this journal" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_state.py:44 +#, python-format +msgid "" +"Selected Invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-" +"Forma' state!" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Running Subscription" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Fiscal Position Remark :" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +#: model:ir.actions.act_window,name:account.action_analytic_entries_report +#: model:ir.ui.menu,name:account.menu_action_analytic_entries_report +msgid "Analytic Entries Analysis" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,direction_selection:0 +msgid "Past" +msgstr "" + +#. module: account +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" + +#. module: account +#: help:res.partner.bank,journal_id:0 +msgid "" +"This journal will be created automatically for this bank account when you " +"save the record" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Entry" +msgstr "" + +#. module: account +#: view:res.company:0 +#: field:res.company,overdue_msg:0 +msgid "Overdue Payments Message" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_all_a +msgid "" +"This view can be used by accountants in order to quickly record entries in " +"OpenERP. If you want to record a supplier invoice, start by recording the " +"line of the expense account. OpenERP will propose to you automatically the " +"Tax related to this account and the counterpart \"Account Payable\"." +msgstr "" + +#. module: account +#: field:account.entries.report,date_created:0 +msgid "Date Created" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form +msgid "account.analytic.line.extended" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "(keep empty to use the current period)" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_supplierreconcilepaid0 +msgid "" +"As soon as the reconciliation is done, the invoice's state turns to “done” " +"(i.e. paid) in the system." +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,account_root_id:0 +msgid "Root Account" +msgstr "" + +#. module: account +#: field:res.partner,last_reconciliation_date:0 +msgid "Latest Reconciliation Date" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: account +#: field:product.template,taxes_id:0 +msgid "Customer Taxes" +msgstr "" + +#. module: account +#: help:account.model,name:0 +msgid "This is a model for recurring accounting entries" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,sale_tax_rate:0 +msgid "Sales Tax(%)" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +msgid "Create an Account Based on this Template" +msgstr "" + +#. module: account +#: view:account.account.type:0 +#: view:account.tax.code:0 +msgid "Reporting Configuration" +msgstr "" + +#. module: account +#: field:account.tax,type:0 +#: field:account.tax.template,type:0 +msgid "Tax Type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_template_form +#: model:ir.ui.menu,name:account.menu_action_account_template_form +msgid "Account Templates" +msgstr "" + +#. module: account +#: help:wizard.multi.charts.accounts,complete_tax_set:0 +msgid "" +"This boolean helps you to choose if you want to propose to the user to " +"encode the sales and purchase rates or use the usual m2o fields. This last " +"choice assumes that the set of tax defined for the chosen template is " +"complete" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Tax Statement" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_res_company +msgid "Companies" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Open and Paid Invoices" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "Display children flat" +msgstr "" + +#. module: account +#: code:addons/account/account.py:629 +#, python-format +msgid "" +"You can not remove/desactivate an account which is set on a customer or " +"supplier." +msgstr "" + +#. module: account +#: help:account.fiscalyear.close.state,fy_id:0 +msgid "Select a fiscal year to close" +msgstr "" + +#. module: account +#: help:account.chart.template,tax_template_ids:0 +msgid "List of all the taxes that have to be installed by the wizard" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_intracom +msgid "IntraCom" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile.writeoff:0 +msgid "Information addendum" +msgstr "" + +#. module: account +#: field:account.chart,fiscalyear:0 +msgid "Fiscal year" +msgstr "" + +#. module: account +#: view:account.move.reconcile:0 +msgid "Partial Reconcile Entries" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +#: view:account.aged.trial.balance:0 +#: view:account.analytic.balance:0 +#: view:account.analytic.chart:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.cost.ledger.journal.report:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: view:account.automatic.reconcile:0 +#: view:account.bank.statement:0 +#: view:account.change.currency:0 +#: view:account.chart:0 +#: view:account.common.report:0 +#: view:account.fiscalyear.close:0 +#: view:account.fiscalyear.close.state:0 +#: view:account.invoice:0 +#: view:account.invoice.refund:0 +#: view:account.journal.select:0 +#: view:account.move:0 +#: view:account.move.bank.reconcile:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.select:0 +#: view:account.move.line.reconcile.writeoff:0 +#: view:account.move.line.unreconcile.select:0 +#: view:account.open.closed.fiscalyear:0 +#: view:account.partner.reconcile.process:0 +#: view:account.period.close:0 +#: view:account.subscription.generate:0 +#: view:account.tax.chart:0 +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +#: view:account.use.model:0 +#: view:account.vat.declaration:0 +#: code:addons/account/wizard/account_move_journal.py:105 +#: view:project.account.analytic.line:0 +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +#, python-format +msgid "Cancel" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: model:account.account.type,name:account.data_account_type_receivable +#: selection:account.entries.report,type:0 +msgid "Receivable" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Other Info" +msgstr "" + +#. module: account +#: field:account.journal,default_credit_account_id:0 +msgid "Default Credit Account" +msgstr "" + +#. module: account +#: help:account.analytic.line,currency_id:0 +msgid "The related account currency if not equal to the company one." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Current" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "CashBox" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.account_type_cash_equity +msgid "Equity" +msgstr "" + +#. module: account +#: selection:account.tax,type:0 +msgid "Percentage" +msgstr "" + +#. module: account +#: selection:account.report.general.ledger,sortby:0 +msgid "Journal & Partner" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,power:0 +msgid "Power" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3368 +#, python-format +msgid "Cannot generate an unused journal code." +msgstr "" + +#. module: account +#: view:project.account.analytic.line:0 +msgid "View Account Analytic Lines" +msgstr "" + +#. module: account +#: field:account.invoice,internal_number:0 +#: field:report.invoice.created,number:0 +msgid "Invoice Number" +msgstr "" + +#. module: account +#: help:account.tax,include_base_amount:0 +msgid "" +"Indicates if the amount of tax must be included in the base amount for the " +"computation of the next taxes" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_partner_reconcile +msgid "Reconciliation: Go to Next Partner" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance +#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance +msgid "Inverted Analytic Balance" +msgstr "" + +#. module: account +#: field:account.tax.template,applicable_type:0 +msgid "Applicable Type" +msgstr "" + +#. module: account +#: field:account.invoice.line,invoice_id:0 +msgid "Invoice Reference" +msgstr "" + +#. module: account +#: help:account.tax.template,sequence:0 +msgid "" +"The sequence field is used to order the taxes lines from lower sequences to " +"higher ones. The order is important if you have a tax that has several tax " +"children. In this case, the evaluation order is important." +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: view:account.journal:0 +msgid "Liquidity" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form +#: model:ir.ui.menu,name:account.account_analytic_journal_entries +msgid "Analytic Journal Items" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "" +"This wizard will generate the end of year journal entries of selected fiscal " +"year. Note that you can run this wizard many times for the same fiscal year: " +"it will simply replace the old opening entries with the new ones." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash +msgid "Bank and Cash" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_analytic_entries_report +msgid "" +"From this view, have an analysis of your different analytic entries " +"following the analytic account you defined matching your business need. Use " +"the tool search to analyse information about analytic entries generated in " +"the system." +msgstr "" + +#. module: account +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "" + +#. module: account +#: field:account.account.template,nocreate:0 +msgid "Optional create" +msgstr "" + +#. module: account +#: code:addons/account/account.py:664 +#, python-format +msgid "" +"You cannot change the owner company of an account that already contains " +"journal items." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_aged_partner_balance.py:58 +#, python-format +msgid "Enter a Start date !" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: selection:report.invoice.created,type:0 +msgid "Supplier Refund" +msgstr "Nota de Crédito de proveedor" + +#. module: account +#: field:account.bank.statement,move_line_ids:0 +msgid "Entry lines" +msgstr "" + +#. module: account +#: field:account.move.line,centralisation:0 +msgid "Centralisation" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.analytic.account:0 +#: view:account.analytic.journal:0 +#: view:account.analytic.line:0 +#: view:account.bank.statement:0 +#: view:account.chart.template:0 +#: view:account.entries.report:0 +#: view:account.financial.report:0 +#: view:account.fiscalyear:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: view:account.journal:0 +#: view:account.model:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.subscription:0 +#: view:account.tax.code.template:0 +#: view:analytic.entries.report:0 +msgid "Group By..." +msgstr "" + +#. module: account +#: field:account.journal.column,readonly:0 +msgid "Readonly" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Valuation: Balance" +msgstr "" + +#. module: account +#: field:account.invoice.line,uos_id:0 +msgid "Unit of Measure" +msgstr "" + +#. module: account +#: constraint:account.payment.term.line:0 +msgid "" +"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for " +"2% " +msgstr "" + +#. module: account +#: field:account.installer,has_default_company:0 +msgid "Has Default Company" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_sequence_fiscalyear +msgid "account.sequence.fiscalyear" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: view:account.analytic.journal:0 +#: field:account.analytic.line,journal_id:0 +#: field:account.journal,analytic_journal_id:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_journal +#: model:ir.actions.report.xml,name:account.analytic_journal_print +#: model:ir.model,name:account.model_account_analytic_journal +msgid "Analytic Journal" +msgstr "" + +#. module: account +#: code:addons/account/account.py:622 +#, python-format +msgid "You can not desactivate an account that contains some journal items." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Reconciled" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.tax,base:0 +msgid "Base" +msgstr "" + +#. module: account +#: field:account.model,name:0 +msgid "Model Name" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense_categ:0 +msgid "Expense Category Account" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Cash Transactions" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_state_open.py:37 +#, python-format +msgid "Invoice is already reconciled" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement.line,note:0 +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,note:0 +#: field:account.fiscal.position.template,note:0 +#: view:account.invoice.line:0 +#: field:account.invoice.line,note:0 +msgid "Notes" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_analytic_entries_report +msgid "Analytic Entries Statistics" +msgstr "" + +#. module: account +#: code:addons/account/account.py:624 +#, python-format +msgid "You can not remove an account containing journal items." +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:145 +#: code:addons/account/account_move_line.py:933 +#, python-format +msgid "Entries: " +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create manual recurring entries in a chosen journal." +msgstr "" + +#. module: account +#: help:res.partner.bank,currency_id:0 +msgid "Currency of the related account journal." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1563 +#, python-format +msgid "Couldn't create move between different companies" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_type_form +msgid "" +"An account type is used to determine how an account is used in each journal. " +"The deferral method of an account type determines the process for the annual " +"closing. Reports such as the Balance Sheet and the Profit and Loss report " +"use the category (profit/loss or balance sheet). For example, the account " +"type could be linked to an asset account, expense account or payable " +"account. From this view, you can create and manage the account types you " +"need for your company." +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:183 +#, python-format +msgid "Balance Sheet (Asset account)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_bank_reconcile_tree +msgid "" +"Bank Reconciliation consists of verifying that your bank statement " +"corresponds with the entries (or records) of that account in your accounting " +"system." +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_draftstatement0 +msgid "State is draft" +msgstr "" + +#. module: account +#: view:account.move.line:0 +#: code:addons/account/account_move_line.py:1043 +#, python-format +msgid "Total debit" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:808 +#, python-format +msgid "Entry \"%s\" is not valid !" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Fax :" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "" +"This will automatically configure your chart of accounts, bank accounts, " +"taxes and journals according to the selected template" +msgstr "" + +#. module: account +#: help:res.partner,property_account_receivable:0 +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: account +#: field:account.tax,python_applicable:0 +#: field:account.tax,python_compute:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,applicable_type:0 +#: field:account.tax.template,python_applicable:0 +#: field:account.tax.template,python_compute:0 +#: selection:account.tax.template,type:0 +msgid "Python Code" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Journal Entries with period in current period" +msgstr "" + +#. module: account +#: help:account.journal,update_posted:0 +msgid "" +"Check this box if you want to allow the cancellation the entries related to " +"this journal or of the invoice related to this journal" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "Create" +msgstr "" + +#. module: account +#: model:process.transition.action,name:account.process_transition_action_createentries0 +msgid "Create entry" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:182 +#, python-format +msgid "Profit & Loss (Expense account)" +msgstr "" + +#. module: account +#: code:addons/account/account.py:622 +#: code:addons/account/account.py:624 +#: code:addons/account/account.py:963 +#: code:addons/account/account.py:1052 +#: code:addons/account/account.py:1129 +#: code:addons/account/account.py:1344 +#: code:addons/account/account.py:1351 +#: code:addons/account/account.py:2280 +#: code:addons/account/account.py:2596 +#: code:addons/account/account_analytic_line.py:92 +#: code:addons/account/account_analytic_line.py:101 +#: code:addons/account/account_bank_statement.py:301 +#: code:addons/account/account_bank_statement.py:314 +#: code:addons/account/account_bank_statement.py:352 +#: code:addons/account/account_cash_statement.py:292 +#: code:addons/account/account_cash_statement.py:314 +#: code:addons/account/account_invoice.py:808 +#: code:addons/account/account_invoice.py:839 +#: code:addons/account/account_invoice.py:1030 +#: code:addons/account/account_move_line.py:1200 +#: code:addons/account/account_move_line.py:1216 +#: code:addons/account/account_move_line.py:1218 +#: code:addons/account/wizard/account_invoice_refund.py:108 +#: code:addons/account/wizard/account_invoice_refund.py:110 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39 +#: code:addons/account/wizard/account_use_model.py:44 +#, python-format +msgid "Error !" +msgstr "" + +#. module: account +#: field:account.financial.report,style_overwrite:0 +msgid "Financial Report Style" +msgstr "" + +#. module: account +#: selection:account.financial.report,sign:0 +msgid "Preserve balance sign" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +#: model:ir.actions.report.xml,name:account.account_vat_declaration +#: model:ir.ui.menu,name:account.menu_account_vat_declaration +msgid "Taxes Report" +msgstr "" + +#. module: account +#: selection:account.journal.period,state:0 +msgid "Printed" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:584 +#: code:addons/account/account_move_line.py:591 +#, python-format +msgid "Error :" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Project line" +msgstr "" + +#. module: account +#: field:account.invoice.tax,manual:0 +msgid "Manual" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +msgid "" +"For an invoice to be considered as paid, the invoice entries must be " +"reconciled with counterparts, usually payments. With the automatic " +"reconciliation functionality, OpenERP makes its own search for entries to " +"reconcile in a series of accounts. It finds entries for each partner where " +"the amounts correspond." +msgstr "" + +#. module: account +#: view:account.move:0 +#: field:account.move,to_check:0 +msgid "To Review" +msgstr "" + +#. module: account +#: help:account.partner.ledger,initial_balance:0 +#: help:account.report.general.ledger,initial_balance:0 +msgid "" +"If you selected to filter by date or period, this field allow you to add a " +"row to display the amount of debit/credit/balance that precedes the filter " +"you've set." +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.move:0 +#: model:ir.actions.act_window,name:account.action_move_journal_line +#: model:ir.ui.menu,name:account.menu_action_move_journal_line_form +#: model:ir.ui.menu,name:account.menu_finance_entries +msgid "Journal Entries" +msgstr "" + +#. module: account +#: help:account.partner.ledger,page_split:0 +msgid "Display Ledger Report with One partner per page" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1218 +#, python-format +msgid "" +"You can not do this modification on a reconciled entry! You can just change " +"some non legal fields or you must unreconcile first!\n" +"%s" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "JRNL" +msgstr "" + +#. module: account +#: view:account.partner.balance:0 +#: view:account.partner.ledger:0 +msgid "" +"This report is an analysis done by a partner. It is a PDF report containing " +"one line per partner representing the cumulative credit balance" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_validate_account_move.py:61 +#, python-format +msgid "" +"Selected Entry Lines does not have any account move enties in draft state" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,target_move:0 +#: selection:account.balance.report,target_move:0 +#: selection:account.central.journal,target_move:0 +#: selection:account.chart,target_move:0 +#: selection:account.common.account.report,target_move:0 +#: selection:account.common.journal.report,target_move:0 +#: selection:account.common.partner.report,target_move:0 +#: selection:account.common.report,target_move:0 +#: selection:account.general.journal,target_move:0 +#: selection:account.move.journal,target_move:0 +#: selection:account.partner.balance,target_move:0 +#: selection:account.partner.ledger,target_move:0 +#: selection:account.print.journal,target_move:0 +#: selection:account.report.general.ledger,target_move:0 +#: selection:account.tax.chart,target_move:0 +#: selection:account.vat.declaration,target_move:0 +#: selection:accounting.report,target_move:0 +#: code:addons/account/report/common_report_header.py:67 +#, python-format +msgid "All Entries" +msgstr "" + +#. module: account +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "" + +#. module: account +#: view:account.journal.select:0 +msgid "Journal Select" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: code:addons/account/account.py:420 +#: code:addons/account/account.py:432 +#, python-format +msgid "Opening Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_reconcile +msgid "Account Reconciliation" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_tax +msgid "Taxes Fiscal Position" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.report.general.ledger:0 +#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu +#: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape +#: model:ir.ui.menu,name:account.menu_general_ledger +msgid "General Ledger" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentorderbank0 +msgid "The payment order is sent to the bank." +msgstr "" + +#. module: account +#: view:account.balance.report:0 +msgid "" +"This report allows you to print or generate a pdf of your trial balance " +"allowing you to quickly check the balance of each of your accounts in a " +"single report" +msgstr "" + +#. module: account +#: help:account.move,to_check:0 +msgid "" +"Check this box if you are unsure of that journal entry and if you want to " +"note it as 'to be reviewed' by an accounting expert." +msgstr "" + +#. module: account +#: field:account.chart.template,complete_tax_set:0 +#: field:wizard.multi.charts.accounts,complete_tax_set:0 +msgid "Complete Set of Taxes" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Properties" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_tax_chart +msgid "Account tax chart" +msgstr "" + +#. module: account +#: constraint:res.partner.bank:0 +msgid "" +"\n" +"Please define BIC/Swift code on bank for bank type IBAN Account to make " +"valid payments" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: report:account.central.journal:0 +#: report:account.general.journal:0 +#: report:account.invoice:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: report:account.partner.balance:0 +msgid "Total:" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2229 +#, python-format +msgid "" +"You can specify year, month and date in the name of the model using the " +"following labels:\n" +"\n" +"%(year)s: To Specify Year \n" +"%(month)s: To Specify Month \n" +"%(date)s: Current Date\n" +"\n" +"e.g. My model on %(date)s" +msgstr "" + +#. module: account +#: help:report.invoice.created,origin:0 +msgid "Reference of the document that generated this invoice report." +msgstr "" + +#. module: account +#: field:account.tax.code,child_ids:0 +#: field:account.tax.code.template,child_ids:0 +msgid "Child Codes" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Taxes used in Sales" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:495 +#: code:addons/account/wizard/account_invoice_refund.py:145 +#, python-format +msgid "Data Insufficient !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree1 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree1 +msgid "Customer Invoices" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,writeoff:0 +msgid "Write-Off amount" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Sales" +msgstr "" + +#. module: account +#: view:account.journal.column:0 +#: model:ir.model,name:account.model_account_journal_column +msgid "Journal Column" +msgstr "" + +#. module: account +#: selection:account.invoice.report,state:0 +#: selection:account.journal.period,state:0 +#: selection:account.subscription,state:0 +#: selection:report.invoice.created,state:0 +msgid "Done" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_bank_tree +msgid "" +"Configure your company's bank account and select those that must appear on " +"the report footer. You can reorder banks in the list view. If you use the " +"accounting application of OpenERP, journals and accounts will be created " +"automatically based on these data." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_invoicemanually0 +msgid "A statement with manual entries becomes a draft statement." +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +msgid "" +"Aged Partner Balance is a more detailed report of your receivables by " +"intervals. When opening that report, OpenERP asks for the name of the " +"company, the fiscal period and the size of the interval to be analyzed (in " +"days). OpenERP then calculates a table of credit balance by period. So if " +"you request an interval of 30 days OpenERP generates an analysis of " +"creditors for the past month, past two months, and so on. " +msgstr "" + +#. module: account +#: field:account.invoice,origin:0 +#: field:report.invoice.created,origin:0 +msgid "Source Document" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1432 +#, python-format +msgid "You can not delete a posted journal entry \"%s\"!" +msgstr "" + +#. module: account +#: selection:account.partner.ledger,filter:0 +#: code:addons/account/report/account_partner_ledger.py:59 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled +#, python-format +msgid "Unreconciled Entries" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_menu_Bank_process +msgid "Statements Reconciliation" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_accounting_report +msgid "Accounting Report" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Taxes:" +msgstr "" + +#. module: account +#: help:account.tax,amount:0 +msgid "For taxes of type percentage, enter % ratio between 0-1." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_subscription_form +msgid "" +"A recurring entry is a miscellaneous entry that occurs on a recurrent basis " +"from a specific date, i.e. corresponding to the signature of a contract or " +"an agreement with a customer or a supplier. With Define Recurring Entries, " +"you can create such entries to automate the postings in the system." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy +msgid "Financial Reports Hierarchy" +msgstr "" + +#. module: account +#: field:account.entries.report,product_uom_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,product_uom_id:0 +msgid "Product UOM" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree +msgid "" +"A Cash Register allows you to manage cash entries in your cash journals. " +"This feature provides an easy way to follow up cash payments on a daily " +"basis. You can enter the coins that are in your cash box, and then post " +"entries when money comes in or goes out of the cash box." +msgstr "" + +#. module: account +#: help:account.invoice.refund,date:0 +msgid "" +"This date will be used as the invoice date for Refund Invoice and Period " +"will be chosen accordingly!" +msgstr "" +"Esta fecha se utilizará como la fecha de facturación de la Nota de Crédito y " +"el período será elegido en consecuencia." + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation +msgid "Monthly Turnover" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Analytic Lines" +msgstr "" + +#. module: account +#: field:account.analytic.journal,line_ids:0 +#: field:account.tax.code,line_ids:0 +msgid "Lines" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Account Tax Template" +msgstr "" + +#. module: account +#: view:account.journal.select:0 +msgid "Are you sure you want to open Journal Entries?" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "Are you sure you want to open this invoice ?" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:528 +#: code:addons/account/account_invoice.py:543 +#, python-format +msgid "" +"Can not find a chart of account, you should create one from the " +"configuration of the accounting menu." +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense_opening:0 +msgid "Opening Entries Expense Account" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:999 +#, python-format +msgid "Accounting Entries" +msgstr "" + +#. module: account +#: field:account.account.template,parent_id:0 +msgid "Parent Account Template" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_configuration_installer +msgid "Configure your Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement.line,statement_id:0 +#: field:account.move.line,statement_id:0 +#: model:process.process,name:account.process_process_statementprocess0 +msgid "Statement" +msgstr "" + +#. module: account +#: help:account.journal,default_debit_account_id:0 +msgid "It acts as a default account for debit amount" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_period_tree +msgid "" +"You can search for individual account entries through useful information. To " +"search for account entries, open a journal, then select a record line." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Posted entries" +msgstr "" + +#. module: account +#: help:account.payment.term.line,value_amount:0 +msgid "For percent enter a ratio between 0-1." +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: field:account.invoice,date_invoice:0 +#: field:report.invoice.created,date_invoice:0 +msgid "Invoice Date" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by year of Invoice Date" +msgstr "" + +#. module: account +#: help:res.partner,credit:0 +msgid "Total amount this customer owes you." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_ir_sequence +msgid "ir.sequence" +msgstr "" + +#. module: account +#: field:account.journal.period,icon:0 +msgid "Icon" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.use.model:0 +msgid "Ok" +msgstr "" + +#. module: account +#: field:account.chart.template,tax_code_root_id:0 +msgid "Root Tax Code" +msgstr "" + +#. module: account +#: help:account.journal,centralisation:0 +msgid "" +"Check this box to determine that each entry of this journal won't create a " +"new counterpart but will share the same counterpart. This is used in fiscal " +"year closing." +msgstr "" + +#. module: account +#: field:account.bank.statement,closing_date:0 +msgid "Closed On" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,date2:0 +msgid "Ending Date" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,purchase_tax:0 +msgid "Default Purchase Tax" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income_opening:0 +msgid "Opening Entries Income Account" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Confirm" +msgstr "" + +#. module: account +#: help:account.tax,domain:0 +#: help:account.tax.template,domain:0 +msgid "" +"This field is only used if you develop your own module allowing developers " +"to create specific taxes in a custom domain." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1088 +#, python-format +msgid "You should have chosen periods that belongs to the same company" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_review_payment_terms_installer +msgid "Review your Payment Terms" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,report_name:0 +msgid "Name of new entries" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create Entries" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Information About the Bank" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_reporting +msgid "Reporting" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:759 +#: code:addons/account/account_move_line.py:842 +#: code:addons/account/wizard/account_invoice_state.py:44 +#: code:addons/account/wizard/account_invoice_state.py:68 +#: code:addons/account/wizard/account_state_open.py:37 +#: code:addons/account/wizard/account_validate_account_move.py:39 +#: code:addons/account/wizard/account_validate_account_move.py:61 +#, python-format +msgid "Warning" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_analytic_open +msgid "Contracts/Analytic Accounts" +msgstr "" + +#. module: account +#: field:account.bank.statement,ending_details_ids:0 +msgid "Closing Cashbox" +msgstr "" + +#. module: account +#: view:account.journal:0 +#: field:res.partner.bank,journal_id:0 +msgid "Account Journal" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_paidinvoice0 +#: model:process.node,name:account.process_node_supplierpaidinvoice0 +msgid "Paid invoice" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,next_partner_id:0 +msgid "" +"This field shows you the next partner that will be automatically chosen by " +"the system to go through the reconciliation process, based on the latest day " +"it have been reconciled." +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,comment:0 +msgid "Comment" +msgstr "" + +#. module: account +#: field:account.tax,domain:0 +#: field:account.tax.template,domain:0 +msgid "Domain" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_use_model +msgid "Use model" +msgstr "" + +#. module: account +#: code:addons/account/account.py:429 +#, python-format +msgid "Unable to adapt the initial balance (negative value)!" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_purchase +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. If you want to record a supplier invoice, start by recording the " +"line of the expense account, OpenERP will propose to you automatically the " +"Tax related to this account and the counter-part \"Account Payable\"." +msgstr "" + +#. module: account +#: view:account.invoice.line:0 +#: field:account.invoice.tax,invoice_id:0 +#: model:ir.model,name:account.model_account_invoice_line +msgid "Invoice Line" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer And Supplier Refunds" +msgstr "Devoluciones de clientes y proveedores" + +#. module: account +#: field:account.financial.report,sign:0 +msgid "Sign on Reports" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:73 +#, python-format +msgid "The periods to generate opening entries were not found" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_view +msgid "Root/View" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3121 +#, python-format +msgid "OPEJ" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +msgid "PRO-FORMA" +msgstr "" + +#. module: account +#: selection:account.entries.report,move_line_state:0 +#: view:account.move.line:0 +#: selection:account.move.line,state:0 +msgid "Unbalanced" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Normal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_email_templates +#: model:ir.ui.menu,name:account.menu_email_templates +msgid "Email Templates" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Optional Information" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:84 +#, python-format +msgid "The journal must have default credit and debit account" +msgstr "" + +#. module: account +#: report:account.general.journal:0 +msgid ":" +msgstr "" + +#. module: account +#: selection:account.account,currency_mode:0 +msgid "At Date" +msgstr "" + +#. module: account +#: help:account.move.line,date_maturity:0 +msgid "" +"This field is used for payable and receivable journal entries. You can put " +"the limit date for the payment of this line." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_multi_currency +msgid "Multi-Currencies" +msgstr "" + +#. module: account +#: field:account.model.line,date_maturity:0 +msgid "Maturity Date" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1302 +#, python-format +msgid "Bad account !" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3108 +#, python-format +msgid "Sales Journal" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:104 +#, python-format +msgid "Open Journal Items !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_tax +msgid "Invoice Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1277 +#, python-format +msgid "No piece number !" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy +msgid "Account Reports Hierarchy" +msgstr "" + +#. module: account +#: help:account.account.template,chart_template_id:0 +msgid "" +"This optional field allow you to link an account template to a specific " +"chart template that may differ from the one its root parent belongs to. This " +"allow you to define chart templates that extend another and complete it with " +"few new accounts (You don't need to define the whole structure that is " +"common to both several times)." +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Unposted Journal Entries" +msgstr "" + +#. module: account +#: view:product.product:0 +#: view:product.template:0 +msgid "Sales Properties" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_manual_reconcile +msgid "Manual Reconciliation" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Total amount due:" +msgstr "" + +#. module: account +#: field:account.analytic.chart,to_date:0 +#: field:project.account.analytic.line,to_date:0 +msgid "To" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +#: code:addons/account/account.py:1518 +#, python-format +msgid "Currency Adjustment" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,fy_id:0 +#: field:account.fiscalyear.close.state,fy_id:0 +msgid "Fiscal Year to close" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_cancel +msgid "Cancel Selected Invoices" +msgstr "" + +#. module: account +#: help:account.account.type,report_type:0 +msgid "" +"This field is used to generate legal reports: profit and loss, balance sheet." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_review_payment_terms_installer +msgid "" +"Payment terms define the conditions to pay a customer or supplier invoice in " +"one or several payments. Customers periodic reminders will use the payment " +"terms for each letter. Each customer or supplier can be assigned to one of " +"these payment terms." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "May" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: selection:account.aged.trial.balance,result_selection:0 +#: selection:account.common.partner.report,result_selection:0 +#: selection:account.partner.balance,result_selection:0 +#: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_partner_balance.py:299 +#, python-format +msgid "Payable Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:732 +#, python-format +msgid "Global taxes defined, but they are not in invoice lines !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_chart_template +msgid "Templates for Account Chart" +msgstr "" + +#. module: account +#: help:account.model.line,sequence:0 +msgid "" +"The sequence field is used to order the resources from lower sequences to " +"higher ones." +msgstr "" + +#. module: account +#: field:account.tax.code,code:0 +#: field:account.tax.code.template,code:0 +msgid "Case Code" +msgstr "" + +#. module: account +#: view:validate.account.move:0 +msgid "Post Journal Entries of a Journal" +msgstr "" + +#. module: account +#: view:product.product:0 +msgid "Sale Taxes" +msgstr "" + +#. module: account +#: field:account.financial.report,name:0 +msgid "Report Name" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_cash +#: selection:account.analytic.journal,type:0 +#: selection:account.bank.accounts.wizard,account_type:0 +#: selection:account.entries.report,type:0 +#: selection:account.journal,type:0 +#: code:addons/account/account.py:3003 +#, python-format +msgid "Cash" +msgstr "" + +#. module: account +#: field:account.fiscal.position.account,account_dest_id:0 +#: field:account.fiscal.position.account.template,account_dest_id:0 +msgid "Account Destination" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1431 +#: code:addons/account/account.py:1460 +#: code:addons/account/account.py:1467 +#: code:addons/account/account_invoice.py:920 +#: code:addons/account/account_move_line.py:1104 +#: code:addons/account/wizard/account_automatic_reconcile.py:152 +#: code:addons/account/wizard/account_fiscalyear_close.py:73 +#: code:addons/account/wizard/account_fiscalyear_close.py:83 +#: code:addons/account/wizard/account_fiscalyear_close.py:86 +#: code:addons/account/wizard/account_move_journal.py:165 +#: code:addons/account/wizard/account_report_aged_partner_balance.py:56 +#: code:addons/account/wizard/account_report_aged_partner_balance.py:58 +#, python-format +msgid "UserError" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierpaymentorder0 +msgid "Payment of invoices" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,sequence:0 +#: field:account.financial.report,sequence:0 +#: field:account.invoice.tax,sequence:0 +#: view:account.journal:0 +#: field:account.journal.column,sequence:0 +#: field:account.model.line,sequence:0 +#: field:account.payment.term.line,sequence:0 +#: field:account.sequence.fiscalyear,sequence_id:0 +#: field:account.tax,sequence:0 +#: field:account.tax.code,sequence:0 +#: field:account.tax.template,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: account +#: constraint:product.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: account +#: help:account.model.line,quantity:0 +msgid "The optional quantity on entries." +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Parent Report" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "Yes" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "Sales by Account type" +msgstr "" + +#. module: account +#: help:account.invoice,move_id:0 +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: account +#: selection:account.installer,period:0 +msgid "Monthly" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_view +msgid "" +"Here you can customize an existing journal view or create a new view. " +"Journal views determine the way you can record entries in your journal. " +"Select the fields you want to appear in a journal and determine the sequence " +"in which they will appear. Then you can create a new journal and link your " +"view to it." +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_asset +msgid "Asset" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 7 Days " +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_end:0 +msgid "Computed Balance" +msgstr "" + +#. module: account +#: field:account.account,parent_id:0 +#: field:account.financial.report,parent_id:0 +msgid "Parent" +msgstr "" + +#. module: account +#: help:account.payment.term.line,days2:0 +msgid "" +"Day of the month, set -1 for the last day of the current month. If it's " +"positive, it gives the day of the next month. Set 0 for net days (otherwise " +"it's based on the beginning of the month)." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_legal_statement +msgid "Legal Reports" +msgstr "" + +#. module: account +#: field:account.tax.code,sum_period:0 +msgid "Period Sum" +msgstr "" + +#. module: account +#: help:account.tax,sequence:0 +msgid "" +"The sequence field is used to order the tax lines from the lowest sequences " +"to the higher ones. The order is important if you have a tax with several " +"tax children. In this case, the evaluation order is important." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_cashbox_line +msgid "CashBox Line" +msgstr "" + +#. module: account +#: view:account.partner.ledger:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger +#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other +#: model:ir.ui.menu,name:account.menu_account_partner_ledger +msgid "Partner Ledger" +msgstr "" + +#. module: account +#: selection:account.tax.template,type:0 +msgid "Fixed" +msgstr "" + +#. module: account +#: code:addons/account/account.py:629 +#: code:addons/account/account.py:642 +#: code:addons/account/account.py:645 +#: code:addons/account/account.py:664 +#: code:addons/account/account.py:787 +#: code:addons/account/account.py:1077 +#: code:addons/account/account_invoice.py:732 +#: code:addons/account/account_invoice.py:735 +#: code:addons/account/account_invoice.py:738 +#: code:addons/account/account_move_line.py:97 +#: code:addons/account/account_move_line.py:750 +#: code:addons/account/account_move_line.py:803 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: account +#: field:account.entries.report,move_line_state:0 +msgid "State of Move Line" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile +msgid "Account move line reconcile" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +#: model:ir.model,name:account.model_account_subscription_generate +msgid "Subscription Compute" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,partner_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,partner_id:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.invoice:0 +#: field:account.invoice,partner_id:0 +#: field:account.invoice.line,partner_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,partner_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,partner_id:0 +#: view:account.move:0 +#: field:account.move,partner_id:0 +#: view:account.move.line:0 +#: field:account.move.line,partner_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,partner_id:0 +#: model:ir.model,name:account.model_res_partner +#: field:report.invoice.created,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: account +#: help:account.change.currency,currency_id:0 +msgid "Select a currency to apply on the invoice" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3446 +#, python-format +msgid "" +"The bank account defined on the selected chart of accounts hasn't a code." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:108 +#, python-format +msgid "Can not %s draft/proforma/cancel invoice." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:810 +#, python-format +msgid "No Invoice Lines !" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Report Type" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,state:0 +#: field:account.entries.report,move_state:0 +#: view:account.fiscalyear:0 +#: field:account.fiscalyear,state:0 +#: view:account.invoice:0 +#: field:account.invoice,state:0 +#: view:account.invoice.report:0 +#: field:account.journal.period,state:0 +#: field:account.move,state:0 +#: view:account.move.line:0 +#: field:account.move.line,state:0 +#: field:account.period,state:0 +#: view:account.subscription:0 +#: field:account.subscription,state:0 +#: field:report.invoice.created,state:0 +msgid "State" +msgstr "" + +#. module: account +#: help:account.open.closed.fiscalyear,fyear_id:0 +msgid "" +"Select Fiscal Year which you want to remove entries for its End of year " +"entries journal" +msgstr "" + +#. module: account +#: field:account.tax.template,type_tax_use:0 +msgid "Tax Use In" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:315 +#, python-format +msgid "" +"The statement balance is incorrect !\n" +"The expected balance (%.2f) is different than the computed one. (%.2f)" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:353 +#, python-format +msgid "The account entries lines are not in valid state." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_analytic_account_tree2 +msgid "" +"The normal chart of accounts has a structure defined by the legal " +"requirement of the country. The analytic chart of accounts structure should " +"reflect your own business needs in term of costs/revenues reporting. They " +"are usually structured by contracts, projects, products or departements. " +"Most of the OpenERP operations (invoices, timesheets, expenses, etc) " +"generate analytic entries on the related account." +msgstr "" + +#. module: account +#: field:account.account.type,close_method:0 +msgid "Deferral Method" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:379 +#, python-format +msgid "Invoice '%s' is paid." +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_electronicfile0 +msgid "Automatic entry" +msgstr "" + +#. module: account +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "" + +#. module: account +#: help:account.journal,group_invoice_lines:0 +msgid "" +"If this box is checked, the system will try to group the accounting lines " +"when generating them from invoices." +msgstr "" + +#. module: account +#: help:account.account,reconcile:0 +msgid "" +"Check this box if this account allows reconciliation of journal items." +msgstr "" + +#. module: account +#: help:account.period,state:0 +msgid "" +"When monthly periods are created. The state is 'Draft'. At the end of " +"monthly period it is in 'Done' state." +msgstr "" + +#. module: account +#: report:account.analytic.account.inverted.balance:0 +msgid "Inverted Analytic Balance -" +msgstr "" + +#. module: account +#: view:account.move.bank.reconcile:0 +msgid "Open for Bank Reconciliation" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_line_form +msgid "Analytic Entries" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "This Months Sales by type" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Associated Partner" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1332 +#, python-format +msgid "You must first select a partner !" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,comment:0 +msgid "Additional Information" +msgstr "" + +#. module: account +#: help:account.invoice,state:0 +msgid "" +" * The 'Draft' state is used when a user is encoding a new and unconfirmed " +"Invoice. \n" +"* The 'Pro-forma' when invoice is in Pro-forma state,invoice does not have " +"an invoice number. \n" +"* The 'Open' state is used when user create invoice,a invoice number is " +"generated.Its in open state till user does not pay invoice. \n" +"* The 'Paid' state is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled. \n" +"* The 'Cancelled' state is used when user cancel invoice." +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,residual:0 +msgid "Total Residual" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_invoiceinvoice0 +#: model:process.node,note:account.process_node_supplierinvoiceinvoice0 +msgid "Invoice's state is Open" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_tax_code_tree +msgid "" +"The chart of taxes is used to generate your periodical tax statement. You " +"will see the taxes with codes related to your legal statement according to " +"your country." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:428 +#, python-format +msgid "" +"Can not find a chart of accounts for this company, you should create one." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +msgid "J.C. /Move name" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_open_closed_fiscalyear +msgid "Choose Fiscal Year" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3111 +#, python-format +msgid "Purchase Refund Journal" +msgstr "Diario de reembolso de compras" + +#. module: account +#: help:account.tax.template,amount:0 +msgid "For Tax Type percent enter % ratio between 0-1." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Current Accounts" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by Invoice Date" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "" +"Modify Invoice: Cancels the current invoice and creates a new copy of it " +"ready for editing." +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,period_id:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,period_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,period_id:0 +#: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: field:account.journal.period,period_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.move:0 +#: field:account.move,period_id:0 +#: view:account.move.line:0 +#: field:account.move.line,period_id:0 +#: view:account.period:0 +#: field:account.subscription,period_nbr:0 +#: field:account.tax.chart,period_id:0 +#: field:account.treasury.report,period_id:0 +#: field:validate.account.move,period_id:0 +msgid "Period" +msgstr "" + +#. module: account +#: help:account.account,adjusted_balance:0 +msgid "" +"Total amount (in Company currency) for transactions held in secondary " +"currency for this account." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Net Total:" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_generic_reporting +msgid "Generic Reporting" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,journal_id:0 +msgid "Write-Off Journal" +msgstr "" + +#. module: account +#: help:res.partner,property_payment_term:0 +msgid "" +"This payment term will be used instead of the default one for the current " +"partner" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Compute Code for Taxes Included Prices" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1030 +#, python-format +msgid "" +"You can not cancel an invoice which is partially paid! You need to " +"unreconcile related payment entries first!" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income_categ:0 +msgid "Income Category Account" +msgstr "" + +#. module: account +#: field:account.account,adjusted_balance:0 +msgid "Adjusted Balance" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form +#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template +msgid "Fiscal Position Templates" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Int.Type" +msgstr "" + +#. module: account +#: field:account.move.line,tax_amount:0 +msgid "Tax/Base Amount" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Valuation: Percent" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree3 +msgid "" +"With Customer Refunds you can manage the credit notes for your customers. A " +"refund is a document that credits an invoice completely or partially. You " +"can easily generate refunds and reconcile them directly from the invoice " +"form." +msgstr "" +"Con las Notas de crédito a clientes puede gestionar las devoluciones de sus " +"clientes. Una Nota de Crédito es un documento que reembolsa una factura " +"completa o parcialmente. Puede generar fácilmente Notas de Crédito y " +"conciliarlas directamente desde el formulario de factura." + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_vat_declaration +msgid "" +"This menu print a VAT declaration based on invoices or payments. You can " +"select one or several periods of the fiscal year. Information required for a " +"tax declaration is automatically generated by OpenERP from invoices (or " +"payments, in some countries). This data is updated in real time. That’s very " +"useful because it enables you to preview at any time the tax that you owe at " +"the start and end of the month or quarter." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Tel. :" +msgstr "" + +#. module: account +#: field:account.account,company_currency_id:0 +msgid "Company Currency" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,chart_account_id:0 +#: field:account.balance.report,chart_account_id:0 +#: field:account.central.journal,chart_account_id:0 +#: field:account.common.account.report,chart_account_id:0 +#: field:account.common.journal.report,chart_account_id:0 +#: field:account.common.partner.report,chart_account_id:0 +#: field:account.common.report,chart_account_id:0 +#: field:account.general.journal,chart_account_id:0 +#: field:account.partner.balance,chart_account_id:0 +#: field:account.partner.ledger,chart_account_id:0 +#: field:account.print.journal,chart_account_id:0 +#: field:account.report.general.ledger,chart_account_id:0 +#: field:account.vat.declaration,chart_account_id:0 +#: field:accounting.report,chart_account_id:0 +msgid "Chart of Account" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_paymententries0 +#: model:process.transition,name:account.process_transition_reconcilepaid0 +msgid "Payment" +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_end_real:0 +#: field:account.treasury.report,ending_balance:0 +msgid "Ending Balance" +msgstr "" + +#. module: account +#: help:account.move.line,blocked:0 +msgid "" +"You can check this box to mark this journal item as a litigation with the " +"associated partner" +msgstr "" + +#. module: account +#: field:account.move.line,reconcile_partial_id:0 +#: view:account.move.line.reconcile:0 +msgid "Partial Reconcile" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_inverted_balance +msgid "Account Analytic Inverted Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_report +msgid "Account Common Report" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "current month" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1052 +#, python-format +msgid "" +"No period defined for this date: %s !\n" +"Please create one." +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_filestatement0 +msgid "Automatic import of the bank sta" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_journal_view +#: model:ir.ui.menu,name:account.menu_action_account_journal_view +msgid "Journal Views" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_bank_reconcile +msgid "Move bank reconcile" +msgstr "" + +#. module: account +#: field:account.financial.report,account_type_ids:0 +#: model:ir.actions.act_window,name:account.action_account_type_form +#: model:ir.ui.menu,name:account.menu_action_account_type_form +msgid "Account Types" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Value amount: n.a" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.select:0 +#: code:addons/account/wizard/account_move_line_reconcile_select.py:45 +#: model:ir.ui.menu,name:account.periodical_processing_reconciliation +#: model:process.node,name:account.process_node_reconciliation0 +#: model:process.node,name:account.process_node_supplierreconciliation0 +#, python-format +msgid "Reconciliation" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,property_account_receivable:0 +msgid "Receivable Account" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "" +"This button only appears when the state of the invoice is 'paid' (showing " +"that it has been fully reconciled) and auto-computed boolean 'reconciled' is " +"False (depicting that it's not the case anymore). In other words, the " +"invoice has been dereconciled and it does not fit anymore the 'paid' state. " +"You should press this button to re-open it and let it continue its normal " +"process after having resolved the eventual exceptions it may have created." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscalyear_close_state +msgid "Fiscalyear Close state" +msgstr "" + +#. module: account +#: field:account.invoice.refund,journal_id:0 +msgid "Refund Journal" +msgstr "Diario reembolso" + +#. module: account +#: report:account.account.balance:0 +#: report:account.central.journal:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +msgid "Filter By" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree1 +msgid "" +"With Customer Invoices you can create and manage sales invoices issued to " +"your customers. OpenERP can also generate draft invoices automatically from " +"sales orders or deliveries. You should only confirm them before sending them " +"to your customers." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_period_close.py:51 +#, python-format +msgid "" +"In order to close a period, you must first post related journal entries." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: view:board.board:0 +#: model:ir.actions.act_window,name:account.action_company_analysis_tree +msgid "Company Analysis" +msgstr "" + +#. module: account +#: help:account.invoice,account_id:0 +msgid "The partner account used for this invoice." +msgstr "" + +#. module: account +#: code:addons/account/account.py:3296 +#, python-format +msgid "Tax %.2f%%" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Contacts" +msgstr "" + +#. module: account +#: field:account.tax.code,parent_id:0 +#: view:account.tax.code.template:0 +#: field:account.tax.code.template,parent_id:0 +msgid "Parent Code" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_payment_term_line +msgid "Payment Term Line" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3109 +#, python-format +msgid "Purchase Journal" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice: Creates the refund invoice, ready for editing." +msgstr "" +"NotadeCrédito: Crea la factura de reembolso, preparada para editarla." + +#. module: account +#: field:account.invoice.line,price_subtotal:0 +msgid "Subtotal" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +msgid "Print Tax Statement" +msgstr "" + +#. module: account +#: view:account.model.line:0 +msgid "Journal Entry Model Line" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,date_due:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,date_due:0 +#: field:report.invoice.created,date_due:0 +msgid "Due Date" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_supplier +#: model:ir.ui.menu,name:account.menu_finance_payables +msgid "Suppliers" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Accounts Type Allowed (empty for no control)" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Supplier Accounting Properties" +msgstr "" + +#. module: account +#: help:account.move.line,amount_residual:0 +msgid "" +"The residual amount on a receivable or payable of a journal entry expressed " +"in the company currency." +msgstr "" + +#. module: account +#: view:account.tax.code:0 +msgid "Statistics" +msgstr "" + +#. module: account +#: field:account.analytic.chart,from_date:0 +#: field:project.account.analytic.line,from_date:0 +msgid "From" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscalyear_close +msgid "Fiscalyear Close" +msgstr "" + +#. module: account +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened +msgid "Unpaid Invoices" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:495 +#, python-format +msgid "The payment term of supplier does not have a payment term line!" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,debit:0 +msgid "Debit amount" +msgstr "" + +#. module: account +#: view:board.board:0 +#: model:ir.actions.act_window,name:account.action_treasory_graph +msgid "Treasury" +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: view:account.analytic.balance:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.cost.ledger.journal.report:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: view:account.common.report:0 +msgid "Print" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Accounts Allowed (empty for no control)" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_account_template +msgid "Template Account Fiscal Mapping" +msgstr "" + +#. module: account +#: view:board.board:0 +msgid "Draft Customer Invoices" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_configuration_misc +msgid "Miscellaneous" +msgstr "" + +#. module: account +#: help:res.partner,debit:0 +msgid "Total amount you have to pay to this supplier." +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_analytic0 +#: model:process.node,name:account.process_node_analyticcost0 +msgid "Analytic Costs" +msgstr "" + +#. module: account +#: field:account.analytic.journal,name:0 +#: report:account.general.journal:0 +#: field:account.journal,name:0 +msgid "Journal Name" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Next Partner Entries to reconcile" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Smallest Text" +msgstr "" + +#. module: account +#: model:res.groups,name:account.group_account_invoice +msgid "Invoicing & Payments" +msgstr "" + +#. module: account +#: help:account.invoice,internal_number:0 +msgid "" +"Unique number of the invoice, computed automatically when the invoice is " +"created." +msgstr "" + +#. module: account +#: constraint:account.bank.statement.line:0 +msgid "" +"The amount of the voucher must be the same amount as the one on the " +"statement line" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_expense +#: model:account.financial.report,name:account.account_financial_report_expense0 +msgid "Expense" +msgstr "" + +#. module: account +#: help:account.chart,fiscalyear:0 +msgid "Keep empty for all open fiscal years" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1105 +#, python-format +msgid "The account move (%s) for centralisation has been confirmed!" +msgstr "" + +#. module: account +#: help:account.move.line,amount_currency:0 +msgid "" +"The amount expressed in an optional other currency if it is a multi-currency " +"entry." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1307 +#, python-format +msgid "" +"You can not validate a non-balanced entry !\n" +"Make sure you have configured payment terms properly !\n" +"The latest payment term line should be of the type \"Balance\" !" +msgstr "" + +#. module: account +#: view:account.account:0 +#: report:account.analytic.account.journal:0 +#: field:account.bank.statement,currency:0 +#: report:account.central.journal:0 +#: view:account.entries.report:0 +#: field:account.entries.report,currency_id:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice,currency_id:0 +#: field:account.invoice.report,currency_id:0 +#: field:account.journal,currency:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,currency_id:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: field:account.move.line,currency_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:analytic.entries.report,currency_id:0 +#: model:ir.model,name:account.model_res_currency +#: field:report.account.sales,currency_id:0 +#: field:report.account_type.sales,currency_id:0 +#: field:report.invoice.created,currency_id:0 +#: field:res.partner.bank,currency_id:0 +msgid "Currency" +msgstr "" + +#. module: account +#: help:account.bank.statement.line,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of bank statement lines." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_validentries0 +msgid "Accountant validates the accounting entries coming from the invoice." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_fiscalyear_form +msgid "" +"Define your company's financial year according to your needs. A financial " +"year is a period at the end of which a company's accounts are made up " +"(usually 12 months). The financial year is usually referred to by the date " +"in which it ends. For example, if a company's financial year ends November " +"30, 2011, then everything between December 1, 2010 and November 30, 2011 " +"would be referred to as FY 2011. You are not obliged to follow the actual " +"calendar year." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open +msgid "Reconciled entries" +msgstr "" + +#. module: account +#: field:account.invoice,address_contact_id:0 +msgid "Contact Address" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2256 +#, python-format +msgid "Wrong model !" +msgstr "" + +#. module: account +#: field:account.invoice.refund,period:0 +msgid "Force period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_balance +msgid "Print Account Partner Balance" +msgstr "" + +#. module: account +#: help:account.financial.report,sign:0 +msgid "" +"For accounts that are typically more debited than credited and that you " +"would like to print as negative amounts in your reports, you should reverse " +"the sign of the balance; e.g.: Expense account. The same applies for " +"accounts that are typically more credited than debited and that you would " +"like to print as positive amounts in your reports; e.g.: Income account." +msgstr "" + +#. module: account +#: field:res.partner,contract_ids:0 +msgid "Contracts" +msgstr "" + +#. module: account +#: field:account.cashbox.line,ending_id:0 +#: field:account.cashbox.line,starting_id:0 +#: field:account.entries.report,reconcile_id:0 +#: field:account.financial.report,balance:0 +msgid "unknown" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,journal_id:0 +#: code:addons/account/account.py:3113 +#, python-format +msgid "Opening Entries Journal" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_customerinvoice0 +msgid "Draft invoices are checked, validated and printed." +msgstr "" + +#. module: account +#: help:account.chart.template,property_reserve_and_surplus_account:0 +msgid "" +"This Account is used for transferring Profit/Loss(If It is Profit: Amount " +"will be added, Loss: Amount will be deducted.), Which is calculated from " +"Profilt & Loss Report" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:808 +#, python-format +msgid "Please define sequence on the journal related to this invoice." +msgstr "" + +#. module: account +#: view:account.move:0 +#: field:account.move,narration:0 +#: view:account.move.line:0 +#: field:account.move.line,narration:0 +msgid "Internal Note" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +msgid "This year's Sales by type" +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "Cost Ledger for Period" +msgstr "" + +#. module: account +#: help:account.tax,child_depend:0 +#: help:account.tax.template,child_depend:0 +msgid "" +"Set if the tax computation is based on the computation of child taxes rather " +"than on the total amount." +msgstr "" + +#. module: account +#: selection:account.tax,applicable_type:0 +msgid "Given by Python Code" +msgstr "" + +#. module: account +#: field:account.analytic.journal,code:0 +msgid "Journal Code" +msgstr "" + +#. module: account +#: help:account.tax.code,sign:0 +msgid "" +"You can specify here the coefficient that will be used when consolidating " +"the amount of this case into its parent. For example, set 1/-1 if you want " +"to add/substract it." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.move.line,amount_residual:0 +#: field:account.move.line,amount_residual_currency:0 +msgid "Residual Amount" +msgstr "" + +#. module: account +#: field:account.invoice,move_lines:0 +#: field:account.move.reconcile,line_id:0 +msgid "Entry Lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_financial_accounts_installer +msgid "Review your Financial Accounts" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_open_journal_button +#: model:ir.actions.act_window,name:account.action_validate_account_move +msgid "Open Journal" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "KI" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.journal:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Period from" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3110 +#, python-format +msgid "Sales Refund Journal" +msgstr "Diario de reembolso de ventas" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.payment.term:0 +msgid "Information" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_bankstatement0 +msgid "Registered payment" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "Close states of Fiscal year and periods" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Product Information" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: model:ir.ui.menu,name:account.next_id_40 +msgid "Analytic" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_invoiceinvoice0 +#: model:process.node,name:account.process_node_supplierinvoiceinvoice0 +msgid "Create Invoice" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,purchase_tax_rate:0 +msgid "Purchase Tax(%)" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:810 +#, python-format +msgid "Please create some invoice lines." +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Dear Sir/Madam," +msgstr "" + +#. module: account +#: field:account.vat.declaration,display_detail:0 +msgid "Display Detail" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3118 +#, python-format +msgid "SCNJ" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_analyticinvoice0 +msgid "" +"Analytic costs (timesheets, some purchased products, ...) come from analytic " +"accounts. These generate draft invoices." +msgstr "" + +#. module: account +#: help:account.journal,view_id:0 +msgid "" +"Gives the view used when writing or browsing entries in this journal. The " +"view tells OpenERP which fields should be visible, required or readonly and " +"in which order. You can create your own view for a faster encoding in each " +"journal." +msgstr "" + +#. module: account +#: field:account.period,date_stop:0 +#: model:ir.ui.menu,name:account.menu_account_end_year_treatments +msgid "End of Period" +msgstr "" + +#. module: account +#: field:account.account,financial_report_ids:0 +#: field:account.account.template,financial_report_ids:0 +#: model:ir.actions.act_window,name:account.action_account_financial_report_tree +#: model:ir.actions.act_window,name:account.action_account_report +#: model:ir.actions.act_window,name:account.action_account_report_bs +#: model:ir.actions.act_window,name:account.action_account_report_pl +#: model:ir.ui.menu,name:account.menu_account_reports +msgid "Financial Reports" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,period_from:0 +#: field:account.balance.report,period_from:0 +#: report:account.central.journal:0 +#: field:account.central.journal,period_from:0 +#: field:account.common.account.report,period_from:0 +#: field:account.common.journal.report,period_from:0 +#: field:account.common.partner.report,period_from:0 +#: field:account.common.report,period_from:0 +#: report:account.general.journal:0 +#: field:account.general.journal,period_from:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,period_from:0 +#: field:account.partner.ledger,period_from:0 +#: field:account.print.journal,period_from:0 +#: field:account.report.general.ledger,period_from:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,period_from:0 +#: field:accounting.report,period_from:0 +#: field:accounting.report,period_from_cmp:0 +msgid "Start Period" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,direction_selection:0 +msgid "Analysis Direction" +msgstr "" + +#. module: account +#: field:res.partner,ref_companies:0 +msgid "Companies that refers to partner" +msgstr "" + +#. module: account +#: view:account.journal:0 +#: field:account.journal.column,view_id:0 +#: view:account.journal.view:0 +#: field:account.journal.view,name:0 +#: model:ir.model,name:account.model_account_journal_view +msgid "Journal View" +msgstr "" + +#. module: account +#: view:account.move.line:0 +#: code:addons/account/account_move_line.py:1046 +#, python-format +msgid "Total credit" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_suppliervalidentries0 +msgid "Accountant validates the accounting entries coming from the invoice. " +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Best regards." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Unpaid" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_tax_code_template +msgid "Tax Code Template" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Document: Customer account statement" +msgstr "" + +#. module: account +#: field:account.account.type,report_type:0 +msgid "P&L / BS Category" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree4 +msgid "" +"With Supplier Refunds you can manage the credit notes you receive from your " +"suppliers. A refund is a document that credits an invoice completely or " +"partially. You can easily generate refunds and reconcile them directly from " +"the invoice form." +msgstr "" +"Con Notas de Crédito de proveedor puede gestionar las facturas de reembolso " +"que recibe de sus proveedores. Una Nota de Créito es un documento que " +"reembolsa una factura total o parcialmente. Puede fácilmente generar Notas " +"de Crédito y conciliarlas directamente desde el formulario de factura." + +#. module: account +#: view:account.account.template:0 +msgid "Receivale Accounts" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_statement_periodic_tree +#: model:ir.actions.act_window,name:account.action_bank_statement_tree +#: model:ir.ui.menu,name:account.menu_bank_statement_tree +msgid "Bank Statements" +msgstr "" + +#. module: account +#: field:account.account,balance:0 +#: report:account.account.balance:0 +#: selection:account.account.type,close_method:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,balance:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice,residual:0 +#: field:account.move.line,balance:0 +#: report:account.partner.balance:0 +#: selection:account.payment.term.line,value:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,balance:0 +#: field:report.account.receivable,balance:0 +#: field:report.aged.receivable,balance:0 +msgid "Balance" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierbankstatement0 +msgid "Manually or automatically entered in the system" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 +msgid "Display Account" +msgstr "" + +#. module: account +#: view:account.account.type:0 +msgid "Closing Method" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: model:account.account.type,name:account.data_account_type_payable +#: selection:account.entries.report,type:0 +msgid "Payable" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +#: view:report.account_type.sales:0 +#: view:report.hr.timesheet.invoice.journal:0 +msgid "This Year" +msgstr "" + +#. module: account +#: view:board.board:0 +msgid "Account Board" +msgstr "" + +#. module: account +#: view:account.model:0 +#: field:account.model,legend:0 +msgid "Legend" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Contract Data" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_sale +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. If you want to record a customer invoice, select the journal and " +"the period in the search toolbar. Then, start by recording the entry line of " +"the income account. OpenERP will propose to you automatically the Tax " +"related to this account and the counter-part \"Account receivable\"." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_automatic_reconcile.py:152 +#, python-format +msgid "You must select accounts to reconcile" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_entriesreconcile0 +msgid "Accounting entries are the first input of the reconciliation." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_period_form +msgid "" +"Here you can define a financial period, an interval of time in your " +"company's financial year. An accounting period typically is a month or a " +"quarter. It usually corresponds to the periods of the tax declaration. " +"Create and manage periods from here and decide whether a period should be " +"closed or left open depending on your company's activities over a specific " +"period." +msgstr "" + +#. module: account +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Filters By" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_manually0 +#: model:process.transition,name:account.process_transition_invoicemanually0 +msgid "Manual entry" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.move.line,move_id:0 +#: field:analytic.entries.report,move_id:0 +msgid "Move" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1153 +#, python-format +msgid "You can not change the tax, you should remove and recreate lines !" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries of last 365 days" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +msgid "A/C No." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement +msgid "Bank statements" +msgstr "" + +#. module: account +#: help:account.addtmpl.wizard,cparent_id:0 +msgid "" +"Creates an account with the selected template under this existing parent." +msgstr "" + +#. module: account +#: selection:account.model.line,date_maturity:0 +msgid "Date of the day" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_bank_reconcile.py:49 +#, python-format +msgid "" +"You have to define the bank account\n" +"in the journal definition for reconciliation." +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +msgid "Reconciliation Transactions" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_common_menu +msgid "Common Report" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,child_consol_ids:0 +msgid "Consolidated Children" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:87 +#, python-format +msgid "" +"The journal must have centralised counterpart without the Skipping draft " +"state option checked!" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer And Supplier Invoices" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_paymententries0 +#: model:process.transition,name:account.process_transition_paymentorderbank0 +#: model:process.transition,name:account.process_transition_paymentreconcile0 +msgid "Payment entries" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "July" +msgstr "" + +#. module: account +#: view:account.account:0 +msgid "Chart of accounts" +msgstr "" + +#. module: account +#: field:account.subscription.line,subscription_id:0 +msgid "Subscription" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_balance +msgid "Account Analytic Balance" +msgstr "" + +#. module: account +#: code:addons/account/account.py:412 +#, python-format +msgid "" +"No opening/closing period defined, please create one to set the initial " +"balance!" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,period_to:0 +#: field:account.balance.report,period_to:0 +#: report:account.central.journal:0 +#: field:account.central.journal,period_to:0 +#: field:account.common.account.report,period_to:0 +#: field:account.common.journal.report,period_to:0 +#: field:account.common.partner.report,period_to:0 +#: field:account.common.report,period_to:0 +#: report:account.general.journal:0 +#: field:account.general.journal,period_to:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,period_to:0 +#: field:account.partner.ledger,period_to:0 +#: field:account.print.journal,period_to:0 +#: field:account.report.general.ledger,period_to:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,period_to:0 +#: field:accounting.report,period_to:0 +#: field:accounting.report,period_to_cmp:0 +msgid "End Period" +msgstr "" + +#. module: account +#: field:account.move.line,date_maturity:0 +msgid "Due date" +msgstr "" + +#. module: account +#: view:account.move.journal:0 +msgid "Standard Entries" +msgstr "" + +#. module: account +#: help:account.journal,type:0 +msgid "" +"Select 'Sale' for customer invoices journals. Select 'Purchase' for supplier " +"invoices journals. Select 'Cash' or 'Bank' for journals that are used in " +"customer or supplier payments. Select 'General' for miscellaneous operations " +"journals. Select 'Opening/Closing Situation' for entries generated for new " +"fiscal years." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_subscription +msgid "Account Subscription" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Maturity date" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Entry Subscription" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,date_from:0 +#: field:account.balance.report,date_from:0 +#: report:account.central.journal:0 +#: field:account.central.journal,date_from:0 +#: field:account.common.account.report,date_from:0 +#: field:account.common.journal.report,date_from:0 +#: field:account.common.partner.report,date_from:0 +#: field:account.common.report,date_from:0 +#: field:account.fiscalyear,date_start:0 +#: report:account.general.journal:0 +#: field:account.general.journal,date_from:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.installer,date_start:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,date_from:0 +#: field:account.partner.ledger,date_from:0 +#: field:account.print.journal,date_from:0 +#: field:account.report.general.ledger,date_from:0 +#: field:account.subscription,date_start:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,date_from:0 +#: field:accounting.report,date_from:0 +#: field:accounting.report,date_from_cmp:0 +msgid "Start Date" +msgstr "" + +#. module: account +#: help:account.invoice,reconciled:0 +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: model:process.node,name:account.process_node_supplierdraftinvoices0 +msgid "Draft Invoices" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +#: view:account.entries.report:0 +#: view:account.move.line:0 +msgid "Unreconciled" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:828 +#, python-format +msgid "Bad total !" +msgstr "" + +#. module: account +#: field:account.journal,sequence_id:0 +msgid "Entry Sequence" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_period_tree +msgid "" +"A period is a fiscal period of time during which accounting entries should " +"be recorded for accounting related activities. Monthly period is the norm " +"but depending on your countries or company needs, you could also have " +"quarterly periods. Closing a period will make it impossible to record new " +"accounting entries, all new entries should then be made on the following " +"open period. Close a period when you do not want to record new entries and " +"want to lock this period for tax related calculation." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Pending" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_analyticinvoice0 +#: model:process.transition,name:account.process_transition_supplieranalyticcost0 +msgid "From analytic accounts" +msgstr "" + +#. module: account +#: field:account.period,name:0 +msgid "Period Name" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Code/Date" +msgstr "" + +#. module: account +#: field:account.account,active:0 +#: field:account.analytic.journal,active:0 +#: field:account.fiscal.position,active:0 +#: field:account.journal.period,active:0 +#: field:account.payment.term,active:0 +#: field:account.tax,active:0 +msgid "Active" +msgstr "" + +#. module: account +#: view:accounting.report:0 +msgid "Comparison" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:372 +#, python-format +msgid "Unknown Error" +msgstr "" + +#. module: account +#: help:res.partner,property_account_payable:0 +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: account +#: field:account.period,special:0 +msgid "Opening/Closing Period" +msgstr "" + +#. module: account +#: field:account.account,currency_id:0 +#: field:account.account.template,currency_id:0 +#: field:account.bank.accounts.wizard,currency_id:0 +msgid "Secondary Currency" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_validate_account_move +msgid "Validate Account Move" +msgstr "" + +#. module: account +#: field:account.account,credit:0 +#: report:account.account.balance:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,credit:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,credit:0 +#: field:account.move.line,credit:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,credit:0 +#: report:account.vat.declaration:0 +#: field:report.account.receivable,credit:0 +msgid "Credit" +msgstr "" + +#. module: account +#: help:account.invoice.refund,journal_id:0 +msgid "" +"You can select here the journal to use for the refund invoice that will be " +"created. If you leave that field empty, it will use the same journal as the " +"current invoice." +msgstr "" +"Puede seleccionar aquí el diario a usar para la Nota de Crédito que se " +"creará. Si deja este campo vacío, se usará el mismo diario que la factura " +"actual." + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:181 +#, python-format +msgid "Profit & Loss (Income account)" +msgstr "" + +#. module: account +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not select an account type with a deferral method different of " +"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +msgstr "" + +#. module: account +#: view:account.model:0 +msgid "Journal Entry Model" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_use_model.py:44 +#, python-format +msgid "" +"Maturity date of entry line generated by model line '%s' is based on partner " +"payment term!\n" +"Please define partner on it!" +msgstr "" + +#. module: account +#: field:account.cashbox.line,number:0 +#: field:account.invoice,number:0 +#: field:account.move,name:0 +msgid "Number" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: selection:account.analytic.journal,type:0 +#: selection:account.bank.statement.line,type:0 +#: selection:account.journal,type:0 +msgid "General" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries of last 30 days" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: selection:account.balance.report,filter:0 +#: selection:account.central.journal,filter:0 +#: view:account.chart:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: view:account.common.report:0 +#: selection:account.common.report,filter:0 +#: view:account.fiscalyear:0 +#: field:account.fiscalyear,period_ids:0 +#: selection:account.general.journal,filter:0 +#: field:account.installer,period:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: view:account.print.journal:0 +#: selection:account.print.journal,filter:0 +#: selection:account.report.general.ledger,filter:0 +#: report:account.vat.declaration:0 +#: view:account.vat.declaration:0 +#: selection:account.vat.declaration,filter:0 +#: view:accounting.report:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +#: model:ir.actions.act_window,name:account.action_account_period_form +#: model:ir.ui.menu,name:account.menu_action_account_period_form +#: model:ir.ui.menu,name:account.next_id_23 +msgid "Periods" +msgstr "" + +#. module: account +#: field:account.invoice.report,currency_rate:0 +msgid "Currency Rate" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,tax_ids:0 +#: field:account.account.template,tax_ids:0 +msgid "Default Taxes" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "April" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 +msgid "Profit (Loss) to report" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile.select:0 +msgid "Open for Reconciliation" +msgstr "" + +#. module: account +#: field:account.account,parent_left:0 +msgid "Parent Left" +msgstr "" + +#. module: account +#: help:account.invoice.refund,filter_refund:0 +msgid "" +"Refund invoice base on this type. You can not Modify and Cancel if the " +"invoice is already reconciled" +msgstr "" +"Nota de Crédito basada en este tipo. No puede modificar y cancelar si la " +"factura ya está conciliada." + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Title 2 (bold)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree2 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree2 +msgid "Supplier Invoices" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.analytic.line,product_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,product_id:0 +#: field:account.invoice.line,product_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,product_id:0 +#: field:account.move.line,product_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,product_id:0 +#: field:report.account.sales,product_id:0 +#: field:report.account_type.sales,product_id:0 +msgid "Product" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_validate_account_move +msgid "" +"The validation of journal entries process is also called 'ledger posting' " +"and is the process of transferring debit and credit amounts from a journal " +"of original entry to a ledger book." +msgstr "" + +#. module: account +#: help:account.bank.statement,state:0 +msgid "" +"When new statement is created the state will be 'Draft'.\n" +"And after getting confirmation from the bank it will be in 'Confirmed' state." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_period +msgid "Account period" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Remove Lines" +msgstr "" + +#. module: account +#: view:account.report.general.ledger:0 +msgid "" +"This report allows you to print or generate a pdf of your general ledger " +"with details of all your account journals" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +msgid "Regular" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,type:0 +#: view:account.account.template:0 +#: field:account.account.template,type:0 +#: field:account.entries.report,type:0 +msgid "Internal Type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form_running +msgid "Running Subscriptions" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +#: view:report.account_type.sales:0 +#: view:report.hr.timesheet.invoice.journal:0 +msgid "This Month" +msgstr "" + +#. module: account +#: view:account.analytic.balance:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: model:ir.actions.act_window,name:account.action_account_partner_ledger +msgid "Select Period" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: selection:account.entries.report,move_state:0 +#: view:account.move:0 +#: selection:account.move,state:0 +#: view:account.move.line:0 +msgid "Posted" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,date_to:0 +#: field:account.balance.report,date_to:0 +#: report:account.central.journal:0 +#: field:account.central.journal,date_to:0 +#: field:account.common.account.report,date_to:0 +#: field:account.common.journal.report,date_to:0 +#: field:account.common.partner.report,date_to:0 +#: field:account.common.report,date_to:0 +#: field:account.fiscalyear,date_stop:0 +#: report:account.general.journal:0 +#: field:account.general.journal,date_to:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.installer,date_stop:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,date_to:0 +#: field:account.partner.ledger,date_to:0 +#: field:account.print.journal,date_to:0 +#: field:account.report.general.ledger,date_to:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,date_to:0 +#: field:accounting.report,date_to:0 +#: field:accounting.report,date_to_cmp:0 +msgid "End Date" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear +#: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear +msgid "Cancel Opening Entries" +msgstr "" + +#. module: account +#: field:account.payment.term.line,days2:0 +msgid "Day of the Month" +msgstr "" + +#. module: account +#: field:account.fiscal.position.tax,tax_src_id:0 +#: field:account.fiscal.position.tax.template,tax_src_id:0 +msgid "Tax Source" +msgstr "" + +#. module: account +#: view:ir.sequence:0 +msgid "Fiscal Year Sequences" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "No detail" +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:102 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." +msgstr "" + +#. module: account +#: field:account.account,unrealized_gain_loss:0 +#: model:ir.actions.act_window,name:account.action_account_gain_loss +#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses +msgid "Unrealized Gain or Loss" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.period:0 +msgid "States" +msgstr "" + +#. module: account +#: model:ir.actions.server,name:account.ir_actions_server_edi_invoice +msgid "Auto-email confirmed invoices" +msgstr "" + +#. module: account +#: field:account.invoice,check_total:0 +msgid "Verification Total" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: view:account.analytic.line:0 +#: view:account.bank.statement:0 +#: field:account.invoice,amount_total:0 +#: field:report.account.sales,amount_total:0 +#: field:report.account_type.sales,amount_total:0 +#: field:report.invoice.created,amount_total:0 +msgid "Total" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:97 +#, python-format +msgid "Journal: All" +msgstr "" + +#. module: account +#: field:account.account,company_id:0 +#: field:account.aged.trial.balance,company_id:0 +#: field:account.analytic.journal,company_id:0 +#: field:account.balance.report,company_id:0 +#: field:account.bank.statement,company_id:0 +#: field:account.bank.statement.line,company_id:0 +#: field:account.central.journal,company_id:0 +#: field:account.common.account.report,company_id:0 +#: field:account.common.journal.report,company_id:0 +#: field:account.common.partner.report,company_id:0 +#: field:account.common.report,company_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,company_id:0 +#: field:account.fiscal.position,company_id:0 +#: field:account.fiscalyear,company_id:0 +#: field:account.general.journal,company_id:0 +#: field:account.installer,company_id:0 +#: field:account.invoice,company_id:0 +#: field:account.invoice.line,company_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,company_id:0 +#: field:account.invoice.tax,company_id:0 +#: view:account.journal:0 +#: field:account.journal,company_id:0 +#: field:account.journal.period,company_id:0 +#: field:account.model,company_id:0 +#: field:account.move,company_id:0 +#: field:account.move.line,company_id:0 +#: field:account.partner.balance,company_id:0 +#: field:account.partner.ledger,company_id:0 +#: field:account.period,company_id:0 +#: field:account.print.journal,company_id:0 +#: field:account.report.general.ledger,company_id:0 +#: field:account.tax,company_id:0 +#: field:account.tax.code,company_id:0 +#: field:account.treasury.report,company_id:0 +#: field:account.vat.declaration,company_id:0 +#: field:accounting.report,company_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,company_id:0 +#: field:wizard.multi.charts.accounts,company_id:0 +msgid "Company" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_action_subscription_form +msgid "Define Recurring Entries" +msgstr "" + +#. module: account +#: field:account.entries.report,date_maturity:0 +msgid "Date Maturity" +msgstr "" + +#. module: account +#: help:account.bank.statement,total_entry_encoding:0 +msgid "Total cash transactions" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,today_reconciled:0 +msgid "" +"This figure depicts the total number of partners that have gone throught the " +"reconciliation process today. The current partner is counted as already " +"processed." +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Create Monthly Periods" +msgstr "" + +#. module: account +#: field:account.tax.code.template,sign:0 +msgid "Sign For Parent" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_balance_report +msgid "Trial Balance Report" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree +msgid "Draft statements" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_statemententries0 +msgid "" +"Manual or automatic creation of payment entries according to the statements" +msgstr "" + +#. module: account +#: field:account.analytic.balance,empty_acc:0 +msgid "Empty Accounts ? " +msgstr "" + +#. module: account +#: constraint:account.bank.statement:0 +msgid "The journal and period chosen have to belong to the same company." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Invoice lines" +msgstr "" + +#. module: account +#: field:account.chart,period_to:0 +msgid "End period" +msgstr "" + +#. module: account +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "" + +#. module: account +#: help:product.category,property_account_expense_categ:0 +#: help:product.template,property_account_expense:0 +msgid "" +"This account will be used to value outgoing stock for the current product " +"category using cost price" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "Generate Your Chart of Accounts from a Chart Template" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_invoice_report_all +msgid "" +"From this report, you can have an overview of the amount invoiced to your " +"customer as well as payment delays. The tool search can also be used to " +"personalise your Invoices reports and so, match this analysis to your needs." +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.move.line.reconcile.writeoff:0 +msgid "Write-Off Move" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_paidinvoice0 +msgid "Invoice's state is Done" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_sales +msgid "Report of the Sales by Account" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_account +msgid "Accounts Fiscal Position" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: model:process.process,name:account.process_process_supplierinvoiceprocess0 +#: selection:report.invoice.created,type:0 +msgid "Supplier Invoice" +msgstr "" + +#. module: account +#: field:account.account,debit:0 +#: report:account.account.balance:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,debit:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,debit:0 +#: field:account.move.line,debit:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,debit:0 +#: report:account.vat.declaration:0 +#: field:report.account.receivable,debit:0 +msgid "Debit" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Title 3 (bold, smaller)" +msgstr "" + +#. module: account +#: field:account.invoice,invoice_line:0 +msgid "Invoice Lines" +msgstr "" + +#. module: account +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "" + +#. module: account +#: selection:account.print.journal,sort_selection:0 +msgid "Journal Entry Number" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Recurring" +msgstr "" + +#. module: account +#: code:addons/account/account.py:642 +#, python-format +msgid "" +"You cannot change the type of account from 'Closed' to any other type which " +"contains journal items!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:832 +#, python-format +msgid "Entry is already reconciled" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_receivable +msgid "Receivable accounts" +msgstr "" + +#. module: account +#: selection:account.model.line,date_maturity:0 +msgid "Partner Payment Term" +msgstr "" + +#. module: account +#: field:temp.range,name:0 +msgid "Range" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Journal Items related to a purchase journal." +msgstr "" + +#. module: account +#: help:account.account,type:0 +msgid "" +"The 'Internal Type' is used for features available on different types of " +"accounts: view can not have journal items, consolidation are accounts that " +"can have children accounts for multi-company consolidations, " +"payable/receivable are for partners accounts (for debit/credit " +"computations), closed for depreciated accounts." +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.report.general.ledger,display_account:0 +msgid "With movements" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Account Data" +msgstr "" + +#. module: account +#: view:account.tax.code.template:0 +msgid "Account Tax Code Template" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_manually0 +msgid "Manually" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "December" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree +#: model:ir.ui.menu,name:account.account_analytic_journal_print +msgid "Print Analytic Journals" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by month of Invoice Date" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Fin.Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_aged_receivable_graph +#: view:report.aged.receivable:0 +msgid "Aged Receivable" +msgstr "" + +#. module: account +#: field:account.tax,applicable_type:0 +msgid "Applicability" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:165 +#, python-format +msgid "This period is already closed !" +msgstr "" + +#. module: account +#: help:account.move.line,currency_id:0 +msgid "The optional other currency if it is a multi-currency entry." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_invoiceimport0 +msgid "" +"Import of the statement in the system from a supplier or customer invoice" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing +msgid "Billing" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.analytic.account:0 +msgid "Parent Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_form +msgid "" +"Create and manage your company's journals from this menu. A journal is used " +"to record transactions of all accounting data related to the day-to-day " +"business of your company using double-entry bookkeeping system. Depending on " +"the nature of its activities and the number of daily transactions, a company " +"may keep several types of specialized journals such as a cash journal, " +"purchase journal, sales journal..." +msgstr "" + +#. module: account +#: view:account.payment.term:0 +msgid "Description on Invoices" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_chart +msgid "Account Analytic Chart" +msgstr "" + +#. module: account +#: help:account.invoice,residual:0 +msgid "Remaining amount due." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_statistic_report_statement +msgid "Statistic Reports" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1155 +#: code:addons/account/account_move_line.py:1238 +#, python-format +msgid "Bad account!" +msgstr "" + +#. module: account +#: field:account.print.journal,sort_selection:0 +msgid "Entries Sorted by" +msgstr "" + +#. module: account +#: help:account.move,state:0 +msgid "" +"All manually created new journal entries are usually in the state " +"'Unposted', but you can set the option to skip that state on the related " +"journal. In that case, they will be behave as journal entries automatically " +"created by the system on document validation (invoices, bank statements...) " +"and will be created in 'Posted' state." +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +msgid "Accounts Mapping" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:364 +#, python-format +msgid "Invoice '%s' is waiting for validation." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "November" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Modify: refund invoice, reconcile and create a new draft invoice" +msgstr "" +"Modificar: Notade Crédito, reconcilia y crea una nueva factura borrador." + +#. module: account +#: help:account.invoice.line,account_id:0 +msgid "The income or expense account related to the selected product." +msgstr "" + +#. module: account +#: field:account.subscription,period_total:0 +msgid "Number of Periods" +msgstr "" + +#. module: account +#: report:account.general.journal:0 +#: model:ir.actions.report.xml,name:account.account_general_journal +msgid "General Journal" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Search Invoice" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.refund:0 +#: view:account.invoice.report:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_refund +msgid "Refund" +msgstr "Nota de Crédito" + +#. module: account +#: model:email.template,body_text:account.email_template_edi_invoice +msgid "" +"\n" +"Hello${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"A new invoice is available for ${object.partner_id.name}:\n" +" | Invoice number: *${object.number}*\n" +" | Invoice total: *${object.amount_total} ${object.currency_id.name}*\n" +" | Invoice date: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" | Your contact: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"You can view the invoice document, download it and pay online using the " +"following link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"It is also possible to directly pay with Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"If you have any question, do not hesitate to contact us.\n" +"\n" +"\n" +"Thank you for choosing ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " +msgstr "" +"\n" +"Hola${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"Está disponible una nueva factura para ${object.partner_id.name}:\n" +" | Nº de factura: *${object.number}*\n" +" | Importe: *${object.amount_total} ${object.currency_id.name}*\n" +" | Fecha: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Referencia: ${object.origin}\n" +" % endif\n" +" | Su contacto: ${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"Puede ver el documento de la factura, descargarlo y pagarlo online siguiendo " +"el enlace:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"También puede pagar directamente mediante Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"Si tiene cualquier consulta no dude en contactarnos.\n" +"\n" +"\n" +"¡Gracia por elegir ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " + +#. module: account +#: model:ir.model,name:account.model_res_partner_bank +msgid "Bank Accounts" +msgstr "" + +#. module: account +#: field:res.partner,credit:0 +msgid "Total Receivable" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.journal:0 +#: view:account.move.line:0 +msgid "General Information" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Accounting Documents" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_validate_account_move_lines +msgid "Validate Account Move Lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal +#: model:ir.actions.report.xml,name:account.account_analytic_account_quantity_cost_ledger +msgid "Cost Ledger (Only quantities)" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierpaidinvoice0 +msgid "Invoice's state is Done." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_reconcilepaid0 +msgid "As soon as the reconciliation is done, the invoice can be paid." +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Search Account Templates" +msgstr "" + +#. module: account +#: view:account.invoice.tax:0 +msgid "Manual Invoice Taxes" +msgstr "" + +#. module: account +#: field:account.account,parent_right:0 +msgid "Parent Right" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_addtmpl_wizard +msgid "account.addtmpl.wizard" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,result_selection:0 +#: field:account.common.partner.report,result_selection:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,result_selection:0 +#: field:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Partner's" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_form +#: view:ir.sequence:0 +#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear_form +msgid "Fiscal Years" +msgstr "" + +#. module: account +#: help:account.analytic.journal,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the analytic " +"journal without removing it." +msgstr "" + +#. module: account +#: field:account.analytic.line,ref:0 +msgid "Ref." +msgstr "" + +#. module: account +#: field:account.use.model,model:0 +#: model:ir.model,name:account.model_account_model +msgid "Account Model" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "February" +msgstr "" + +#. module: account +#: help:account.bank.statement,name:0 +msgid "" +"if you give the Name other then /, its created Accounting Entries Move will " +"be with same name as statement name. This allows the statement entries to " +"have the same references than the statement itself" +msgstr "" + +#. module: account +#: field:account.bank.accounts.wizard,bank_account_id:0 +#: view:account.chart.template:0 +#: field:account.chart.template,bank_account_view_id:0 +#: field:account.invoice,partner_bank_id:0 +#: field:account.invoice.report,partner_bank_id:0 +msgid "Bank Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_central_journal +#: model:ir.model,name:account.model_account_central_journal +msgid "Account Central Journal" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Maturity" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,direction_selection:0 +msgid "Future" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Search Journal Items" +msgstr "" + +#. module: account +#: help:account.tax,base_sign:0 +#: help:account.tax,ref_base_sign:0 +#: help:account.tax,ref_tax_sign:0 +#: help:account.tax,tax_sign:0 +#: help:account.tax.template,base_sign:0 +#: help:account.tax.template,ref_base_sign:0 +#: help:account.tax.template,ref_tax_sign:0 +#: help:account.tax.template,tax_sign:0 +msgid "Usually 1 or -1." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2 +#: model:ir.actions.act_window,name:account.action_account_analytic_chart +#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2 +msgid "Chart of Analytic Accounts" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense:0 +msgid "Expense Account on Product Template" +msgstr "" + +#. module: account +#: help:accounting.report,label_filter:0 +msgid "" +"This label will be displayed on report to show the balance computed for the " +"given comparison filter." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_aged_partner_balance.py:56 +#, python-format +msgid "You must enter a period length that cannot be 0 or below !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_form +msgid "" +"Create and manage the accounts you need to record journal entries. An " +"account is part of a ledger allowing your company to register all kinds of " +"debit and credit transactions. Companies present their annual accounts in " +"two main parts: the balance sheet and the income statement (profit and loss " +"account). The annual accounts of a company are required by law to disclose a " +"certain amount of information. They have to be certified by an external " +"auditor annually." +msgstr "" + +#. module: account +#: help:account.move.line,amount_residual_currency:0 +msgid "" +"The residual amount on a receivable or payable of a journal entry expressed " +"in its currency (maybe different of the company currency)." +msgstr "" diff --git a/addons/account_analytic_analysis/cron_account_analytic_account.py b/addons/account_analytic_analysis/cron_account_analytic_account.py index caa9067b227..065fdc5b907 100644 --- a/addons/account_analytic_analysis/cron_account_analytic_account.py +++ b/addons/account_analytic_analysis/cron_account_analytic_account.py @@ -53,7 +53,7 @@ class analytic_account(osv.osv): ('name', 'not ilike', 'maintenance'), ('partner_id', '!=', False), ('user_id', '!=', False), - ('user_id.user_email', '!=', False), + ('user_id.email', '!=', False), ('state', 'in', ('draft', 'open')), '|', ('date', '<', time.strftime('%Y-%m-%d')), ('date', '=', False), ] @@ -70,7 +70,7 @@ class analytic_account(osv.osv): for user, data in users.iteritems(): subject = '[OPENERP] Reporting: Analytic Accounts' body = Template(MAKO_TEMPLATE).render_unicode(user=user, partners=data) - tools.email_send('noreply@openerp.com', [user.user_email, ], subject, body) + tools.email_send('noreply@openerp.com', [user.email, ], subject, body) return True diff --git a/addons/account_analytic_analysis/i18n/it.po b/addons/account_analytic_analysis/i18n/it.po index 8ccf91b1fd3..c71ad83d9c7 100644 --- a/addons/account_analytic_analysis/i18n/it.po +++ b/addons/account_analytic_analysis/i18n/it.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev_rc3\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-01-13 18:03+0000\n" -"Last-Translator: Nicola Riolini - Micronaet \n" +"PO-Revision-Date: 2012-08-16 09:05+0000\n" +"Last-Translator: gagarin \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-08-07 05:14+0000\n" -"X-Generator: Launchpad (build 15745)\n" +"X-Launchpad-Export-Date: 2012-08-17 04:38+0000\n" +"X-Generator: Launchpad (build 15810)\n" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Ricavo orario (reale)" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 @@ -38,11 +38,13 @@ msgid "" "The contracts to be renewed because the deadline is passed or the working " "hours are higher than the allocated hours" msgstr "" +"I contratti da rinnovare perchè la scadenza è passata o le ore lavorate sono " +"maggiori delle ore allocate" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending contracts to renew with your customer" -msgstr "" +msgstr "Contratti in sospeso da rinnovare con il cliente" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -50,6 +52,8 @@ msgid "" "Number of time (hours/days) (from journal of type 'general') that can be " "invoiced if you invoice based on analytic account." msgstr "" +"Tempo fatturabile (in ore/giorni, dal giornale di tipo 'generale') se si " +"fattura tramite conto analitico" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -59,17 +63,17 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Group By..." -msgstr "" +msgstr "Raggruppa per..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "" +msgstr "Data fine" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Create Invoice" -msgstr "" +msgstr "Crea Fattura" #. module: account_analytic_analysis #: field:account.analytic.account,last_invoice_date:0 @@ -87,16 +91,18 @@ msgid "" "Number of time you spent on the analytic account (from timesheet). It " "computes quantities on all journal of type 'general'." msgstr "" +"Costi orari da attribuire al conto analitico (da timesheet). Calcola " +"quantità su tutti i sezionali di tipo 'generale'." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contratti attivi" #. module: account_analytic_analysis #: field:account.analytic.account,is_overdue_quantity:0 msgid "Overdue Quantity" -msgstr "" +msgstr "Quantità Scadute" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -108,16 +114,22 @@ msgid "" "pending accounts and reopen or close the according to the negotiation with " "the customer." msgstr "" +"Qui troverai i contratti da rinnovare in quanto scaduti o le ore lavorate " +"sono maggiori di quelle allocate. OpenERP imposta automaticamente questi " +"conti analitici in stato sospeso, in modo da notificare un avviso durante la " +"fase di inserimento dei timesheet. I commerciali dovrebbero ricontrollare " +"tutti i contratti sospesi e riaprirli/chiuderli coerentemente con quanto il " +"cliente vuole rinegoziare." #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 msgid "Theoretical Revenue" -msgstr "Ricavo teorico" +msgstr "Ricavo Teorico" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_non_invoiced:0 msgid "Uninvoiced Time" -msgstr "" +msgstr "Tempo non fatturato" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -131,7 +143,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Renew" -msgstr "" +msgstr "Da Rinnovare" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_date:0 @@ -141,24 +153,25 @@ msgstr "Data dell'ultimo costo/lavoro" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 msgid "Invoiced Time" -msgstr "" +msgstr "Tempo Fatturato" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." msgstr "" +"Un contratto in OpenERP è un conto analitico associato ad un partner." #. module: account_analytic_analysis #: field:account.analytic.account,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Tempo rimanente" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue msgid "Contracts to Renew" -msgstr "" +msgstr "Contratti da Rinnovare" #. module: account_analytic_analysis #: field:account.analytic.account,theorical_margin:0 @@ -168,7 +181,7 @@ msgstr "Margine teorico" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid " +1 Month" -msgstr "" +msgstr " +1 Mese" #. module: account_analytic_analysis #: help:account.analytic.account,ca_theorical:0 @@ -184,7 +197,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "In sospeso" #. module: account_analytic_analysis #: field:account.analytic.account,ca_to_invoice:0 @@ -199,7 +212,7 @@ msgstr "Calcolato utilizzando la formula: importo fatturato - totale costi" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Parent" -msgstr "" +msgstr "Mastro" #. module: account_analytic_analysis #: field:account.analytic.account,user_ids:0 @@ -231,7 +244,7 @@ msgstr "Data dell'ultimo costo fatturato" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contract" -msgstr "" +msgstr "Contratto" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin_rate:0 @@ -266,14 +279,14 @@ msgstr "Reddito rimanente" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Time" -msgstr "" +msgstr "Calcolato usando la formula: Tempo Massimo - Tempo Totale" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_invoiced:0 msgid "" "Number of time (hours/days) that can be invoiced plus those that already " "have been invoiced." -msgstr "" +msgstr "Tempo (ore/giorni) fatturabile più tempo già fatturato." #. module: account_analytic_analysis #: help:account.analytic.account,ca_to_invoice:0 @@ -287,7 +300,7 @@ msgstr "" #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Calcolato usando la formula: Fatturato / Tempo Totale" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 @@ -312,12 +325,12 @@ msgstr "Contabilità Analitica" #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all msgid "Contracts" -msgstr "" +msgstr "Contratti" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Manager" -msgstr "" +msgstr "Manager" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all @@ -328,12 +341,12 @@ msgstr "Voci da Fatturare" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 msgid "If invoice from the costs, this is the date of the latest invoiced." -msgstr "" +msgstr "Se si fattura dai costi, questa è la data dell'ultima fattura." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Associated Partner" -msgstr "" +msgstr "Partner Associato" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -343,7 +356,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Contratti non assegnati ad un responsabile del cliente" #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml index 2de4d6176b0..64e1cf22156 100644 --- a/addons/account_voucher/account_voucher_view.xml +++ b/addons/account_voucher/account_voucher_view.xml @@ -111,6 +111,7 @@

+
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index 45144be24d4..503c3aeaa5e 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -240,6 +240,7 @@
+
@@ -408,6 +409,7 @@
+
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml index 965e2600f24..5bcecfa268e 100644 --- a/addons/account_voucher/voucher_sales_purchase_view.xml +++ b/addons/account_voucher/voucher_sales_purchase_view.xml @@ -147,6 +147,7 @@
+
@@ -301,6 +302,7 @@
+
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index 165af37888d..3231b1e6d95 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -297,7 +297,6 @@ class account_analytic_account(osv.osv): def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Contract for %s has been created.") % (obj.partner_id.name), context=context) account_analytic_account() diff --git a/addons/analytic/analytic_view.xml b/addons/analytic/analytic_view.xml index ccd77638fd9..16100e73fff 100644 --- a/addons/analytic/analytic_view.xml +++ b/addons/analytic/analytic_view.xml @@ -45,6 +45,7 @@
+
diff --git a/addons/auth_ldap/users_ldap.py b/addons/auth_ldap/users_ldap.py index e4615907c79..47fc41c3645 100644 --- a/addons/auth_ldap/users_ldap.py +++ b/addons/auth_ldap/users_ldap.py @@ -255,7 +255,7 @@ class users(osv.osv): cr, SUPERUSER_ID, conf, login, entry) if user_id: cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE login=%s""", (tools.ustr(login),)) cr.commit() diff --git a/addons/auth_oauth/__init__.py b/addons/auth_oauth/__init__.py new file mode 100644 index 00000000000..c9acce48a16 --- /dev/null +++ b/addons/auth_oauth/__init__.py @@ -0,0 +1,3 @@ +import controllers +import auth_oauth +import res_users diff --git a/addons/portal/res_user.py b/addons/auth_oauth/__openerp__.py similarity index 56% rename from addons/portal/res_user.py rename to addons/auth_oauth/__openerp__.py index 9ed95a8a740..6c79bba2151 100644 --- a/addons/portal/res_user.py +++ b/addons/auth_oauth/__openerp__.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2011 OpenERP S.A (). +# Copyright (C) 2010-2012 OpenERP s.a. (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,16 +19,31 @@ # ############################################################################## -from osv import osv, fields - - -class res_users(osv.osv): - _inherit = 'res.users' - _columns = { - 'partner_id': fields.many2one('res.partner', - string='Related Partner'), - } - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +{ + 'name': 'OAuth2 Authentication', + 'version': '1.0', + 'category': 'Tools', + 'description': """Allow users to login through Google OAuth2.""", + 'author': 'Victor Tabuenca', + 'maintainer': 'OpenERP s.a.', + 'website': 'http://www.openerp.com', + 'depends': ['base', 'web'], + 'data': [ + 'auth_oauth_data.xml' + ], + 'update_xml': [ + 'auth_oauth_view.xml' + ], + 'js': [ + 'static/src/js/auth_oauth.js', + ], + 'css': [ + 'static/lib/zocial/css/zocial.css', + ], + 'qweb': [ + 'static/src/xml/auth_oauth.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/addons/auth_oauth/auth_oauth.py b/addons/auth_oauth/auth_oauth.py new file mode 100644 index 00000000000..e258505868d --- /dev/null +++ b/addons/auth_oauth/auth_oauth.py @@ -0,0 +1,22 @@ +from openerp.osv import osv, fields + +class auth_oauth_providers(osv.osv): + """Class defining the configuration values of an OAuth2 provider""" + + _name = 'auth.oauth.provider' + _description = 'OAuth2 provider' + _order = 'name' + + _columns = { + 'name' : fields.char('Provider name', required=True), # Name of the OAuth2 entity, Google, LinkedIn, etc + 'client_id' : fields.char('Client ID', required=True), # Our identifier + 'auth_endpoint' : fields.char('Authentication URL', required=True), # OAuth provider URL to authenticate users + 'scope' : fields.char('Scope'), # OAUth user data desired to access + 'validation_endpoint' : fields.char('Validation URL'), # OAuth provider URL to validate tokens + 'data_endpoint' : fields.char('Data URL'), + 'css_class' : fields.char('CSS class'), + 'body' : fields.char('Body'), + 'active' : fields.boolean('Active'), + 'sequence' : fields.integer(), + } + diff --git a/addons/auth_oauth/auth_oauth_data.xml b/addons/auth_oauth/auth_oauth_data.xml new file mode 100644 index 00000000000..021a03b2742 --- /dev/null +++ b/addons/auth_oauth/auth_oauth_data.xml @@ -0,0 +1,38 @@ + + + + + Facebook Graph + facebook_client_id + https://www.facebook.com/dialog/oauth + + https://graph.facebook.com/me/permissions + + zocial facebook + Sign in with facebook + True + + + Google OAuth2 + 108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.googleusercontent.com + https://accounts.google.com/o/oauth2/auth + https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile + https://www.googleapis.com/oauth2/v1/tokeninfo + https://www.googleapis.com/oauth2/v1/userinfo + zocial google + Sign in with google + True + + + Twitter OAuth2 + 108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.twitterusercontent.com + https://api.twitter.com/oauth/request_token + + https://api.twitter.com/oauth/authorize + + zocial twitter + Sign in with twitter + True + + + diff --git a/addons/auth_oauth/auth_oauth_view.xml b/addons/auth_oauth/auth_oauth_view.xml new file mode 100644 index 00000000000..678c347c84d --- /dev/null +++ b/addons/auth_oauth/auth_oauth_view.xml @@ -0,0 +1,46 @@ + + + + + auth.oauth.provider.form + auth.oauth.provider + form + +
+ + + + + + + + + + + + + +
+
+
+ + auth.oauth.provider.list + auth.oauth.provider + tree + + + + + + + + + + Providers + auth.oauth.provider + form + tree,form + + +
+
diff --git a/addons/auth_oauth/controllers/__init__.py b/addons/auth_oauth/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/auth_oauth/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py new file mode 100644 index 00000000000..28f550b4bda --- /dev/null +++ b/addons/auth_oauth/controllers/main.py @@ -0,0 +1,47 @@ +import logging + +import simplejson +import werkzeug.urls +import werkzeug.utils + +import openerp.modules.registry +import openerp.addons.web.controllers.main +import openerp.addons.web.common.http as openerpweb + +_logger = logging.getLogger(__name__) + +class OAuthController(openerpweb.Controller): + _cp_path = '/auth_oauth' + + @openerpweb.jsonrequest + def list_providers(self, req, dbname): + registry = openerp.modules.registry.RegistryManager.get(dbname) + with registry.cursor() as cr: + providers = registry.get('auth.oauth.provider') + l = providers.read(cr, 1, providers.search(cr, 1, [])) + return l + + @openerpweb.httprequest + def signin(self, req, **kw): + state = simplejson.loads(kw['state']) + dbname = state['d'] + provider = state['p'] + registry = openerp.modules.registry.RegistryManager.get(dbname) + with registry.cursor() as cr: + try: + u = registry.get('res.users') + credentials = u.auth_oauth(cr, 1, provider, kw) + cr.commit() + return openerp.addons.web.controllers.main.login_and_redirect(req, *credentials) + except AttributeError: + # auth_signup is not installed + _logger.error("auth_signup not installed on database %s: oauth sign up cancelled."%dbname) + url = "/#action=login&oauth_error=1" + except Exception,e: + # signup error + _logger.exception('oops') + url = "/#action=login&oauth_error=2" + return openerp.addons.web.controllers.main.set_cookie_and_redirect(req, url) + + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py new file mode 100644 index 00000000000..3dbab849942 --- /dev/null +++ b/addons/auth_oauth/res_users.py @@ -0,0 +1,70 @@ +import logging + +import urllib +import urllib2 +import simplejson + +import openerp +from openerp.osv import osv, fields + +_logger = logging.getLogger(__name__) + +class res_users(osv.Model): + _inherit = 'res.users' + + _columns = { + 'oauth_provider_id': fields.many2one('auth.oauth.provider','OAuth Provider'), + 'oauth_uid': fields.char('OAuth User ID', help="Oauth Provider user_id"), + 'oauth_access_token': fields.char('OAuth Token', readonly=True), + } + + def auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None): + params = urllib.urlencode({'access_token':access_token}) + url = endpoint + '?' + params + f = urllib2.urlopen(url) + response = f.read() + return simplejson.loads(response) + + def auth_oauth(self, cr, uid, provider, params, context=None): + # Advice by Google (to avoid Confused Deputy Problem) + # if validation.audience != OUR_CLIENT_ID: + # abort() + # else: + # continue with the process + access_token = params.get('access_token') + p = self.pool.get('auth.oauth.provider').browse(cr, uid, provider, context=context) + + validation = self.auth_oauth_rpc(cr, uid, p.validation_endpoint, access_token) + if validation.get("error"): + raise openerp.exceptions.AccessDenied + login = validation['email'] + oauth_uid = validation['user_id'] + name = self.auth_oauth_rpc(cr, uid, p.data_endpoint, access_token)['name'] + + credentials = (cr.dbname, login, access_token) + res = self.search(cr, uid, [("oauth_uid", "=", oauth_uid)]) + if res: + self.write(cr, uid, res[0], {'oauth_access_token':access_token}) + else: + # New user + new_user = { + 'name': name, + 'login': login, + 'user_email': login, + 'oauth_provider_id': 1, + 'oauth_uid': oauth_uid, + 'oauth_access_token': access_token, + 'active': True, + } + self.auth_signup_create(cr, uid, new_user) + return credentials + + def check_credentials(self, cr, uid, password): + try: + return super(res_users, self).check_credentials(cr, uid, password) + except openerp.exceptions.AccessDenied: + res = self.search(cr, 1, [('id','=',uid),('oauth_access_token','=',password)]) + if not res: + raise + +# diff --git a/addons/auth_oauth/res_users.xml b/addons/auth_oauth/res_users.xml new file mode 100644 index 00000000000..995dbfbd52a --- /dev/null +++ b/addons/auth_oauth/res_users.xml @@ -0,0 +1,23 @@ + + + + + res.users.form + res.users + form + + + + + + + + + + + + + + + + diff --git a/addons/auth_oauth/static/lib/zocial/README.md b/addons/auth_oauth/static/lib/zocial/README.md new file mode 100644 index 00000000000..213132677af --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/README.md @@ -0,0 +1,31 @@ +# Zocial CSS social buttons + +I basically rewrote this entire set so they are full vector buttons, meaning: + +- @font-face icons +- custom font file for all social icons +- icon font use private unicode spaces for accessibility +- em sizing based on button font-size +- support for about 83 different services +- buttons and icons supported +- no raster images (sweet) +- works splendidly on any browser supporting @font-face +- CSS3 degrades gracefully in IE8 and below etc. +- also includes generic icon-less primary and secondary buttons + +## How to use these buttons + + + +or + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf new file mode 100755 index 00000000000..94809d3a57f Binary files /dev/null and b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf differ diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff new file mode 100755 index 00000000000..1d6c4abc9d9 Binary files /dev/null and b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff differ diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial.css b/addons/auth_oauth/static/lib/zocial/css/zocial.css new file mode 100644 index 00000000000..89fc7450631 --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial.css @@ -0,0 +1,420 @@ +@charset "UTF-8"; + +/*! +Code written by Sam Collins (@smcllns) of www.eventasaur.us +You are free to use this work commercially +You are free to extend this work without permissions from the author (just do so tastefully eh?) +Enjoy +*/ + +/* Reference icons from font-files */ + +@font-face { + font-family: 'zocial'; + font-style: normal; + font-weight: normal; + src: url('zocial-regular-webfont.eot'); + src: url('zocial-regular-webfont.eot?#iefix') format('embedded-opentype'), + url('zocial-regular-webfont.woff') format('woff'), + url('zocial-regular-webfont.ttf') format('truetype'), + url('zocial-regular-webfont.svg#ZocialRegular') format('svg'); + unicode-range: U+0-U+10FFFF; +} + +/* Button structure */ + +.zocial, +a.zocial { + border: 1px solid #777; + border-color: rgba(0,0,0,0.2); + border-bottom-color: #333; + border-bottom-color: rgba(0,0,0,0.4); + color: #fff; + -moz-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + -webkit-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + cursor: pointer; + display: inline-block; + font: bold 100%/2.1 "Lucida Grande", Tahoma, sans-serif; + padding: 0 .95em 0 0; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0,0,0,0.5); + white-space: nowrap; + + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + + position: relative; + + -moz-border-radius: .3em; + -webkit-border-radius: .3em; + border-radius: .3em; +} + +.zocial:before { + content: ""; + border-right: 0.075em solid rgba(0,0,0,0.1); + float: left; + font: 120%/1.65 zocial; + font-style: normal; + font-weight: normal; + margin: 0 0.5em 0 0; + padding: 0 0.5em; + text-align: center; + text-decoration: none; + text-transform: none; + + -moz-box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + -webkit-box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + + -webkit-font-smoothing: antialiased; +} + +.zocial:active { + outline: none; /* outline is visible on :focus */ +} + +/* Buttons can be displayed as standalone icons by adding a class of "icon" */ + +.zocial.icon { + overflow: hidden; + max-width: 2.4em; + padding-left: 0; + padding-right: 0; + max-height: 2.15em; + white-space: nowrap; +} +.zocial.icon:before { + padding: 0; + width: 2em; + height: 2em; + + box-shadow: none; + border: none; +} + +/* Gradients */ + +.zocial { + background-image: -moz-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -ms-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -o-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), color-stop(49%, rgba(255,255,255,.05)), color-stop(51%, rgba(0,0,0,.05)), to(rgba(0,0,0,.1))); + background-image: -webkit-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); +} + +.zocial:hover, .zocial:focus { + background-image: -moz-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -ms-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -o-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.15)), color-stop(49%, rgba(255,255,255,.15)), color-stop(51%, rgba(0,0,0,.1)), to(rgba(0,0,0,.15))); + background-image: -webkit-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); +} + +.zocial:active { + background-image: -moz-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -ms-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -o-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), color-stop(30%, rgba(255,255,255,0)), color-stop(50%, transparent), to(rgba(0,0,0,.1))); + background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); +} + +/* Adjustments for light background buttons */ + +.zocial.bitcoin, +.zocial.cloudapp, +.zocial.dropbox, +.zocial.email, +.zocial.eventful, +.zocial.github, +.zocial.gmail, +.zocial.instapaper, +.zocial.itunes, +.zocial.ninetyninedesigns, +.zocial.openid, +.zocial.plancast, +.zocial.posterous, +.zocial.reddit, +.zocial.secondary, +.zocial.viadeo, +.zocial.weibo, +.zocial.wikipedia { + border: 1px solid #aaa; + border-color: rgba(0,0,0,0.3); + border-bottom-color: #777; + border-bottom-color: rgba(0,0,0,0.5); + -moz-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + -webkit-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + text-shadow: 0 1px 0 rgba(255,255,255,0.8); +} + +/* :hover adjustments for light background buttons */ + +.zocial.bitcoin:focus, +.zocial.bitcoin:hover, +.zocial.dropbox:focus, +.zocial.dropbox:hover, +.zocial.email:focus, +.zocial.email:hover, +.zocial.eventful:focus, +.zocial.eventful:hover, +.zocial.github:focus, +.zocial.github:hover, +.zocial.gmail:focus, +.zocial.gmail:hover, +.zocial.instapaper:focus, +.zocial.instapaper:hover, +.zocial.itunes:focus, +.zocial.itunes:hover, +.zocial.ninetyninedesigns:focus, +.zocial.ninetyninedesigns:hover, +.zocial.openid:focus, +.zocial.openid:hover, +.zocial.plancast:focus, +.zocial.plancast:hover, +.zocial.posterous:focus, +.zocial.posterous:hover, +.zocial.reddit:focus, +.zocial.reddit:hover, +.zocial.secondary:focus, +.zocial.secondary:hover, +.zocial.twitter:focus, +.zocial.viadeo:focus, +.zocial.viadeo:hover, +.zocial.weibo:focus, +.zocial.weibo:hover, +.zocial.wikipedia:focus, +.zocial.wikipedia:hover { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.5)), color-stop(49%, rgba(255,255,255,0.2)), color-stop(51%, rgba(0,0,0,0.05)), to(rgba(0,0,0,0.15))); + background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -o-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); +} + +/* :active adjustments for light background buttons */ + +.zocial.bitcoin:active, +.zocial.dropbox:active, +.zocial.email:active, +.zocial.eventful:active, +.zocial.github:active, +.zocial.gmail:active, +.zocial.instapaper:active, +.zocial.itunes:active, +.zocial.ninetyninedesigns:active, +.zocial.openid:active, +.zocial.plancast:active, +.zocial.posterous:active, +.zocial.reddit:active, +.zocial.secondary:active, +.zocial.viadeo:active, +.zocial.weibo:active, +.zocial.wikipedia:active { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0)), color-stop(30%, rgba(255,255,255,0)), color-stop(50%, rgba(0,0,0,0)), to(rgba(0,0,0,0.1))); + background-image: -moz-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -o-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -ms-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); +} + +/* Button icon and color */ +/* Icon characters are stored in unicode private area */ +.zocial.amazon:before {content: "\E040";} +.zocial.android:before {content: "\E005";} +.zocial.angellist:before {content: "\E06C";} +.zocial.aol:before {content: "\E001";} +.zocial.appstore:before {content: "\E020";} +.zocial.bitcoin:before {content: "\E011"; color: #f7931a;} +.zocial.blogger:before {content: "\E021";} +.zocial.call:before {content: "\E016";} +.zocial.cal:before {content: "\E00D";} +.zocial.cart:before {content: "\E06A";} +.zocial.chrome:before {content: "\E03A";} +.zocial.cloudapp:before {content: "\E042";} +.zocial.creativecommons:before {content: "\E022";} +.zocial.delicious:before {content: "\E002";} +.zocial.digg:before {content: "\E01A";} +.zocial.disqus:before {content: "\E030";} +.zocial.dribbble:before {content: "\E023";} +.zocial.dropbox:before {content: "\E043"; color: #1f75cc;} +.zocial.email:before {content: "\E03C"; color: #312c2a;} +.zocial.eventasaurus:before {content: "\E055"; color: #9de428;} +.zocial.eventbrite:before {content: "\E05B";} +.zocial.eventful:before {content: "\E006"; color: #0066CC;} +.zocial.evernote:before {content: "\E024";} +.zocial.facebook:before {content: "\E045";} +.zocial.fivehundredpx:before {content: "\E00F"; color: #29b6ff;} +.zocial.flattr:before {content: "\E004";} +.zocial.flickr:before {content: "\E025";} +.zocial.forrst:before {content: "\E019"; color: #50894f;} +.zocial.foursquare:before {content: "\E013";} +.zocial.github:before {content: "\E046";} +.zocial.gmail:before {content: "\E04C"; color: #f00;} +.zocial.google:before {content: "\E026";} +.zocial.googleplay:before {content: "\E05E";} +.zocial.googleplus:before {content: "\E00A";} +.zocial.gowalla:before {content: "\E01F";} +.zocial.grooveshark:before {content: "\E017";} +.zocial.guest:before {content: "\E01E";} +.zocial.html5:before {content: "\E014";} +.zocial.ie:before {content: "\E015";} +.zocial.instagram:before {content: "\E06D";} +.zocial.instapaper:before {content: "\E028";} +.zocial.intensedebate:before {content: "\E05A";} +.zocial.itunes:before {content: "\E048"; color: #1a6dd2;} +.zocial.klout:before {content: "\E02A"; } +.zocial.lanyrd:before {content: "\E00C";} +.zocial.lastfm:before {content: "\E04B";} +.zocial.linkedin:before {content: "\E02B";} +.zocial.macstore:before {content: "\E03D";} +.zocial.meetup:before {content: "\E02C";} +.zocial.myspace:before {content: "\E03E";} +.zocial.ninetyninedesigns:before {content: "\E018"; color: #f50;} +.zocial.openid:before {content: "\E04E"; color: #ff921d;} +.zocial.opentable:before {content: "\E05F";} +.zocial.paypal:before {content: "\E003";} +.zocial.pinboard:before {content: "\E04D";} +.zocial.pinterest:before {content: "\E010";} +.zocial.plancast:before {content: "\E02F";} +.zocial.plurk:before {content: "\E049";} +.zocial.podcast:before {content: "\E03F";} +.zocial.posterous:before {content: "\E05D";} +.zocial.print:before {content: "\E06B";} +.zocial.quora:before {content: "\E050";} +.zocial.reddit:before {content: "\E01D"; color: red;} +.zocial.rss:before {content: "\E031";} +.zocial.scribd:before {content: "\E05C"; color: #00d5ea;} +.zocial.skype:before {content: "\E032";} +.zocial.smashing:before {content: "\E009";} +.zocial.songkick:before {content: "\E04A";} +.zocial.soundcloud:before {content: "\E052";} +.zocial.spotify:before {content: "\E01C";} +.zocial.stumbleupon:before {content: "\E00E";} +.zocial.tumblr:before {content: "\E053";} +.zocial.twitter:before {content: "\E033";} +.zocial.viadeo:before {content: "\E027"; color: #f59b20;} +.zocial.vimeo:before {content: "\E035";} +.zocial.weibo:before {content: "\E029"; color: #e6162d;} +.zocial.wikipedia:before {content: "\E00B";} +.zocial.windows:before {content: "\E036";} +.zocial.xing:before {content: "\E037"} +.zocial.wordpress:before {content: "\E056";} +.zocial.yahoo:before {content: "\E038";} +.zocial.yelp:before {content: "\E058";} +.zocial.youtube:before {content: "\E034";} + +/* Button background and text color */ + +.zocial.amazon {background-color: #ffad1d; color: #030037; text-shadow: 0 1px 0 rgba(255,255,255,0.5);} +.zocial.android {background-color: #a4c639;} +.zocial.angellist {background-color: #000;} +.zocial.aol {background-color: #f00;} +.zocial.appstore {background-color: #000;} +.zocial.bitcoin {background-color: #efefef; color: #4d4d4d;} +.zocial.blogger {background-color: #ee5a22;} +.zocial.call {background-color: #008000;} +.zocial.cal {background-color: #d63538;} +.zocial.cart {background-color: #333;} +.zocial.chrome {background-color: #006cd4;} +.zocial.cloudapp {background-color: #fff; color: #312c2a;} +.zocial.creativecommons {background-color: #000;} +.zocial.delicious {background-color: #3271cb;} +.zocial.digg {background-color: #164673;} +.zocial.disqus {background-color: #5d8aad;} +.zocial.dribbble {background-color: #ea4c89;} +.zocial.dropbox {background-color: #fff; color: #312c2a;} +.zocial.email {background-color: #f0f0eb; color: #312c2a;} +.zocial.eventasaurus {background-color: #192931; color: #fff;} +.zocial.eventbrite {background-color: #ff5616;} +.zocial.eventful {background-color: #fff; color: #47ab15;} +.zocial.evernote {background-color: #6bb130; color: #fff;} +.zocial.facebook {background-color: #4863ae;} +.zocial.fivehundredpx {background-color: #333;} +.zocial.flattr {background-color: #8aba42;} +.zocial.flickr {background-color: #ff0084;} +.zocial.forrst {background-color: #1e360d;} +.zocial.foursquare {background-color: #44a8e0;} +.zocial.github {background-color: #fbfbfb; color: #050505;} +.zocial.gmail {background-color: #efefef; color: #222;} +.zocial.google {background-color: #4e6cf7;} +.zocial.googleplay {background-color: #000;} +.zocial.googleplus {background-color: #dd4b39;} +.zocial.gowalla {background-color: #ff720a;} +.zocial.grooveshark {background-color: #111; color:#eee;} +.zocial.guest {background-color: #1b4d6d;} +.zocial.html5 {background-color: #ff3617;} +.zocial.ie {background-color: #00a1d9;} +.zocial.instapaper {background-color: #eee; color: #222;} +.zocial.instagram {background-color: #3f729b;} +.zocial.intensedebate {background-color: #0099e1;} +.zocial.klout {background-color: #e34a25;} +.zocial.itunes {background-color: #efefeb; color: #312c2a;} +.zocial.lanyrd {background-color: #2e6ac2;} +.zocial.lastfm {background-color: #dc1a23;} +.zocial.linkedin {background-color: #0083a8;} +.zocial.macstore {background-color: #007dcb} +.zocial.meetup {background-color: #ff0026;} +.zocial.myspace {background-color: #000;} +.zocial.ninetyninedesigns {background-color: #fff; color: #072243;} +.zocial.openid {background-color: #f5f5f5; color: #333;} +.zocial.opentable {background-color: #990000;} +.zocial.paypal {background-color: #fff; color: #32689a; text-shadow: 0 1px 0 rgba(255,255,255,0.5);} +.zocial.pinboard {background-color: blue;} +.zocial.pinterest {background-color: #c91618;} +.zocial.plancast {background-color: #e7ebed; color: #333;} +.zocial.plurk {background-color: #cf682f;} +.zocial.podcast {background-color: #9365ce;} +.zocial.posterous {background-color: #ffd959; color: #bc7134;} +.zocial.print {background-color: #f0f0eb; color: #222; text-shadow: 0 1px 0 rgba(255,255,255,0.8);} +.zocial.quora {background-color: #a82400;} +.zocial.reddit {background-color: #fff; color: #222;} +.zocial.rss {background-color: #ff7f25;} +.zocial.scribd {background-color: #231c1a;} +.zocial.skype {background-color: #00a2ed;} +.zocial.smashing {background-color: #ff4f27;} +.zocial.songkick {background-color: #ff0050;} +.zocial.soundcloud {background-color: #ff4500;} +.zocial.spotify {background-color: #60af00;} +.zocial.stumbleupon {background-color: #eb4924;} +.zocial.tumblr {background-color: #374a61;} +.zocial.twitter {background-color: #46c0fb;} +.zocial.viadeo {background-color: #fff; color: #000;} +.zocial.vimeo {background-color: #00a2cd;} +.zocial.weibo {background-color: #faf6f1; color: #000;} +.zocial.wikipedia {background-color: #fff; color: #000;} +.zocial.windows {background-color: #0052a4; color: #fff;} +.zocial.wordpress {background-color: #464646;} +.zocial.xing {background-color: #0A5D5E;} +.zocial.yahoo {background-color: #a200c2;} +.zocial.yelp {background-color: #e60010;} +.zocial.youtube {background-color: #f00;} + +/* +The Miscellaneous Buttons +These button have no icons and can be general purpose buttons while ensuring consistent button style +Credit to @guillermovs for suggesting +*/ + +.zocial.primary, .zocial.secondary {margin: 0.1em 0; padding: 0 1em;} +.zocial.primary:before, .zocial.secondary:before {display: none;} +.zocial.primary {background-color: #333;} +.zocial.secondary {background-color: #f0f0eb; color: #222; text-shadow: 0 1px 0 rgba(255,255,255,0.8);} + +/* Any browser-specific adjustments */ + +button:-moz-focus-inner { + border: 0; + padding: 0; +} + + diff --git a/addons/auth_oauth/static/lib/zocial/sample.html b/addons/auth_oauth/static/lib/zocial/sample.html new file mode 100644 index 00000000000..98dec554ff1 --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/sample.html @@ -0,0 +1,265 @@ + + + + + Zocial CSS3 Buttons + + + + + + + + + + + + + Sign in with Google+ + + Sign in with LinkedIn + +

The Cool Kids

+ Sync with Dropbox + Clip to Evernote + Follow me on Forrst + Sign in with Dribbble + Sign in to CloudApp + Fork me on Github + Play on Spotify + Read It Later + Follow me on Soundcloud + Follow me on Tumblr + Read on Smashing Magazine + Available on iTunes + Available on the App Store + Available on the Mac App Store + Available on Android Market + Follow me on Pinterest + Follow me on Quora + Attend on Lanyrd + +

The Not-So-Cool But Have-To-Be-Invited Kids

+ Pay with Paypal + Sign in with Amazon + Call me on Skype + Sign in with Last.fm + Write a review on Yelp + Check in with foursquare + Influence with Klout + +

The Older (but Solid) Kids

+ View on Wikipedia + Sign in with Disqus + Sign in with IntenseDebate + Sign in with Google + Sign in with Gmail + Upload to Vimeo + Read more on Scribd + Subscribe on YouTube + Sign in with WordPress + Sign in with Songkick + Sign in with Posterous + Sign in with Eventbrite + Tip with Flattr + Follow me on Plancast + + +

The Kids That Kinda Smell but Some People Don't Mind

+ Submit resume for CEO + Download Internet Explorer 5 + Report bugs with Meetup.com + Learn how-to-use OpenID + Register now for HTML6 + Chat with your parents + +

The Kids That Nobody Normally Notices

+ Sign in as guest + View Creative Commons Licence + Subscribe to RSS + Add to Chrome + +

The He's-My-Son-So-Of-Course-He's-Here Kid

+ Sign up for Eventasaurus + +

Kids By Request

+ Join me on Weibo + Sign in with Plurk + Play on Grooveshark + Post on Blogger + Sign in with Viadeo + Subscribe to this Podcast + View Portfolio on 500px + Bitcoin accepted here + View Portfolio on 99Designs + Bookmark with Pinboard + Stumble! + Find me on Myspace + Sign in with Windows Live + Find Events with Eventful + Sign in with Xing + Upload to Flickr + Sign in with Del.icio.us + Download from Google Play + Reserve with OpenTable + Digg this + Share on Reddit + Fund us on AngelList + Sign-in with Instagram + +

The Multi-Purpose Kids (Credit: Pictos Icons)

+ + Call a phone + + Add to calendar + Add to cart + Print this page + Primary action + Secondary action + + +

Icon versions of the above

+ + Sign in with Google+ + + Sign in with Google + Sign in with LinkedIn + Pay with Paypal + Sign in with Amazon + Sync with Dropbox + Clip to Evernote + Call me on Skype + Sign in as guest + Play on Spotify + Sign in with Last.fm + Sign in with Songkick + Follow me on Forrst + Sign in with Dribbble + Sign in to CloudApp + Fork me on Github + Follow me on Pinterest + Follow me on Quora + Bookmark with Pinboard + Attend on Lanyrd + Download on iTunes + Download on Android + Sign in with Disqus + Sign in with Yahoo + Upload to Vimeo + Add to Chrome + Get a new browser + Made from HTML5 + Read It Later + Read more on Scribd + View on Wikipedia + Tip with Flattr + Follow me on Tumblr + Subscribe to my Posterous + Check in with Gowalla + Check in with foursquare + Write a review on Yelp + Follow me on Soundcloud + Read on Smashing Magazine + Sign in with WordPress + Sign in with IntenseDebate + Sign in with OpenID + Sign in with Gmail + Sign in with Eventbrite + Sign in with Eventasaurus + Sign in with Meetup.com + Sign in with AIM + Follow me on Plancast + Subscribe on YouTube + Available on the Mac App Store + View Creative Commons Licence + Subscribe to RSS + Follow me on Weibo + Follow me on Plurk + Follow me on Grooveshark + Post on Blogger + Sign in with Viadeo + Subscribe to this Podcast + View Portfolio on 500px + Bitcoin accepted here + View Portfolio on 99Designs + Stumble! + Download on iTunes + Find me on Myspace + Sign in with Windows Live + Find Events with Eventful + Influence with Klout + Sign in with Xing + Upload to Flickr + Sign in with Del.icio.us + Download from Google Play + Reserve with OpenTable + Digg this + Share on Reddit + Fund us on AngelList + Sign-in with Instagram + Call a phone + + Add to calendar + Print this page + Add to cart + + + +

Thanks to @guillermovs, @kamens, @vizualover, and @leaverou for code refinements and suggestions.

+ +

Massive thanks to @drewwilson for making the multi-purpose buttons possible with his incredible Pictos icons.

+ +

See code samples at zocial.smcllns.com — ask questions to @smcllns

+ + + + + + + + diff --git a/addons/auth_oauth/static/src/js/auth_oauth.js b/addons/auth_oauth/static/src/js/auth_oauth.js new file mode 100644 index 00000000000..eae423fae1f --- /dev/null +++ b/addons/auth_oauth/static/src/js/auth_oauth.js @@ -0,0 +1,64 @@ +openerp.auth_oauth = function(instance) { + var QWeb = instance.web.qweb; + + instance.web.Login = instance.web.Login.extend({ + start: function(parent, params) { + var d = this._super.apply(this, arguments); + this.$element.on('click', 'a.zocial', this.on_oauth_sign_in); + this.oauth_providers = []; + if(this.params.oauth_error === 1) { + this.do_warn("Sign up error.","Sign up is not allowed on this database."); + } else if(this.params.oauth_error === 2) { + this.do_warn("Authentication error",""); + } + return d.then(this.do_oauth_load); + }, + do_oauth_load: function() { + var db = this.$("form [name=db]").val(); + if (db) { + this.rpc("/auth_oauth/list_providers", { dbname: db }).then(this.on_oauth_loaded); + } + }, + on_oauth_loaded: function(result) { + this.oauth_providers = result; + console.log(result); + var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this}); + console.log(buttons); + this.$(".oe_login_pane form ul").after(buttons); + }, + on_oauth_sign_in: function(ev) { + ev.preventDefault(); + var index = $(ev.target).data('index'); + var p = this.oauth_providers[index]; + var ret = location.protocol+"//"+location.host+"/"; + var dbname = self.$("form [name=db]").val(); + var state_object = { + d: dbname, + p: p.id + } + var state = JSON.stringify(state_object); + var params = { + response_type: 'token', + client_id: p.client_id, + redirect_uri: ret, + scope: p.scope, + state: state, + }; + var url = p.auth_endpoint + '?' + $.param(params); + window.location = url; + }, + }); + + instance.web.WebClient = instance.web.WebClient.extend({ + start: function() { + this._super.apply(this, arguments); + var params = $.deparam(window.location.hash.substring(1)); + // alert(JSON.stringify(params)); + if (params.hasOwnProperty('access_token')) { + var url = "/auth_oauth/signin" + '?' + $.param(params); + window.location = url; + } + }, + }); + +}; diff --git a/addons/auth_oauth/static/src/xml/auth_oauth.xml b/addons/auth_oauth/static/src/xml/auth_oauth.xml new file mode 100644 index 00000000000..c2693804e59 --- /dev/null +++ b/addons/auth_oauth/static/src/xml/auth_oauth.xml @@ -0,0 +1,9 @@ + + + + + +
+
+
+
diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py index dc81730daf2..eba711dae7a 100644 --- a/addons/auth_openid/controllers/main.py +++ b/addons/auth_openid/controllers/main.py @@ -28,6 +28,7 @@ import werkzeug.urls import werkzeug.exceptions from openerp.modules.registry import RegistryManager +from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect try: import openerp.addons.web.common.http as openerpweb except ImportError: @@ -159,7 +160,7 @@ class OpenIDController(openerpweb.Controller): def process(self, req, **kw): session = getattr(req.session, 'openid_session', None) if not session: - return werkzeug.utils.redirect('/') + return set_cookie_and_redirect(req, '/') oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer) @@ -168,12 +169,11 @@ class OpenIDController(openerpweb.Controller): display_identifier = info.getDisplayIdentifier() session['status'] = info.status - user_id = None if info.status == consumer.SUCCESS: dbname = session['dbname'] - with utils.cursor(dbname) as cr: - registry = RegistryManager.get(dbname) + registry = RegistryManager.get(dbname) + with registry.cursor() as cr: Modules = registry.get('ir.module.module') installed = Modules.search_count(cr, 1, ['&', ('name', '=', 'auth_openid'), ('state', '=', 'installed')]) == 1 @@ -206,10 +206,9 @@ class OpenIDController(openerpweb.Controller): # TODO fill empty fields with the ones from sreg/ax cr.commit() - req.session.authenticate(dbname, login, key, {}) + return login_and_redirect(req, dbname, login, key) - if not user_id: - session['message'] = 'This OpenID identifier is not associated to any active users' + session['message'] = 'This OpenID identifier is not associated to any active users' elif info.status == consumer.SETUP_NEEDED: session['message'] = info.setup_url @@ -223,8 +222,7 @@ class OpenIDController(openerpweb.Controller): # information in a log. session['message'] = 'Verification failed.' - fragment = '#loginerror' if not user_id else '' - return werkzeug.utils.redirect('/' + fragment) + return set_cookie_and_redirect(req, '/#action=login&loginerror=1') @openerpweb.jsonrequest def status(self, req): diff --git a/addons/auth_openid/res_users.py b/addons/auth_openid/res_users.py index 3fb8cefcbd4..9b02ce42991 100644 --- a/addons/auth_openid/res_users.py +++ b/addons/auth_openid/res_users.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (). +# Copyright (C) 2010-2012 OpenERP s.a. (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -18,6 +18,7 @@ # along with this program. If not, see . # ############################################################################## +from openerp.modules.registry import RegistryManager from openerp.osv import osv, fields import openerp.exceptions import tools @@ -64,23 +65,22 @@ class res_users(osv.osv): if result: return result else: - with utils.cursor(db) as cr: + with RegistryManager.get(db).cursor() as cr: cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE login=%s AND openid_key=%s AND active=%s RETURNING id""", (tools.ustr(login), tools.ustr(password), True)) res = cr.fetchone() cr.commit() return res[0] if res else False - def check(self, db, uid, passwd): try: return super(res_users, self).check(db, uid, passwd) except openerp.exceptions.AccessDenied: if not passwd: raise - with utils.cursor(db) as cr: + with RegistryManager.get(db).cursor() as cr: cr.execute('''SELECT COUNT(1) FROM res_users WHERE id=%s diff --git a/addons/auth_openid/static/src/js/auth_openid.js b/addons/auth_openid/static/src/js/auth_openid.js index fd6ec01cc0f..1417bc471ce 100644 --- a/addons/auth_openid/static/src/js/auth_openid.js +++ b/addons/auth_openid/static/src/js/auth_openid.js @@ -8,7 +8,7 @@ instance.web.Login = instance.web.Login.extend({ this._super.apply(this, arguments); var self = this; - this._default_error_message = this.$element.find('.login_error_message').text(); + this._default_error_message = this.$element.find('.oe_login_error_message').text(); this.$openid_selected_button = $(); this.$openid_selected_input = $(); @@ -40,8 +40,7 @@ instance.web.Login = instance.web.Login.extend({ } }); - this._check_fragment(); - + this._check_error(); }, @@ -67,11 +66,9 @@ instance.web.Login = instance.web.Login.extend({ }, - _check_fragment: function() { + _check_error: function() { var self = this; - var fragment = jQuery.deparam.fragment(); - console.log(fragment); - if (fragment.loginerror !== undefined) { + if (this.params.loginerror !== undefined) { this.rpc('/auth_openid/login/status', {}, function(result) { if (_.contains(['success', 'failure'], result.status) && result.message) { self.do_warn('Invalid OpenID Login', result.message); @@ -132,11 +129,12 @@ instance.web.Login = instance.web.Login.extend({ do_warn: function(title, msg) { //console.warn(title, msg); - this.$element.find('.login_error_message').text(msg).show(); + this.$element.find('.oe_login_error_message').text(msg).show(); + this._super(title, msg); }, reset_error_message: function() { - this.$element.find('.login_error_message').text(this._default_error_message); + this.$element.find('.oe_login_error_message').text(this._default_error_message); } }); diff --git a/addons/auth_openid/static/src/xml/auth_openid.xml b/addons/auth_openid/static/src/xml/auth_openid.xml index 34894555668..aa61d161657 100644 --- a/addons/auth_openid/static/src/xml/auth_openid.xml +++ b/addons/auth_openid/static/src/xml/auth_openid.xml @@ -3,7 +3,7 @@ - + - - - - - - - - - - - - - - - - - - +
  • Google Apps Domain
  • @@ -54,7 +37,7 @@
    - + this.each(function() { var $i = $(this), dp = $i.find('input').attr('name'); diff --git a/addons/auth_openid/utils.py b/addons/auth_openid/utils.py index 444b5eeaa05..806198f99c2 100644 --- a/addons/auth_openid/utils.py +++ b/addons/auth_openid/utils.py @@ -1,8 +1,8 @@ #!/usr/bin/env python ############################################################################## -# +# # OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (). +# Copyright (C) 2010-2012 OpenERP s.a. (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -15,11 +15,9 @@ # 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 . +# along with this program. If not, see . # ############################################################################## -from contextlib import contextmanager -from openerp.modules.registry import RegistryManager KEY_LENGTH = 16 @@ -35,14 +33,4 @@ SREG2AX = { # from http://www.axschema.org/types/#sreg 'timezone': 'http://axschema.org/pref/timezone', } - -@contextmanager -def cursor(db): - cr = RegistryManager.get(db).db.cursor() - try: - yield cr - finally: - cr.close() - - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_reset_password/static/src/js/reset_password.js b/addons/auth_reset_password/static/src/js/reset_password.js index 41b48c7e59b..13cf070a548 100644 --- a/addons/auth_reset_password/static/src/js/reset_password.js +++ b/addons/auth_reset_password/static/src/js/reset_password.js @@ -31,7 +31,7 @@ openerp.auth_reset_password = function(instance) { }, do_reset_password: function(db, email) { var self = this; - instance.connection.session_authenticate(db, 'anonymous', 'anonymous', true).pipe(function () { + instance.session.session_authenticate(db, 'anonymous', 'anonymous', true).pipe(function () { var func = new instance.web.Model("res.users").get_func("send_reset_password_request"); return func(email).then(function(res) { // show message diff --git a/addons/auth_signup/__init__.py b/addons/auth_signup/__init__.py index 2e404949550..2331ae629a8 100644 --- a/addons/auth_signup/__init__.py +++ b/addons/auth_signup/__init__.py @@ -1,2 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA () +# +# 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 +# +############################################################################## + +import controllers import res_config -import auth_signup +import res_users diff --git a/addons/auth_signup/__openerp__.py b/addons/auth_signup/__openerp__.py index a869c623db0..765a36ef252 100644 --- a/addons/auth_signup/__openerp__.py +++ b/addons/auth_signup/__openerp__.py @@ -1,22 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2009-today OpenERP SA () +# +# 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 +# +############################################################################## + { - 'name': 'Signup', - 'description': 'Allow users to sign up', - 'author': 'OpenERP SA', - 'version': '1.0', - 'category': 'Authentication', - 'website': 'http://www.openerp.com', - 'installable': True, - 'depends': ['auth_anonymous', 'base_setup'], - 'data': [ - 'res_config.xml', - ], - 'js': [ - 'static/src/js/auth_signup.js', - ], - 'css': [ - 'static/src/css/auth_signup.css', - ], - 'qweb': [ - 'static/src/xml/auth_signup.xml', - ], + 'name': 'Signup', + 'description': 'Allow users to sign up', + 'author': 'OpenERP SA', + 'version': '1.0', + 'category': 'Authentication', + 'website': 'http://www.openerp.com', + 'installable': True, + 'depends': ['base_setup'], + 'data': [ + 'res_config.xml', + ], + 'js': [ + 'static/src/js/auth_signup.js', + ], + 'qweb': [ + 'static/src/xml/auth_signup.xml', + ], } diff --git a/addons/auth_signup/auth_signup.py b/addons/auth_signup/auth_signup.py deleted file mode 100644 index ebc72b3aeac..00000000000 --- a/addons/auth_signup/auth_signup.py +++ /dev/null @@ -1,39 +0,0 @@ -from openerp.osv import osv, fields - -class res_users(osv.Model): - _inherit = 'res.users' - - _sql_constraints = [ - ('email_uniq', 'UNIQUE (user_email)', 'You can not have two users with the same email!') - ] - -class signup_signup(osv.TransientModel): - _name = 'auth.signup' - - # TODO add captcha - _columns = { - 'name': fields.char('Name', size=64), - 'email': fields.char('Email', size=64), - 'password': fields.char('Password', size=64), - } - - def create(self, cr, uid, values, context=None): - # NOTE here, invalid values raises exceptions to avoid storing - # sensitive data into the database (which then are available to anyone) - - new_user = { - 'name': values['name'], - 'login': values['email'], - 'user_email': values['email'], - 'password': values['password'], - 'active': True, - } - - user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0) - if user_template_id: - self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context) - else: - self.pool.get('res.users').create(cr, 1, new_user, context=context) - - # Dont store anything - return 0 diff --git a/addons/auth_signup/controllers/__init__.py b/addons/auth_signup/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/auth_signup/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py new file mode 100644 index 00000000000..0ed2151d12b --- /dev/null +++ b/addons/auth_signup/controllers/main.py @@ -0,0 +1,34 @@ +import logging + +import werkzeug.urls + +from openerp.modules.registry import RegistryManager +from openerp.addons.web.controllers.main import login_and_redirect +import openerp.addons.web.common.http as openerpweb + +_logger = logging.getLogger(__name__) + +class OpenIDController(openerpweb.Controller): + _cp_path = '/auth_signup' + + @openerpweb.httprequest + def signup(self, req, dbname, name, login, password): + url = '/' + registry = RegistryManager.get(dbname) + with registry.cursor() as cr: + try: + Users = registry.get('res.users') + credentials = Users.auth_signup(cr, 1, name, login, password) + cr.commit() + return login_and_redirect(req, *credentials) + except AttributeError: + # auth_signup is not installed + _logger.exception('attribute error when signup') + url = "/#action=auth_signup&error=NA" # Not Available + except Exception: + # signup error + _logger.exception('error when signup') + url = "/#action=auth_signup&error=UE" # Unexcpected Error + return werkzeug.utils.redirect(url) + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_signup/res_config.py b/addons/auth_signup/res_config.py index 2828a2b55fd..a9a490de8c5 100644 --- a/addons/auth_signup/res_config.py +++ b/addons/auth_signup/res_config.py @@ -1,3 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA () +# +# 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 +# +############################################################################## + from openerp.osv import osv, fields class base_config_settings(osv.TransientModel): diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py new file mode 100644 index 00000000000..1d77a3f9473 --- /dev/null +++ b/addons/auth_signup/res_users.py @@ -0,0 +1,46 @@ +import openerp +from openerp.osv import osv + +class res_users(osv.Model): + _inherit = 'res.users' + + def auth_signup_create(self, cr, uid, new_user, context=None): + # new_user: + # login + # email + # name (optional) + # partner_id (optional) + # groups (optional) + # sign (for partner_id and groups) + # + user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0) + if user_template_id: + self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context) + else: + self.pool.get('res.users').create(cr, 1, new_user, context=context) + + def auth_signup(self, cr, uid, name, login, password, context=None): + r = (cr.dbname, login, password) + res = self.search(cr, uid, [("login", "=", login)]) + if res: + # Existing user + user_id = res[0] + try: + self.check(cr.dbname, user_id, password) + # Same password + except openerp.exceptions.AccessDenied: + # Different password + raise + else: + # New user + new_user = { + 'name': name, + 'login': login, + 'user_email': login, + 'password': password, + 'active': True, + } + self.auth_signup_create(cr, uid, new_user) + return r + +# diff --git a/addons/auth_signup/static/src/css/auth_signup.css b/addons/auth_signup/static/src/css/auth_signup.css deleted file mode 100644 index 1e8d7d9d8d8..00000000000 --- a/addons/auth_signup/static/src/css/auth_signup.css +++ /dev/null @@ -1,9 +0,0 @@ -.openerp .oe_login .oe_login_pane ul.oe_signup a { - color: #eeeeee; - margin: 0 8px; -} -.openerp .oe_login .oe_login_pane ul.oe_signup a:hover { - text-decoration: underline; -} - - diff --git a/addons/auth_signup/static/src/js/auth_signup.js b/addons/auth_signup/static/src/js/auth_signup.js index 7384fe1e5f5..2ab13aa7598 100644 --- a/addons/auth_signup/static/src/js/auth_signup.js +++ b/addons/auth_signup/static/src/js/auth_signup.js @@ -1,65 +1,38 @@ openerp.auth_signup = function(instance) { + instance.auth_signup = instance.auth_signup || {}; var _t = instance.web._t; instance.web.Login.include({ start: function() { var self = this; - this.$('a.oe_signup').click(function() { - var db = self.$("form [name=db]").val(); - if (!db) { - self.do_warn(_t("Login"), _t("No database selected!")); - return false; - } - - var cnx = instance.connection; - if (cnx.session_is_valid()) { - self._signup(); - } else { - cnx.session_authenticate(db, 'anonymous', 'anonymous', true).then(function() { - self._signup(); - }).fail(function(error, event) { - console.log(error); - // cannot log as anonymous or auth_signup not installed - self.do_warn(_t('Sign Up'), _.str.sprintf(_t('Signup functionnality is not available for database %s'), db), true); - }); - } + var dbname = self.$("form [name=db]").val(); + self.do_action({ + type: 'ir.actions.client', + tag: 'auth_signup.signup', + params: {'dbname': dbname}, + target: 'new', + name: 'Sign up' + }); return true; }); return this._super(); - }, - - _signup: function() { - this.do_action({ - type: 'ir.actions.client', - tag: 'auth_signup.signup', - target: 'new', - name: 'Sign up' - }); - } }); - instance.auth_signup = instance.auth_signup || {}; instance.auth_signup.Signup = instance.web.Widget.extend({ template: 'auth_signup.signup', - init: function() { - this._super.apply(this, arguments); - this.dataset = new instance.web.DataSet(this, 'auth.signup'); + init: function(parent, params) { + this.params = params; + return this._super(); }, start: function() { var self = this; - this.$('input[type=password]').change(function() { + this.$('input[name=password_confirmation]').keyup(function() { var v = $(this).val(); - var e = !_.isEmpty(v); - if (e) { - e =_.all(self.$('input[type=password]'), function(i) { - return $(i).val() === v; - }); - } var $b = self.$('button'); - if (e) { + if (_.isEmpty(v) || self.$('input[name=password]').val() === v) { $b.removeAttr('disabled'); } else { $b.attr('disabled', 'disabled'); @@ -70,36 +43,18 @@ openerp.auth_signup = function(instance) { if(ev) { ev.preventDefault(); } - var name = self.$('input[name=name]').val(); - var email = self.$('input[name=email]').val(); - var password = self.$('input[name=password]').val(); - - self.dataset.create({ - name: name, - email: email, - password: password - }, function() { - self.do_action({ - type: 'ir.actions.client', - tag: 'login', - params: { - db: instance.connection.db, - login: email, - password: password, - login_successful: function() { - self.do_action('home'); - } - } - }); - }); - return false; - + var params = { + dbname : self.params.dbname, + name: self.$('input[name=name]').val(), + login: self.$('input[name=email]').val(), + password: self.$('input[name=password]').val(), + }; + var url = "/auth_signup/signup?" + $.param(params); + window.location = url; }); - return $.when(this._super()); + return this._super(); } - }); instance.web.client_actions.add("auth_signup.signup", "instance.auth_signup.Signup"); - }; diff --git a/addons/auth_signup/static/src/xml/auth_signup.xml b/addons/auth_signup/static/src/xml/auth_signup.xml index 92343d96281..c2eec846d15 100644 --- a/addons/auth_signup/static/src/xml/auth_signup.xml +++ b/addons/auth_signup/static/src/xml/auth_signup.xml @@ -14,10 +14,10 @@
    - Name = - Email = - Password = - Confirmation = + Name =
    + Email =
    + Password =
    + Confirmation =
    diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 7699256985c..b6eacda63c0 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -292,7 +292,7 @@ the rule to mark CC(mail to any other person defined in actions)."), 'object_description': hasattr(obj, 'description') and obj.description or False, 'object_user': hasattr(obj, 'user_id') and (obj.user_id and obj.user_id.name) or '/', 'object_user_email': hasattr(obj, 'user_id') and (obj.user_id and \ - obj.user_id.user_email) or '/', + obj.user_id.email) or '/', 'object_user_phone': hasattr(obj, 'partner_address_id') and (obj.partner_address_id and \ obj.partner_address_id.phone) or '/', 'partner': hasattr(obj, 'partner_id') and (obj.partner_id and obj.partner_id.name) or '/', @@ -319,8 +319,8 @@ the rule to mark CC(mail to any other person defined in actions)."), mail_message = self.pool.get('mail.message') body = self.format_mail(obj, body) if not emailfrom: - if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.user_email: - emailfrom = obj.user_id.user_email + if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.email: + emailfrom = obj.user_id.email name = '[%d] %s' % (obj.id, tools.ustr(obj.name)) emailfrom = tools.ustr(emailfrom) @@ -419,7 +419,7 @@ the rule to mark CC(mail to any other person defined in actions)."), emails = [] if hasattr(obj, 'user_id') and action.act_mail_to_user: if obj.user_id: - emails.append(obj.user_id.user_email) + emails.append(obj.user_id.email) if action.act_mail_to_watchers: emails += (action.act_email_cc or '').split(',') diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index b570c2ef011..be3244f8a5b 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -245,7 +245,7 @@ class calendar_attendee(osv.osv): continue else: result[id][name] = self._get_address(attdata.sent_by_uid.name, \ - attdata.sent_by_uid.user_email) + attdata.sent_by_uid.email) if name == 'cn': if attdata.user_id: @@ -289,7 +289,7 @@ class calendar_attendee(osv.osv): if name == 'language': user_obj = self.pool.get('res.users') - lang = user_obj.read(cr, uid, uid, ['context_lang'], context=context)['context_lang'] + lang = user_obj.read(cr, uid, uid, ['lang'], context=context)['lang'] result[id][name] = lang.replace('_', '-') return result @@ -434,7 +434,7 @@ property or property parameter."), if not organizer: organizer = event_obj.user_id event_org.params['CN'] = [organizer.name] - event_org.value = 'MAILTO:' + (organizer.user_email or organizer.name) + event_org.value = 'MAILTO:' + (organizer.email or organizer.name) if event_obj.alarm_id: # computes alarm data @@ -535,7 +535,7 @@ property or property parameter."), return {'value': {'email': ''}} usr_obj = self.pool.get('res.users') user = usr_obj.browse(cr, uid, user_id, *args) - return {'value': {'email': user.user_email, 'availability':user.availability}} + return {'value': {'email': user.email, 'availability':user.availability}} def do_tentative(self, cr, uid, ids, context=None, *args): """ Makes event invitation as Tentative @@ -891,9 +891,9 @@ From: """ % (alarm.name, alarm.trigger_date, alarm.description, \ alarm.user_id.name, alarm.user_id.signature) - mail_to = [alarm.user_id.user_email] + mail_to = [alarm.user_id.email] for att in alarm.attendee_ids: - mail_to.append(att.user_id.user_email) + mail_to.append(att.user_id.email) if mail_to: mail_message.schedule_with_attach(cr, uid, tools.config.get('email_from', False), @@ -947,7 +947,7 @@ class calendar_event(osv.osv): value['duration'] = duration # change start_date's time to 00:00:00 in the user's timezone user = self.pool.get('res.users').browse(cr, uid, uid) - tz = pytz.timezone(user.context_tz) if user.context_tz else pytz.utc + tz = pytz.timezone(user.tz) if user.tz else pytz.utc start = pytz.utc.localize(start).astimezone(tz) # convert start in user's timezone start = start.replace(hour=0, minute=0, second=0) # change start's time to 00:00:00 start = start.astimezone(pytz.utc) # convert start back to utc @@ -1097,8 +1097,8 @@ rule or repeating pattern of time to exclude from the recurring rule."), user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) res = user.name - if user.user_email: - res += " <%s>" %(user.user_email) + if user.email: + res += " <%s>" %(user.email) return res _defaults = { diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml index c6826786379..51d17ed43f8 100644 --- a/addons/base_calendar/crm_meeting_view.xml +++ b/addons/base_calendar/crm_meeting_view.xml @@ -233,6 +233,7 @@
    +
    diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee.py b/addons/base_calendar/wizard/base_calendar_invite_attendee.py index b49c4219ce8..344056eb585 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee.py +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee.py @@ -99,12 +99,12 @@ send an Email to Invited Person') user = user_obj.browse(cr, uid, user_id) res = { 'user_id': user_id, - 'email': user.user_email + 'email': user.email } res.update(ref) vals.append(res) - if user.user_email: - mail_to.append(user.user_email) + if user.email: + mail_to.append(user.email) elif type == 'external' and datas.get('email'): res = {'email': datas['email']} @@ -143,7 +143,7 @@ send an Email to Invited Person') self._columns['type'].selection)) raise osv.except_osv(_('Error!'), _("%s must have an email address to send mail.") %(name[0])) att_obj._send_mail(cr, uid, attendees, mail_to, \ - email_from = current_user.user_email or tools.config.get('email_from', False)) + email_from = current_user.email or tools.config.get('email_from', False)) return {'type': 'ir.actions.act_window_close'} diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py index f7e200560a3..b27dad22363 100644 --- a/addons/base_crypt/crypt.py +++ b/addons/base_crypt/crypt.py @@ -213,7 +213,7 @@ class users(osv.osv): # Check if the encrypted password matches against the one in the db. cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE id=%s AND password=%s AND active RETURNING id""", (int(id), encrypted_pw.encode('utf-8'))) diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py index 9c1d7d9fa8e..e8e24969f2a 100644 --- a/addons/base_setup/base_setup.py +++ b/addons/base_setup/base_setup.py @@ -50,7 +50,7 @@ class specify_partner_terminology(osv.osv_memory): def make_translations(self, cr, uid, ids, name, type, src, value, res_id=0, context=None): trans_obj = self.pool.get('ir.translation') user_obj = self.pool.get('res.users') - context_lang = user_obj.browse(cr, uid, uid, context=context).context_lang + context_lang = user_obj.browse(cr, uid, uid, context=context).lang existing_trans_ids = trans_obj.search(cr, uid, [('name','=',name), ('lang','=',context_lang), ('type','=',type), ('src','=',src), ('res_id','=',res_id)]) if existing_trans_ids: trans_obj.write(cr, uid, existing_trans_ids, {'value': value}, context=context) diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py index 44e9de89162..775de51394c 100644 --- a/addons/base_status/base_stage.py +++ b/addons/base_status/base_stage.py @@ -57,7 +57,7 @@ class base_stage(object): if not context or not context.get('portal'): return False user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email + return user.email def _get_default_user(self, cr, uid, context=None): """ Gives current user id @@ -301,15 +301,15 @@ class base_stage(object): for case in self.browse(cr, uid, ids, context=context): if not destination and not case.email_from: return False - if not case.user_id.user_email: + if not case.user_id.email: return False if destination and case.section_id.user_id: - case_email = case.section_id.user_id.user_email + case_email = case.section_id.user_id.email else: - case_email = case.user_id.user_email + case_email = case.user_id.email src = case_email - dest = case.user_id.user_email or "" + dest = case.user_id.email or "" body = case.description or "" for message in case.message_ids: if message.email_from and message.body_text: @@ -366,8 +366,8 @@ class base_stage(object): l=[] if case.email_cc: l.append(case.email_cc) - if case.user_id and case.user_id.user_email: - l.append(case.user_id.user_email) + if case.user_id and case.user_id.email: + l.append(case.user_id.email) res[case.id] = l return res diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py index 4247e67f435..8fa2f92e22a 100644 --- a/addons/base_status/base_state.py +++ b/addons/base_status/base_state.py @@ -55,7 +55,7 @@ class base_state(object): if not context or not context.get('portal'): return False user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email + return user.email def _get_default_user(self, cr, uid, context=None): """ Gives current user id diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py index 96d182113c8..3e3bdc90d08 100644 --- a/addons/crm/crm_action_rule.py +++ b/addons/crm/crm_action_rule.py @@ -49,8 +49,8 @@ class base_action_rule(osv.osv): mail_message = self.pool.get('mail.message') body = self.format_mail(obj, body) if not emailfrom: - if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.user_email: - emailfrom = obj.user_id.user_email + if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.email: + emailfrom = obj.user_id.email name = '[%d] %s' % (obj.id, tools.ustr(obj.name)) emailfrom = tools.ustr(emailfrom) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 6e1d3a7755b..146417a7abb 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -243,7 +243,7 @@ class crm_lead(base_stage, osv.osv): 'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True), 'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True), 'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), 'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True), # Fields for address, due to separation from crm and res.partner @@ -692,11 +692,11 @@ class crm_lead(base_stage, osv.osv): """ #TOFIX: mail template should be used here instead of fix subject, body text. message = self.pool.get('mail.message') - email_to = lead.user_id and lead.user_id.user_email + email_to = lead.user_id and lead.user_id.email if not email_to: return False - email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.user_email or email_to + email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.email or email_to partner = lead.partner_id and lead.partner_id.name or lead.partner_name subject = "lead %s converted into opportunity" % lead.name body = "Info \n Id : %s \n Subject: %s \n Partner: %s \n Description : %s " % (lead.id, lead.name, lead.partner_id.name, lead.description) @@ -859,13 +859,10 @@ class crm_lead(base_stage, osv.osv): # OpenChatter methods and notifications # ---------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add the salesman. """ - user_ids = super(crm_lead, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(crm_lead, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index dd7743bc26b..f2c923844ec 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -222,6 +222,7 @@
    +
    @@ -287,6 +288,7 @@ + @@ -532,6 +534,7 @@
    +
    diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 8ffa8dd591e..da08f97250a 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -271,7 +271,6 @@ class crm_phonecall(base_state, osv.osv): def case_open_send_note(self, cr, uid, ids, context=None): lead_obj = self.pool.get('crm.lead') for phonecall in self.browse(cr, uid, ids, context=context): - phonecall.message_subscribe([phonecall.user_id.id], context=context) if phonecall.opportunity_id: lead = phonecall.opportunity_id # convert datetime field to a datetime, using server format, then diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index 9081ea15637..3b5162288a4 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -154,6 +154,7 @@
    +
    diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index cf5d1a780e8..820fb38e58a 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -182,6 +182,7 @@
    +
    diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index 02c6603280a..5399c9880ca 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -100,6 +100,7 @@
    +
    diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py index 2bc2d67d00a..d479f8b1bd5 100644 --- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py +++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py @@ -43,16 +43,13 @@ class crm_lead_forward_to_partner(osv.osv_memory): _defaults = { 'send_to' : 'email', 'history': 'latest', - 'email_from': lambda self, cr, uid, *a: self.pool.get('res.users')._get_email_from(cr, uid, uid)[uid], + 'email_from': lambda s, cr, uid, c: s.pool.get('res.users').browse(cr, uid, uid, c).email, } - - - def on_change_email(self, cr, uid, ids, user): + def on_change_email(self, cr, uid, ids, user, context=None): if not user: return {'value': {'email_to': False}} - email = self.pool.get('res.users')._get_email_from(cr, uid, [user])[user] - return {'value': {'email_to': email}} + return {'value': {'email_to': self.pool.get('res.users').browse(cr, uid, uid, context=context).email}} def on_change_history(self, cr, uid, ids, history_type, context=None): """Gives message body according to type of history selected @@ -80,7 +77,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): partner = partner_obj.browse(cr, uid, [partner_id]) user_id = partner and partner[0].user_id or False data.update({'email_from': partner and partner[0].email or "", - 'email_cc' : user_id and user_id.user_email or '', + 'email_cc' : user_id and user_id.user or '', 'user_id': user_id and user_id.id or False}) return {'value' : data} @@ -185,7 +182,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): if partner_assigned_id: assigned_partner = partner.browse(cr, uid, partner_assigned_id, context=context) user_id = assigned_partner.user_id and assigned_partner.user_id.id or False - email_cc = assigned_partner.user_id and assigned_partner.user_id.user_email or '' + email_cc = assigned_partner.user_id and assigned_partner.user_id.email or '' email = assigned_partner.email res.update({ diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py index d6d584aa62e..cf82011d27a 100644 --- a/addons/delivery/delivery.py +++ b/addons/delivery/delivery.py @@ -22,6 +22,7 @@ import time from osv import fields,osv from tools.translate import _ +import decimal_precision as dp class delivery_carrier(osv.osv): _name = "delivery.carrier" @@ -237,8 +238,8 @@ class delivery_grid_line(osv.osv): 'max_value': fields.float('Maximum Value', required=True), 'price_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Price Type', required=True), 'variable_factor': fields.selection([('weight','Weight'),('volume','Volume'),('wv','Weight * Volume'), ('price','Price')], 'Variable Factor', required=True), - 'list_price': fields.float('Sale Price', required=True), - 'standard_price': fields.float('Cost Price', required=True), + 'list_price': fields.float('Sale Price', digits_compute= dp.get_precision('Product Price'), required=True), + 'standard_price': fields.float('Cost Price', digits_compute= dp.get_precision('Product Price'), required=True), } _defaults = { 'type': lambda *args: 'weight', diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py index 7b09f131178..92e33c13746 100644 --- a/addons/document/report/document_report.py +++ b/addons/document/report/document_report.py @@ -32,7 +32,7 @@ class report_document_user(osv.osv): 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), 'user_id':fields.integer('Owner', readonly=True), - 'user':fields.char('User',size=64,readonly=True), + 'user': fields.related('user_id', 'name', type='char', size=64, readonly=True), 'directory': fields.char('Directory',size=64,readonly=True), 'datas_fname': fields.char('File Name',size=64,readonly=True), 'create_date': fields.datetime('Date Created', readonly=True), @@ -50,7 +50,6 @@ class report_document_user(osv.osv): to_char(f.create_date, 'YYYY') as name, to_char(f.create_date, 'MM') as month, f.user_id as user_id, - u.name as user, count(*) as nbr, d.name as directory, f.datas_fname as datas_fname, @@ -60,8 +59,7 @@ class report_document_user(osv.osv): f.write_date as change_date FROM ir_attachment f left join document_directory d on (f.parent_id=d.id and d.name<>'') - inner join res_users u on (f.user_id=u.id) - group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,u.name,d.type,f.write_date,f.datas_fname + group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,d.type,f.write_date,f.datas_fname ) """) diff --git a/addons/edi/static/src/js/edi.js b/addons/edi/static/src/js/edi.js index 24bf17a2f88..78e90852c38 100644 --- a/addons/edi/static/src/js/edi.js +++ b/addons/edi/static/src/js/edi.js @@ -6,7 +6,7 @@ openerp.edi.EdiView = openerp.web.Widget.extend({ this._super(); this.db = db; this.token = token; - this.session = openerp.connection; + this.session = openerp.session; this.template = "EdiEmpty"; this.content = ""; this.sidebar = ""; @@ -108,7 +108,7 @@ openerp.edi.EdiView = openerp.web.Widget.extend({ }); openerp.edi.edi_view = function (db, token) { - openerp.connection.session_bind().then(function () { + openerp.session.session_bind().then(function () { new openerp.edi.EdiView(null,db,token).appendTo($("body").addClass('openerp')); }); } @@ -188,7 +188,7 @@ openerp.edi.EdiImport = openerp.web.Widget.extend({ }); openerp.edi.edi_import = function (url) { - openerp.connection.session_bind().then(function () { + openerp.session.session_bind().then(function () { new openerp.edi.EdiImport(null,url).appendTo($("body").addClass('openerp')); }); } diff --git a/addons/event/email_template.xml b/addons/event/email_template.xml index 4485dfc785a..2666ece9921 100644 --- a/addons/event/email_template.xml +++ b/addons/event/email_template.xml @@ -4,7 +4,7 @@ Confirmation of the Event - ${object.user_id.user_email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'} + ${object.user_id.email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'} ${object.email} Your registration at ${object.event_id.name} @@ -24,7 +24,7 @@ Confirmation of the Registration - ${object.user_id.user_email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'} + ${object.user_id.email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'} ${object.email} Your registration at ${object.event_id.name} diff --git a/addons/event/event.py b/addons/event/event.py index 4279b8fcd7e..7f0c77661e4 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -230,7 +230,7 @@ class event_event(osv.osv): curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) #the subscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] + curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] else: register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context) return register_pool.confirm_registration(cr, SUPERUSER_ID, curr_reg_ids, context=context) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 289316110e6..27829129c15 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -196,6 +196,7 @@
    +
    @@ -477,6 +478,7 @@
    +
    diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 47432e1f527..966c29cab07 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -252,7 +252,7 @@ class hr_employee(osv.osv): def onchange_user(self, cr, uid, ids, user_id, context=None): work_email = False if user_id: - work_email = self.pool.get('res.users').browse(cr, uid, user_id, context=context).user_email + work_email = self.pool.get('res.users').browse(cr, uid, user_id, context=context).email return {'value': {'work_email' : work_email}} def _get_default_image(self, cr, uid, context=None): diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py index c40670508f4..5ecf8f8e75b 100644 --- a/addons/hr_expense/__openerp__.py +++ b/addons/hr_expense/__openerp__.py @@ -34,8 +34,7 @@ The whole workflow is implemented: * Draft expense * Confirmation of the sheet by the employee * Validation by his manager - * Validation by the accountant and invoice creation - * Payment of the invoice to the employee + * Validation by the accountant and receipt creation This module also uses the analytic accounting and is compatible with the invoice on timesheet module so that you will be able to automatically @@ -44,7 +43,7 @@ re-invoice your customer's expenses if your work by project. 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_expenses_analysis.jpeg', 'images/hr_expenses.jpeg'], - 'depends': ['hr', 'account'], + 'depends': ['hr', 'account_voucher'], 'init_xml': [], 'update_xml': [ 'security/ir.model.access.csv', diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index c690b91bb54..594b869c71e 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -40,12 +40,16 @@ class hr_expense_expense(osv.osv): if context is None: context = {} if not default: default = {} - default.update({'invoice_id': False, 'date_confirm': False, 'date_valid': False, 'user_valid': False}) + default.update({'voucher_id': False, 'date_confirm': False, 'date_valid': False, 'user_valid': False}) return super(hr_expense_expense, self).copy(cr, uid, id, default, context=context) def _amount(self, cr, uid, ids, field_name, arg, context=None): - cr.execute("SELECT s.id,COALESCE(SUM(l.unit_amount*l.unit_quantity),0) AS amount FROM hr_expense_expense s LEFT OUTER JOIN hr_expense_line l ON (s.id=l.expense_id) WHERE s.id IN %s GROUP BY s.id ", (tuple(ids),)) - res = dict(cr.fetchall()) + res= {} + for expense in self.browse(cr, uid, ids, context=context): + total = 0.0 + for line in expense.line_ids: + total += line.unit_amount * line.unit_quantity + res[expense.id] = total return res def _get_currency(self, cr, uid, context=None): @@ -63,7 +67,7 @@ class hr_expense_expense(osv.osv): 'name': fields.char('Description', size=128, required=True), 'id': fields.integer('Sheet ID', readonly=True), 'date': fields.date('Date', select=True), - 'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is invoiced"), + 'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."), 'employee_id': fields.many2one('hr.employee', "Employee", required=True), 'user_id': fields.many2one('res.users', 'User', required=True), 'date_confirm': fields.date('Confirmation Date', select=True, help = "Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."), @@ -72,8 +76,8 @@ class hr_expense_expense(osv.osv): 'account_move_id': fields.many2one('account.move', 'Ledger Posting'), 'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ), 'note': fields.text('Note'), - 'amount': fields.function(_amount, string='Total Amount'), - 'invoice_id': fields.many2one('account.invoice', "Employee's Invoice"), + 'amount': fields.function(_amount, string='Total Amount', digits_compute= dp.get_precision('Account')), + 'voucher_id': fields.many2one('account.voucher', "Employee's Receipt"), 'currency_id': fields.many2one('res.currency', 'Currency', required=True), 'department_id':fields.many2one('hr.department','Department'), 'company_id': fields.many2one('res.company', 'Company', required=True), @@ -82,11 +86,10 @@ class hr_expense_expense(osv.osv): ('cancelled', 'Refused'), ('confirm', 'Waiting Approval'), ('accepted', 'Approved'), - ('invoiced', 'Invoiced'), - ('paid', 'Reimbursed') + ('done', 'Done'), ], 'Status', readonly=True, help='When the expense request is created the status is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the status is \'Waiting Confirmation\'.\ - \nIf the admin accepts it, the status is \'Accepted\'.\n If an invoice is made for the expense request, the status is \'Invoiced\'.\n If the expense is paid to user, the status is \'Reimbursed\'.'), + \nIf the admin accepts it, the status is \'Accepted\'.\n If a receipt is made for the expense request, the status is \'Done\'.'), } _defaults = { 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'hr.employee', context=c), @@ -97,6 +100,13 @@ class hr_expense_expense(osv.osv): 'currency_id': _get_currency, } + def onchange_currency_id(self, cr, uid, ids, currency_id=False, company_id=False, context=None): + res = {'value': {'journal_id': False}} + journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','purchase'), ('currency','=',currency_id), ('company_id', '=', company_id)], context=context) + if journal_ids: + res['value']['journal_id'] = journal_ids[0] + return res + def onchange_employee_id(self, cr, uid, ids, employee_id, context=None): emp_obj = self.pool.get('hr.employee') department_id = False @@ -126,101 +136,94 @@ class hr_expense_expense(osv.osv): self.write(cr, uid, ids, {'state':'cancelled'}) return True - def expense_paid(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state':'paid'}) - return True - - def invoice(self, cr, uid, ids, context=None): - wf_service = netsvc.LocalService("workflow") - mod_obj = self.pool.get('ir.model.data') - res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form') - inv_ids = [] - for id in ids: - wf_service.trg_validate(uid, 'hr.expense.expense', id, 'invoice', cr) - inv_ids.append(self.browse(cr, uid, id).invoice_id.id) - return { - 'name': _('Supplier Invoices'), - 'view_type': 'form', - 'view_mode': 'form', - 'view_id': [res and res[1] or False], - 'res_model': 'account.invoice', - 'context': "{'type':'out_invoice', 'journal_type': 'purchase'}", - 'type': 'ir.actions.act_window', - 'nodestroy': True, - 'target': 'current', - 'res_id': inv_ids and inv_ids[0] or False, - } - - def action_invoice_create(self, cr, uid, ids): - res = False - invoice_obj = self.pool.get('account.invoice') + def action_receipt_create(self, cr, uid, ids, context=None): property_obj = self.pool.get('ir.property') sequence_obj = self.pool.get('ir.sequence') analytic_journal_obj = self.pool.get('account.analytic.journal') account_journal = self.pool.get('account.journal') - for exp in self.browse(cr, uid, ids): + voucher_obj = self.pool.get('account.voucher') + currency_obj = self.pool.get('res.currency') + wkf_service = netsvc.LocalService("workflow") + if context is None: + context = {} + for exp in self.browse(cr, uid, ids, context=context): company_id = exp.company_id.id lines = [] - for l in exp.line_ids: - tax_id = [] - if l.product_id: - acc = l.product_id.product_tmpl_id.property_account_expense + total = 0.0 + ctx = context.copy() + ctx.update({'date': exp.date}) + journal = False + if exp.journal_id: + journal = exp.journal_id + else: + journal_id = voucher_obj._get_journal(cr, uid, context={'type': 'purchase', 'company_id': company_id}) + if journal_id: + journal = account_journal.browse(cr, uid, journal_id, context=context) + for line in exp.line_ids: + if line.product_id: + acc = line.product_id.product_tmpl_id.property_account_expense if not acc: - acc = l.product_id.categ_id.property_account_expense_categ - tax_id = [x.id for x in l.product_id.supplier_taxes_id] + acc = line.product_id.categ_id.property_account_expense_categ else: acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company_id}) if not acc: raise osv.except_osv(_('Error!'), _('Please configure Default Expense account for Product purchase: `property_account_expense_categ`.')) + total_amount = line.total_amount + if journal.currency: + if exp.currency_id != journal.currency: + total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, journal.currency.id, total_amount, context=ctx) + elif exp.currency_id != exp.company_id.currency_id: + total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, exp.company_id.currency_id.id, total_amount, context=ctx) lines.append((0, False, { - 'name': l.name, + 'name': line.name, 'account_id': acc.id, - 'price_unit': l.unit_amount, - 'quantity': l.unit_quantity, - 'uos_id': l.uom_id.id, - 'product_id': l.product_id and l.product_id.id or False, - 'invoice_line_tax_id': tax_id and [(6, 0, tax_id)] or False, - 'account_analytic_id': l.analytic_account.id, + 'account_analytic_id': line.analytic_account.id, + 'amount': total_amount, + 'type': 'dr' })) + total += total_amount if not exp.employee_id.address_home_id: raise osv.except_osv(_('Error!'), _('The employee must have a home address.')) acc = exp.employee_id.address_home_id.property_account_payable.id - payment_term_id = exp.employee_id.address_home_id.property_payment_term.id - inv = { + voucher = { 'name': exp.name, 'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'), 'account_id': acc, - 'type': 'in_invoice', + 'type': 'purchase', 'partner_id': exp.employee_id.address_home_id.id, 'company_id': company_id, - 'origin': exp.name, - 'invoice_line': lines, - 'currency_id': exp.currency_id.id, - 'payment_term': payment_term_id, - 'fiscal_position': exp.employee_id.address_home_id.property_account_position.id + 'line_ids': lines, + 'amount': total, + 'journal_id': journal.id, } - if payment_term_id: - to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [], payment_term_id, None) - if to_update: - inv.update(to_update['value']) - journal = False - if exp.journal_id: - inv['journal_id']=exp.journal_id.id - journal = exp.journal_id - else: - journal_id = invoice_obj._get_journal(cr, uid, context={'type': 'in_invoice', 'company_id': company_id}) - if journal_id: - inv['journal_id'] = journal_id - journal = account_journal.browse(cr, uid, journal_id) if journal and not journal.analytic_journal_id: - analytic_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')]) + analytic_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')], context=context) if analytic_journal_ids: - account_journal.write(cr, uid, [journal.id],{'analytic_journal_id':analytic_journal_ids[0]}) - inv_id = invoice_obj.create(cr, uid, inv, {'type': 'in_invoice'}) - invoice_obj.button_compute(cr, uid, [inv_id], {'type': 'in_invoice'}, set_total=True) - self.write(cr, uid, [exp.id], {'invoice_id': inv_id, 'state': 'invoiced'}) - res = inv_id - return res + account_journal.write(cr, uid, [journal.id], {'analytic_journal_id': analytic_journal_ids[0]}, context=context) + voucher_id = voucher_obj.create(cr, uid, voucher, context=context) + wkf_service.trg_validate(uid, 'account.voucher', voucher_id, 'proforma_voucher', cr) + self.write(cr, uid, [exp.id], {'voucher_id': voucher_id, 'state': 'done'}, context=context) + return True + + def action_view_receipt(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing receipt of given expense ids. + ''' + assert len(ids) == 1, 'This option should only be used for a single id at a time' + voucher_id = self.browse(cr, uid, ids[0], context=context).voucher_id.id + res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_voucher', 'view_purchase_receipt_form') + result = { + 'name': _('Expense Receipt'), + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': res and res[1] or False, + 'res_model': 'account.voucher', + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + 'res_id': voucher_id, + } + return result hr_expense_expense() @@ -258,8 +261,8 @@ class hr_expense_line(osv.osv): 'date_value': fields.date('Date', required=True), 'expense_id': fields.many2one('hr.expense.expense', 'Expense', ondelete='cascade', select=True), 'total_amount': fields.function(_amount, string='Total', digits_compute=dp.get_precision('Account')), - 'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Account')), - 'unit_quantity': fields.float('Quantities' ), + 'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Product Price')), + 'unit_quantity': fields.float('Quantities', digits_compute= dp.get_precision('Product Unit of Measure')), 'product_id': fields.many2one('product.product', 'Product', domain=[('hr_expense_ok','=',True)]), 'uom_id': fields.many2one('product.uom', 'Unit of Measure'), 'description': fields.text('Description'), diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 506b9d7183f..9978490b29a 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -31,7 +31,7 @@ - + @@ -42,7 +42,7 @@ hr.expense.expense.tree hr.expense.expense - + @@ -64,9 +64,10 @@ + @@ -74,15 +74,6 @@ - -
  • - - -
  • -
  • - +
    diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml new file mode 100644 index 00000000000..53c899b9569 --- /dev/null +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -0,0 +1,31 @@ + + diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index d26511464f8..fe87b7584e0 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -100,7 +100,7 @@ class mail_compose_message(osv.TransientModel): # Try to provide default email_from if not specified yet if not result.get('email_from'): current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - result['email_from'] = current_user.user_email or False + result['email_from'] = current_user.email or False return result _columns = { @@ -133,7 +133,7 @@ class mail_compose_message(osv.TransientModel): result.update({ 'model': model, 'res_id': res_id, - 'email_from': user.user_email or tools.config.get('email_from', False), + 'email_from': user.email or tools.config.get('email_from', False), 'body_html': False, 'body_text': False, 'subject': False, @@ -223,7 +223,7 @@ class mail_compose_message(osv.TransientModel): 'dest_partner_ids': dest_partner_ids, 'model': message_data.model or False, 'res_id': message_data.res_id or False, - 'email_from': current_user.user_email or message_data.email_to or False, + 'email_from': current_user.email or message_data.email_to or False, 'email_to': message_data.reply_to or message_data.email_from or False, 'email_cc': message_data.email_cc or False, 'user_id': uid, diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index e268f3db5dd..bfabd2002bd 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -120,7 +120,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor 'Status',), 'activity_ids': fields.one2many('marketing.campaign.activity', 'campaign_id', 'Activities'), - 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Purchase Price')), + 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Product Price')), } _defaults = { @@ -435,8 +435,8 @@ class marketing_campaign_activity(osv.osv): 'from_ids': fields.one2many('marketing.campaign.transition', 'activity_to_id', 'Previous Activities'), - 'variable_cost': fields.float('Variable Cost', help="Set a variable cost if you consider that every campaign item that has reached this point has entailed a certain cost. You can get cost statistics in the Reporting section", digits_compute=dp.get_precision('Purchase Price')), - 'revenue': fields.float('Revenue', help="Set an expected revenue if you consider that every campaign item that has reached this point has generated a certain revenue. You can get revenue statistics in the Reporting section", digits_compute=dp.get_precision('Sale Price')), + 'variable_cost': fields.float('Variable Cost', help="Set a variable cost if you consider that every campaign item that has reached this point has entailed a certain cost. You can get cost statistics in the Reporting section", digits_compute=dp.get_precision('Product Price')), + 'revenue': fields.float('Revenue', help="Set an expected revenue if you consider that every campaign item that has reached this point has generated a certain revenue. You can get revenue statistics in the Reporting section", digits_compute=dp.get_precision('Account')), 'signal': fields.char('Signal', size=128, help='An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent'), 'keep_if_condition_not_met': fields.boolean("Don't Delete Workitems", diff --git a/addons/marketing_campaign/report/campaign_analysis.py b/addons/marketing_campaign/report/campaign_analysis.py index 0330cd1f7d3..d469be9c25e 100644 --- a/addons/marketing_campaign/report/campaign_analysis.py +++ b/addons/marketing_campaign/report/campaign_analysis.py @@ -63,8 +63,8 @@ class campaign_analysis(osv.osv): 'country_id': fields.related('partner_id', 'country_id', type='many2one', relation='res.country',string='Country'), 'total_cost' : fields.function(_total_cost, string='Cost', - type="float", digits_compute=dp.get_precision('Purchase Price')), - 'revenue': fields.float('Revenue', readonly=True, digits_compute=dp.get_precision('Sale Price')), + type="float", digits_compute=dp.get_precision('Account')), + 'revenue': fields.float('Revenue', readonly=True, digits_compute=dp.get_precision('Account')), 'count' : fields.integer('# of Actions', readonly=True), 'state': fields.selection([('todo', 'To Do'), ('exception', 'Exception'), ('done', 'Done'), diff --git a/addons/membership/membership.py b/addons/membership/membership.py index f6bcc5087e6..3439f97f833 100644 --- a/addons/membership/membership.py +++ b/addons/membership/membership.py @@ -146,7 +146,7 @@ class membership_line(osv.osv): 'date_to': fields.date('To', readonly=True), 'date_cancel': fields.date('Cancel date'), 'date': fields.date('Join Date', help="Date on which member has joined the membership"), - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'), 'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True), 'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True), 'state': fields.function(_state, @@ -447,7 +447,7 @@ Partner() class product_template(osv.osv): _inherit = 'product.template' _columns = { - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price')), } product_template() diff --git a/addons/membership/wizard/membership_invoice.py b/addons/membership/wizard/membership_invoice.py index d0be223158f..4ef16b99d82 100644 --- a/addons/membership/wizard/membership_invoice.py +++ b/addons/membership/wizard/membership_invoice.py @@ -29,7 +29,7 @@ class membership_invoice(osv.osv_memory): _description = "Membership Invoice" _columns = { 'product_id': fields.many2one('product.product','Membership', required=True), - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True), } def onchange_product(self, cr, uid, ids, product_id=False): """This function returns value of product's member price based on product id. diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 749d95c0c23..7b8442b4c46 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -1046,13 +1046,10 @@ class mrp_production(osv.osv): # OpenChatter methods and notifications # --------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(mrp_production, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(mrp_production, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def create_send_note(self, cr, uid, ids, context=None): self.message_append_note(cr, uid, ids, body=_("Manufacturing order has been created."), context=context) diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index 6de9a9a0bbc..c394544574d 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -818,6 +818,7 @@
    +
    diff --git a/addons/mrp/report/price.py b/addons/mrp/report/price.py index 9b3b724306f..527505d8ea5 100644 --- a/addons/mrp/report/price.py +++ b/addons/mrp/report/price.py @@ -138,7 +138,7 @@ class report_custom(report_rml): """ % (_('Components'), _('Components suppliers'), _('Quantity'),_('Cost Price per Unit of Measure'), _('Supplier Price per Unit of Measure')) - purchase_price_digits = rml_obj.get_digits(dp='Purchase Price') + purchase_price_digits = rml_obj.get_digits(dp='Product Price') for product in product_pool.browse(cr, uid, ids, context=context): product_uom_name = to_xml(product.uom_id.name) diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index 658c284bce4..834f3000472 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -108,6 +108,7 @@
    +
    diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index c9dc3f5e7bc..f41abb58c08 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -692,10 +692,10 @@ class mrp_repair_line(osv.osv, ProductChangeMixin): 'to_invoice': fields.boolean('To Invoice'), 'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], required=True), 'invoiced': fields.boolean('Invoiced',readonly=True), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price')), - 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'repair_operation_line_tax', 'repair_operation_line_id', 'tax_id', 'Taxes'), - 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product UoS'), required=True), + 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True), 'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number',domain="[('product_id','=',product_id)]"), 'invoice_line_id': fields.many2one('account.invoice.line', 'Invoice Line', readonly=True), @@ -784,10 +784,10 @@ class mrp_repair_fee(osv.osv, ProductChangeMixin): 'repair_id': fields.many2one('mrp.repair', 'Repair Order Reference', required=True, ondelete='cascade', select=True), 'name': fields.char('Description', size=64, select=True,required=True), 'product_id': fields.many2one('product.product', 'Product'), - 'product_uom_qty': fields.float('Quantity', digits=(16,2), required=True), + 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), 'price_unit': fields.float('Unit Price', required=True), 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True), - 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'repair_fee_line_tax', 'repair_fee_line_id', 'tax_id', 'Taxes'), 'invoice_line_id': fields.many2one('account.invoice.line', 'Invoice Line', readonly=True), 'to_invoice': fields.boolean('To Invoice'), diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml index c9268a55428..55cbe49c75b 100644 --- a/addons/mrp_repair/mrp_repair_view.xml +++ b/addons/mrp_repair/mrp_repair_view.xml @@ -190,6 +190,7 @@
    +
    diff --git a/addons/point_of_sale/static/src/js/pos_widgets.js b/addons/point_of_sale/static/src/js/pos_widgets.js index bebbb3c1591..9a27be29381 100644 --- a/addons/point_of_sale/static/src/js/pos_widgets.js +++ b/addons/point_of_sale/static/src/js/pos_widgets.js @@ -674,7 +674,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa self.$('.loader img').hide(); return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_pos_session_opening']], ['res_id']) .pipe( _.bind(function(res){ - return instance.connection.rpc('/web/action/load', {'action_id': res[0]['res_id']}) + return instance.session.rpc('/web/action/load', {'action_id': res[0]['res_id']}) .pipe(_.bind(function(result){ var action = result.result; this.do_action(action); diff --git a/addons/portal/__init__.py b/addons/portal/__init__.py index 65b924183e1..9c6cc59be7d 100644 --- a/addons/portal/__init__.py +++ b/addons/portal/__init__.py @@ -21,7 +21,6 @@ import portal import wizard -import res_user # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py index 97183bccd9f..283e007a598 100644 --- a/addons/portal/__openerp__.py +++ b/addons/portal/__openerp__.py @@ -20,10 +20,14 @@ ############################################################################## { - 'name' : "Portal", - 'version' : "1.0", - 'depends' : ["base", "share", "auth_anonymous"], - 'author' : "OpenERP SA", + 'name' : 'Portal', + 'version' : '1.0', + 'depends' : [ + 'base', + 'share', + 'auth_anonymous' + ], + 'author' : 'OpenERP SA', 'category': 'Portal', 'description': """ Customize access to your OpenERP database to external users by creating portals. @@ -43,7 +47,6 @@ very handy when used in combination with the module 'share'. 'security/ir.model.access.csv', 'portal_view.xml', 'portal_data.xml', - 'res_user_view.xml', 'wizard/portal_wizard_view.xml', 'wizard/share_wizard_view.xml', ], diff --git a/addons/portal/res_user_view.xml b/addons/portal/res_user_view.xml deleted file mode 100644 index 7a576982541..00000000000 --- a/addons/portal/res_user_view.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - res.portal.users.form - res.users - - - - - - - - - - diff --git a/addons/portal/security/ir.model.access.csv b/addons/portal/security/ir.model.access.csv index 37302891333..56b3ae5f269 100644 --- a/addons/portal/security/ir.model.access.csv +++ b/addons/portal/security/ir.model.access.csv @@ -6,7 +6,7 @@ access_widget_manager,access.portal.widget.manager,model_res_portal_widget,group access_mail_message,mail.message,mail.model_mail_message,group_portal_member,1,0,1,1 access_mail_message_all,mail.message.all,mail.model_mail_message,group_portal_member,1,0,0,0 access_mail_thread,mail.thread,mail.model_mail_thread,group_portal_member,1,0,0,0 -access_mail_subscription,mail.subscription,mail.model_mail_subscription,group_portal_member,1,0,1,1 +access_mail_followers,mail.followers,mail.model_mail_followers,group_portal_member,1,0,1,1 access_mail_notification,mail.notification,mail.model_mail_notification,group_portal_member,1,0,1,0 access_mail_group,mail.group,mail.model_mail_group,group_portal_member,1,0,0,0 access_mail_alias,mail.alias,mail.model_mail_alias,group_portal_member,1,0,0,0 diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py index 64e24e408dd..0260ce338fc 100644 --- a/addons/portal/wizard/portal_wizard.py +++ b/addons/portal/wizard/portal_wizard.py @@ -26,7 +26,7 @@ from osv import osv, fields from tools.misc import email_re from tools.translate import _ -from base.res.res_users import _lang_get +from base.res.res_partner import _lang_get _logger = logging.getLogger(__name__) @@ -62,9 +62,9 @@ def random_password(): random.shuffle(chars) return ''.join(chars) -def extract_email(user_email): +def extract_email(email): """ extract the email address from a user-friendly email address """ - m = email_re.search(user_email or "") + m = email_re.search(email or "") return m and m.group(0) or "" @@ -102,7 +102,7 @@ class wizard(osv.osv_memory): return{ 'name': address.name, - 'user_email': extract_email(address.email), + 'email': extract_email(address.email), 'lang': lang, 'partner_id': partner_id, } @@ -136,7 +136,7 @@ class wizard(osv.osv_memory): user_obj = self.pool.get('res.users') user = user_obj.browse(cr, ROOT_UID, uid, context0) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('You must have an email address in your User Preferences' ' to send emails.')) @@ -144,7 +144,7 @@ class wizard(osv.osv_memory): portal_obj = self.pool.get('res.portal') for wiz in self.browse(cr, uid, ids, context): # determine existing users - login_cond = [('login', 'in', [u.user_email for u in wiz.user_ids])] + login_cond = [('login', 'in', [u.email for u in wiz.user_ids])] existing_uids = user_obj.search(cr, ROOT_UID, login_cond) existing_users = user_obj.browse(cr, ROOT_UID, existing_uids) existing_logins = [u.login for u in existing_users] @@ -152,15 +152,15 @@ class wizard(osv.osv_memory): # create new users in portal (skip existing logins) new_users_data = [ { 'name': u.name, - 'login': u.user_email, + 'login': u.email, 'password': random_password(), - 'user_email': u.user_email, - 'context_lang': u.lang, + 'email': u.email, + 'lang': u.lang, 'share': True, 'action_id': wiz.portal_id.home_action_id and wiz.portal_id.home_action_id.id or False, 'partner_id': u.partner_id and u.partner_id.id, 'groups_id': [(6, 0, [])], - } for u in wiz.user_ids if u.user_email not in existing_logins ] + } for u in wiz.user_ids if u.email not in existing_logins ] portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id], {'users': [(0, 0, data) for data in new_users_data]}, context0) @@ -175,13 +175,13 @@ class wizard(osv.osv_memory): dest_uids = user_obj.search(cr, ROOT_UID, login_cond) dest_users = user_obj.browse(cr, ROOT_UID, dest_uids) for dest_user in dest_users: - context['lang'] = dest_user.context_lang + context['lang'] = dest_user.lang data['login'] = dest_user.login data['password'] = dest_user.password data['name'] = dest_user.name - email_from = user.user_email - email_to = dest_user.user_email + email_from = user.email + email_to = dest_user.email subject = _(WELCOME_EMAIL_SUBJECT) % data body = _(WELCOME_EMAIL_BODY) % data res = mail_message_obj.schedule_with_attach(cr, uid, email_from , [email_to], subject, body, context=context) @@ -208,7 +208,7 @@ class wizard_user(osv.osv_memory): 'name': fields.char(size=64, required=True, string='User Name', help="The user's real name"), - 'user_email': fields.char(size=64, required=True, + 'email': fields.char(size=64, required=True, string='Email', help="Will be used as user login. " "Also necessary to send the account information to new users"), @@ -222,7 +222,7 @@ class wizard_user(osv.osv_memory): def _check_email(self, cr, uid, ids): """ check syntax of email address """ for wuser in self.browse(cr, uid, ids): - if not email_re.match(wuser.user_email): return False + if not email_re.match(wuser.email): return False return True _constraints = [ diff --git a/addons/portal/wizard/portal_wizard_view.xml b/addons/portal/wizard/portal_wizard_view.xml index 7d572d09630..f3cd5c98bb4 100644 --- a/addons/portal/wizard/portal_wizard_view.xml +++ b/addons/portal/wizard/portal_wizard_view.xml @@ -41,7 +41,7 @@ editable in the web client 6.0 --> - + @@ -55,7 +55,7 @@
    - + diff --git a/addons/portal_crm/wizard/contact.py b/addons/portal_crm/wizard/contact.py index 505bb62bb16..036993e1720 100644 --- a/addons/portal_crm/wizard/contact.py +++ b/addons/portal_crm/wizard/contact.py @@ -50,7 +50,7 @@ class crm_contact_us(osv.TransientModel): user = self.pool.get('res.users').browse(cr, uid, uid, context=context) if (user.login != 'anonymous'): - return user.user_email + return user.email else: return None diff --git a/addons/portal_event/portal_event_view.xml b/addons/portal_event/portal_event_view.xml old mode 100644 new mode 100755 index 8b1f21bbef0..1e046bc9e7f --- a/addons/portal_event/portal_event_view.xml +++ b/addons/portal_event/portal_event_view.xml @@ -2,8 +2,22 @@ + + + Events + ir.actions.act_window + event.event + kanban,calendar,tree,form,graph + {"search_default_upcoming":1} + + No public events. + + + action="action_event_view" sequence="40"/> diff --git a/addons/portal_sale/portal_sale_view.xml b/addons/portal_sale/portal_sale_view.xml index 2db0a7a4d96..5786fbc52ad 100644 --- a/addons/portal_sale/portal_sale_view.xml +++ b/addons/portal_sale/portal_sale_view.xml @@ -2,16 +2,39 @@ + + + Quotations + ir.actions.act_window + sale.order + tree,form,calendar,graph + {"search_default_draft":1} + + You dont have any quotation. + + + + Sales Orders + ir.actions.act_window + sale.order + tree,form,calendar,graph + + {"search_default_sales":1} + You dont have any sale order. + + Delivery Orders stock.picking.out ir.actions.act_window - form tree,form [('type','=','out')] {'default_type': 'out', 'contact_display': 'partner_address'} - This is the list of all delivery orders that have to be prepared, according to your different orders. + You dont have any delivery order. @@ -22,21 +45,42 @@ kanban,tree,form + No public products. + + + + Customer Invoices + account.invoice + tree,form,calendar,graph + [('type','=','out_invoice')] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + You dont have any invoice. + + + + Customer Payment + account.voucher + [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')] + {'type':'receipt'} + + current + You dont have any payment. + action="action_order_tree5" sequence="10"/> + action="action_order_form" sequence="20"/> + action="action_invoice_tree1" sequence="10"/> + action="action_vendor_receipt" sequence="20"/> diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml index 2d734b32cfb..dbdc65c6763 100644 --- a/addons/procurement/procurement_view.xml +++ b/addons/procurement/procurement_view.xml @@ -104,6 +104,7 @@
    +
    diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py index 1ad1046efce..7a87697f5c8 100644 --- a/addons/procurement/schedulers.py +++ b/addons/procurement/schedulers.py @@ -131,7 +131,7 @@ class procurement_order(osv.osv): Exceptions:\n""") % (start_date, end_date, report_total, report_except, report_later) summary += '\n'.join(report) - self.pool.get('res.users').message_append_note(cr, uid, [uid], body=summary, context=context) + procurement_obj.message_append_note(cr, uid, ids, body=summary, context=context) if use_new_cursor: cr.commit() @@ -234,7 +234,6 @@ class procurement_order(osv.osv): location_obj = self.pool.get('stock.location') procurement_obj = self.pool.get('procurement.order') wf_service = netsvc.LocalService("workflow") - report = [] offset = 0 ids = [1] if automatic: @@ -288,9 +287,6 @@ class procurement_order(osv.osv): offset += len(ids) if use_new_cursor: cr.commit() - if user_id and report: - # Chatter: old res.request is now a chatter on res.users, id=uid - self.pool.get('res.users').message_append_note(cr, uid, [user_id], body='\n'.join(report), subject=_('Orderpoint report'), context=context) if use_new_cursor: cr.commit() cr.close() diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 806d9683e68..c333000621a 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -407,18 +407,18 @@ class product_pricelist_item(osv.osv): 'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'), 'price_surcharge': fields.float('Price Surcharge', - digits_compute= dp.get_precision('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'price_discount': fields.float('Price Discount', digits=(16,4)), 'price_round': fields.float('Price Rounding', - digits_compute= dp.get_precision('Sale Price'), + digits_compute= dp.get_precision('Product Price'), help="Sets the price so that it is a multiple of this value.\n" \ "Rounding is applied after the discount and before the surcharge.\n" \ "To have prices that end in 9.99, set rounding 10, surcharge -0.01" \ ), 'price_min_margin': fields.float('Min. Price Margin', - digits_compute= dp.get_precision('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'price_max_margin': fields.float('Max. Price Margin', - digits_compute= dp.get_precision('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'company_id': fields.related('price_version_id','company_id',type='many2one', readonly=True, relation='res.company', string='Company', store=True) } diff --git a/addons/product/product.py b/addons/product/product.py index 2a62d9c2531..ae99711a5ec 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -272,8 +272,8 @@ class product_template(osv.osv): 'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."), 'rental': fields.boolean('Can be Rent'), 'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]" ,help="Select category for the current product"), - 'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Sale Price'), help="Base price for computing the customer price. Sometimes called the catalog price."), - 'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Purchase Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"), + 'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price for computing the customer price. Sometimes called the catalog price."), + 'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"), 'volume': fields.float('Volume', help="The volume in m3."), 'weight': fields.float('Gross Weight', digits_compute=dp.get_precision('Stock Weight'), help="The gross weight in Kg."), 'weight_net': fields.float('Net Weight', digits_compute=dp.get_precision('Stock Weight'), help="The net weight in Kg."), @@ -518,8 +518,8 @@ class product_product(osv.osv): 'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'), 'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'), 'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'), - 'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Sale Price')), - 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Sale Price')), + 'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Product Price')), + 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')), 'code': fields.function(_product_code, type='char', string='Reference'), 'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'), 'default_code' : fields.char('Reference', size=64, select=True), @@ -528,8 +528,8 @@ class product_product(osv.osv): 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"), 'ean13': fields.char('EAN13', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."), 'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."), - 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')), - 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Sale Price')), + 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Product Price')), + 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Product Price')), 'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'), 'name_template': fields.related('product_tmpl_id', 'name', string="Name", type='char', size=128, store=True, select=True), 'color': fields.integer('Color Index'), @@ -878,7 +878,7 @@ class pricelist_partnerinfo(osv.osv): 'name': fields.char('Description', size=64), 'suppinfo_id': fields.many2one('product.supplierinfo', 'Partner Information', required=True, ondelete='cascade'), 'min_quantity': fields.float('Quantity', required=True, help="The minimal quantity to trigger this rule, expressed in the supplier Unit of Measure if any or in the default Unit of Measure of the product otherrwise."), - 'price': fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Purchase Price'), help="This price will be considered as a price for the supplier Unit of Measure if any or the default Unit of Measure of the product otherwise"), + 'price': fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Product Price'), help="This price will be considered as a price for the supplier Unit of Measure if any or the default Unit of Measure of the product otherwise"), } _order = 'min_quantity asc' pricelist_partnerinfo() diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml index 94a262f4dc6..80dbfac564d 100644 --- a/addons/product/product_data.xml +++ b/addons/product/product_data.xml @@ -157,12 +157,12 @@ parameter) will see those record just disappear. - - Sale Price + + Product Price 2 - - Purchase Price + + Discount 2 diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 7a4c66ec52a..70651a0a795 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -176,6 +176,7 @@
    +
    diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py index 7e9748c2523..c19c12c06d7 100644 --- a/addons/product/report/product_pricelist.py +++ b/addons/product/report/product_pricelist.py @@ -112,7 +112,7 @@ class product_pricelist(report_sxw.rml_parse): return res def _get_price(self,pricelist_id, product_id,qty): - sale_price_digits = self.get_digits(dp='Sale Price') + sale_price_digits = self.get_digits(dp='Product Price') pool = pooler.get_pool(self.cr.dbname) price_dict = pool.get('product.pricelist').price_get(self.cr, self.uid, [pricelist_id], product_id, qty, context=self.localcontext) if price_dict[pricelist_id]: diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index aa523b438c7..a65497c311e 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -19,18 +19,33 @@ # ############################################################################## - { - "name": "Project Management", - "version": "1.1", - "author": "OpenERP SA", - "website": "http://www.openerp.com", - "category": "Project Management", - "sequence": 8, - "summary": "Projects, Tasks", - "images": ["images/gantt.png", "images/project_dashboard.jpeg","images/project_task_tree.jpeg","images/project_task.jpeg","images/project.jpeg","images/task_analysis.jpeg"], - "depends": ["base_setup", "base_status", "product", "analytic", "board", "mail", "resource","web_kanban"], - "description": """ + 'name': 'Project Management', + 'version': '1.1', + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'category': 'Project Management', + 'sequence': 8, + 'summary': 'Projects, Tasks', + 'images': [ + 'images/gantt.png', + 'images/project_dashboard.jpeg', + 'images/project_task_tree.jpeg', + 'images/project_task.jpeg', + 'images/project.jpeg', + 'images/task_analysis.jpeg' + ], + 'depends': [ + 'base_setup', + 'base_status', + 'product', + 'analytic', + 'board', + 'mail', + 'resource', + 'web_kanban' + ], + 'description': """ Project Management module tracks multi-level projects, tasks, work done on tasks. ================================================================================= @@ -41,22 +56,21 @@ Dashboard for project management that includes: * List of My Open Tasks * Graph of My Remaining Hours by Project """, - "init_xml": [], - "update_xml": [ - "security/project_security.xml", - "wizard/project_task_delegate_view.xml", - "wizard/project_task_reevaluate_view.xml", - "security/ir.model.access.csv", - "project_data.xml", - "project_view.xml", - "process/task_process.xml", - "res_partner_view.xml", - "report/project_report_view.xml", + 'data': [ + 'security/project_security.xml', + 'wizard/project_task_delegate_view.xml', + 'wizard/project_task_reevaluate_view.xml', + 'security/ir.model.access.csv', + 'project_data.xml', + 'project_view.xml', + 'process/task_process.xml', + 'res_partner_view.xml', + 'report/project_report_view.xml', 'report/project_cumulative.xml', - "board_project_view.xml", + 'board_project_view.xml', 'res_config_view.xml', ], - 'demo_xml': [ + 'demo': [ 'project_demo.xml', ], 'test':[ diff --git a/addons/project/project.py b/addons/project/project.py index 7b848af06a3..1a8f8c8bfe5 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -514,13 +514,10 @@ def Project(): # OpenChatter methods and notifications # ------------------------------------------------ - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(project, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(project, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def create(self, cr, uid, vals, context=None): if context is None: context = {} @@ -797,7 +794,7 @@ class task(base_stage, osv.osv): 'company_id': fields.many2one('res.company', 'Company'), 'id': fields.integer('ID', readonly=True), 'color': fields.integer('Color Index'), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), } _defaults = { @@ -1204,15 +1201,10 @@ class task(base_stage, osv.osv): result[obj.id].append(obj.user_id.id) return result - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user and project manager. """ - user_ids = super(task, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - if obj.manager_id and not obj.manager_id.id in user_ids: - user_ids.append(obj.manager_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' and 'manager_id' to the monitored fields """ + res = super(task, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id', 'manager_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 7d78a040b7e..6dbcaebd045 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -148,6 +148,7 @@
    +
    @@ -228,7 +229,7 @@ -
    +
    í
      @@ -481,6 +482,7 @@
      +
      diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index 3f79cfee3de..d9f6cb9d2f6 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -18,3 +18,5 @@ access_account_analytic_line_project,account.analytic.line project,analytic.mode access_project_task_history,project.task.history project,project.model_project_task_history,project.group_project_user,1,1,1,0 access_project_task_history_cumulative,project.task.history project,project.model_project_task_history_cumulative,project.group_project_manager,1,0,0,0 access_resource_calendar,project.resource_calendar manager,resource.model_resource_calendar,project.group_project_manager,1,0,0,0 +access_project_category,project.project_category,model_project_category,,1,0,0,0 +access_project_category_manager,project.project_category,model_project_category,project.group_project_manager,1,1,1,1 diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 89ef7687b95..5c440976b5c 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -256,7 +256,7 @@ class project_issue(base_stage, osv.osv): 'inactivity_days': fields.function(_compute_day, string='Days since last action', \ multi='compute_day', type="integer", help="Difference in days between last action and current date"), 'color': fields.integer('Color Index'), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), 'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.", @@ -499,13 +499,10 @@ class project_issue(base_stage, osv.osv): # OpenChatter methods and notifications # ------------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(project_issue, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(project_issue, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 08a2ae0b1d0..b37cf40014e 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -160,6 +160,7 @@
      +
      @@ -238,6 +239,7 @@ project.issue + diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py index 0ca2687b7f0..ba3cd702760 100644 --- a/addons/project_mailgate/project_mailgate.py +++ b/addons/project_mailgate/project_mailgate.py @@ -73,7 +73,7 @@ class project_tasks(osv.osv): followers = super(project_tasks,self).message_thread_followers(cr, uid, ids, context=context) for task in self.browse(cr, uid, followers.keys(), context=context): task_followers = set(followers[task.id]) - task_followers.add(task.user_id.user_email) + task_followers.add(task.user_id.email) followers[task.id] = filter(None, task_followers) return followers diff --git a/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml index 1e9c22f34d8..497ec9e3597 100644 --- a/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml +++ b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml @@ -3,9 +3,8 @@ - !record {model: res.users, id: res_users_hrmanager0}: company_id: base.main_company - context_lang: en_US - login: hr name: HR Manager + login: hr password: hr groups_id: - base.group_hr_manager diff --git a/addons/purchase/edi/purchase_order_action_data.xml b/addons/purchase/edi/purchase_order_action_data.xml index 70d402de598..b97da91fa1d 100644 --- a/addons/purchase/edi/purchase_order_action_data.xml +++ b/addons/purchase/edi/purchase_order_action_data.xml @@ -38,7 +38,7 @@ Automated Purchase Order Notification Mail - ${object.validator.user_email or ''} + ${object.validator.email or ''} ${object.company_id.name} Order (Ref ${object.name or 'n/a' }) ${object.partner_id.email} @@ -61,7 +61,7 @@ % if object.partner_ref:   Your reference: ${object.partner_ref}
      % endif -   Your contact: ${object.validator.name} +   Your contact: ${object.validator.name}

      @@ -121,7 +121,7 @@ Here is a ${object.state in ('draft', 'sent') and 'request for quotation' or 'pu % if object.partner_ref: | Your reference: ${object.partner_ref}
      % endif - | Your contact: ${object.validator.name} ${object.validator.user_email and '<%s>'%(object.validator.user_email) or ''} + | Your contact: ${object.validator.name} ${object.validator.email and '<%s>'%(object.validator.email) or ''} You can view the ${object.state in ('draft', 'sent') and 'request for quotation' or 'order confirmation'} and download it using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -132,7 +132,7 @@ Thank you! -- -${object.validator.name} ${object.validator.user_email and '<%s>'%(object.validator.user_email) or ''} +${object.validator.name} ${object.validator.email and '<%s>'%(object.validator.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index b02e959301f..756016d39e2 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -143,7 +143,6 @@ class purchase_order(osv.osv): STATE_SELECTION = [ ('draft', 'Draft PO'), - ('wait', 'Waiting'), ('sent', 'RFQ Sent'), ('confirmed', 'Waiting Approval'), ('approved', 'Purchase Order'), @@ -190,15 +189,15 @@ class purchase_order(osv.osv): 'purchase.order.line': (_get_order, ['date_planned'], 10), } ), - 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Untaxed Amount', + 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Untaxed Amount', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums", help="The amount without tax"), - 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Taxes', + 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Taxes', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums", help="The tax amount"), - 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Total', + 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Total', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums",help="The total amount"), @@ -739,12 +738,16 @@ class purchase_order(osv.osv): result[obj.id].append(obj.validator.id) return result + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'validator' to the monitored fields """ + res = super(purchase_order, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['validator'] + def create_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Request for quotation created."), context=context) def confirm_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.validator.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Quotation for %s converted to a Purchase Order of %s %s.") % (obj.partner_id.name, obj.amount_total, obj.pricelist_id.currency_id.symbol), context=context) def shipment_send_note(self, cr, uid, ids, picking_id, context=None): @@ -804,8 +807,8 @@ class purchase_order_line(osv.osv): 'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True), 'move_ids': fields.one2many('stock.move', 'purchase_line_id', 'Reservation', readonly=True, ondelete='set null'), 'move_dest_id': fields.many2one('stock.move', 'Reservation Destination', ondelete='set null'), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Purchase Price')), - 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Purchase Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Account')), 'order_id': fields.many2one('purchase.order', 'Order Reference', select=True, required=True, ondelete='cascade'), 'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',), 'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True), diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 6730e32913e..aec55bf93c2 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -180,16 +180,15 @@

    diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 9d9350e3257..cf0294730a7 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -69,7 +69,7 @@ class purchase_requisition(osv.osv): purchase_order_obj = self.pool.get('purchase.order') for purchase in self.browse(cr, uid, ids, context=context): for purchase_id in purchase.purchase_ids: - if str(purchase_id.state) in('draft','wait'): + if str(purchase_id.state) in('draft'): purchase_order_obj.action_cancel(cr,uid,[purchase_id.id]) self.write(cr, uid, ids, {'state': 'cancel'}) self.cancel_send_note(cr, uid, ids, context=context) diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index 0a442c3f9aa..188f81b6cbe 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -103,6 +103,7 @@
    +
    diff --git a/addons/sale/edi/sale_order_action_data.xml b/addons/sale/edi/sale_order_action_data.xml index 2fe0a8cbfd3..181bd8183d7 100644 --- a/addons/sale/edi/sale_order_action_data.xml +++ b/addons/sale/edi/sale_order_action_data.xml @@ -37,7 +37,7 @@ Automated Sale Order Notification Mail - ${object.user_id.user_email or ''} + ${object.user_id.email or ''} ${object.company_id.name} Order (Ref ${object.name or 'n/a' }) ${object.partner_invoice_id.email} @@ -60,7 +60,7 @@ % if object.client_order_ref:   Your reference: ${object.client_order_ref}
    % endif -   Your contact: ${object.user_id.name} +   Your contact: ${object.user_id.name}

    @@ -139,7 +139,7 @@ Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confi % if object.client_order_ref: | Your reference: ${object.client_order_ref}
    % endif - | Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} + | Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} You can view the ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'}, download it and even pay online using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -166,7 +166,7 @@ Thank you for choosing ${object.company_id.name}! -- -${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} +${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/sale/report/sale_order.rml b/addons/sale/report/sale_order.rml index 8fecc17e62c..9f7ba06db95 100644 --- a/addons/sale/report/sale_order.rml +++ b/addons/sale/report/sale_order.rml @@ -266,13 +266,13 @@ [[ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) ]] [[ line.product_uos and line.product_uos.name or line.product_uom.name ]] - [[ formatLang(line.price_unit ) ]] + [[ formatLang(line.price_unit , digits=get_digits(dp='Product Price'))]] - [[ formatLang(line.discount) ]] + [[ formatLang(line.discount, digits=get_digits(dp='Discount'))]] - [[ formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price'), currency_obj=o.pricelist_id.currency_id) ]] + [[ formatLang(line.price_subtotal, digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id) ]] @@ -288,7 +288,7 @@ Net Total : - [[ formatLang(o.amount_untaxed, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]] + [[ formatLang(o.amount_untaxed, dp='Account', currency_obj=o.pricelist_id.currency_id) ]] @@ -301,7 +301,7 @@ Taxes : - [[ formatLang(o.amount_tax, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]] + [[ formatLang(o.amount_tax, dp='Account', currency_obj=o.pricelist_id.currency_id) ]] @@ -314,7 +314,7 @@ Total : - [[ formatLang(o.amount_total, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]] + [[ formatLang(o.amount_total, dp='Account', currency_obj=o.pricelist_id.currency_id) ]] diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 50c8a32cfa6..0a2e3a49f62 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -98,17 +98,7 @@ class sale_configuration(osv.osv_memory): 'module_project_timesheet': fields.boolean("Project Timesheet"), 'module_project_mrp': fields.boolean("Project MRP"), 'module_project': fields.boolean("Project"), - 'decimal_precision': fields.integer("Decimal precision on prices:",help="As an example, a decimal precision of 2 will allow prices like: 9.99 EUR, whereas a decimal precision of 4 will allow prices like: 0.0231 EUR per unit."), } - def _check_decimal(self, cr, uid, ids, context=None): - for decimal in self.browse(cr, uid, ids, context=context): - if decimal.decimal_precision > 20: - return False - return True - - _constraints = [ - (_check_decimal, 'Digits must be between 0 to 20 ', ['decimal_precision']), - ] def default_get(self, cr, uid, fields, context=None): ir_model_data = self.pool.get('ir.model.data') @@ -139,14 +129,6 @@ class sale_configuration(osv.osv_memory): 'time_unit': _get_default_time_unit, } - def get_default_dp(self, cr, uid, fields, context=None): - dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_sale') - return {'decimal_precision': dp.digits} - - def set_default_dp(self, cr, uid, ids, context=None): - config = self.browse(cr, uid, ids[0], context) - dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_sale') - dp.write({'digits': config.decimal_precision}) def set_sale_defaults(self, cr, uid, ids, context=None): ir_values = self.pool.get('ir.values') diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index 37d58be5f0f..e07fcccedb2 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -95,10 +95,6 @@

    -
    -
    diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 722b22ba602..c525ba04df1 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -247,19 +247,19 @@ class sale_order(osv.osv): fnct_search=_invoiced_search, type='boolean', help="It indicates that an invoice has been paid."), 'note': fields.text('Terms and conditions'), - 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Untaxed Amount', + 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Untaxed Amount', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), }, multi='sums', help="The amount without tax."), - 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Taxes', + 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Taxes', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), }, multi='sums', help="The tax amount."), - 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Total', + 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Total', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), @@ -1031,7 +1031,6 @@ class sale_order(osv.osv): def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Quotation for %s has been created.") % (obj.partner_id.name), context=context) def confirm_send_note(self, cr, uid, ids, context=None): @@ -1114,8 +1113,8 @@ class sale_order_line(osv.osv): 'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True), 'invoiced': fields.boolean('Invoiced', readonly=True), 'procurement_id': fields.many2one('procurement.order', 'Procurement'), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}), - 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Sale Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}), + 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft': [('readonly', False)]}), 'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="If 'on order', it triggers a procurement when the sale order is confirmed to create a task, purchase order or manufacturing order linked to this sale order line."), @@ -1127,7 +1126,7 @@ class sale_order_line(osv.osv): 'product_uos': fields.many2one('product.uom', 'Product UoS'), 'product_packaging': fields.many2one('product.packaging', 'Packaging'), 'move_ids': fields.one2many('stock.move', 'sale_line_id', 'Inventory Moves', readonly=True), - 'discount': fields.float('Discount', digits=(16, 2), readonly=True, states={'draft': [('readonly', False)]}), + 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount'), readonly=True, states={'draft': [('readonly', False)]}), 'number_packages': fields.function(_number_packages, type='integer', string='Number Packages'), 'th_weight': fields.float('Weight', readonly=True, states={'draft': [('readonly', False)]}), 'state': fields.selection([('cancel', 'Cancelled'),('draft', 'Draft'),('confirmed', 'Confirmed'),('exception', 'Exception'),('done', 'Done')], 'Status', required=True, readonly=True, @@ -1205,7 +1204,7 @@ class sale_order_line(osv.osv): pu = 0.0 if uosqty: pu = round(line.price_unit * line.product_uom_qty / uosqty, - self.pool.get('decimal.precision').precision_get(cr, uid, 'Sale Price')) + self.pool.get('decimal.precision').precision_get(cr, uid, 'Product Price')) fpos = line.order_id.fiscal_position or False account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, account_id) if not account_id: diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index a4a049fdbc5..c4edc162f08 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -351,6 +351,7 @@
    +
    diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py index 0952d820ebe..a672c6b680a 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.py +++ b/addons/sale/wizard/sale_make_invoice_advance.py @@ -39,7 +39,7 @@ class sale_advance_payment_inv(osv.osv_memory): 'product_id': fields.many2one('product.product', 'Advance Product', help="""Select a product of type service which is called 'Advance Product'. You may have to create it and set it as a default value on this field."""), - 'amount': fields.float('Advance Amount', digits_compute= dp.get_precision('Sale Price'), + 'amount': fields.float('Advance Amount', digits_compute= dp.get_precision('Account'), help="The amount to be invoiced in advance."), } diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index 33aa3d1aab9..6cc12a5bfa8 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -35,19 +35,19 @@ openerp.share = function(session) { } function has_share(yes, no) { - if (!session.connection.share_flag) { - session.connection.share_flag = $.Deferred(function() { + if (!session.session.share_flag) { + session.session.share_flag = $.Deferred(function() { var func = new session.web.Model("share.wizard").get_func("has_share"); - func(session.connection.uid).pipe(function(res) { + func(session.session.uid).pipe(function(res) { if(res) { - session.connection.share_flag.resolve(); + session.session.share_flag.resolve(); } else { - session.connection.share_flag.reject(); + session.session.share_flag.reject(); } }); }); } - session.connection.share_flag.done(yes).fail(no); + session.session.share_flag.done(yes).fail(no); } /* Extend the Sidebar to add Share and Embed links in the 'More' menu */ diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py index b14da39633e..598bb085967 100644 --- a/addons/share/wizard/share_wizard.py +++ b/addons/share/wizard/share_wizard.py @@ -196,7 +196,7 @@ class share_wizard(osv.TransientModel): } def has_email(self, cr, uid, context=None): - return bool(self.pool.get('res.users').browse(cr, uid, uid, context=context).user_email) + return bool(self.pool.get('res.users').browse(cr, uid, uid, context=context).email) def go_step_1(self, cr, uid, ids, context=None): wizard_data = self.browse(cr,uid,ids,context)[0] @@ -241,7 +241,7 @@ class share_wizard(osv.TransientModel): if not wizard_data.invite: existing = user_obj.search(cr, UID_ROOT, [('login', '=', new_user)]) else: - existing = user_obj.search(cr, UID_ROOT, [('user_email', '=', new_user)]) + existing = user_obj.search(cr, UID_ROOT, [('email', '=', new_user)]) existing_ids.extend(existing) if existing: new_line = { 'user_id': existing[0], @@ -253,7 +253,7 @@ class share_wizard(osv.TransientModel): 'login': new_user, 'password': new_pass, 'name': new_user, - 'user_email': new_user, + 'email': new_user, 'groups_id': [(6,0,[group_id])], 'share': True, 'message_email_pref': 'all', @@ -825,12 +825,12 @@ class share_wizard(osv.TransientModel): message_obj = self.pool.get('mail.message') notification_obj = self.pool.get('mail.notification') user = self.pool.get('res.users').browse(cr, UID_ROOT, uid) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.')) # TODO: also send an HTML version of this mail for result_line in wizard_data.result_line_ids: - email_to = result_line.user_id.user_email + email_to = result_line.user_id.email if not email_to: continue subject = _('Invitation to collaborate about %s') % (wizard_data.record_name) @@ -849,20 +849,20 @@ class share_wizard(osv.TransientModel): body += "--\n" body += _("OpenERP is a powerful and user-friendly suite of Business Applications (CRM, Sales, HR, etc.)\n" "It is open source and can be found on http://www.openerp.com.") - msg_id = message_obj.schedule_with_attach(cr, uid, user.user_email, [email_to], subject, body, model='', context=context) + msg_id = message_obj.schedule_with_attach(cr, uid, user.email, [email_to], subject, body, model='', context=context) notification_obj.create(cr, uid, {'user_id': result_line.user_id.id, 'message_id': msg_id}, context=context) def send_emails(self, cr, uid, wizard_data, context=None): _logger.info('Sending share notifications by email...') mail_message = self.pool.get('mail.message') user = self.pool.get('res.users').browse(cr, UID_ROOT, uid) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.')) # TODO: also send an HTML version of this mail msg_ids = [] for result_line in wizard_data.result_line_ids: - email_to = result_line.user_id.user_email + email_to = result_line.user_id.email if not email_to: continue subject = wizard_data.name @@ -883,7 +883,7 @@ class share_wizard(osv.TransientModel): body += "--\n" body += _("OpenERP is a powerful and user-friendly suite of Business Applications (CRM, Sales, HR, etc.)\n" "It is open source and can be found on http://www.openerp.com.") - msg_ids.append(mail_message.schedule_with_attach(cr, uid, user.user_email, [email_to], subject, body, model='share.wizard', context=context)) + msg_ids.append(mail_message.schedule_with_attach(cr, uid, user.email, [email_to], subject, body, model='share.wizard', context=context)) # force direct delivery, as users expect instant notification mail_message.send(cr, uid, msg_ids, context=context) _logger.info('%d share notification(s) sent.', len(msg_ids)) diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index fb90b47fcb2..6927bf68c25 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -1011,6 +1011,7 @@
    +
    @@ -1133,6 +1134,7 @@
    +
    diff --git a/addons/survey/survey.py b/addons/survey/survey.py index 0a96d1fde1c..93bd48be30c 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -740,7 +740,7 @@ class survey_request(osv.osv): if user_id: user_obj = self.pool.get('res.users') user = user_obj.browse(cr, uid, user_id, context=context) - return {'value': {'email': user.user_email}} + return {'value': {'email': user.email}} return {} survey_request() diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index b3f27ed2970..66098b45fa8 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -414,8 +414,8 @@ class survey_question_wiz(osv.osv_memory): file.close() os.remove(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf") - user_email = user_obj.browse(cr, uid, uid, context).user_email - resp_email = survey_data.responsible_id and survey_data.responsible_id.user_email or False + user_email = user_obj.browse(cr, uid, uid, context).email + resp_email = survey_data.responsible_id and survey_data.responsible_id.email or False if user_email and resp_email: user_name = user_obj.browse(cr, uid, uid, context=context).name diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index 977e7a60cbb..c15b995bff9 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -78,7 +78,7 @@ openerp.web_linkedin = function(instance) { }, _.bind(this.linkedin_disabled, this)); }, linkedin_disabled: function() { - if (instance.connection.uid !== 1) { + if (instance.session.uid !== 1) { instance.web.dialog($(QWeb.render("LinkedIn.DisabledWarning")), { title: _t("LinkedIn is not enabled"), buttons: [