diff options
| author | Laurent Smet <las@odoo.com> | 2019-05-29 15:35:09 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-07-01 13:45:57 +0200 |
| commit | bc131c0cfb51c953de8ec41fb820c8c7831eefb5 (patch) | |
| tree | cb44e2b49989b6c266af808ed9f06083cf981fc6 | |
| parent | 230bb2a84d44abcf132a6b2dbe50898f6cbef417 (diff) | |
[MERGE] manual forward port of accounting-pocalypse (beaa30a3d1843de43a45f419bfbc1bfa7613a920)
This commit merges the following models
* account.invoice and account.move
* account.invoice.line and account.move.line
* account.voucher and account.move
* account.voucher.line and account.move.line
It was the opportunity for a big cleanup of the code, so it also restructures the whole account module, its different models/fields, the tests etc. for a better world and a better code readability.
==== Rationale ====
The rationale of this huge change is that we want journal entries / invoices to be easily edited, and changes reflected in the other model. It's a HUGE feature and very strategic for the fiduciary companies. For example, changing the account of a journal entry needs to be automatically reflected on the related invoice.
The same reasoning applies to sale/purchase vouchers.
==== Changes made in features =====
When creating an invoice, you are now creating a journal entry directly.
--> The object account.invoice no longer exists.
In the same fashion when creating an invoice line, you're now adding journal items directly in the journal entry representing the invoice. If this invoice line has some tax, it may create additional journal items as well.
--> The models account.invoice.line & account.invoice.tax no longer exist
Identically, when creating a sale/purchase receipt with its lines, you are now creating a journal entry directly and there's no more usability difference between encoding a receipt or an invoice.
--> The object account.voucher no longer exists.
--> The object account.voucher.line no longer exists.
--> The whole account_voucher module no longer exists.
Positive side-effects coming from these changes are
* draft invoices/bills/sale or purchase receipts now create a draft accounting entry. Validate these objects now simply post its journal entry. That means that draft invoices/bills/sale or purchase receipt can straightforwardly be included in reporting or budgets.
* opening a journal entry in form view will now always open the correct view: if it's a sale/purchase journal entry we will have a customer invoice/vendor bill view or a sale/purchase receipt view, whatever the menu we're coming from.
* code & business logic simplification. It is also condensed in a single place instead of being partially duplicated on invoices, vouchers and journal entries.
There should be no feature loss, except the one allowing to group multiple journal items together based on the same product during the invoice validation.
==== Changes made in models =====
* account.invoice: model removed. Instead, now use account.move with following mapping
field (account.invoice) field (account.move)
----------------------- --------------------
name invoice_payment_ref
number name
reference ref
comment narration
user_id invoice_user_id
amount_ total_company_signed amount_total_signed
residual amount_residual
state state + invoice_payment_state /!\ selection changed
date_invoice invoice_date
date_due invoice_date_due
sent invoice_sent
origin invoice_origin
payment_term_id invoice_payment_term_id
partner_bank_id invoice_partner_bank_id
incoterm_id invoice_incoterm_id
vendor_bill_id invoice_vendor_bill_id
source_email invoice_source_email
vendor_display_name invoice_vendor_display_name
invoice_icon invoice_vendor_icon
cash_rounding_id invoice_cash_rounding_id
sequence_number_next invoice_sequence_number_next
sequence_number_next_prefix invoice_sequence_number_next_prefix
'invoices' subset of account.move can be accessed by using the selection field 'type' or one of the many helpers like is_invoice()
* account.move: now has a valid state 'cancel' that has to be excluded from all business logic
* account.move: field 'amount' renamed into 'amount_total'
* account.move: field 'reverse_entry_id' renamed into 'reversed_entry_id'
* account.move.line: now has a field 'display_type' that has to be excluded from all business logic, in order to support invoice layouting
* account.invoice.line: model removed. Instead, now use account.move.line with following mapping
field (account.invoice.line) field (account.move.line)
---------------------------- -------------------------
invoice_id move_id
uom_id product_uom_id
invoice_line_tax_ids tax_ids
account_analytic_id analytic_account_id
'invoice lines' subset of all account.move.line from a journal entry can be accessed by using the boolean field 'exclude_from_invoice_tab'
* account.invoice.tax: model removed. Instead, now use account.move.line with following mapping
field (account.invoice.tax) field (account.move.line)
--------------------------- -------------------------
invoice_id move_id
account_analytic_id analytic_account_id
amount price_unit
base tax_base_amount
'tax lines' subset of all account.move.line from a journal entry can be accessed by using the relational field 'tax_line_id'
* account.invoice.confirm: model removed. Instead, now use the 'post()' function of account.move
* account.invoice.refund: model removed. Instead, now use account.move.reversal to reverse the entries with the same options as we had for invoices
* account.voucher: model removed. Instead, now use account.move of type in ['out_receipt', 'in_receipt]
* account.voucher.line: model removed. Instead, now use account.move.line
==== Changes made in functions ====
* on account.move, method _run_post_draft_to_post() renamed into _autopost_draft_entries()
* on account.move, method action_account_invoice_payment() renamed into action_invoice_register_payment()
* on account.move, method action_invoice_reconcile_to_check() renamed into action_open_matching_suspense_moves()
* on account.move, method _get_domain_edition_mode_available() renamed into _get_domain_matching_supsense_moves()
* on account.move, method _get_intrastat_country_id() renamed into _get_invoice_intrastat_country_id()
* on account.move.line, method _get_domain_for_edition_mode() renamed into _get_suspense_moves_domain()
* in account.bank.statement, contextual key 'edition_mode' renamed into 'suspense_moves_mode'
Was task 1917430
321 files changed, 12219 insertions, 59860 deletions
diff --git a/addons/account/__manifest__.py b/addons/account/__manifest__.py index 9d042afbd3c..f7ab4fcac79 100644 --- a/addons/account/__manifest__.py +++ b/addons/account/__manifest__.py @@ -32,12 +32,9 @@ You could use this simplified accounting in case you work with an (external) acc 'views/account_view.xml', 'views/account_report.xml', 'data/mail_template_data.xml', - 'wizard/account_invoice_refund_view.xml', 'wizard/account_validate_move_view.xml', - 'wizard/account_invoice_state_view.xml', 'wizard/pos_box.xml', 'views/account_end_fy.xml', - 'views/account_invoice_view.xml', 'views/partner_view.xml', 'views/product_view.xml', 'views/account_analytic_view.xml', diff --git a/addons/account/controllers/portal.py b/addons/account/controllers/portal.py index 99d44428f29..b72d3415bcf 100644 --- a/addons/account/controllers/portal.py +++ b/addons/account/controllers/portal.py @@ -11,7 +11,9 @@ class PortalAccount(CustomerPortal): def _prepare_portal_layout_values(self): values = super(PortalAccount, self)._prepare_portal_layout_values() - invoice_count = request.env['account.invoice'].search_count([]) + invoice_count = request.env['account.move'].search_count([ + ('type', 'in', ('out_invoice', 'in_invoice', 'out_refund', 'in_refund', 'out_receipt', 'in_receipt')), + ]) values['invoice_count'] = invoice_count return values @@ -29,13 +31,13 @@ class PortalAccount(CustomerPortal): @http.route(['/my/invoices', '/my/invoices/page/<int:page>'], type='http', auth="user", website=True) def portal_my_invoices(self, page=1, date_begin=None, date_end=None, sortby=None, **kw): values = self._prepare_portal_layout_values() - AccountInvoice = request.env['account.invoice'] + AccountInvoice = request.env['account.move'] - domain = [] + domain = [('type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))] searchbar_sortings = { - 'date': {'label': _('Invoice Date'), 'order': 'date_invoice desc'}, - 'duedate': {'label': _('Due Date'), 'order': 'date_due desc'}, + 'date': {'label': _('Invoice Date'), 'order': 'invoice_date desc'}, + 'duedate': {'label': _('Due Date'), 'order': 'invoice_date_due desc'}, 'name': {'label': _('Reference'), 'order': 'name desc'}, 'state': {'label': _('Status'), 'order': 'state'}, } @@ -44,7 +46,7 @@ class PortalAccount(CustomerPortal): sortby = 'date' order = searchbar_sortings[sortby]['order'] - archive_groups = self._get_archive_groups('account.invoice', domain) + archive_groups = self._get_archive_groups('account.move', domain) if date_begin and date_end: domain += [('create_date', '>', date_begin), ('create_date', '<=', date_end)] @@ -77,7 +79,7 @@ class PortalAccount(CustomerPortal): @http.route(['/my/invoices/<int:invoice_id>'], type='http', auth="public", website=True) def portal_my_invoice_detail(self, invoice_id, access_token=None, report_type=None, download=False, **kw): try: - invoice_sudo = self._document_check_access('account.invoice', invoice_id, access_token) + invoice_sudo = self._document_check_access('account.move', invoice_id, access_token) except (AccessError, MissingError): return request.redirect('/my') @@ -88,7 +90,7 @@ class PortalAccount(CustomerPortal): acquirers = values.get('acquirers') if acquirers: country_id = values.get('partner_id') and values.get('partner_id')[0].country_id.id - values['acq_extra_fees'] = acquirers.get_acquirer_extra_fees(invoice_sudo.residual, invoice_sudo.currency_id, country_id) + values['acq_extra_fees'] = acquirers.get_acquirer_extra_fees(invoice_sudo.amount_residual, invoice_sudo.currency_id, country_id) return request.render("account.portal_invoice_page", values) diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml index a8c1d83daef..ed3478c21ab 100644 --- a/addons/account/data/account_data.xml +++ b/addons/account/data/account_data.xml @@ -78,19 +78,19 @@ <!-- Account-related subtypes for messaging / Chatter --> <record id="mt_invoice_validated" model="mail.message.subtype"> <field name="name">Validated</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="default" eval="False"/> <field name="description">Invoice validated</field> </record> <record id="mt_invoice_paid" model="mail.message.subtype"> <field name="name">Paid</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="default" eval="False"/> <field name="description">Invoice paid</field> </record> <record id="mt_invoice_created" model="mail.message.subtype"> <field name="name">Invoice Created</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="default" eval="False"/> <field name="hidden" eval="True"/> <field name="description">Invoice Created</field> @@ -175,10 +175,10 @@ </record> <!-- Share Button in action menu --> - <record id="model_account_invoice_action_share" model="ir.actions.server"> + <record id="model_account_move_action_share" model="ir.actions.server"> <field name="name">Share</field> - <field name="model_id" ref="account.model_account_invoice"/> - <field name="binding_model_id" ref="account.model_account_invoice"/> + <field name="model_id" ref="account.model_account_move"/> + <field name="binding_model_id" ref="account.model_account_move"/> <field name="state">code</field> <field name="code">action = records.action_share()</field> </record> diff --git a/addons/account/data/mail_template_data.xml b/addons/account/data/mail_template_data.xml index ef70b7f4430..574ed6fe56e 100644 --- a/addons/account/data/mail_template_data.xml +++ b/addons/account/data/mail_template_data.xml @@ -7,10 +7,10 @@ <!--Email template --> <record id="email_template_edi_invoice" model="mail.template"> <field name="name">Invoice: Send by email</field> - <field name="model_id" ref="account.model_account_invoice"/> + <field name="model_id" ref="account.model_account_move"/> <field name="email_from">${(object.user_id.email_formatted or user.email_formatted) |safe}</field> <field name="partner_to">${object.partner_id.id}</field> - <field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field> + <field name="subject">${object.company_id.name} Invoice (Ref ${object.name or 'n/a'})</field> <field name="body_html" type="html"> <div style="margin: 0px; padding: 0px;"> <p style="margin: 0px; padding: 0px; font-size: 13px;"> @@ -22,17 +22,17 @@ % endif <br /><br /> Here is your - % if object.number: - invoice <strong>${object.number}</strong> + % if object.name: + invoice <strong>${object.name}</strong> % else: invoice %endif - % if object.origin: - (with reference: ${object.origin}) + % if object.invoice_origin: + (with reference: ${object.invoice_origin}) % endif amounting in <strong>${format_amount(object.amount_total, object.currency_id)}</strong> from ${object.company_id.name}. - % if object.state=='paid': + % if object.invoice_payment_state == 'paid': This invoice is already paid. % else: Please remit payment at your earliest convenience. @@ -43,7 +43,7 @@ </div> </field> <field name="report_template" ref="account_invoices"/> - <field name="report_name">Invoice_${(object.number or '').replace('/','_')}${object.state == 'draft' and '_draft' or ''}</field> + <field name="report_name">Invoice_${(object.name or '').replace('/','_')}${object.state == 'draft' and '_draft' or ''}</field> <field name="lang">${object.partner_id.lang}</field> <field name="user_signature" eval="False"/> <field name="auto_delete" eval="True"/> diff --git a/addons/account/data/service_cron.xml b/addons/account/data/service_cron.xml index 6436692b2d5..231e9ff7ed6 100644 --- a/addons/account/data/service_cron.xml +++ b/addons/account/data/service_cron.xml @@ -8,7 +8,7 @@ <field name="nextcall" eval="(DateTime.now().replace(hour=2, minute=0) + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')" /> <field name="doall" eval="False"/> <field name="model_id" ref="model_account_move"/> - <field name="code">model._run_post_draft_to_post()</field> + <field name="code">model._autopost_draft_entries()</field> <field name="state">code</field> </record> </odoo> diff --git a/addons/account/models/__init__.py b/addons/account/models/__init__.py index 6f178fd2665..f52625112da 100644 --- a/addons/account/models/__init__.py +++ b/addons/account/models/__init__.py @@ -4,10 +4,11 @@ from . import partner from . import account from . import account_reconcile_model from . import account_payment -from . import account_invoice from . import account_payment_term from . import account_bank_statement from . import account_move +from . import account_payment_term +from . import account_bank_statement from . import chart_template from . import account_analytic_line from . import account_journal_dashboard diff --git a/addons/account/models/account.py b/addons/account/models/account.py index da381195dd2..cb7ce2dd8ac 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -553,8 +553,6 @@ class AccountJournal(models.Model): domain=[('deprecated', '=', False)], help="It acts as a default account for debit amount") update_posted = fields.Boolean(string='Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal") - group_invoice_lines = fields.Boolean(string='Group Invoice Lines', - help="If this box is checked, the system will try to group the accounting lines when generating them from invoices.") sequence_id = fields.Many2one('ir.sequence', string='Entry Sequence', help="This field contains the information related to the numbering of the journal entries of this journal.", required=True, copy=False) refund_sequence_id = fields.Many2one('ir.sequence', string='Credit Note Entry Sequence', @@ -738,7 +736,7 @@ class AccountJournal(models.Model): if self.alias_id: self.alias_id.write(alias_values) else: - self.alias_id = self.env['mail.alias'].with_context(alias_model_name='account.invoice', + self.alias_id = self.env['mail.alias'].with_context(alias_model_name='account.move', alias_parent_model_name='account.journal').create(alias_values) if vals.get('alias_name'): @@ -1179,17 +1177,6 @@ class AccountTax(models.Model): if self.price_include: self.include_base_amount = True - def get_grouping_key(self, invoice_tax_val): - """ Returns a string that will be used to group account.invoice.tax sharing the same properties""" - self.ensure_one() - return str(invoice_tax_val['tax_id']) + '-' + \ - str(invoice_tax_val.get('tax_repartition_line_id')) + '-' + \ - str(invoice_tax_val['account_id']) + '-' + \ - str(invoice_tax_val['account_analytic_id']) + '-' + \ - str(invoice_tax_val.get('analytic_tag_ids', [])) + '-' + \ - str(invoice_tax_val.get('tax_ids') or []) + '-' + \ - str(invoice_tax_val.get('tag_ids') or []) - def _compute_amount(self, base_amount, price_unit, quantity=1.0, product=None, partner=None): """ Returns the amount of a single tax. base_amount is the actual amount on which the tax is applied, which is price_unit * quantity eventually affected by previous taxes (if tax is include_base_amount XOR price_include) @@ -1210,7 +1197,7 @@ class AccountTax(models.Model): else: return quantity * self.amount - price_include = self._context['force_price_include'] if 'force_price_include' in self._context else self.price_include + price_include = self._context.get('force_price_include', self.price_include) # base * (1 + tax_amount) = new_base if self.amount_type == 'percent' and not price_include: @@ -1254,12 +1241,15 @@ class AccountTax(models.Model): return rep_lines.filtered(lambda x: x.repartition_type == repartition_type).mapped('tag_ids') @api.multi - def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False): + def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True): """ Returns all information required to apply taxes (in self + their children in case of a tax group). We consider the sequence of the parent for group of taxes. Eg. considering letters as taxes and alphabetic order as sequence : [G, B([A, D, F]), E, C] will be computed as [A, D, F, C, E, G] + 'handle_price_include' is used when we need to ignore all tax included in price. If False, it means the + amount passed to this method will be considered as the base of all computations. + RETURN: { 'total_excluded': 0.0, # Total without taxes 'total_included': 0.0, # Total with taxes @@ -1362,28 +1352,29 @@ class AccountTax(models.Model): incl_fixed_amount = incl_percent_amount = incl_division_amount = 0 # Store the tax amounts we compute while searching for the total_excluded cached_tax_amounts = {} - for tax in reversed(taxes): - if tax.include_base_amount: - base = recompute_base(base, incl_fixed_amount, incl_percent_amount, incl_division_amount) - incl_fixed_amount = incl_percent_amount = incl_division_amount = 0 - store_included_tax_total = True - if tax.price_include: - if tax.amount_type == 'percent': - incl_percent_amount += tax.amount - elif tax.amount_type == 'division': - incl_division_amount += tax.amount - elif tax.amount_type == 'fixed': - incl_fixed_amount += quantity * tax.amount - else: - # tax.amount_type == other (python) - tax_amount = tax._compute_amount(base, price_unit, quantity, product, partner) - incl_fixed_amount += tax_amount - # Avoid unecessary re-computation - cached_tax_amounts[i] = tax_amount - if store_included_tax_total: - total_included_checkpoints[i] = base - store_included_tax_total = False - i -= 1 + if handle_price_include: + for tax in reversed(taxes): + if tax.include_base_amount: + base = recompute_base(base, incl_fixed_amount, incl_percent_amount, incl_division_amount) + incl_fixed_amount = incl_percent_amount = incl_division_amount = 0 + store_included_tax_total = True + if tax.price_include: + if tax.amount_type == 'percent': + incl_percent_amount += tax.amount + elif tax.amount_type == 'division': + incl_division_amount += tax.amount + elif tax.amount_type == 'fixed': + incl_fixed_amount += quantity * tax.amount + else: + # tax.amount_type == other (python) + tax_amount = tax._compute_amount(base, price_unit, quantity, product, partner) + incl_fixed_amount += tax_amount + # Avoid unecessary re-computation + cached_tax_amounts[i] = tax_amount + if store_included_tax_total: + total_included_checkpoints[i] = base + store_included_tax_total = False + i -= 1 total_excluded = recompute_base(base, incl_fixed_amount, incl_percent_amount, incl_division_amount) @@ -1438,8 +1429,8 @@ class AccountTax(models.Model): 'price_include': tax.price_include, 'tax_exigibility': tax.tax_exigibility, 'tax_repartition_line_id': repartition_line.id, - 'tag_ids': [(6, False, (repartition_line.tag_ids + subsequent_tags).ids)], - 'tax_ids': [(6, False, subsequent_taxes.ids)] + 'tag_ids': (repartition_line.tag_ids + subsequent_tags).ids, + 'tax_ids': subsequent_taxes.ids, }) total_amount += line_amount diff --git a/addons/account/models/account_bank_statement.py b/addons/account/models/account_bank_statement.py index b6ab3a50a90..fcaec96acc3 100644 --- a/addons/account/models/account_bank_statement.py +++ b/addons/account/models/account_bank_statement.py @@ -395,6 +395,7 @@ class AccountBankStatementLine(models.Model): aml_to_cancel.remove_move_reconcile() moves_to_cancel = aml_to_cancel.mapped('move_id') moves_to_cancel.button_cancel() + moves_to_cancel.button_draft() moves_to_cancel.unlink() if payment_to_cancel: payment_to_cancel.unlink() @@ -432,7 +433,9 @@ class AccountBankStatementLine(models.Model): if self.ref: ref = move_ref + ' - ' + self.ref if move_ref else self.ref data = { + 'type': 'entry', 'journal_id': self.statement_id.journal_id.id, + 'currency_id': self.statement_id.currency_id.id, 'date': self.statement_id.accounting_date or self.date, 'ref': ref, } @@ -622,7 +625,7 @@ class AccountBankStatementLine(models.Model): """ payable_account_type = self.env.ref('account.data_account_type_payable') receivable_account_type = self.env.ref('account.data_account_type_receivable') - edition_mode = self._context.get('edition_mode') + suspense_moves_mode = self._context.get('suspense_moves_mode') counterpart_aml_dicts = counterpart_aml_dicts or [] payment_aml_rec = payment_aml_rec or self.env['account.move.line'] new_aml_dicts = new_aml_dicts or [] @@ -639,7 +642,7 @@ class AccountBankStatementLine(models.Model): if any(rec.statement_id for rec in payment_aml_rec): raise UserError(_('A selected move line was already reconciled.')) for aml_dict in counterpart_aml_dicts: - if aml_dict['move_line'].reconciled and not edition_mode: + if aml_dict['move_line'].reconciled and not suspense_moves_mode: raise UserError(_('A selected move line was already reconciled.')) if isinstance(aml_dict['move_line'], int): aml_dict['move_line'] = aml_obj.browse(aml_dict['move_line']) @@ -653,7 +656,7 @@ class AccountBankStatementLine(models.Model): user_type_id = self.env['account.account'].browse(aml_dict.get('account_id')).user_type_id if user_type_id in [payable_account_type, receivable_account_type] and user_type_id not in account_types: account_types |= user_type_id - if edition_mode: + if suspense_moves_mode: if any(not line.journal_entry_ids for line in self): raise UserError(_('Some selected statement line were not already reconciled with an account move.')) else: @@ -686,9 +689,9 @@ class AccountBankStatementLine(models.Model): # Create the move self.sequence = self.statement_id.line_ids.ids.index(self.id) + 1 move_vals = self._prepare_reconciliation_move(self.statement_id.name) - if edition_mode: + if suspense_moves_mode: self.button_cancel_reconciliation() - move = self.env['account.move'].create(move_vals) + move = self.env['account.move'].with_context(default_journal_id=move_vals['journal_id']).create(move_vals) counterpart_moves = (counterpart_moves | move) # Create The payment @@ -730,7 +733,7 @@ class AccountBankStatementLine(models.Model): (new_aml | counterpart_move_line).reconcile() - self._check_invoice_state(counterpart_move_line.invoice_id) + self._check_invoice_state(counterpart_move_line.move_id) # Balance the move st_line_amount = -sum([x.balance for x in move.line_ids]) @@ -756,7 +759,7 @@ class AccountBankStatementLine(models.Model): }) self.bank_account_id = bank_account - counterpart_moves.assert_balanced() + counterpart_moves._check_balanced() return counterpart_moves @api.multi @@ -790,5 +793,4 @@ class AccountBankStatementLine(models.Model): aml_dict['currency_id'] = statement_currency.id def _check_invoice_state(self, invoice): - if invoice.state == 'in_payment' and all([payment.state == 'reconciled' for payment in invoice.mapped('payment_move_line_ids.payment_id')]): - invoice.write({'state': 'paid'}) + invoice._compute_amount() diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py deleted file mode 100644 index 44f9b5bd5a0..00000000000 --- a/addons/account/models/account_invoice.py +++ /dev/null @@ -1,2130 +0,0 @@ -# -*- coding: utf-8 -*- - -from collections import OrderedDict -import json -import re -import uuid -from functools import partial -from stdnum.iso7064 import mod_97_10 -from itertools import zip_longest - -from lxml import etree - -from odoo import api, exceptions, fields, models, _ -from odoo.tools import email_re, email_split, email_escape_char, float_is_zero, float_compare, \ - pycompat, date_utils -from odoo.tools.misc import formatLang - -from odoo.exceptions import UserError, RedirectWarning, ValidationError, Warning - -from odoo.addons import decimal_precision as dp -import logging - -_logger = logging.getLogger(__name__) - -# mapping invoice type to journal type -TYPE2JOURNAL = { - 'out_invoice': 'sale', - 'in_invoice': 'purchase', - 'out_refund': 'sale', - 'in_refund': 'purchase', -} - -# mapping invoice type to refund type -TYPE2REFUND = { - 'out_invoice': 'out_refund', # Customer Invoice - 'in_invoice': 'in_refund', # Vendor Bill - 'out_refund': 'out_invoice', # Customer Credit Note - 'in_refund': 'in_invoice', # Vendor Credit Note -} - -MAGIC_COLUMNS = ('id', 'create_uid', 'create_date', 'write_uid', 'write_date') - - -class AccountInvoice(models.Model): - _name = "account.invoice" - _inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin'] - _description = "Invoice" - _order = "date_invoice desc, number desc, id desc" - - - def _get_default_incoterm(self): - return self.env.company.incoterm_id - - @api.one - @api.depends('invoice_line_ids.price_subtotal', 'tax_line_ids.amount', 'tax_line_ids.amount_rounding', - 'currency_id', 'company_id', 'date_invoice', 'type') - def _compute_amount(self): - round_curr = self.currency_id.round - self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line_ids) - self.amount_tax = sum(round_curr(line.amount_total) for line in self.tax_line_ids) - self.amount_total = self.amount_untaxed + self.amount_tax - amount_total_company_signed = self.amount_total - amount_untaxed_signed = self.amount_untaxed - if self.currency_id and self.company_id and self.currency_id != self.company_id.currency_id: - currency_id = self.currency_id - amount_total_company_signed = currency_id._convert(self.amount_total, self.company_id.currency_id, self.company_id, self.date_invoice or fields.Date.today()) - amount_untaxed_signed = currency_id._convert(self.amount_untaxed, self.company_id.currency_id, self.company_id, self.date_invoice or fields.Date.today()) - sign = self.type in ['in_refund', 'out_refund'] and -1 or 1 - self.amount_total_company_signed = amount_total_company_signed * sign - self.amount_total_signed = self.amount_total * sign - self.amount_untaxed_signed = amount_untaxed_signed * sign - - def _compute_sign_taxes(self): - for invoice in self: - sign = invoice.type in ['in_refund', 'out_refund'] and -1 or 1 - invoice.amount_untaxed_invoice_signed = invoice.amount_untaxed * sign - invoice.amount_tax_signed = invoice.amount_tax * sign - - @api.onchange('amount_total') - def _onchange_amount_total(self): - for inv in self: - if float_compare(inv.amount_total, 0.0, precision_rounding=inv.currency_id.rounding) == -1: - raise Warning(_('You cannot validate an invoice with a negative total amount. You should create a credit note instead.')) - - @api.model - def _default_journal(self): - if self._context.get('default_journal_id', False): - return self.env['account.journal'].browse(self._context.get('default_journal_id')) - inv_type = self._context.get('type', 'out_invoice') - inv_types = inv_type if isinstance(inv_type, list) else [inv_type] - company_id = self._context.get('company_id', self.env.company.id) - domain = [ - ('type', 'in', [TYPE2JOURNAL[ty] for ty in inv_types if ty in TYPE2JOURNAL]), - ('company_id', '=', company_id), - ] - company_currency_id = self.env['res.company'].browse(company_id).currency_id.id - currency_id = self._context.get('default_currency_id') or company_currency_id - currency_clause = [('currency_id', '=', currency_id)] - if currency_id == company_currency_id: - currency_clause = ['|', ('currency_id', '=', False)] + currency_clause - return ( - self.env['account.journal'].search(domain + currency_clause, limit=1) - or self.env['account.journal'].search(domain, limit=1) - ) - - @api.model - def _default_currency(self): - journal = self._default_journal() - return journal.currency_id or journal.company_id.currency_id or self.env.company.currency_id - - def _default_comment(self): - invoice_type = self.env.context.get('type', 'out_invoice') - if invoice_type == 'out_invoice' and self.env['ir.config_parameter'].sudo().get_param('account.use_invoice_terms'): - return self.env.company.invoice_terms - - def _get_aml_for_amount_residual(self): - """ Get the aml to consider to compute the amount residual of invoices """ - self.ensure_one() - return self.sudo().move_id.line_ids.filtered(lambda l: l.account_id == self.account_id) - - @api.one - @api.depends( - 'state', 'currency_id', 'invoice_line_ids.price_subtotal', - 'move_id.line_ids.amount_residual', - 'move_id.line_ids.currency_id') - def _compute_residual(self): - residual = 0.0 - residual_company_signed = 0.0 - sign = self.type in ['in_refund', 'out_refund'] and -1 or 1 - for line in self._get_aml_for_amount_residual(): - residual_company_signed += line.amount_residual - if line.currency_id == self.currency_id: - residual += line.amount_residual_currency if line.currency_id else line.amount_residual - else: - from_currency = line.currency_id or line.company_id.currency_id - residual += from_currency._convert(line.amount_residual, self.currency_id, line.company_id, line.date or fields.Date.today()) - self.residual_company_signed = abs(residual_company_signed) * sign - self.residual_signed = abs(residual) * sign - self.residual = abs(residual) - digits_rounding_precision = self.currency_id.rounding - if self.move_id and float_is_zero(self.residual, precision_rounding=digits_rounding_precision): - self.reconciled = True - else: - self.reconciled = False - - @api.multi - def _get_domain_edition_mode_available(self): - self.ensure_one() - domain = self.env['account.move.line']._get_domain_for_edition_mode() - domain += ['|',('move_id.partner_id', '=?', self.partner_id.id),('move_id.partner_id', '=', False)] - if self.type in ('out_invoice', 'in_refund'): - domain.append(('balance', '=', -self.residual)) - else: - domain.append(('balance', '=', self.residual)) - return domain - - @api.multi - def _get_edition_mode_available(self): - for r in self: - domain = r._get_domain_edition_mode_available() - domain2 = [('state', '=', 'open'),('residual', '=', r.residual),('type', '=', r.type)] - r.edition_mode_available = (0 < self.env['account.move.line'].search_count(domain) < 5) and self.env['account.invoice'].search_count(domain2) < 5 and r.state == 'open' - - @api.one - def _get_outstanding_info_JSON(self): - self.outstanding_credits_debits_widget = json.dumps(False) - if self.state == 'open': - domain = [('account_id', '=', self.account_id.id), - ('partner_id', '=', self.env['res.partner']._find_accounting_partner(self.partner_id).id), - ('reconciled', '=', False), - '|', - '&', ('amount_residual_currency', '!=', 0.0), ('currency_id','!=', None), - '&', ('amount_residual_currency', '=', 0.0), '&', ('currency_id','=', None), ('amount_residual', '!=', 0.0)] - if self.type in ('out_invoice', 'in_refund'): - domain.extend([('credit', '>', 0), ('debit', '=', 0)]) - type_payment = _('Outstanding credits') - else: - domain.extend([('credit', '=', 0), ('debit', '>', 0)]) - type_payment = _('Outstanding debits') - info = {'title': '', 'outstanding': True, 'content': [], 'invoice_id': self.id} - lines = self.env['account.move.line'].search(domain) - currency_id = self.currency_id - if len(lines) != 0: - for line in lines: - # get the outstanding residual value in invoice currency - if line.currency_id and line.currency_id == self.currency_id: - amount_to_show = abs(line.amount_residual_currency) - else: - currency = line.company_id.currency_id - amount_to_show = currency._convert(abs(line.amount_residual), self.currency_id, self.company_id, line.date or fields.Date.today()) - if float_is_zero(amount_to_show, precision_rounding=self.currency_id.rounding): - continue - if line.ref : - title = '%s : %s' % (line.move_id.name, line.ref) - else: - title = line.move_id.name - info['content'].append({ - 'journal_name': line.ref or line.move_id.name, - 'title': title, - 'amount': amount_to_show, - 'currency': currency_id.symbol, - 'id': line.id, - 'position': currency_id.position, - 'digits': [69, self.currency_id.decimal_places], - }) - info['title'] = type_payment - self.outstanding_credits_debits_widget = json.dumps(info) - self.has_outstanding = True - - @api.model - def _get_payments_vals(self): - if not self.payment_move_line_ids: - return [] - payment_vals = [] - currency_id = self.currency_id - for payment in self.payment_move_line_ids: - payment_currency_id = False - if self.type in ('out_invoice', 'in_refund'): - amount = sum([p.amount for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids]) - amount_currency = sum( - [p.amount_currency for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids]) - if payment.matched_debit_ids: - payment_currency_id = all([p.currency_id == payment.matched_debit_ids[0].currency_id for p in - payment.matched_debit_ids]) and payment.matched_debit_ids[ - 0].currency_id or False - elif self.type in ('in_invoice', 'out_refund'): - amount = sum( - [p.amount for p in payment.matched_credit_ids if p.credit_move_id in self.move_id.line_ids]) - amount_currency = sum([p.amount_currency for p in payment.matched_credit_ids if - p.credit_move_id in self.move_id.line_ids]) - if payment.matched_credit_ids: - payment_currency_id = all([p.currency_id == payment.matched_credit_ids[0].currency_id for p in - payment.matched_credit_ids]) and payment.matched_credit_ids[ - 0].currency_id or False - # get the payment value in invoice currency - if payment_currency_id and payment_currency_id == self.currency_id: - amount_to_show = amount_currency - else: - currency = payment.company_id.currency_id - amount_to_show = currency._convert(amount, self.currency_id, payment.company_id, self.date or fields.Date.today()) - if float_is_zero(amount_to_show, precision_rounding=self.currency_id.rounding): - continue - payment_ref = payment.move_id.name - if payment.move_id.ref: - payment_ref += ' (' + payment.move_id.ref + ')' - payment_vals.append({ - 'name': payment.name, - 'journal_name': payment.journal_id.name, - 'amount': amount_to_show, - 'currency': currency_id.symbol, - 'digits': [69, currency_id.decimal_places], - 'position': currency_id.position, - 'date': payment.date, - 'payment_id': payment.id, - 'account_payment_id': payment.payment_id.id, - 'invoice_id': payment.invoice_id.id, - 'move_id': payment.move_id.id, - 'ref': payment_ref, - }) - return payment_vals - - @api.one - @api.depends('payment_move_line_ids.amount_residual') - def _get_payment_info_JSON(self): - self.payments_widget = json.dumps(False) - if self.payment_move_line_ids: - info = {'title': _('Less Payment'), 'outstanding': False, 'content': self._get_payments_vals()} - self.payments_widget = json.dumps(info, default=date_utils.json_default) - - @api.one - @api.depends('move_id.line_ids.amount_residual') - def _compute_payments(self): - payment_lines = set() - for line in self.move_id.line_ids.filtered(lambda l: l.account_id.id == self.account_id.id): - payment_lines.update(line.mapped('matched_credit_ids.credit_move_id.id')) - payment_lines.update(line.mapped('matched_debit_ids.debit_move_id.id')) - self.payment_move_line_ids = self.env['account.move.line'].browse(list(payment_lines)).sorted() - - name = fields.Char(string='Reference/Description', index=True, - readonly=True, states={'draft': [('readonly', False)]}, copy=False, help='The name that will be used on account move lines') - - origin = fields.Char(string='Source Document', - help="Reference of the document that produced this invoice.", - readonly=True, states={'draft': [('readonly', False)]}) - type = fields.Selection([ - ('out_invoice','Customer Invoice'), - ('in_invoice','Vendor Bill'), - ('out_refund','Customer Credit Note'), - ('in_refund','Vendor Credit Note'), - ], readonly=True, states={'draft': [('readonly', False)]}, index=True, change_default=True, - default=lambda self: self._context.get('type', 'out_invoice'), - tracking=True) - - refund_invoice_id = fields.Many2one('account.invoice', string="Invoice for which this invoice is the credit note") - number = fields.Char(related='move_id.name', store=True, readonly=True, copy=False) - move_name = fields.Char(string='Journal Entry Name', readonly=False, - default=False, copy=False, - help="Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated.") - reference = fields.Char(string='Payment Ref.', copy=False, readonly=True, states={'draft': [('readonly', False)]}, - help='Automatically generated once the invoice is confirmed. You can also write a free communication.') - comment = fields.Text('Additional Information', readonly=True, states={'draft': [('readonly', False)]}, default=_default_comment) - - state = fields.Selection([ - ('draft','Draft'), - ('open', 'Open'), - ('in_payment', 'In Payment'), - ('paid', 'Paid'), - ('cancel', 'Cancelled'), - ], string='Status', index=True, readonly=True, default='draft', - tracking=True, copy=False, - help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n" - " * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n" - " * The 'In Payment' status is used when payments have been registered for the entirety of the invoice in a journal configured to post entries at bank reconciliation only, and some of them haven't been reconciled with a bank statement line yet.\n" - " * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n" - " * The 'Cancelled' status is used when user cancel invoice.") - sent = fields.Boolean(readonly=True, default=False, copy=False, - help="It indicates that the invoice has been sent.") - date_invoice = fields.Date(string='Invoice Date', - readonly=True, states={'draft': [('readonly', False)]}, index=True, - help="Keep empty to use the current date", copy=False) - date_due = fields.Date(string='Due Date', - readonly=True, states={'draft': [('readonly', False)]}, index=True, copy=False, - help="If you use payment terms, the due date will be computed automatically at the generation " - "of accounting entries. The Payment terms may compute several due dates, for example 50% " - "now and 50% in one month, but if you want to force a due date, make sure that the payment " - "term is not set on the invoice. If you keep the Payment terms and the due date empty, it " - "means direct payment.") - partner_id = fields.Many2one('res.partner', string='Partner', change_default=True, - readonly=True, states={'draft': [('readonly', False)]}, - tracking=True, help="You can find a contact by its Name, TIN, Email or Internal Reference.") - vendor_bill_id = fields.Many2one('account.invoice', string='Vendor Bill', - help="Auto-complete from a past bill.") - payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms', oldname='payment_term', - readonly=True, states={'draft': [('readonly', False)]}, - help="If you use payment terms, the due date will be computed automatically at the generation " - "of accounting entries. If you keep the payment terms and the due date empty, it means direct payment. " - "The payment terms may compute several due dates, for example 50% now, 50% in one month.") - date = fields.Date(string='Accounting Date', - copy=False, - help="Keep empty to use the invoice date.", - readonly=True, states={'draft': [('readonly', False)]}) - - account_id = fields.Many2one('account.account', string='Account', - readonly=True, states={'draft': [('readonly', False)]}, - domain=[('deprecated', '=', False)], help="The partner account used for this invoice.") - invoice_line_ids = fields.One2many('account.invoice.line', 'invoice_id', string='Invoice Lines', oldname='invoice_line', - readonly=True, states={'draft': [('readonly', False)]}, copy=True) - tax_line_ids = fields.One2many('account.invoice.tax', 'invoice_id', string='Tax Lines', oldname='tax_line', - readonly=True, states={'draft': [('readonly', False)]}, copy=True) - refund_invoice_ids = fields.One2many('account.invoice', 'refund_invoice_id', string='Refund Invoices', readonly=True) - move_id = fields.Many2one('account.move', string='Journal Entry', - readonly=True, index=True, ondelete='restrict', copy=False, - help="Link to the automatically generated Journal Items.") - - amount_by_group = fields.Binary(string="Tax amount by group", compute='_amount_by_group', help="type: [(name, amount, base, formated amount, formated base)]") - amount_untaxed = fields.Monetary(string='Untaxed Amount', - store=True, readonly=True, compute='_compute_amount', tracking=True) - amount_untaxed_signed = fields.Monetary(string='Untaxed Amount in Company Currency', currency_field='company_currency_id', - store=True, readonly=True, compute='_compute_amount') - amount_untaxed_invoice_signed = fields.Monetary(string='Untaxed Amount in Invoice Currency', currency_field='currency_id', - readonly=True, compute='_compute_sign_taxes') - amount_tax = fields.Monetary(string='Tax', - store=True, readonly=True, compute='_compute_amount') - amount_tax_signed = fields.Monetary(string='Tax in Invoice Currency', currency_field='currency_id', - readonly=True, compute='_compute_sign_taxes') - amount_total = fields.Monetary(string='Total', - store=True, readonly=True, compute='_compute_amount') - amount_total_signed = fields.Monetary(string='Total in Invoice Currency', currency_field='currency_id', - store=True, readonly=True, compute='_compute_amount', - help="Total amount in the currency of the invoice, negative for credit notes.") - amount_total_company_signed = fields.Monetary(string='Total in Company Currency', currency_field='company_currency_id', - store=True, readonly=True, compute='_compute_amount', - help="Total amount in the currency of the company, negative for credit notes.") - currency_id = fields.Many2one('res.currency', string='Currency', - required=True, readonly=True, states={'draft': [('readonly', False)]}, - default=_default_currency, tracking=True) - company_currency_id = fields.Many2one('res.currency', related='company_id.currency_id', string="Company Currency", readonly=True) - journal_id = fields.Many2one('account.journal', string='Journal', - required=True, readonly=True, states={'draft': [('readonly', False)]}, - default=_default_journal, - domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale'], 'in_refund': ['purchase'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]") - company_id = fields.Many2one('res.company', string='Company', change_default=True, - required=True, readonly=True, states={'draft': [('readonly', False)]}, - default=lambda self: self.env.company) - - reconciled = fields.Boolean(string='Paid/Reconciled', store=True, readonly=True, compute='_compute_residual', - help="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.") - partner_bank_id = fields.Many2one('res.partner.bank', string='Bank Account', - help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.', - readonly=True, states={'draft': [('readonly', False)]}) #Default value computed in default_get for out_invoices - - residual = fields.Monetary(string='Amount Due', - compute='_compute_residual', store=True, help="Remaining amount due.") - residual_signed = fields.Monetary(string='Amount Due in Invoice Currency', currency_field='currency_id', - compute='_compute_residual', store=True, help="Remaining amount due in the currency of the invoice.") - residual_company_signed = fields.Monetary(string='Amount Due in Company Currency', currency_field='company_currency_id', - compute='_compute_residual', store=True, help="Remaining amount due in the currency of the company.") - payment_ids = fields.Many2many('account.payment', 'account_invoice_payment_rel', 'invoice_id', 'payment_id', string="Payments", copy=False, readonly=True) - payment_move_line_ids = fields.Many2many('account.move.line', string='Payment Move Lines', compute='_compute_payments', store=True) - user_id = fields.Many2one('res.users', string='Salesperson', tracking=True, - readonly=True, states={'draft': [('readonly', False)]}, - default=lambda self: self.env.user, copy=False) - fiscal_position_id = fields.Many2one('account.fiscal.position', string='Fiscal Position', oldname='fiscal_position', - readonly=True, states={'draft': [('readonly', False)]}, - help="""Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. - The default value comes from the customer.""") - commercial_partner_id = fields.Many2one('res.partner', string='Commercial Entity', compute_sudo=True, - related='partner_id.commercial_partner_id', store=True, readonly=True, - help="The commercial entity that will be used on Journal Entries for this invoice") - - edition_mode_available = fields.Boolean(compute='_get_edition_mode_available', groups='account.group_account_invoice') - outstanding_credits_debits_widget = fields.Text(compute='_get_outstanding_info_JSON', groups="account.group_account_invoice") - payments_widget = fields.Text(compute='_get_payment_info_JSON', groups="account.group_account_invoice") - has_outstanding = fields.Boolean(compute='_get_outstanding_info_JSON', groups="account.group_account_invoice") - cash_rounding_id = fields.Many2one('account.cash.rounding', string='Cash Rounding Method', - readonly=True, states={'draft': [('readonly', False)]}, - help='Defines the smallest coinage of the currency that can be used to pay by cash.') - - #fields use to set the sequence, on the first invoice of the journal - sequence_number_next = fields.Char(string='Next Number', compute="_get_sequence_number_next", inverse="_set_sequence_next") - sequence_number_next_prefix = fields.Char(string='Next Number Prefix', compute="_get_sequence_prefix") - incoterm_id = fields.Many2one('account.incoterms', string='Incoterm', - default=_get_default_incoterm, - help='International Commercial Terms are a series of predefined commercial terms used in international transactions.') - - #fields related to vendor bills automated creation by email - source_email = fields.Char(string='Source Email', tracking=True) - vendor_display_name = fields.Char(compute='_get_vendor_display_info', store=True) # store=True to enable sorting on that column - invoice_icon = fields.Char(compute='_get_vendor_display_info', store=False) - - _sql_constraints = [ - ('number_uniq', 'unique(number, company_id, journal_id, type)', 'Invoice Number must be unique per Company!'), - ] - - @api.depends('partner_id', 'source_email') - def _get_vendor_display_info(self): - for invoice in self: - vendor_display_name = invoice.partner_id.name - invoice.invoice_icon = '' - if not vendor_display_name: - if invoice.source_email: - vendor_display_name = _('From: ') + invoice.source_email - invoice.invoice_icon = '@' - else: - vendor_display_name = ('Created by: ') + invoice.create_uid.name - invoice.invoice_icon = '#' - invoice.vendor_display_name = vendor_display_name - - def _get_reference_euro_invoice(self): - """ This computes the reference based on the RF Creditor Reference. - The data of the reference is the database id number of the invoice. - For instance, if an invoice is issued with id 43, the check number - is 07 so the reference will be 'RF07 43'. - """ - self.ensure_one() - base = self.id - check_digits = mod_97_10.calc_check_digits('{}RF'.format(base)) - reference = 'RF{} {}'.format(check_digits, " ".join(["".join(x) for x in zip_longest(*[iter(str(base))]*4, fillvalue="")])) - return reference - - def _get_reference_euro_partner(self): - """ This computes the reference based on the RF Creditor Reference. - The data of the reference is the user defined reference of the - partner or the database id number of the parter. - For instance, if an invoice is issued for the partner with internal - reference 'food buyer 654', the digits will be extracted and used as - the data. This will lead to a check number equal to 00 and the - reference will be 'RF00 654'. - If no reference is set for the partner, its id in the database will - be used. - """ - self.ensure_one() - partner_ref = self.partner_id.ref - partner_ref_nr = re.sub('\D', '', partner_ref or '')[-21:] or str(self.partner_id.id)[-21:] - partner_ref_nr = partner_ref_nr[-21:] - check_digits = mod_97_10.calc_check_digits('{}RF'.format(partner_ref_nr)) - reference = 'RF{} {}'.format(check_digits, " ".join(["".join(x) for x in zip_longest(*[iter(partner_ref_nr)]*4, fillvalue="")])) - return reference - - def _get_reference_odoo_invoice(self): - """ This computes the reference based on the Odoo format. - We simply return the number of the invoice, defined on the journal - sequence. - """ - self.ensure_one() - return self.number - - def _get_reference_odoo_partner(self): - """ This computes the reference based on the Odoo format. - The data used is the reference set on the partner or its database - id otherwise. For instance if the reference of the customer is - 'dumb customer 97', the reference will be 'CUST/dumb customer 97'. - """ - ref = self.partner_id.ref or str(self.partner_id.id) - prefix = _('CUST') - return '%s/%s' % (prefix, ref) - - @api.multi - def _get_computed_reference(self): - self.ensure_one() - if self.journal_id.invoice_reference_type == 'none': - return '' - else: - ref_function = getattr(self, '_get_reference_{}_{}'.format(self.journal_id.invoice_reference_model, self.journal_id.invoice_reference_type)) - if ref_function: - return ref_function() - else: - raise UserError(_('The combination of reference model and reference type on the journal is not implemented')) - - # Load all Vendor Bill lines - @api.onchange('vendor_bill_id') - def _onchange_vendor_bill(self): - if not self.vendor_bill_id: - return {} - self.currency_id = self.vendor_bill_id.currency_id - new_lines = self.env['account.invoice.line'] - for line in self.vendor_bill_id.invoice_line_ids: - new_lines += new_lines.new(line._prepare_invoice_line()) - self.invoice_line_ids += new_lines - self.payment_term_id = self.vendor_bill_id.payment_term_id - self.vendor_bill_id = False - return {} - - def _get_seq_number_next_stuff(self): - self.ensure_one() - journal_sequence = self.journal_id.sequence_id - if self.journal_id.refund_sequence: - domain = [('type', '=', self.type)] - journal_sequence = self.type in ['in_refund', 'out_refund'] and self.journal_id.refund_sequence_id or self.journal_id.sequence_id - elif self.type in ['in_invoice', 'in_refund']: - domain = [('type', 'in', ['in_invoice', 'in_refund'])] - else: - domain = [('type', 'in', ['out_invoice', 'out_refund'])] - if self.id: - domain += [('id', '<>', self.id)] - domain += [('journal_id', '=', self.journal_id.id), ('state', 'not in', ['draft', 'cancel'])] - return journal_sequence, domain - - def _compute_access_url(self): - super(AccountInvoice, self)._compute_access_url() - for invoice in self: - invoice.access_url = '/my/invoices/%s' % (invoice.id) - - @api.depends('state', 'journal_id', 'date_invoice') - def _get_sequence_prefix(self): - """ computes the prefix of the number that will be assigned to the first invoice/bill/refund of a journal, in order to - let the user manually change it. - """ - if not self.env.user._is_system(): - for invoice in self: - invoice.sequence_number_next_prefix = False - invoice.sequence_number_next = '' - return - for invoice in self: - journal_sequence, domain = invoice._get_seq_number_next_stuff() - if (invoice.state == 'draft') and not self.search(domain, limit=1): - prefix, dummy = journal_sequence.with_context(ir_sequence_date=invoice.date_invoice, - ir_sequence_date_range=invoice.date_invoice)._get_prefix_suffix() - invoice.sequence_number_next_prefix = prefix - else: - invoice.sequence_number_next_prefix = False - - @api.depends('state', 'journal_id') - def _get_sequence_number_next(self): - """ computes the number that will be assigned to the first invoice/bill/refund of a journal, in order to - let the user manually change it. - """ - for invoice in self: - journal_sequence, domain = invoice._get_seq_number_next_stuff() - if (invoice.state == 'draft') and not self.search(domain, limit=1): - number_next = journal_sequence._get_current_sequence().number_next_actual - invoice.sequence_number_next = '%%0%sd' % journal_sequence.padding % number_next - else: - invoice.sequence_number_next = '' - - @api.multi - def _set_sequence_next(self): - ''' Set the number_next on the sequence related to the invoice/bill/refund''' - self.ensure_one() - journal_sequence, domain = self._get_seq_number_next_stuff() - if not self.env.user._is_admin() or not self.sequence_number_next or self.search_count(domain): - return - nxt = re.sub("[^0-9]", '', self.sequence_number_next) - result = re.match("(0*)([0-9]+)", nxt) - if result and journal_sequence: - # use _get_current_sequence to manage the date range sequences - sequence = journal_sequence._get_current_sequence() - sequence.number_next = int(result.group(2)) - - @api.multi - def _get_report_base_filename(self): - self.ensure_one() - return self.type == 'out_invoice' and self.state == 'draft' and _('Draft Invoice') or \ - self.type == 'out_invoice' and self.state in ('open','in_payment','paid') and _('Invoice - %s') % (self.number) or \ - self.type == 'out_refund' and self.state == 'draft' and _('Credit Note') or \ - self.type == 'out_refund' and _('Credit Note - %s') % (self.number) or \ - self.type == 'in_invoice' and self.state == 'draft' and _('Vendor Bill') or \ - self.type == 'in_invoice' and self.state in ('open','in_payment','paid') and _('Vendor Bill - %s') % (self.number) or \ - self.type == 'in_refund' and self.state == 'draft' and _('Vendor Credit Note') or \ - self.type == 'in_refund' and _('Vendor Credit Note - %s') % (self.number) - - @api.model - def create(self, vals): - if not vals.get('journal_id') and vals.get('type'): - vals['journal_id'] = self.with_context(type=vals.get('type'))._default_journal().id - - onchanges = self._get_onchange_create() - for onchange_method, changed_fields in onchanges.items(): - if any(f not in vals for f in changed_fields): - invoice = self.new(vals) - getattr(invoice, onchange_method)() - for field in changed_fields: - if field not in vals and invoice[field]: - vals[field] = invoice._fields[field].convert_to_write(invoice[field], invoice) - - invoice = super(AccountInvoice, self).create(vals) - - if any(line.invoice_line_tax_ids for line in invoice.invoice_line_ids) and not invoice.tax_line_ids: - invoice.compute_taxes() - - return invoice - - @api.constrains('partner_id', 'partner_bank_id') - def validate_partner_bank_id(self): - for record in self: - if record.partner_bank_id: - if record.type in ('in_invoice', 'out_refund') and record.partner_bank_id.partner_id != record.partner_id.commercial_partner_id: - raise ValidationError(_("Commercial partner and vendor account owners must be identical.")) - elif record.type in ('out_invoice', 'in_refund') and not record.company_id in record.partner_bank_id.partner_id.ref_company_ids: - raise ValidationError(_("The account selected for payment does not belong to the same company as this invoice.")) - - @api.multi - def _write(self, vals): - pre_not_reconciled = self.filtered(lambda invoice: not invoice.reconciled) - pre_reconciled = self - pre_not_reconciled - res = super(AccountInvoice, self)._write(vals) - reconciled = self.filtered(lambda invoice: invoice.reconciled) - not_reconciled = self - reconciled - (reconciled & pre_reconciled).filtered(lambda invoice: invoice.state == 'open').action_invoice_paid() - (not_reconciled & pre_not_reconciled).filtered(lambda invoice: invoice.state in ('in_payment', 'paid')).action_invoice_re_open() - return res - - @api.model - def default_get(self,default_fields): - """ Compute default partner_bank_id field for 'out_invoice' type, - using the default values computed for the other fields. - """ - res = super(AccountInvoice, self).default_get(default_fields) - - if res.get('type', False) not in ('out_invoice', 'in_refund') or not 'company_id' in res: - return res - - partner_bank_result = self._get_partner_bank_id(res['company_id']) - if partner_bank_result: - res['partner_bank_id'] = partner_bank_result.id - return res - - def _get_partner_bank_id(self, company_id): - company = self.env['res.company'].browse(company_id) - if company.partner_id: - return self.env['res.partner.bank'].search([('partner_id', '=', company.partner_id.id)], limit=1) - - @api.model - def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): - def get_view_id(xid, name): - try: - return self.env.ref('account.' + xid) - except ValueError: - view = self.env['ir.ui.view'].search([('name', '=', name)], limit=1) - if not view: - return False - return view.id - - context = self._context - supplier_form_view_id = get_view_id('invoice_supplier_form', 'account.invoice.supplier.form').id - if context.get('active_model') == 'res.partner' and context.get('active_ids'): - partner = self.env['res.partner'].browse(context['active_ids'])[0] - if not view_type: - view_id = get_view_id('invoice_tree', 'account.invoice.tree') - view_type = 'tree' - elif view_type == 'form': - if partner.supplier and not partner.customer: - view_id = supplier_form_view_id - elif partner.customer and not partner.supplier: - view_id = get_view_id('invoice_form', 'account.invoice.form').id - - return super(AccountInvoice, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) - - @api.multi - def invoice_print(self): - """ Print the invoice and mark it as sent, so that we can see more - easily the next step of the workflow - """ - self.filtered(lambda inv: not inv.sent).write({'sent': True}) - if self.user_has_groups('account.group_account_invoice'): - return self.env.ref('account.account_invoices').report_action(self) - else: - return self.env.ref('account.account_invoices_without_payment').report_action(self) - - @api.multi - def action_reconcile_to_check(self): - self.ensure_one() - domain = self._get_domain_edition_mode_available() - ids = self.env['account.move.line'].search(domain).mapped('statement_line_id').ids - action_context = {'show_mode_selector': False, 'company_ids': self.mapped('company_id').ids} - action_context.update({'edition_mode': True}) - action_context.update({'statement_line_ids': ids}) - action_context.update({'partner_id': self.partner_id.id}) - action_context.update({'partner_name': self.partner_id.name}) - return { - 'type': 'ir.actions.client', - 'tag': 'bank_statement_reconciliation_view', - 'context': action_context, - } - - @api.multi - def action_invoice_sent(self): - """ Open a window to compose an email, with the edi invoice template - message loaded by default - """ - self.ensure_one() - template = self.env.ref('account.email_template_edi_invoice', False) - compose_form = self.env.ref('account.account_invoice_send_wizard_form', False) - ctx = dict( - default_model='account.invoice', - default_res_id=self.id, - default_use_template=bool(template), - default_template_id=template and template.id or False, - default_composition_mode='comment', - mark_invoice_as_sent=True, - custom_layout="mail.mail_notification_paynow", - force_email=True - ) - return { - 'name': _('Send Invoice'), - 'type': 'ir.actions.act_window', - 'view_mode': 'form', - 'res_model': 'account.invoice.send', - 'views': [(compose_form.id, 'form')], - 'view_id': compose_form.id, - 'target': 'new', - 'context': ctx, - } - - @api.multi - @api.returns('mail.message', lambda value: value.id) - def message_post(self, **kwargs): - if self.env.context.get('mark_invoice_as_sent'): - self.filtered(lambda inv: not inv.sent).write({'sent': True}) - self.env.company.set_onboarding_step_done('account_onboarding_sample_invoice_state') - return super(AccountInvoice, self.with_context(mail_post_autofollow=True)).message_post(**kwargs) - - @api.model - def message_new(self, msg_dict, custom_values=None): - """ Overrides mail_thread message_new(), called by the mailgateway through message_process, - to complete values for vendor bills created by mails. - """ - # Split `From` and `CC` email address from received email to look for related partners to subscribe on the invoice - subscribed_emails = email_split((msg_dict.get('from') or '') + ',' + (msg_dict.get('cc') or '')) - seen_partner_ids = [partner.id for partner in self.env['mail.thread']._mail_find_partner_from_emails(subscribed_emails, records=self) if partner] - - # Detection of the partner_id of the invoice: - # 1) check if the email_from correspond to a supplier - email_from = msg_dict.get('from') or '' - email_from = email_escape_char(email_split(email_from)[0]) - partners = self.env['mail.thread'].sudo()._mail_search_on_partner(email_from, extra_domain=[('supplier', '=', True)]).id - partner_id = partners.ids[0] if partners else False - - # 2) otherwise, if the email sender is from odoo internal users then it is likely that the vendor sent the bill - # by mail to the internal user who, inturn, forwarded that email to the alias to automatically generate the bill - # on behalf of the vendor. - if not partner_id: - user_partners = self.env['mail.thread'].sudo()._mail_search_on_user(email_from).id - user_partner_id = user_partners.ids[0] if user_partners else False - if user_partner_id and user_partner_id in self.env.ref('base.group_user').users.mapped('partner_id').ids: - # In this case, we will look for the vendor's email address in email's body and assume if will come first - email_addresses = email_re.findall(msg_dict.get('body')) - if email_addresses: - partner_ids = [partner.id for partner in self.env['mail.thread']._mail_find_partner_from_emails([email_addresses[0]], records=self, force_create=False) if partner] - partner_id = partner_ids and partner_ids[0] - # otherwise, there's no fallback on the partner_id found for the regular author of the mail.message as we want - # the partner_id to stay empty - - # If the partner_id can be found, subscribe it to the bill, otherwise it's left empty to be manually filled - if partner_id: - seen_partner_ids.append(partner_id) - - # Find the right purchase journal based on the "TO" email address - destination_emails = email_split((msg_dict.get('to') or '') + ',' + (msg_dict.get('cc') or '')) - alias_names = [mail_to.split('@')[0] for mail_to in destination_emails] - journal = self.env['account.journal'].search([ - ('type', '=', 'purchase'), ('alias_name', 'in', alias_names) - ], limit=1) - - # Create the message and the bill. - values = dict(custom_values or {}, partner_id=partner_id, source_email=email_from) - if journal: - values['journal_id'] = journal.id - # Passing `type` in context so that _default_journal(...) can correctly set journal for new vendor bill - invoice = super(AccountInvoice, self.with_context(type=values.get('type'))).message_new(msg_dict, values) - - # Subscribe internal users on the newly created bill - partners = self.env['res.partner'].browse(seen_partner_ids) - is_internal = lambda p: (p.user_ids and - all(p.user_ids.mapped(lambda u: u.has_group('base.group_user')))) - partners_to_subscribe = partners.filtered(is_internal) - if partners_to_subscribe: - invoice.message_subscribe([p.id for p in partners_to_subscribe]) - return invoice - - @api.model - def complete_empty_list_help(self): - # add help message about email alias in vendor bills empty lists - Journal = self.env['account.journal'] - journals = Journal.browse(self._context.get('default_journal_id')) or Journal.search([('type', '=', 'purchase')]) - - if journals: - links = '' - alias_count = 0 - for journal in journals.filtered(lambda j: j.alias_domain and j.alias_id.alias_name): - email = format(journal.alias_id.alias_name) + "@" + format(journal.alias_domain) - links += "<a id='o_mail_test' href='mailto:{}'>{}</a>".format(email, email) + ", " - alias_count += 1 - if links and alias_count == 1: - help_message = _('Or share the email %s to your vendors: bills will be created automatically upon mail reception.') % (links[:-2]) - elif links: - help_message = _('Or share the emails %s to your vendors: bills will be created automatically upon mail reception.') % (links[:-2]) - else: - help_message = _('''Or set an <a data-oe-id=%s data-oe-model="account.journal" href=#id=%s&model=account.journal>email alias</a> ''' - '''to allow draft vendor bills to be created upon reception of an email.''') % (journals[0].id, journals[0].id) - else: - help_message = _('<p>You can control the invoice from your vendor based on what you purchased or received.</p>') - return help_message - - @api.multi - def compute_taxes(self): - """Function used in other module to compute the taxes on a fresh invoice created (onchanges did not applied)""" - account_invoice_tax = self.env['account.invoice.tax'] - ctx = dict(self._context) - for invoice in self: - # Delete non-manual tax lines - self._cr.execute("DELETE FROM account_invoice_tax WHERE invoice_id=%s AND manual is False", (invoice.id,)) - if self._cr.rowcount: - self.invalidate_cache() - - # Generate one tax line per tax, however many invoice lines it's applied to - tax_grouped = invoice.get_taxes_values() - - # Create new tax lines - for tax in tax_grouped.values(): - account_invoice_tax.create(tax) - - # dummy write on self to trigger recomputations - return self.with_context(ctx).write({'invoice_line_ids': []}) - - @api.multi - def unlink(self): - for invoice in self: - if invoice.state not in ('draft', 'cancel'): - raise UserError(_('You cannot delete an invoice which is not draft or cancelled. You should create a credit note instead.')) - elif invoice.move_name: - raise UserError(_('You cannot delete an invoice after it has been validated (and received a number). You can set it back to "Draft" state and modify its content, then re-confirm it.')) - return super(AccountInvoice, self).unlink() - - @api.onchange('invoice_line_ids') - def _onchange_invoice_line_ids(self): - taxes_grouped = self.get_taxes_values() - tax_lines = self.tax_line_ids.filtered('manual') - for tax in taxes_grouped.values(): - # ATTENTION: due to this, fields in tax have to be in the view (possibly invisible), as they won't be saved otherwise (when hitting "save") - tax_lines += tax_lines.new(tax) - self.tax_line_ids = tax_lines - return - - @api.onchange('partner_id', 'company_id') - def _onchange_partner_id(self): - account_id = False - payment_term_id = False - fiscal_position = False - bank_id = False - warning = {} - domain = {} - company_id = self.company_id.id - p = self.partner_id if not company_id else self.partner_id.with_context(force_company=company_id) - type = self.type or self.env.context.get('type', 'out_invoice') - if p: - rec_account = p.property_account_receivable_id - pay_account = p.property_account_payable_id - if not rec_account and not pay_account: - action = self.env.ref('account.action_account_config') - msg = _('Cannot find a chart of accounts for this company, You should configure it. \nPlease go to Account Configuration.') - raise RedirectWarning(msg, action.id, _('Go to the configuration panel')) - - if type in ('in_invoice', 'in_refund'): - account_id = pay_account.id - payment_term_id = p.property_supplier_payment_term_id.id - else: - account_id = rec_account.id - payment_term_id = p.property_payment_term_id.id - - delivery_partner_id = self.get_delivery_partner_id() - fiscal_position = self.env['account.fiscal.position'].get_fiscal_position(self.partner_id.id, delivery_id=delivery_partner_id) - - # If partner has no warning, check its company - if p.invoice_warn == 'no-message' and p.parent_id: - p = p.parent_id - if p.invoice_warn and p.invoice_warn != 'no-message': - # Block if partner only has warning but parent company is blocked - if p.invoice_warn != 'block' and p.parent_id and p.parent_id.invoice_warn == 'block': - p = p.parent_id - warning = { - 'title': _("Warning for %s") % p.name, - 'message': p.invoice_warn_msg - } - if p.invoice_warn == 'block': - self.partner_id = False - - self.account_id = account_id - self.payment_term_id = payment_term_id - self.date_due = False - self.fiscal_position_id = fiscal_position - - if type in ('in_invoice', 'out_refund'): - bank_ids = p.commercial_partner_id.bank_ids - bank_id = bank_ids[0].id if bank_ids else False - self.partner_bank_id = bank_id - domain = {'partner_bank_id': [('id', 'in', bank_ids.ids)]} - elif type == 'out_invoice': - domain = {'partner_bank_id': [('partner_id.ref_company_ids', 'in', [self.company_id.id])]} - - res = {} - if warning: - res['warning'] = warning - if domain: - res['domain'] = domain - return res - - @api.multi - def get_delivery_partner_id(self): - self.ensure_one() - return self.partner_id.address_get(['delivery'])['delivery'] - - @api.onchange('journal_id') - def _onchange_journal_id(self): - if self.journal_id and not self._context.get('default_currency_id'): - self.currency_id = self.journal_id.currency_id.id or self.journal_id.company_id.currency_id.id - - @api.onchange('payment_term_id', 'date_invoice') - def _onchange_payment_term_date_invoice(self): - date_invoice = self.date_invoice - if not date_invoice: - date_invoice = fields.Date.context_today(self) - if self.payment_term_id: - pterm = self.payment_term_id - pterm_list = pterm.with_context(currency_id=self.company_id.currency_id.id).compute(value=1, date_ref=date_invoice) - self.date_due = max(line[0] for line in pterm_list) - elif self.date_due and (date_invoice > self.date_due): - self.date_due = date_invoice - - @api.onchange('cash_rounding_id', 'invoice_line_ids', 'tax_line_ids') - def _onchange_cash_rounding(self): - # Drop previous cash rounding lines - lines_to_remove = self.invoice_line_ids.filtered(lambda l: l.is_rounding_line) - if lines_to_remove: - self.invoice_line_ids -= lines_to_remove - - # Clear previous rounded amounts - for tax_line in self.tax_line_ids: - if tax_line.amount_rounding != 0.0: - tax_line.amount_rounding = 0.0 - - if self.cash_rounding_id and self.type in ('out_invoice', 'out_refund'): - rounding_amount = self.cash_rounding_id.compute_difference(self.currency_id, self.amount_total) - if not self.currency_id.is_zero(rounding_amount): - if self.cash_rounding_id.strategy == 'biggest_tax': - # Search for the biggest tax line and add the rounding amount to it. - # If no tax found, an error will be raised by the _check_cash_rounding method. - if not self.tax_line_ids: - return - biggest_tax_line = None - for tax_line in self.tax_line_ids: - if not biggest_tax_line or tax_line.amount > biggest_tax_line.amount: - biggest_tax_line = tax_line - biggest_tax_line.amount_rounding += rounding_amount - elif self.cash_rounding_id.strategy == 'add_invoice_line': - # Create a new invoice line to perform the rounding - rounding_line = self.env['account.invoice.line'].new({ - 'name': self.cash_rounding_id.name, - 'invoice_id': self.id, - 'account_id': self.cash_rounding_id.account_id.id, - 'price_unit': rounding_amount, - 'quantity': 1, - 'is_rounding_line': True, - 'sequence': 9999 # always last line - }) - - # To be able to call this onchange manually from the tests, - # ensure the inverse field is updated on account.invoice. - if not rounding_line in self.invoice_line_ids: - self.invoice_line_ids += rounding_line - - @api.multi - def action_invoice_draft(self): - if self.filtered(lambda inv: inv.state != 'cancel'): - raise UserError(_("Invoice must be cancelled in order to reset it to draft.")) - # go from canceled state to draft state - self.write({'state': 'draft', 'date': False}) - # Delete former printed invoice - try: - report_invoice = self.env['ir.actions.report']._get_report_from_name('account.report_invoice') - except IndexError: - report_invoice = False - if report_invoice and report_invoice.attachment: - for invoice in self: - with invoice.env.do_in_draft(): - invoice.number, invoice.state = invoice.move_name, 'open' - attachment = self.env.ref('account.account_invoices').retrieve_attachment(invoice) - if attachment: - attachment.unlink() - return True - - @api.multi - def action_invoice_open(self): - # lots of duplicate calls to action_invoice_open, so we remove those already open - to_open_invoices = self.filtered(lambda inv: inv.state != 'open') - if to_open_invoices.filtered(lambda inv: not inv.partner_id): - raise UserError(_("The field Vendor/Customer is required, please complete it to validate the Vendor Bill/Customer Invoice.")) - if to_open_invoices.filtered(lambda inv: inv.state != 'draft'): - raise UserError(_("Invoice must be in draft state in order to validate it.")) - if to_open_invoices.filtered(lambda inv: float_compare(inv.amount_total, 0.0, precision_rounding=inv.currency_id.rounding) == -1): - raise UserError(_("You cannot validate an invoice with a negative total amount. You should create a credit note instead.")) - if to_open_invoices.filtered(lambda inv: not inv.account_id): - raise UserError(_('No account was found to create the invoice, be sure you have installed a chart of account.')) - to_open_invoices.action_date_assign() - to_open_invoices._set_name_and_date_invoice() - res = to_open_invoices.action_move_create() - to_open_invoices.invoice_validate() - return res - - @api.multi - def action_invoice_paid(self): - # lots of duplicate calls to action_invoice_paid, so we remove those already paid - to_pay_invoices = self.filtered(lambda inv: inv.state != 'paid') - if to_pay_invoices.filtered(lambda inv: inv.state not in ('open', 'in_payment')): - raise UserError(_('Invoice must be validated in order to set it to register payment.')) - if to_pay_invoices.filtered(lambda inv: not inv.reconciled): - raise UserError(_('You cannot pay an invoice which is partially paid. You need to reconcile payment entries first.')) - - for invoice in to_pay_invoices: - if any([move.journal_id.post_at_bank_rec and move.state == 'draft' for move in invoice.payment_move_line_ids.mapped('move_id')]): - invoice.write({'state': 'in_payment'}) - else: - invoice.write({'state': 'paid'}) - - @api.multi - def action_invoice_re_open(self): - if self.filtered(lambda inv: inv.state not in ('in_payment', 'paid')): - raise UserError(_('Invoice must be paid in order to set it to register payment.')) - return self.write({'state': 'open'}) - - @api.multi - def action_register_payment(self): - return self.env['account.payment'].with_context(active_ids=self.ids, active_model='account.invoice', active_id=self.id).action_register_payment() - - @api.multi - def action_invoice_cancel(self): - return self.filtered(lambda inv: inv.state != 'cancel').action_cancel() - - @api.multi - def _notify_get_groups(self): - """ Give access button to users and portal customer as portal is integrated - in account. Customer and portal group have probably no right to see - the document so they don't have the access button. """ - groups = super(AccountInvoice, self)._notify_get_groups() - - if self.state not in ('draft', 'cancel'): - for group_name, group_method, group_data in groups: - if group_name not in ('customer', 'portal'): - group_data['has_button_access'] = True - - return groups - - @api.multi - def get_formview_id(self, access_uid=None): - """ Update form view id of action to open the invoice """ - if self.type in ('in_invoice', 'in_refund'): - return self.env.ref('account.invoice_supplier_form').id - else: - return self.env.ref('account.invoice_form').id - - def _prepare_tax_line_vals(self, line, tax): - ''' Prepare values to create an account.invoice.tax line. - :param line: An account.invoice.line record. - :param tax: Tax values outputted by compute_all() in account.tax. - :param taxes: A list of account.tax ids affecting the tax base amount. - :return: The account.invoice.tax values to create a new record. - ''' - vals = { - 'invoice_id': self.id, - 'name': tax['name'], - 'tax_id': tax['id'], - 'amount': tax['amount'], - 'base': tax['base'], - 'manual': False, - 'sequence': tax['sequence'], - 'account_analytic_id': tax['analytic'] and line.account_analytic_id.id or False, - 'account_id': tax['account_id'] or line.account_id.id, - 'analytic_tag_ids': tax['analytic'] and line.analytic_tag_ids.ids or False, - 'tax_repartition_line_id': tax.get('tax_repartition_line_id'), # For base amount, we let this field empty - 'tag_ids': tax['tag_ids'], - 'tax_ids': tax['tax_ids'], - } - - # If the taxes generate moves on the same financial account as the invoice line, - # propagate the analytic account from the invoice line to the tax line. - # This is necessary in situations were (part of) the taxes cannot be reclaimed, - # to ensure the tax move is allocated to the proper analytic account. - if not vals.get('account_analytic_id') and line.account_analytic_id and vals['account_id'] == line.account_id.id: - vals['account_analytic_id'] = line.account_analytic_id.id - return vals - - @api.multi - def get_taxes_values(self, tax_group_fields=False): - def is_tax_affecting_base_amount(tax): - return (tax.amount_type not in ('group', 'division') and tax.include_base_amount and tax.price_include)\ - or (tax.amount_type == 'division' and tax.include_base_amount and not tax.price_include) - # Avoid redundant browsing. - tax_map = dict((t.id, t) for t in self.invoice_line_ids.invoice_line_tax_ids._origin) - default_tax_group_fields = set(['amount', 'base']) - if tax_group_fields: - default_tax_group_fields |= set(tax_group_fields) - tax_grouped = {} - round_curr = self.currency_id.round - for line in self.invoice_line_ids: - if not line.account_id: - continue - - price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0) - taxes = line.invoice_line_tax_ids._origin.compute_all(price_unit, self.currency_id, line.quantity, line.product_id, self.partner_id, is_refund=self.type in ('in_refund', 'out_refund'))['taxes'] - - for tax_vals in taxes: - # Retrieve the tax record (not in tax_vals when dealing with group of taxes). - if tax_map.get(tax_vals['id']): - tax = tax_map[tax_vals['id']] - else: - tax = tax_map[tax_vals['id']] = self.env['account.tax'].browse(tax_vals['id']) - - val = self._prepare_tax_line_vals(line, tax_vals) - key = tax.get_grouping_key(val) - - if key not in tax_grouped: - tax_grouped[key] = val - tax_grouped[key]['base'] = round_curr(val['base']) - else: - for field in default_tax_group_fields: - tax_grouped[key][field] += round_curr(val.get(field)) or 0 - - return tax_grouped - - @api.multi - def _get_aml_for_register_payment(self): - """ Get the aml to consider to reconcile in register payment """ - self.ensure_one() - return self.move_id.line_ids.filtered(lambda r: not r.reconciled and r.account_id.internal_type in ('payable', 'receivable')) - - @api.multi - def register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False): - """ Reconcile payable/receivable lines from the invoice with payment_line """ - line_to_reconcile = self.env['account.move.line'] - for inv in self: - line_to_reconcile += inv._get_aml_for_register_payment() - return (line_to_reconcile + payment_line).reconcile(writeoff_acc_id, writeoff_journal_id) - - @api.multi - def assign_outstanding_credit(self, credit_aml_id): - self.ensure_one() - credit_aml = self.env['account.move.line'].browse(credit_aml_id) - if not credit_aml.currency_id and self.currency_id != self.company_id.currency_id: - amount_currency = self.company_id.currency_id._convert(credit_aml.balance, self.currency_id, self.company_id, credit_aml.date or fields.Date.today()) - credit_aml.with_context(allow_amount_currency=True, check_move_validity=False).write({ - 'amount_currency': amount_currency, - 'currency_id': self.currency_id.id}) - if credit_aml.payment_id: - credit_aml.payment_id.write({'invoice_ids': [(4, self.id, None)]}) - return self.register_payment(credit_aml) - - @api.multi - def action_date_assign(self): - for inv in self: - # Here the onchange will automatically write to the database - inv._onchange_payment_term_date_invoice() - return True - - @api.multi - def finalize_invoice_move_lines(self, move_lines): - """ finalize_invoice_move_lines(move_lines) -> move_lines - - Hook method to be overridden in additional modules to verify and - possibly alter the move lines to be created by an invoice, for - special cases. - :param move_lines: list of dictionaries with the account.move.lines (as for create()) - :return: the (possibly updated) final move_lines to create for this invoice - """ - return move_lines - - @api.multi - def compute_invoice_totals(self, company_currency, invoice_move_lines): - total = 0 - total_currency = 0 - for line in invoice_move_lines: - if self.currency_id != company_currency: - currency = self.currency_id - date = self._get_currency_rate_date() or fields.Date.context_today(self) - if not (line.get('currency_id') and line.get('amount_currency')): - line['currency_id'] = currency.id - line['amount_currency'] = currency.round(line['price']) - line['price'] = currency._convert(line['price'], company_currency, self.company_id, date) - else: - line['currency_id'] = False - line['amount_currency'] = False - line['price'] = self.currency_id.round(line['price']) - if self.type in ('out_invoice', 'in_refund'): - total += line['price'] - total_currency += line['amount_currency'] or line['price'] - line['price'] = - line['price'] - else: - total -= line['price'] - total_currency -= line['amount_currency'] or line['price'] - return total, total_currency, invoice_move_lines - - @api.model - def invoice_line_move_line_get(self): - res = [] - for line in self.invoice_line_ids: - if not line.account_id: - continue - if line.quantity==0: - continue - - taxes_to_flatten = line.invoice_line_tax_ids - flattened_taxes = self.env['account.tax'] - while taxes_to_flatten: - tax = taxes_to_flatten[0] - taxes_to_flatten -= tax - flattened_taxes += tax - taxes_to_flatten += tax.children_tax_ids - - analytic_tag_ids = [(4, analytic_tag.id, None) for analytic_tag in line.analytic_tag_ids] - - tax_repartition_field_name = 'invoice_repartition_line_ids' if line.invoice_type in ('in_invoice', 'out_invoice') else 'refund_repartition_line_ids' - tag_ids = flattened_taxes.mapped(tax_repartition_field_name).filtered(lambda x: x.repartition_type == 'base').mapped('tag_ids.id') - move_line_dict = { - 'invl_id': line.id, - 'type': 'src', - 'name': line.name, - 'price_unit': line.price_unit, - 'quantity': line.quantity, - 'price': line.price_subtotal, - 'account_id': line.account_id.id, - 'product_id': line.product_id.id, - 'uom_id': line.uom_id.id, - 'account_analytic_id': line.account_analytic_id.id, - 'analytic_tag_ids': analytic_tag_ids, - 'tax_ids': [(6, 0, flattened_taxes.ids)], - 'invoice_id': self.id, - 'tag_ids': [(6, 0, tag_ids)], - } - res.append(move_line_dict) - return res - - def tax_line_move_line_get(self): - self.ensure_one() - res = [] - # loop the invoice.tax.line in reversal sequence - for tax_line in sorted(self.tax_line_ids, key=lambda x: -x.sequence): - if tax_line.amount_total: - analytic_tag_ids = [(4, analytic_tag.id, None) for analytic_tag in tax_line.analytic_tag_ids] - res.append({ - 'invoice_tax_line_id': tax_line.id, - 'tax_line_id': tax_line.tax_id.id, - 'type': 'tax', - 'name': tax_line.name, - 'price_unit': tax_line.amount_total, - 'quantity': 1, - 'price': tax_line.amount_total, - 'account_id': tax_line.account_id.id, - 'account_analytic_id': tax_line.account_analytic_id.id, - 'analytic_tag_ids': analytic_tag_ids, - 'invoice_id': self.id, - 'tax_ids': tax_line.tax_ids and [(6, 0, tax_line.tax_ids.ids)] or False, # We don't pass an empty recordset here, as it would reset the tax_exibility of the line, due to the condition in account.move.line's create - 'tax_repartition_line_id': tax_line.tax_repartition_line_id.id, - 'tag_ids': [(6, 0, tax_line.tag_ids.ids)], - 'tax_base_amount': tax_line.base, - }) - return res - - def inv_line_characteristic_hashcode(self, invoice_line): - """Overridable hashcode generation for invoice lines. Lines having the same hashcode - will be grouped together if the journal has the 'group line' option. Of course a module - can add fields to invoice lines that would need to be tested too before merging lines - or not.""" - return "%s-%s-%s-%s-%s-%s-%s" % ( - invoice_line['account_id'], - invoice_line.get('tax_ids', 'False'), - invoice_line.get('tax_line_id', 'False'), - invoice_line.get('product_id', 'False'), - invoice_line.get('analytic_account_id', 'False'), - invoice_line.get('date_maturity', 'False'), - invoice_line.get('analytic_tag_ids', 'False'), - ) - - def group_lines(self, iml, line): - """Merge account move lines (and hence analytic lines) if invoice line hashcodes are equals""" - if self.journal_id.group_invoice_lines: - line2 = {} - for x, y, l in line: - tmp = self.inv_line_characteristic_hashcode(l) - if tmp in line2: - am = line2[tmp]['debit'] - line2[tmp]['credit'] + (l['debit'] - l['credit']) - line2[tmp]['debit'] = (am > 0) and am or 0.0 - line2[tmp]['credit'] = (am < 0) and -am or 0.0 - line2[tmp]['amount_currency'] += l['amount_currency'] - line2[tmp]['analytic_line_ids'] += l['analytic_line_ids'] - qty = l.get('quantity') - if qty: - line2[tmp]['quantity'] = line2[tmp].get('quantity', 0.0) + qty - else: - line2[tmp] = l - line = [] - for key, val in line2.items(): - line.append((0, 0, val)) - return line - - @api.multi - def action_move_create(self): - """ Creates invoice related analytics and financial move lines """ - account_move = self.env['account.move'] - - for inv in self: - if not inv.journal_id.sequence_id: - raise UserError(_('Please define sequence on the journal related to this invoice.')) - if not inv.invoice_line_ids.filtered(lambda line: line.account_id): - raise UserError(_('Please add at least one invoice line.')) - if inv.move_id: - continue - company_currency = inv.company_id.currency_id - - # create move lines (one per invoice line + eventual taxes and analytic lines) - iml = inv.invoice_line_move_line_get() - iml += inv.tax_line_move_line_get() - - diff_currency = inv.currency_id != company_currency - # create one move line for the total and possibly adjust the other lines amount - total, total_currency, iml = inv.compute_invoice_totals(company_currency, iml) - - name = inv.name or '' - if inv.payment_term_id: - totlines = inv.payment_term_id.with_context(currency_id=company_currency.id).compute(total, inv.date_invoice) - res_amount_currency = total_currency - for i, t in enumerate(totlines): - if inv.currency_id != company_currency: - amount_currency = company_currency._convert(t[1], inv.currency_id, inv.company_id, inv._get_currency_rate_date() or fields.Date.today()) - else: - amount_currency = False - - # last line: add the diff - res_amount_currency -= amount_currency or 0 - if i + 1 == len(totlines): - amount_currency += res_amount_currency - - iml.append({ - 'type': 'dest', - 'name': name, - 'price': t[1], - 'account_id': inv.account_id.id, - 'date_maturity': t[0], - 'amount_currency': diff_currency and amount_currency, - 'currency_id': diff_currency and inv.currency_id.id, - 'invoice_id': inv.id - }) - else: - iml.append({ - 'type': 'dest', - 'name': name, - 'price': total, - 'account_id': inv.account_id.id, - 'date_maturity': inv.date_due, - 'amount_currency': diff_currency and total_currency, - 'currency_id': diff_currency and inv.currency_id.id, - 'invoice_id': inv.id - }) - part = self.env['res.partner']._find_accounting_partner(inv.partner_id) - line = [(0, 0, self.line_get_convert(l, part.id)) for l in iml] - line = inv.group_lines(iml, line) - - line = inv.finalize_invoice_move_lines(line) - - date = inv.date or inv.date_invoice - move_ref = inv.reference - if inv.origin: - if move_ref: - move_ref += ' (%s)' % inv.origin - else: - move_ref = inv.origin - move_vals = { - 'ref': move_ref, - 'line_ids': line, - 'journal_id': inv.journal_id.id, - 'date': date, - 'narration': inv.comment, - 'name': inv.number, - } - move = account_move.create(move_vals) - move.post() - # make the invoice point to that move - vals = { - 'move_id': move.id, - 'date': date, - 'move_name': move.name, - } - inv.write(vals) - return True - - @api.constrains('cash_rounding_id', 'tax_line_ids') - def _check_cash_rounding(self): - for inv in self: - if inv.cash_rounding_id: - rounding_amount = inv.cash_rounding_id.compute_difference(inv.currency_id, inv.amount_total) - if rounding_amount != 0.0: - raise UserError(_('The cash rounding cannot be computed because the difference must ' - 'be added on the biggest tax found and no tax are specified.\n' - 'Please set up a tax or change the cash rounding method.')) - - @api.multi - def _check_duplicate_supplier_reference(self): - for invoice in self: - # refuse to validate a vendor bill/credit note if there already exists one with the same reference for the same partner, - # because it's probably a double encoding of the same bill/credit note - if invoice.type in ('in_invoice', 'in_refund') and invoice.reference: - if self.search([('type', '=', invoice.type), ('reference', '=', invoice.reference), ('company_id', '=', invoice.company_id.id), ('commercial_partner_id', '=', invoice.commercial_partner_id.id), ('id', '!=', invoice.id)]): - raise UserError(_("Duplicated vendor reference detected. You probably encoded twice the same vendor bill/credit note.")) - - @api.multi - def invoice_validate(self): - for invoice in self.filtered(lambda invoice: invoice.partner_id not in invoice.message_partner_ids): - invoice.message_subscribe([invoice.partner_id.id]) - - for invoice in self: - vals = {'state': 'open'} - if not invoice.date_due: - vals['date_due'] = vals.get('date_invoice', invoice.date_invoice) - - - # Auto-compute reference, if not already existing and if configured on company - if not invoice.reference and invoice.type == 'out_invoice': - vals['reference'] = invoice._get_computed_reference() - - invoice.write(vals) - - self._check_duplicate_supplier_reference() - return True - - @api.model - def line_get_convert(self, line, part): - return self.env['product.product']._convert_prepared_anglosaxon_line(line, part) - - @api.multi - def action_cancel(self): - moves = self.env['account.move'] - for inv in self: - if inv.move_id: - moves += inv.move_id - #unreconcile all journal items of the invoice, since the cancellation will unlink them anyway - inv.move_id.line_ids.filtered(lambda x: x.account_id.reconcile).remove_move_reconcile() - - # First, set the invoices as cancelled and detach the move ids - self.write({'state': 'cancel', 'move_id': False}) - if moves: - # second, invalidate the move(s) - moves.button_cancel() - # delete the move this invoice was pointing to - # Note that the corresponding move_lines and move_reconciles - # will be automatically deleted too - moves.unlink() - return True - - ################### - - @api.multi - def name_get(self): - TYPES = { - 'out_invoice': _('Invoice'), - 'in_invoice': _('Vendor Bill'), - 'out_refund': _('Credit Note'), - 'in_refund': _('Vendor Credit note'), - } - result = [] - for inv in self: - result.append((inv.id, "%s %s" % (inv.number or TYPES[inv.type], inv.name or ''))) - return result - - @api.model - def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None): - args = args or [] - invoice_ids = [] - if name: - invoice_ids = self._search([('number', '=', name)] + args, limit=limit, access_rights_uid=name_get_uid) - if not invoice_ids: - invoice_ids = self._search([('name', operator, name)] + args, limit=limit, access_rights_uid=name_get_uid) - return self.browse(invoice_ids).name_get() - - @api.model - def _refund_cleanup_lines(self, lines): - """ Convert records to dict of values suitable for one2many line creation - - :param recordset lines: records to convert - :return: list of command tuple for one2many line creation [(0, 0, dict of valueis), ...] - """ - result = [] - for line in lines: - values = {} - for name, field in line._fields.items(): - if name in MAGIC_COLUMNS: - continue - elif field.type == 'many2one': - values[name] = line[name].id - elif field.type not in ['many2many', 'one2many']: - values[name] = line[name] - elif name == 'invoice_line_tax_ids': - values[name] = [(6, 0, line[name].ids)] - elif name == 'analytic_tag_ids': - values[name] = [(6, 0, line[name].ids)] - result.append((0, 0, values)) - return result - - def _get_refund_common_fields(self): - return ['partner_id', 'payment_term_id', 'account_id', 'currency_id', 'journal_id'] - - @api.model - def _get_refund_prepare_fields(self): - return ['name', 'reference', 'comment', 'date_due'] - - @api.model - def _get_refund_modify_read_fields(self): - read_fields = ['type', 'number', 'invoice_line_ids', 'tax_line_ids', - 'date'] - return self._get_refund_common_fields() + self._get_refund_prepare_fields() + read_fields - - @api.model - def _get_refund_copy_fields(self): - copy_fields = ['company_id', 'user_id', 'fiscal_position_id'] - return self._get_refund_common_fields() + self._get_refund_prepare_fields() + copy_fields - - def _get_currency_rate_date(self): - return self.date or self.date_invoice - - @api.model - def _create_refund_repartition_mapping(self, taxes): - """ Creates a mapping between tax and refund repartition lines of the - provided taxes, using the sequence of repartition lines to match them. - This function is used in order to fix account.invoice.tax objects generated - for refunds when tax amounts have been modified manually. - - :return: A dictionnary, with invoice repartition line ids as keys, and refund - repartition lines as values - """ - rslt = {} - for tax in taxes: - index = 0 - while(index < len(tax.invoice_repartition_line_ids)): - # _validate_repartition_lines constraint on taxes ensure invoice and refund repartition are equal, and in the same order - inv_rep_ln = tax.invoice_repartition_line_ids[index] - ref_rep_ln = tax.refund_repartition_line_ids[index] - if inv_rep_ln.repartition_type == 'tax': - rslt[inv_rep_ln.id] = ref_rep_ln - index += 1 - - return rslt - - @api.model - def _prepare_refund(self, invoice, date_invoice=None, date=None, description=None, journal_id=None): - """ Prepare the dict of values to create the new credit note from the invoice. - This method may be overridden to implement custom - credit note generation (making sure to call super() to establish - a clean extension chain). - - :param record invoice: invoice as credit note - :param string date_invoice: credit note creation date from the wizard - :param integer date: force date from the wizard - :param string description: description of the credit note from the wizard - :param integer journal_id: account.journal from the wizard - :return: dict of value to create() the credit note - """ - values = {} - for field in self._get_refund_copy_fields(): - if invoice._fields[field].type == 'many2one': - values[field] = invoice[field].id - else: - values[field] = invoice[field] or False - - values['invoice_line_ids'] = self._refund_cleanup_lines(invoice.invoice_line_ids) - - if journal_id: - journal = self.env['account.journal'].browse(journal_id) - elif invoice['type'] == 'in_invoice': - journal = self.env['account.journal'].search([('type', '=', 'purchase')], limit=1) - else: - journal = self.env['account.journal'].search([('type', '=', 'sale')], limit=1) - values['journal_id'] = journal.id - - values['type'] = TYPE2REFUND[invoice['type']] - values['date_invoice'] = date_invoice or fields.Date.context_today(invoice) - values['state'] = 'draft' - values['number'] = False - values['origin'] = invoice.number - values['payment_term_id'] = False - values['refund_invoice_id'] = invoice.id - - if values['type'] == 'in_refund': - partner_bank_result = self._get_partner_bank_id(values['company_id']) - if partner_bank_result: - values['partner_bank_id'] = partner_bank_result.id - - if date: - values['date'] = date - if description: - values['name'] = description - - # Treat refund tax lines. - # We copy them from the invoice and replace their account_id and - # tag_ids based on the refund repartition of the corresponding taxes. - tax_rep_ln_mapping = {} - for invoice_tax_entry in invoice.tax_line_ids: - if not invoice_tax_entry.tax_repartition_line_id.id in tax_rep_ln_mapping: - tax_rep_ln_mapping[invoice_tax_entry.tax_id.id] = self._create_refund_repartition_mapping(invoice_tax_entry.tax_id) - - tax_line_vals = [] - for invoice_tax_entry in invoice.tax_line_ids: - ref_rep_ln = tax_rep_ln_mapping[invoice_tax_entry.tax_id.id][invoice_tax_entry.tax_repartition_line_id.id] - tax_line_vals.append({ - 'name': invoice_tax_entry.name, - 'tax_id': invoice_tax_entry.tax_id.id, - 'tax_repartition_line_id': ref_rep_ln.id, - 'account_id': ref_rep_ln.account_id.id or invoice_tax_entry.account_id.id, # If the refund repartition line has no account set, we use the one from the original invoice - 'account_analytic_id': invoice_tax_entry.account_analytic_id.id, - 'analytic_tag_ids': [(6, 0, invoice_tax_entry.analytic_tag_ids.ids)], - 'amount': invoice_tax_entry.amount, - 'amount_rounding': invoice_tax_entry.amount_rounding, - 'manual': invoice_tax_entry.manual, - 'sequence': invoice_tax_entry.sequence, - 'base': invoice_tax_entry.base, - 'tax_ids': [(6, 0, invoice_tax_entry.tax_ids.ids)], - 'tag_ids': [(6, 0, ref_rep_ln.tag_ids.ids)], - }) - values['tax_line_ids'] = [(0, 0, tax_line_val) for tax_line_val in tax_line_vals] - - return values - - @api.multi - @api.returns('self') - def refund(self, date_invoice=None, date=None, description=None, journal_id=None): - new_invoices = self.browse() - for invoice in self: - # create the new invoice - values = self._prepare_refund(invoice, date_invoice=date_invoice, date=date, - description=description, journal_id=journal_id) - refund_invoice = self.create(values) - if invoice.type == 'out_invoice': - message = _("This customer invoice credit note has been created from: <a href=# data-oe-model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s") % (invoice.id, invoice.number, description) - else: - message = _("This vendor bill credit note has been created from: <a href=# data-oe-model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s") % (invoice.id, invoice.number, description) - - refund_invoice.message_post(body=message) - new_invoices += refund_invoice - return new_invoices - - def _prepare_payment_vals(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None, communication=None): - payment_type = self.type in ('out_invoice', 'in_refund') and 'inbound' or 'outbound' - if payment_type == 'inbound': - payment_method = self.env.ref('account.account_payment_method_manual_in') - journal_payment_methods = pay_journal.inbound_payment_method_ids - else: - payment_method = self.env.ref('account.account_payment_method_manual_out') - journal_payment_methods = pay_journal.outbound_payment_method_ids - - if not communication: - communication = self.type in ('in_invoice', 'in_refund') and self.reference or self.number - if self.origin: - communication = '%s (%s)' % (communication, self.origin) - - payment_vals = { - 'invoice_ids': [(6, 0, self.ids)], - 'amount': pay_amount or self.residual, - 'payment_date': date or fields.Date.context_today(self), - 'communication': communication, - 'partner_id': self.partner_id.id, - 'partner_type': self.type in ('out_invoice', 'out_refund') and 'customer' or 'supplier', - 'journal_id': pay_journal.id, - 'payment_type': payment_type, - 'payment_method_id': payment_method.id, - 'payment_difference_handling': writeoff_acc and 'reconcile' or 'open', - 'writeoff_account_id': writeoff_acc and writeoff_acc.id or False, - } - return payment_vals - - @api.multi - def pay_and_reconcile(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None): - """ Create and post an account.payment for the invoice self, which creates a journal entry that reconciles the invoice. - - :param pay_journal: journal in which the payment entry will be created - :param pay_amount: amount of the payment to register, defaults to the residual of the invoice - :param date: payment date, defaults to fields.Date.context_today(self) - :param writeoff_acc: account in which to create a writeoff if pay_amount < self.residual, so that the invoice is fully paid - """ - if isinstance(pay_journal, int): - pay_journal = self.env['account.journal'].browse([pay_journal]) - assert len(self) == 1, "Can only pay one invoice at a time." - - payment_vals = self._prepare_payment_vals(pay_journal, pay_amount=pay_amount, date=date, writeoff_acc=writeoff_acc) - payment = self.env['account.payment'].create(payment_vals) - payment.post() - - return True - - @api.multi - def _creation_subtype(self): - if self.type in ('out_invoice', 'out_refund'): - return self.env.ref('account.mt_invoice_created') - return super(AccountInvoice, self)._creation_subtype() - - @api.multi - def _track_subtype(self, init_values): - self.ensure_one() - if 'state' in init_values and self.state == 'paid' and self.type in ('out_invoice', 'out_refund'): - return self.env.ref('account.mt_invoice_paid') - elif 'state' in init_values and self.state == 'open' and self.type in ('out_invoice', 'out_refund'): - return self.env.ref('account.mt_invoice_validated') - return super(AccountInvoice, self)._track_subtype(init_values) - - def _amount_by_group(self): - for invoice in self: - currency = invoice.currency_id or invoice.company_id.currency_id - fmt = partial(formatLang, invoice.with_context(lang=invoice.partner_id.lang).env, currency_obj=currency) - res = {} - for line in invoice.tax_line_ids: - tax = line.tax_id - group_key = (tax.tax_group_id, tax.amount_type, tax.amount) - res.setdefault(group_key, {'base': 0.0, 'amount': 0.0}) - res[group_key]['amount'] += line.amount_total - res[group_key]['base'] += line.base - res = sorted(res.items(), key=lambda l: l[0][0].sequence) - invoice.amount_by_group = [( - r[0][0].name, r[1]['amount'], r[1]['base'], - fmt(r[1]['amount']), fmt(r[1]['base']), - len(res), - ) for r in res] - - @api.multi - def preview_invoice(self): - self.ensure_one() - return { - 'type': 'ir.actions.act_url', - 'target': 'self', - 'url': self.get_portal_url(), - } - - def _get_intrastat_country_id(self): - return self.partner_id.country_id.id - - def _get_onchange_create(self): - return OrderedDict([ - ('_onchange_partner_id', ['account_id', 'payment_term_id', 'fiscal_position_id', 'partner_bank_id']), - ('_onchange_journal_id', ['currency_id']), - ]) - - def _set_name_and_date_invoice(self): - for invoice in self: - if (invoice.move_name and invoice.move_name != '/'): - new_name = invoice.move_name - else: - new_name = False - journal = invoice.journal_id - if journal.sequence_id: - # If invoice is actually refund and journal has a refund_sequence then use that one or use the regular one - sequence = journal.sequence_id - if invoice.type in ['out_refund', 'in_refund'] and journal.refund_sequence: - if not journal.refund_sequence_id: - raise UserError(_('Please define a sequence for the credit notes')) - sequence = journal.refund_sequence_id - - new_name = sequence.with_context(ir_sequence_date=invoice.date or invoice.date_invoice).next_by_id() - else: - raise UserError(_('Please define a sequence on the journal.')) - #give the invoice its number directly as it's needed in _get_computed_reference() - invoice.number = new_name - if not invoice.date_invoice: - invoice.date_invoice = fields.Date.context_today(self) - - -class AccountInvoiceLine(models.Model): - _name = "account.invoice.line" - _description = "Invoice Line" - _order = "invoice_id,sequence,id" - - @api.one - @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', 'quantity', - 'product_id', 'invoice_id.partner_id', 'invoice_id.currency_id', 'invoice_id.company_id', - 'invoice_id.date_invoice', 'invoice_id.date') - def _compute_price(self): - currency = self.invoice_id and self.invoice_id.currency_id or None - price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) - taxes = False - if self.invoice_line_tax_ids: - taxes = self.invoice_line_tax_ids.compute_all(price, currency, self.quantity, product=self.product_id, partner=self.invoice_id.partner_id, is_refund=self.invoice_id.type in ('in_refund', 'out_refund')) - self.price_subtotal = price_subtotal_signed = taxes['total_excluded'] if taxes else self.quantity * price - self.price_total = taxes['total_included'] if taxes else self.price_subtotal - if self.invoice_id.currency_id and self.invoice_id.currency_id != self.invoice_id.company_id.currency_id: - currency = self.invoice_id.currency_id - date = self.invoice_id._get_currency_rate_date() - price_subtotal_signed = currency._convert(price_subtotal_signed, self.invoice_id.company_id.currency_id, self.company_id or self.env.company, date or fields.Date.today()) - sign = self.invoice_id.type in ['in_refund', 'out_refund'] and -1 or 1 - self.price_subtotal_signed = price_subtotal_signed * sign - - @api.model - def _default_account(self): - if self._context.get('journal_id'): - journal = self.env['account.journal'].browse(self._context.get('journal_id')) - if self._context.get('type') in ('out_invoice', 'in_refund'): - return journal.default_credit_account_id.id - return journal.default_debit_account_id.id - - def _get_price_tax(self): - for l in self: - l.price_tax = l.price_total - l.price_subtotal - - name = fields.Text(string='Description', required=True) - origin = fields.Char(string='Source Document', - help="Reference of the document that produced this invoice.") - sequence = fields.Integer(default=10, - help="Gives the sequence of this line when displaying the invoice.") - invoice_id = fields.Many2one('account.invoice', string='Invoice Reference', - ondelete='cascade', index=True) - invoice_type = fields.Selection(related='invoice_id.type', readonly=True) - uom_id = fields.Many2one('uom.uom', string='Unit of Measure', - ondelete='set null', index=True, oldname='uos_id') - product_id = fields.Many2one('product.product', string='Product', - ondelete='restrict', index=True) - account_id = fields.Many2one('account.account', string='Account', domain=[('deprecated', '=', False)], - default=_default_account, - help="The income or expense account related to the selected product.") - price_unit = fields.Float(string='Unit Price', required=True, digits=dp.get_precision('Product Price')) - price_subtotal = fields.Monetary(string='Amount (without Taxes)', - store=True, readonly=True, compute='_compute_price', help="Total amount without taxes") - price_total = fields.Monetary(string='Amount (with Taxes)', - store=True, readonly=True, compute='_compute_price', help="Total amount with taxes") - price_subtotal_signed = fields.Monetary(string='Amount Signed', currency_field='company_currency_id', - store=True, readonly=True, compute='_compute_price', - help="Total amount in the currency of the company, negative for credit note.") - price_tax = fields.Monetary(string='Tax Amount', compute='_get_price_tax', store=False) - quantity = fields.Float(string='Quantity', digits=dp.get_precision('Product Unit of Measure'), - required=True, default=1) - discount = fields.Float(string='Discount (%)', digits=dp.get_precision('Discount'), - default=0.0) - invoice_line_tax_ids = fields.Many2many('account.tax', - 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', - string='Taxes', domain=[('type_tax_use','!=','none'), '|', ('active', '=', False), ('active', '=', True)], oldname='invoice_line_tax_id') - account_analytic_id = fields.Many2one('account.analytic.account', - string='Analytic Account') - analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags') - company_id = fields.Many2one('res.company', string='Company', - related='invoice_id.company_id', store=True, readonly=True, related_sudo=False) - partner_id = fields.Many2one('res.partner', string='Partner', - related='invoice_id.partner_id', store=True, readonly=True, related_sudo=False) - currency_id = fields.Many2one('res.currency', related='invoice_id.currency_id', store=True, related_sudo=False, readonly=False) - company_currency_id = fields.Many2one('res.currency', related='invoice_id.company_currency_id', readonly=True, related_sudo=False) - is_rounding_line = fields.Boolean(string='Rounding Line', help='Is a rounding line in case of cash rounding.') - - display_type = fields.Selection([ - ('line_section', "Section"), - ('line_note', "Note")], default=False, help="Technical field for UX purpose.") - - @api.model - def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): - res = super(AccountInvoiceLine, self).fields_view_get( - view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) - if self._context.get('type'): - doc = etree.XML(res['arch']) - for node in doc.xpath("//field[@name='product_id']"): - if self._context['type'] in ('in_invoice', 'in_refund'): - # Hack to fix the stable version 8.0 -> saas-12 - # purchase_ok will be moved from purchase to product in master #13271 - if 'purchase_ok' in self.env['product.template']._fields: - node.set('domain', "[('purchase_ok', '=', True)]") - else: - node.set('domain', "[('sale_ok', '=', True)]") - res['arch'] = etree.tostring(doc, encoding='unicode') - return res - - @api.v8 - def get_invoice_line_account(self, type, product, fpos, company): - accounts = product.product_tmpl_id.get_product_accounts(fpos) - if type in ('out_invoice', 'out_refund'): - return accounts['income'] - return accounts['expense'] - - def _set_currency(self): - company = self.invoice_id.company_id - currency = self.invoice_id.currency_id - if company and currency: - if company.currency_id != currency: - self.price_unit = self.price_unit * currency.with_context(dict(self._context or {}, date=self.invoice_id.date_invoice)).rate - - def _set_taxes(self): - """ Used in on_change to set taxes and price""" - self.ensure_one() - - # Keep only taxes of the company - company_id = self.company_id or self.env.company - - if self.invoice_id.type in ('out_invoice', 'out_refund'): - taxes = self.product_id.taxes_id.filtered(lambda r: r.company_id == company_id) or self.account_id.tax_ids or self.invoice_id.company_id.account_sale_tax_id - else: - taxes = self.product_id.supplier_taxes_id.filtered(lambda r: r.company_id == company_id) or self.account_id.tax_ids or self.invoice_id.company_id.account_purchase_tax_id - - self.invoice_line_tax_ids = fp_taxes = self.invoice_id.fiscal_position_id.map_tax(taxes, self.product_id, self.invoice_id.partner_id) - - fix_price = self.env['account.tax']._fix_tax_included_price - if self.invoice_id.type in ('in_invoice', 'in_refund'): - prec = self.env['decimal.precision'].precision_get('Product Price') - if not self.price_unit or float_compare(self.price_unit, self.product_id.standard_price, precision_digits=prec) == 0: - self.price_unit = fix_price(self.product_id.standard_price, taxes, fp_taxes) - self._set_currency() - else: - self.price_unit = fix_price(self.product_id.lst_price, taxes, fp_taxes) - self._set_currency() - - @api.onchange('product_id') - def _onchange_product_id(self): - domain = {} - if not self.invoice_id: - return - - part = self.invoice_id.partner_id - fpos = self.invoice_id.fiscal_position_id - company = self.invoice_id.company_id - currency = self.invoice_id.currency_id - type = self.invoice_id.type - - if not part: - warning = { - 'title': _('Warning!'), - 'message': _('You must first select a partner.'), - } - return {'warning': warning} - - if not self.product_id: - if type not in ('in_invoice', 'in_refund'): - self.price_unit = 0.0 - domain['uom_id'] = [] - else: - self_lang = self - if part.lang: - self_lang = self.with_context(lang=part.lang) - - product = self_lang.product_id - account = self.get_invoice_line_account(type, product, fpos, company) - if account: - self.account_id = account.id - self._set_taxes() - - product_name = self_lang._get_invoice_line_name_from_product() - if product_name != None: - self.name = product_name - - if not self.uom_id or product.uom_id.category_id.id != self.uom_id.category_id.id: - self.uom_id = product.uom_id.id - domain['uom_id'] = [('category_id', '=', product.uom_id.category_id.id)] - - if company and currency: - - if self.uom_id and self.uom_id.id != product.uom_id.id: - self.price_unit = product.uom_id._compute_price(self.price_unit, self.uom_id) - return {'domain': domain} - - def _get_invoice_line_name_from_product(self): - """ Returns the automatic name to give to the invoice line depending on - the product it is linked to. - """ - self.ensure_one() - if not self.product_id: - return '' - invoice_type = self.invoice_id.type - rslt = self.product_id.partner_ref - if invoice_type in ('in_invoice', 'in_refund'): - if self.product_id.description_purchase: - rslt += '\n' + self.product_id.description_purchase - else: - if self.product_id.description_sale: - rslt += '\n' + self.product_id.description_sale - - return rslt - - @api.onchange('account_id') - def _onchange_account_id(self): - if not self.account_id: - return - if not self.product_id: - fpos = self.invoice_id.fiscal_position_id - default_tax = self.invoice_id.type in ('out_invoice', 'out_refund') and self.invoice_id.company_id.account_sale_tax_id or self.invoice_id.company_id.account_purchase_tax_id - self.invoice_line_tax_ids = fpos.map_tax(self.account_id.tax_ids or default_tax, partner=self.partner_id) - elif not self.price_unit: - self._set_taxes() - - - @api.onchange('uom_id') - def _onchange_uom_id(self): - warning = {} - result = {} - if not self.uom_id: - self.price_unit = 0.0 - - if self.product_id and self.uom_id: - if self.invoice_id.type in ('in_invoice', 'in_refund'): - price_unit = self.product_id.standard_price - else: - price_unit = self.product_id.lst_price - self.price_unit = self.product_id.uom_id._compute_price(price_unit, self.uom_id) - self._set_currency() - - if self.product_id.uom_id.category_id.id != self.uom_id.category_id.id: - warning = { - 'title': _('Warning!'), - 'message': _('The selected unit of measure has to be in the same category as the product unit of measure.'), - } - self.uom_id = self.product_id.uom_id.id - if warning: - result['warning'] = warning - return result - - def _set_additional_fields(self): - """ Some modules, such as Purchase, provide a feature to add automatically pre-filled - invoice lines. However, these modules might not be aware of extra fields which are - added by extensions of the accounting module. - This method is intended to be overridden by these extensions, so that any new field can - easily be auto-filled as well. - """ - pass - - @api.multi - def unlink(self): - if self.filtered(lambda r: r.invoice_id and r.invoice_id.state != 'draft'): - raise UserError(_('You can only delete an invoice line if the invoice is in draft state.')) - return super(AccountInvoiceLine, self).unlink() - - def _prepare_invoice_line(self): - data = { - 'name': self.name, - 'origin': self.origin, - 'uom_id': self.uom_id.id, - 'product_id': self.product_id.id, - 'account_id': self.account_id.id, - 'price_unit': self.price_unit, - 'quantity': self.quantity, - 'discount': self.discount, - 'account_analytic_id': self.account_analytic_id.id, - 'analytic_tag_ids': self.analytic_tag_ids.ids, - 'invoice_line_tax_ids': self.invoice_line_tax_ids.ids - } - return data - - @api.model_create_multi - def create(self, vals_list): - for vals in vals_list: - if vals.get('display_type', self.default_get(['display_type'])['display_type']): - vals.update(price_unit=0, account_id=False, quantity=0) - return super(AccountInvoiceLine, self).create(vals_list) - - @api.multi - def write(self, values): - if 'display_type' in values and self.filtered(lambda line: line.display_type != values.get('display_type')): - raise UserError("You cannot change the type of an invoice line. Instead you should delete the current line and create a new line of the proper type.") - return super(AccountInvoiceLine, self).write(values) - - _sql_constraints = [ - ('accountable_required_fields', - "CHECK(display_type IS NOT NULL OR account_id IS NOT NULL)", - "Missing required account on accountable invoice line."), - - ('non_accountable_fields_null', - "CHECK(display_type IS NULL OR (price_unit = 0 AND account_id IS NULL and quantity = 0))", - "Forbidden unit price, account and quantity on non-accountable invoice line"), - ] - - -class AccountInvoiceTax(models.Model): - _name = "account.invoice.tax" - _description = "Invoice Tax" - _order = 'sequence, id desc' - - def _prepare_invoice_tax_val(self): - self.ensure_one() - return { - 'tax_id': self.tax_id.id, - 'account_id': self.account_id.id, - 'account_analytic_id': self.account_analytic_id.id, - 'analytic_tag_ids': self.analytic_tag_ids.ids or False, - } - - invoice_id = fields.Many2one('account.invoice', string='Invoice', ondelete='cascade', index=True) - name = fields.Char(string='Tax Description', required=True) - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - tax_repartition_line_id = fields.Many2one(string="Originating Repartition Line", comodel_name='account.tax.repartition.line') - account_id = fields.Many2one('account.account', string='Tax Account', required=True, domain=[('deprecated', '=', False)]) - account_analytic_id = fields.Many2one('account.analytic.account', string='Analytic account') - analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags') - amount = fields.Monetary('Tax Amount') - amount_rounding = fields.Monetary('Amount Delta') - amount_total = fields.Monetary(string="Amount Total", compute='_compute_amount_total') - manual = fields.Boolean(default=True) - sequence = fields.Integer(help="Gives the sequence order when displaying a list of invoice tax.") - company_id = fields.Many2one('res.company', string='Company', related='account_id.company_id', store=True, readonly=True) - currency_id = fields.Many2one('res.currency', related='invoice_id.currency_id', store=True, readonly=True) - base = fields.Monetary(string='Base') - tax_ids = fields.Many2many('account.tax', string='Affecting Base Taxes', help='Taxes whose base amount needs has to be affected by this tax line.') - tag_ids = fields.Many2many(string="Tags", comodel_name='account.account.tag', help="The taxes that will be applied on the move line generated for this tax entry") - - @api.depends('amount', 'amount_rounding') - def _compute_amount_total(self): - for tax_line in self: - tax_line.amount_total = tax_line.amount + tax_line.amount_rounding diff --git a/addons/account/models/account_journal_dashboard.py b/addons/account/models/account_journal_dashboard.py index f5594afcc38..857ca086312 100644 --- a/addons/account/models/account_journal_dashboard.py +++ b/addons/account/models/account_journal_dashboard.py @@ -9,6 +9,9 @@ from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF, safe_eval from odoo.tools.misc import formatLang, format_date as odoo_format_date import random +import ast + + class account_journal(models.Model): _inherit = "account.journal" @@ -157,12 +160,12 @@ class account_journal(models.Model): start_date = (first_day_of_week + timedelta(days=-7)) for i in range(0,6): if i == 0: - query += "("+select_sql_clause+" and date_due < '"+start_date.strftime(DF)+"')" + query += "("+select_sql_clause+" and invoice_date_due < '"+start_date.strftime(DF)+"')" elif i == 5: - query += " UNION ALL ("+select_sql_clause+" and date_due >= '"+start_date.strftime(DF)+"')" + query += " UNION ALL ("+select_sql_clause+" and invoice_date_due >= '"+start_date.strftime(DF)+"')" else: next_date = start_date + timedelta(days=7) - query += " UNION ALL ("+select_sql_clause+" and date_due >= '"+start_date.strftime(DF)+"' and date_due < '"+next_date.strftime(DF)+"')" + query += " UNION ALL ("+select_sql_clause+" and invoice_date_due >= '"+start_date.strftime(DF)+"' and invoice_date_due < '"+next_date.strftime(DF)+"')" start_date = next_date self.env.cr.execute(query, query_args) @@ -190,9 +193,17 @@ class account_journal(models.Model): the bar graph's data as its first element, and the arguments dictionary for it as its second. """ - return ("""SELECT sum(residual_company_signed) as total, min(date_due) as aggr_date - FROM account_invoice - WHERE journal_id = %(journal_id)s and state = 'open'""", {'journal_id':self.id}) + return (''' + SELECT + SUM((CASE WHEN move.type IN ('out_refund', 'in_refund') THEN -1 else 1 END) * line.amount_residual) AS total, + MIN(invoice_date_due) AS aggr_date + FROM account_move_line line + JOIN account_move move ON move.id = line.move_id + WHERE move.journal_id = %(journal_id)s + AND move.state = 'posted' + AND move.invoice_payment_state = 'not_paid' + AND move.type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt') + ''', {'journal_id': self.id}) @api.multi def get_journal_dashboard_datas(self): @@ -241,7 +252,20 @@ class account_journal(models.Model): query_results_drafts = self.env.cr.dictfetchall() today = fields.Date.today() - query = """SELECT residual_signed as amount_total, currency_id AS currency, type, date_invoice, company_id FROM account_invoice WHERE journal_id = %s AND date <= %s AND state = 'open';""" + query = ''' + SELECT + (CASE WHEN type IN ('out_refund', 'in_refund') THEN -1 ELSE 1 END) * amount_residual AS amount_total, + currency_id AS currency, + type, + invoice_date, + company_id + FROM account_move move + WHERE journal_id = %s + AND date <= %s + AND state = 'posted' + AND invoice_payment_state = 'not_paid' + AND type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'); + ''' self.env.cr.execute(query, (self.id, today)) late_query_results = self.env.cr.dictfetchall() curr_cache = {} @@ -282,9 +306,19 @@ class account_journal(models.Model): data as its first element, and the arguments dictionary to use to run it as its second. """ - return ("""SELECT state, residual_signed as amount_total, currency_id AS currency, type, date_invoice, company_id - FROM account_invoice - WHERE journal_id = %(journal_id)s AND state = 'open';""", {'journal_id':self.id}) + return (''' + SELECT + (CASE WHEN move.type IN ('out_refund', 'in_refund') THEN -1 ELSE 1 END) * move.amount_residual AS amount_total, + move.currency_id AS currency, + move.type, + move.invoice_date, + move.company_id + FROM account_move move + WHERE move.journal_id = %(journal_id)s + AND move.state = 'posted' + AND move.invoice_payment_state = 'not_paid' + AND move.type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'); + ''', {'journal_id': self.id}) def _get_draft_bills_query(self): """ @@ -292,18 +326,19 @@ class account_journal(models.Model): gather the bills in draft state data, and the arguments dictionary to use to run it as its second. """ - # there is no account_move_lines for draft invoices, so no relevant residual_signed value - return ("""SELECT state, - (CASE WHEN inv.type in ('out_invoice', 'in_invoice') - THEN inv.amount_total - ELSE (-1 * inv.amount_total) - END) AS amount_total, - inv.currency_id AS currency, - inv.type, - inv.date_invoice, - inv.company_id - FROM account_invoice inv - WHERE journal_id = %(journal_id)s AND state = 'draft';""", {'journal_id':self.id}) + return (''' + SELECT + (CASE WHEN move.type IN ('out_refund', 'in_refund') THEN -1 ELSE 1 END) * move.amount_total AS amount_total, + move.currency_id AS currency, + move.type, + move.invoice_date, + move.company_id + FROM account_move move + WHERE move.journal_id = %(journal_id)s + AND move.state = 'draft' + AND move.invoice_payment_state = 'not_paid' + AND move.type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'); + ''', {'journal_id': self.id}) def _count_results_and_sum_amounts(self, results_dict, target_currency, curr_cache=None): """ Loops on a query result to count the total number of invoices and sum @@ -320,7 +355,7 @@ class account_journal(models.Model): cur = self.env['res.currency'].browse(result.get('currency')) company = self.env['res.company'].browse(result.get('company_id')) or self.env.company rslt_count += 1 - date = result.get('date_invoice') or fields.Date.today() + date = result.get('invoice_date') or fields.Date.today() amount = result.get('amount_total', 0) or 0 if cur != target_currency: @@ -336,27 +371,20 @@ class account_journal(models.Model): @api.multi def action_create_new(self): ctx = self._context.copy() - model = 'account.invoice' + ctx['default_journal_id'] = self.id if self.type == 'sale': - ctx.update({'journal_type': self.type, 'default_type': 'out_invoice', 'type': 'out_invoice', 'default_journal_id': self.id}) - if ctx.get('refund'): - ctx.update({'default_type':'out_refund', 'type':'out_refund'}) - view_id = self.env.ref('account.invoice_form').id + ctx['default_type'] = 'out_refund' if ctx.get('refund') else 'out_invoice' elif self.type == 'purchase': - ctx.update({'journal_type': self.type, 'default_type': 'in_invoice', 'type': 'in_invoice', 'default_journal_id': self.id}) - if ctx.get('refund'): - ctx.update({'default_type': 'in_refund', 'type': 'in_refund'}) - view_id = self.env.ref('account.invoice_supplier_form').id + ctx['default_type'] = 'in_refund' if ctx.get('refund') else 'in_invoice' else: - ctx.update({'default_journal_id': self.id, 'view_no_maturity': True}) - view_id = self.env.ref('account.view_move_form').id - model = 'account.move' + ctx['default_type'] = 'entry' + ctx['view_no_maturity'] = True return { 'name': _('Create invoice/bill'), 'type': 'ir.actions.act_window', 'view_mode': 'form', - 'res_model': model, - 'view_id': view_id, + 'res_model': 'account.move', + 'view_id': self.env.ref('account.view_move_form').id, 'context': ctx, } @@ -400,7 +428,7 @@ class account_journal(models.Model): self.ensure_one() ids = self.to_check_ids().ids action_context = {'show_mode_selector': False, 'company_ids': self.mapped('company_id').ids} - action_context.update({'edition_mode': True}) + action_context.update({'suspense_moves_mode': True}) action_context.update({'statement_line_ids': ids}) return { 'type': 'ir.actions.client', @@ -410,7 +438,7 @@ class account_journal(models.Model): def to_check_ids(self): self.ensure_one() - domain = self.env['account.move.line']._get_domain_for_edition_mode() + domain = self.env['account.move.line']._get_suspense_moves_domain() domain.append(('journal_id', '=', self.id)) statement_line_ids = self.env['account.move.line'].search(domain).mapped('statement_line_id') return statement_line_ids @@ -418,60 +446,42 @@ class account_journal(models.Model): @api.multi def open_action(self): """return action based on type for related journals""" - action_name = self._context.get('action_name', False) + action_name = self._context.get('action_name') + + # Find action based on journal. if not action_name: if self.type == 'bank': action_name = 'action_bank_statement_tree' elif self.type == 'cash': action_name = 'action_view_bank_statement_tree' elif self.type == 'sale': - action_name = 'action_invoice_tree1' - use_domain = expression.AND( - [self.env.context.get('use_domain', []), [('journal_id', '=', self.id)]] - ) - self = self.with_context(use_domain=use_domain) + action_name = 'action_move_out_invoice_type' elif self.type == 'purchase': - action_name = 'action_vendor_bill_template' - use_domain = expression.AND( - [self.env.context.get('use_domain', []), [('journal_id', '=', self.id)]] - ) - self = self.with_context(use_domain=use_domain) + action_name = 'action_move_in_invoice_type' else: action_name = 'action_move_journal_line' - _journal_invoice_type_map = { - ('sale', None): 'out_invoice', - ('purchase', None): 'in_invoice', - ('sale', 'refund'): 'out_refund', - ('purchase', 'refund'): 'in_refund', - ('bank', None): 'bank', - ('cash', None): 'cash', - ('general', None): 'general', - } - invoice_type = _journal_invoice_type_map[(self.type, self._context.get('invoice_type'))] + # Set 'account.' prefix if missing. + if '.' not in action_name: + action_name = 'account.%s' % action_name - ctx = self._context.copy() - ctx.pop('group_by', None) - ctx.update({ - 'journal_type': self.type, + action = self.env.ref(action_name).read()[0] + context = self._context.copy() + if 'context' in action and type(action['context']) == str: + context.update(ast.literal_eval(action['context'])) + else: + context.update(action.get('context', {})) + action['context'] = context + action['context'].update({ 'default_journal_id': self.id, - 'default_type': invoice_type, - 'type': invoice_type, 'search_default_journal_id': self.id, }) - [action] = self.env.ref('account.%s' % action_name).read() - action['context'] = ctx - action['domain'] = self._context.get('use_domain', []) - account_invoice_filter = self.env.ref('account.view_account_invoice_filter', False) - if action_name in ['action_invoice_tree1', 'action_vendor_bill_template']: - action['search_view_id'] = account_invoice_filter and account_invoice_filter.id or False - if action_name in ['action_bank_statement_tree', 'action_view_bank_statement_tree']: - action['views'] = False - action['view_id'] = False - if self.type == 'purchase': - new_help = self.env['account.invoice'].with_context(ctx).complete_empty_list_help() - action.update({'help': (action.get('help') or '') + new_help}) + if self.type == 'sale': + action['domain'] = [('type', 'in', ('out_invoice', 'out_refund', 'out_receipt'))] + elif self.type == 'purchase': + action['domain'] = [('type', 'in', ('in_invoice', 'in_refund', 'in_receipt'))] + return action @api.multi diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index b77793a6b3e..040f2bbeceb 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -1,354 +1,1903 @@ # -*- coding: utf-8 -*- -import time -from datetime import date -from collections import OrderedDict from odoo import api, fields, models, _ -from odoo.osv import expression from odoo.exceptions import RedirectWarning, UserError, ValidationError +from odoo.tools import float_is_zero, float_compare, safe_eval, date_utils from odoo.tools.misc import formatLang, format_date -from odoo.tools import float_is_zero, float_compare -from odoo.tools.safe_eval import safe_eval from odoo.addons import decimal_precision as dp -from lxml import etree -#---------------------------------------------------------- -# Entries -#---------------------------------------------------------- +from collections import OrderedDict +from datetime import date +from itertools import groupby +from stdnum.iso7064 import mod_97_10 +from itertools import zip_longest + +import json +import re +import logging + +_logger = logging.getLogger(__name__) + class AccountMove(models.Model): _name = "account.move" + _inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin'] _description = "Journal Entries" _order = 'date desc, name desc, id desc' - _inherit = ['mail.thread', 'mail.activity.mixin'] @api.model - def default_get(self, fields): - rec = super(AccountMove, self).default_get(fields) - if not rec.get('journal_id'): - rec.update({'journal_id': self.env['account.journal'].search([('type', '=', 'general'), ('company_id', '=', self.env.company.id)], limit=1).id}) - return rec + def _get_default_journal(self): + ''' Get the default journal. + It could either be passed through the context using the 'default_journal_id' key containing its id, + either be determined by the default type. + ''' + move_type = self._context.get('default_type', 'entry') + journal_type = 'general' + if move_type in self.get_sale_types(include_receipts=True): + journal_type = 'sale' + elif move_type in self.get_purchase_types(include_receipts=True): + journal_type = 'purchase' + + if self._context.get('default_journal_id'): + journal = self.env['account.journal'].browse(self._context['default_journal_id']) + + if move_type != 'entry' and journal.type != journal_type: + raise UserError(_("Cannot create an invoice of type %s with a journal having %s as type.") % (move_type, journal_type)) + else: + company_id = self._context.get('default_company_id', self.env.company.id) + domain = [('company_id', '=', company_id), ('type', '=', journal_type)] + + journal = None + if self._context.get('default_currency_id'): + currency_domain = domain + [('currency_id', '=', self._context['default_currency_id'])] + journal = self.env['account.journal'].search(currency_domain, limit=1) + + if not journal: + journal = self.env['account.journal'].search(domain, limit=1) + + if not journal: + error_msg = _('Please define an accounting miscellaneous journal in your company') + if journal_type == 'sale': + error_msg = _('Please define an accounting sale journal in your company') + elif journal_type == 'purchase': + error_msg = _('Please define an accounting purchase journal in your company') + raise UserError(error_msg) + return journal + + @api.model + def _get_default_currency(self): + ''' Get the default currency from either the journal, either the default journal's company. ''' + journal = self._get_default_journal() + return journal.currency_id or journal.company_id.currency_id + + @api.model + def _get_default_invoice_incoterm(self): + ''' Get the default incoterm for invoice. ''' + return self.env.company.incoterm_id + + # ==== Business fields ==== + name = fields.Char(string='Number', required=True, readonly=True, copy=False, default='/') + date = fields.Date(string='Date', required=True, index=True, readonly=True, + states={'draft': [('readonly', False)]}, + default=fields.Date.context_today) + ref = fields.Char(string='Reference', copy=False, readonly=True, + states={'draft': [('readonly', False)]}) + narration = fields.Text(string='Internal Note') + state = fields.Selection(selection=[ + ('draft', 'Unposted'), + ('posted', 'Posted'), + ('cancel', 'Cancelled') + ], string='Status', required=True, readonly=True, copy=False, tracking=True, + default='draft') + type = fields.Selection(selection=[ + ('entry', 'Journal Entry'), + ('out_invoice', 'Customer Invoice'), + ('out_refund', 'Customer Credit Note'), + ('in_invoice', 'Vendor Bill'), + ('in_refund', 'Vendor Credit Note'), + ('out_receipt', 'Sales Receipt'), + ('in_receipt', 'Purchase Receipt'), + ], String='Type', required=True, store=True, index=True, readonly=True, tracking=True, + default="entry") + to_check = fields.Boolean(string='To Check', default=False, + help='If this checkbox is ticked, it means that the user was not sure of all the related informations at the time of the creation of the move and that the move needs to be checked again.') + journal_id = fields.Many2one('account.journal', string='Journal', required=True, readonly=True, + states={'draft': [('readonly', False)]}, + domain=lambda self: [('company_id', '=', self.env.company.id)], + default=_get_default_journal) + company_id = fields.Many2one(string='Company', store=True, readonly=True, + related='journal_id.company_id') + company_currency_id = fields.Many2one(string='Company Currency', readonly=True, + related='journal_id.company_id.currency_id') + currency_id = fields.Many2one('res.currency', store=True, readonly=True, tracking=True, required=True, + states={'draft': [('readonly', False)]}, + string='Currency', + default=_get_default_currency) + line_ids = fields.One2many('account.move.line', 'move_id', string='Journal Items', copy=True, readonly=True, + states={'draft': [('readonly', False)]}) + partner_id = fields.Many2one('res.partner', readonly=True, tracking=True, + states={'draft': [('readonly', False)]}, + string='Customer/Vendor') + commercial_partner_id = fields.Many2one('res.partner', string='Commercial Entity', store=True, readonly=True, + compute='_compute_commercial_partner_id') + + # === Amount fields === + amount_untaxed = fields.Monetary(string='Untaxed Amount', store=True, readonly=True, tracking=True, + compute='_compute_amount') + amount_tax = fields.Monetary(string='Tax', store=True, readonly=True, + compute='_compute_amount') + amount_total = fields.Monetary(string='Total', store=True, readonly=True, + compute='_compute_amount', + inverse='_inverse_amount_total') + amount_residual = fields.Monetary(string='Amount Due', store=True, + compute='_compute_amount') + amount_untaxed_signed = fields.Monetary(string='Untaxed Amount Signed', store=True, readonly=True, + compute='_compute_amount') + amount_tax_signed = fields.Monetary(string='Tax Signed', store=True, readonly=True, + compute='_compute_amount') + amount_total_signed = fields.Monetary(string='Total Signed', store=True, readonly=True, + compute='_compute_amount') + amount_residual_signed = fields.Monetary(string='Amount Due Signed', store=True, + compute='_compute_amount') + amount_by_group = fields.Binary(string="Tax amount by group", + compute='_compute_invoice_taxes_by_group', + help="Technical field used by web_studio to allow an easy edition of the invoice report by drag/drop of the field. Return type: [(name, amount, base, formated amount, formated base)]") + + # ==== Cash basis feature fields ==== + tax_cash_basis_rec_id = fields.Many2one( + 'account.partial.reconcile', + string='Tax Cash Basis Entry of', + help="Technical field used to keep track of the tax cash basis reconciliation. " + "This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.") + + # ==== Auto-post feature fields ==== + auto_post = fields.Boolean(string='Post Automatically', default=False, + help='If this checkbox is ticked, this entry will be automatically posted at its date.') + + # ==== Reverse feature fields ==== + reversed_entry_id = fields.Many2one('account.move', string="Reverse entry", readonly=True, copy=False) + + # ========================================================= + # Invoice related fields + # ========================================================= + + # ==== Business fields ==== + fiscal_position_id = fields.Many2one('account.fiscal.position', string='Fiscal Position', readonly=True, + states={'draft': [('readonly', False)]}, + help="Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. " + "The default value comes from the customer.") + invoice_user_id = fields.Many2one('res.users', readonly=True, copy=False, tracking=True, + states={'draft': [('readonly', False)]}, + string='Salesperson', + default=lambda self: self.env.user) + invoice_payment_state = fields.Selection(selection=[ + ('not_paid', 'Not Paid'), + ('in_payment', 'In Payment'), + ('paid', 'paid') + ], string='Payment Status', store=True, readonly=True, copy=False, tracking=True, + compute='_compute_amount') + invoice_date = fields.Date(string='Invoice/Bill Date', readonly=True, index=True, copy=False, + states={'draft': [('readonly', False)]}, + help="Keep empty to use the current date") + invoice_date_due = fields.Date(string='Due Date', readonly=True, index=True, copy=False, + states={'draft': [('readonly', False)]}, + help="If you use payment terms, the due date will be computed automatically at the generation " + "of accounting entries. The Payment terms may compute several due dates, for example 50% " + "now and 50% in one month, but if you want to force a due date, make sure that the payment " + "term is not set on the invoice. If you keep the Payment terms and the due date empty, it " + "means direct payment.") + invoice_payment_ref = fields.Char(string='Payment Reference', index=True, copy=False, readonly=True, + states={'draft': [('readonly', False)]}, + help="The payment reference to set on journal items.") + invoice_sent = fields.Boolean(readonly=True, default=False, copy=False, + help="It indicates that the invoice has been sent.") + invoice_origin = fields.Char(string='Origin', readonly=True, tracking=True, + help="The document(s) that generated the invoice.") + invoice_payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms', + readonly=True, states={'draft': [('readonly', False)]}, + help="If you use payment terms, the due date will be computed automatically at the generation " + "of accounting entries. If you keep the payment terms and the due date empty, it means direct payment. " + "The payment terms may compute several due dates, for example 50% now, 50% in one month.") + # /!\ invoice_line_ids is just a subset of line_ids. + invoice_line_ids = fields.One2many('account.move.line', 'move_id', string='Invoice lines', + copy=False, readonly=True, + domain=[('exclude_from_invoice_tab', '=', False)], + states={'draft': [('readonly', False)]}) + invoice_partner_bank_id = fields.Many2one('res.partner.bank', string='Bank Account', + help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.', + readonly=True, states={'draft': [('readonly', False)]}) + invoice_incoterm_id = fields.Many2one('account.incoterms', string='Incoterm', + default=_get_default_invoice_incoterm, + help='International Commercial Terms are a series of predefined commercial terms used in international transactions.') + + # ==== Payment widget fields ==== + invoice_outstanding_credits_debits_widget = fields.Text(groups="account.group_account_invoice", + compute='_compute_payments_widget_to_reconcile_info') + invoice_payments_widget = fields.Text(groups="account.group_account_invoice", + compute='_compute_payments_widget_reconciled_info') + invoice_has_outstanding = fields.Boolean(groups="account.group_account_invoice", + compute='_compute_payments_widget_to_reconcile_info') + + # ==== Vendor bill fields ==== + invoice_vendor_bill_id = fields.Many2one('account.move', store=False, + string='Vendor Bill', + help="Auto-complete from a past bill.") + invoice_source_email = fields.Char(string='Source Email', tracking=True) + invoice_vendor_display_name = fields.Char(compute='_compute_invoice_vendor_display_info', store=True) + invoice_vendor_icon = fields.Char(compute='_compute_invoice_vendor_display_info', store=False) + + # ==== Cash rounding fields ==== + invoice_cash_rounding_id = fields.Many2one('account.cash.rounding', string='Cash Rounding Method', + readonly=True, states={'draft': [('readonly', False)]}, + help='Defines the smallest coinage of the currency that can be used to pay by cash.') + + # ==== Fields to set the sequence, on the first invoice of the journal ==== + invoice_sequence_number_next = fields.Char(string='Next Number', + compute='_compute_invoice_sequence_number_next', + inverse='_inverse_invoice_sequence_number_next') + invoice_sequence_number_next_prefix = fields.Char(string='Next Number Prefix', + compute="_compute_invoice_sequence_number_next") + + # ==== Display purpose fields ==== + invoice_filter_type_domain = fields.Char(compute='_compute_invoice_filter_type_domain', + help="Technical field used to have a dynamic domain on journal / taxes in the form view.") + bank_partner_id = fields.Many2one('res.partner', help='Technical field to get the domain on the bank', compute='_compute_bank_partner_id') + invoice_has_matching_supsense_amount = fields.Boolean(compute='_compute_has_matching_suspense_amount', + groups='account.group_account_invoice', + help="Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.") + + # ------------------------------------------------------------------------- + # ONCHANGE METHODS + # ------------------------------------------------------------------------- + + @api.onchange('invoice_date') + def _onchange_invoice_date(self): + if self.invoice_date: + self.invoice_date_due = self.date = self.invoice_date + self._onchange_currency() + + @api.onchange('invoice_date_due') + def _onchange_invoice_date_due(self): + self._recompute_dynamic_lines() + + @api.onchange('journal_id') + def _onchange_journal(self): + if self.journal_id and self.journal_id.currency_id: + new_currency = self.journal_id.currency_id + if new_currency != self.currency_id: + self.currency_id = new_currency + self._onchange_currency() + + @api.onchange('partner_id') + def _onchange_partner_id(self): + warning = {} + if self.partner_id: + rec_account = self.partner_id.property_account_receivable_id + pay_account = self.partner_id.property_account_payable_id + if not rec_account and not pay_account: + action = self.env.ref('account.action_account_config') + msg = _('Cannot find a chart of accounts for this company, You should configure it. \nPlease go to Account Configuration.') + raise RedirectWarning(msg, action.id, _('Go to the configuration panel')) + p = self.partner_id + if p.invoice_warn == 'no-message' and p.parent_id: + p = p.parent_id + if p.invoice_warn and p.invoice_warn != 'no-message': + # Block if partner only has warning but parent company is blocked + if p.invoice_warn != 'block' and p.parent_id and p.parent_id.invoice_warn == 'block': + p = p.parent_id + warning = { + 'title': _("Warning for %s") % p.name, + 'message': p.invoice_warn_msg + } + if p.invoice_warn == 'block': + self.partner_id = False + return {'warning': warning} + for line in self.line_ids: + line.partner_id = self.partner_id.commercial_partner_id + if self.is_sale_document(include_receipts=True): + self.invoice_payment_term_id = self.partner_id.property_payment_term_id + elif self.is_purchase_document(include_receipts=True): + self.invoice_payment_term_id = self.partner_id.property_supplier_payment_term_id + + self._compute_bank_partner_id() + self.invoice_partner_bank_id = self.bank_partner_id.bank_ids and self.bank_partner_id.bank_ids[0] + + # Find the new fiscal position. + delivery_partner_id = self._get_invoice_delivery_partner_id() + new_fiscal_position_id = self.env['account.fiscal.position'].get_fiscal_position( + self.partner_id.id, delivery_id=delivery_partner_id) + self.fiscal_position_id = self.env['account.fiscal.position'].browse(new_fiscal_position_id) + self._recompute_dynamic_lines() + if warning: + return {'warning': warning} + + @api.onchange('date', 'currency_id') + def _onchange_currency(self): + company_currency = self.company_id.currency_id + has_foreign_currency = self.currency_id and self.currency_id != company_currency + + for line in self.line_ids: + new_currency = has_foreign_currency and self.currency_id + line.currency_id = new_currency + line._onchange_currency() + self._recompute_dynamic_lines() + + @api.onchange('invoice_payment_ref') + def _onchange_invoice_payment_ref(self): + for line in self.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')): + line.name = self.invoice_payment_ref + + @api.onchange('invoice_vendor_bill_id') + def _onchange_invoice_vendor_bill(self): + if self.invoice_vendor_bill_id: + # Copy invoice lines. + for line in self.invoice_vendor_bill_id.invoice_line_ids: + copied_vals = line.copy_data()[0] + copied_vals['move_id'] = self.id + new_line = self.env['account.move.line'].new(copied_vals) + new_line.recompute_tax_line = True + + # Copy payment terms. + self.invoice_payment_term_id = self.invoice_vendor_bill_id.invoice_payment_term_id + + # Copy currency. + if self.currency_id != self.invoice_vendor_bill_id.currency_id: + self.currency_id = self.invoice_vendor_bill_id.currency_id + + # Reset + self.invoice_vendor_bill_id = False + self._recompute_dynamic_lines() + + @api.onchange('type') + def _onchange_type(self): + ''' Onchange made to filter the partners depending of the type. ''' + if self.is_sale_document(include_receipts=True): + if self.env['ir.config_parameter'].sudo().get_param('account.use_invoice_terms'): + self.narration = self.company_id.invoice_terms or self.env.company.invoice_terms + return {'domain': {'partner_id': [('customer', '=', True)]}} + elif self.is_purchase_document(include_receipts=True): + return {'domain': {'partner_id': [('supplier', '=', True)]}} + + @api.onchange('invoice_line_ids') + def _onchange_invoice_line_ids(self): + current_invoice_lines = self.line_ids.filtered(lambda line: not line.exclude_from_invoice_tab) + others_lines = self.line_ids - current_invoice_lines + if others_lines and current_invoice_lines - self.invoice_line_ids: + others_lines[0].recompute_tax_line = True + self.line_ids = others_lines + self.invoice_line_ids + self._onchange_recompute_dynamic_lines() + + @api.onchange('line_ids', 'invoice_payment_term_id', 'invoice_date_due', 'invoice_cash_rounding_id', 'invoice_vendor_bill_id') + def _onchange_recompute_dynamic_lines(self): + self._recompute_dynamic_lines() + + @api.model + def _get_tax_grouping_key_from_tax_line(self, tax_line): + ''' Create the dictionary based on a tax line that will be used as key to group taxes together. + /!\ Must be consistent with '_get_tax_grouping_key_from_base_line'. + :param tax_line: An account.move.line being a tax line (with 'tax_repartition_line_id' set then). + :return: A dictionary containing all fields on which the tax will be grouped. + ''' + return { + 'tax_repartition_line_id': tax_line.tax_repartition_line_id.id, + 'account_id': tax_line.account_id.id, + 'currency_id': tax_line.currency_id.id, + 'analytic_tag_ids': [(6, 0, tax_line.tax_line_id.analytic and tax_line.analytic_tag_ids.ids or [])], + 'analytic_account_id': tax_line.tax_line_id.analytic and tax_line.analytic_account_id.id, + 'tax_ids': [(6, 0, tax_line.tax_ids.ids)], + 'tag_ids': [(6, 0, tax_line.tag_ids.ids)], + } + + @api.model + def _get_tax_grouping_key_from_base_line(self, base_line, tax_vals): + ''' Create the dictionary based on a base line that will be used as key to group taxes together. + /!\ Must be consistent with '_get_tax_grouping_key_from_tax_line'. + :param base_line: An account.move.line being a base line (that could contains something in 'tax_ids'). + :param tax_vals: An element of compute_all(...)['taxes']. + :return: A dictionary containing all fields on which the tax will be grouped. + ''' + tax_repartition_line = self.env['account.tax.repartition.line'].browse(tax_vals['tax_repartition_line_id']) + account = base_line._get_default_tax_account(tax_repartition_line) or base_line.account_id + return { + 'tax_repartition_line_id': tax_vals['tax_repartition_line_id'], + 'account_id': account.id, + 'currency_id': base_line.currency_id.id, + 'analytic_tag_ids': [(6, 0, base_line.analytic_tag_ids.ids)], + 'analytic_account_id': base_line.analytic_account_id.id, + 'tax_ids': [(6, 0, tax_vals['tax_ids'])], + 'tag_ids': [(6, 0, tax_vals['tag_ids'])], + } @api.multi - @api.depends('name', 'state') - def name_get(self): - result = [] - for move in self: - name = move.name - if self.env.context.get('name_groupby'): - name = "**{date}**, {name} {partner}".format(date=format_date(self.env, move.date), name=move.name, partner=move.partner_id.name or "") - if move.state == 'draft': - name = '* ' + str(move.id) - result.append((move.id, name)) - return result + def _recompute_tax_lines(self): + ''' Compute the dynamic tax lines of the journal entry. + + :param lines_map: The line_ids dispatched by type containing: + * base_lines: The lines having a tax_ids set. + * tax_lines: The lines having a tax_line_id set. + * terms_lines: The lines generated by the payment terms of the invoice. + * rounding_lines: The cash rounding lines of the invoice. + ''' + self.ensure_one() + in_draft_mode = self != self._origin + + def _serialize_tax_grouping_key(grouping_dict): + ''' Serialize the dictionary values to be used in the taxes_map. + :param grouping_dict: The values returned by '_get_tax_grouping_key_from_tax_line' or '_get_tax_grouping_key_from_base_line'. + :return: A string representing the values. + ''' + return '-'.join(str(v) for v in grouping_dict.values()) + + def _compute_base_line_taxes(base_line): + ''' Compute taxes amounts both in company currency / foreign currency as the ratio between + amount_currency & balance could not be the same as the expected currency rate. + The 'amount_currency' value will be set on compute_all(...)['taxes'] in multi-currency. + :param base_line: The account.move.line owning the taxes. + :return: The result of the compute_all method. + ''' + balance_taxes_res = base_line.tax_ids._origin.compute_all( + base_line.balance, + currency=base_line.company_currency_id, + partner=base_line.partner_id, + is_refund=self.type in ('out_refund', 'in_refund'), + handle_price_include=False, + ) + + if base_line.currency_id: + # Multi-currencies mode: Taxes are computed both in company's currency / foreign currency. + amount_currency_taxes_res = base_line.tax_ids._origin.compute_all( + base_line.amount_currency, + currency=base_line.currency_id, + partner=base_line.partner_id, + is_refund=self.type in ('out_refund', 'in_refund'), + handle_price_include=False, + ) + for b_tax_res, ac_tax_res in zip(balance_taxes_res['taxes'], amount_currency_taxes_res['taxes']): + b_tax_res['amount_currency'] = ac_tax_res['amount'] + return balance_taxes_res + + taxes_map = {} + + # ==== Add tax lines ==== + for line in self.line_ids.filtered('tax_repartition_line_id'): + grouping_dict = self._get_tax_grouping_key_from_tax_line(line) + grouping_key = _serialize_tax_grouping_key(grouping_dict) + taxes_map[grouping_key] = { + 'tax_line': line, + 'balance': 0.0, + 'amount_currency': 0.0, + 'tax_base_amount': 0.0, + 'grouping_dict': False, + } + + # ==== Mount base lines ==== + for line in self.line_ids.filtered(lambda line: not line.exclude_from_invoice_tab): + # Don't call compute_all if there is no tax. + if not line.tax_ids: + line.tag_ids = [(5, 0, 0)] + continue + + compute_all_vals = _compute_base_line_taxes(line) + + # Assign tags on base line + line.tag_ids = compute_all_vals['base_tags'] + + tax_exigible = True + for tax_vals in compute_all_vals['taxes']: + grouping_dict = self._get_tax_grouping_key_from_base_line(line, tax_vals) + grouping_key = _serialize_tax_grouping_key(grouping_dict) + + tax_repartition_line = self.env['account.tax.repartition.line'].browse(tax_vals['tax_repartition_line_id']) + tax = tax_repartition_line.invoice_tax_id or tax_repartition_line.refund_tax_id + + if tax.tax_exigibility == 'on_payment': + tax_exigible = False + + taxes_map_entry = taxes_map.setdefault(grouping_key, { + 'tax_line': None, + 'balance': 0.0, + 'amount_currency': 0.0, + 'tax_base_amount': 0.0, + 'grouping_dict': False, + }) + taxes_map_entry['balance'] += tax_vals['amount'] + taxes_map_entry['amount_currency'] += tax_vals.get('amount_currency', 0.0) + taxes_map_entry['tax_base_amount'] += tax_vals['base'] + taxes_map_entry['grouping_dict'] = grouping_dict + line.tax_exigible = tax_exigible + + # ==== Process taxes_map ==== + for taxes_map_entry in taxes_map.values(): + # Don't create tax lines with zero balance. + if self.currency_id.is_zero(taxes_map_entry['balance']) and self.currency_id.is_zero(taxes_map_entry['amount_currency']): + taxes_map_entry['grouping_dict'] = False + + tax_line = taxes_map_entry['tax_line'] + tax_base_amount = -taxes_map_entry['tax_base_amount'] if self.is_inbound() else taxes_map_entry['tax_base_amount'] + + if not tax_line and not taxes_map_entry['grouping_dict']: + continue + elif tax_line and not taxes_map_entry['grouping_dict']: + # The tax line is no longer used, drop it. + self.line_ids -= tax_line + elif tax_line: + tax_line.update({ + 'amount_currency': taxes_map_entry['amount_currency'], + 'debit': taxes_map_entry['balance'] > 0.0 and taxes_map_entry['balance'] or 0.0, + 'credit': taxes_map_entry['balance'] < 0.0 and -taxes_map_entry['balance'] or 0.0, + 'tax_base_amount': tax_base_amount, + }) + else: + create_method = in_draft_mode and self.env['account.move.line'].new or self.env['account.move.line'].create + tax_repartition_line_id = taxes_map_entry['grouping_dict']['tax_repartition_line_id'] + tax_repartition_line = self.env['account.tax.repartition.line'].browse(tax_repartition_line_id) + tax = tax_repartition_line.invoice_tax_id or tax_repartition_line.refund_tax_id + tax_line = create_method({ + 'name': tax.name, + 'move_id': self.id, + 'partner_id': line.partner_id.id, + 'company_id': line.company_id.id, + 'company_currency_id': line.company_currency_id.id, + 'quantity': 1.0, + 'date_maturity': False, + 'amount_currency': taxes_map_entry['amount_currency'], + 'debit': taxes_map_entry['balance'] > 0.0 and taxes_map_entry['balance'] or 0.0, + 'credit': taxes_map_entry['balance'] < 0.0 and -taxes_map_entry['balance'] or 0.0, + 'tax_base_amount': tax_base_amount, + 'exclude_from_invoice_tab': True, + 'tax_exigible': tax.tax_exigibility == 'on_invoice', + **taxes_map_entry['grouping_dict'], + }) + + if in_draft_mode: + tax_line._onchange_amount_currency() + tax_line._onchange_balance() @api.multi - @api.depends('line_ids.debit', 'line_ids.credit', 'line_ids.amount_currency', 'line_ids.currency_id') - def _amount_compute(self): - for move in self: - total = 0.0 - total_currency = 0.0 - currency_id = move.line_ids and move.line_ids[0].currency_id.id or False - for line in move.line_ids.filtered(lambda l: l.debit): - total += line.debit - if currency_id and line.currency_id.id == currency_id: - total_currency += line.amount_currency - elif currency_id: - currency_id = False - - if currency_id and total_currency: - move.amount = total_currency - move.currency_id = currency_id + def _recompute_cash_rounding_lines(self): + ''' Handle the cash rounding feature on invoices. + + In some countries, the smallest coins do not exist. For example, in Switzerland, there is no coin for 0.01 CHF. + For this reason, if invoices are paid in cash, you have to round their total amount to the smallest coin that + exists in the currency. For the CHF, the smallest coin is 0.05 CHF. + + There are two strategies for the rounding: + + 1) Add a line on the invoice for the rounding: The cash rounding line is added as a new invoice line. + 2) Add the rounding in the biggest tax amount: The cash rounding line is added as a new tax line on the tax + having the biggest balance. + ''' + self.ensure_one() + in_draft_mode = self != self._origin + + def _compute_cash_rounding(self, total_balance, total_amount_currency): + ''' Compute the amount differences due to the cash rounding. + :param self: The current account.move record. + :param total_balance: The invoice's total in company's currency. + :param total_amount_currency: The invoice's total in invoice's currency. + :return: The amount differences both in company's currency & invoice's currency. + ''' + if self.currency_id == self.company_id.currency_id: + diff_balance = self.invoice_cash_rounding_id.compute_difference(self.currency_id, total_balance) + diff_amount_currency = 0.0 + else: + diff_amount_currency = self.invoice_cash_rounding_id.compute_difference(self.currency_id, total_amount_currency) + diff_balance = self.currency_id._convert(diff_amount_currency, self.company_id.currency_id, self.company_id, self.date) + return diff_balance, diff_amount_currency + + def _apply_cash_rounding(self, diff_balance, diff_amount_currency, cash_rounding_line): + ''' Apply the cash rounding. + :param self: The current account.move record. + :param diff_balance: The computed balance to set on the new rounding line. + :param diff_amount_currency: The computed amount in invoice's currency to set on the new rounding line. + :param cash_rounding_line: The existing cash rounding line. + :return: The newly created rounding line. + ''' + rounding_line_vals = { + 'debit': diff_balance > 0.0 and diff_balance or 0.0, + 'credit': diff_balance < 0.0 and -diff_balance or 0.0, + 'quantity': 1.0, + 'amount_currency': diff_amount_currency, + 'partner_id': self.partner_id.id, + 'move_id': self.id, + 'currency_id': self.currency_id if self.currency_id != self.company_id.currency_id else False, + 'company_id': self.company_id.id, + 'company_currency_id': self.company_id.currency_id.id, + 'is_rounding_line': True, + 'sequence': 9999, + } + + if self.invoice_cash_rounding_id.strategy == 'biggest_tax': + biggest_tax_line = None + for tax_line in self.line_ids.filtered('tax_repartition_line_id'): + if not biggest_tax_line or tax_line.price_subtotal > biggest_tax_line.price_subtotal: + biggest_tax_line = tax_line + + # No tax found. + if not biggest_tax_line: + return + + rounding_line_vals.update({ + 'name': _('%s (rounding)') % biggest_tax_line.name, + 'account_id': biggest_tax_line.account_id.id, + 'tax_repartition_line_id': biggest_tax_line.tax_repartition_line_id.id, + 'tax_exigible': biggest_tax_line.tax_exigible, + 'exclude_from_invoice_tab': True, + }) + + elif self.invoice_cash_rounding_id.strategy == 'add_invoice_line': + rounding_line_vals.update({ + 'name': self.invoice_cash_rounding_id.name, + 'account_id': self.invoice_cash_rounding_id.account_id.id, + }) + + # Create or update the cash rounding line. + if cash_rounding_line: + cash_rounding_line.update({ + 'amount_currency': rounding_line_vals['amount_currency'], + 'debit': rounding_line_vals['debit'], + 'credit': rounding_line_vals['credit'], + }) + else: + create_method = in_draft_mode and self.env['account.move.line'].new or self.env['account.move.line'].create + cash_rounding_line = create_method(rounding_line_vals) + + if in_draft_mode: + cash_rounding_line._onchange_amount_currency() + cash_rounding_line._onchange_balance() + + existing_cash_rounding_line = self.line_ids.filtered(lambda line: line.is_rounding_line) + + # The cash rounding has been removed. + if not self.invoice_cash_rounding_id: + self.line_ids -= existing_cash_rounding_line + return + + # The cash rounding strategy has changed. + if self.invoice_cash_rounding_id and existing_cash_rounding_line: + strategy = self.invoice_cash_rounding_id.strategy + old_strategy = 'biggest_tax' if existing_cash_rounding_line.tax_line_id else 'add_invoice_line' + if strategy != old_strategy: + self.line_ids -= existing_cash_rounding_line + existing_cash_rounding_line = self.env['account.move.line'] + + others_lines = self.line_ids.filtered(lambda line: line.account_id.user_type_id.type not in ('receivable', 'payable')) + others_lines -= existing_cash_rounding_line + total_balance = sum(others_lines.mapped('balance')) + total_amount_currency = sum(others_lines.mapped('amount_currency')) + + diff_balance, diff_amount_currency = _compute_cash_rounding(self, total_balance, total_amount_currency) + + # The invoice is already rounded. + if self.currency_id.is_zero(diff_balance) and self.currency_id.is_zero(diff_amount_currency): + self.line_ids -= existing_cash_rounding_line + return + + _apply_cash_rounding(self, diff_balance, diff_amount_currency, existing_cash_rounding_line) + + @api.multi + def _recompute_payment_terms_lines(self): + ''' Compute the dynamic payment term lines of the journal entry.''' + self.ensure_one() + in_draft_mode = self != self._origin + today = fields.Date.context_today(self) + + def _get_payment_terms_computation_date(self): + ''' Get the date from invoice that will be used to compute the payment terms. + :param self: The current account.move record. + :return: A datetime.date object. + ''' + if self.invoice_payment_term_id: + return self.invoice_date or today else: - move.currency_id = move.company_id.currency_id or self.env.user.company_id.currency_id - move.amount = total + return self.invoice_date_due or self.invoice_date or today + + def _get_payment_terms_account(self, payment_terms_lines): + ''' Get the account from invoice that will be set as receivable / payable account. + :param self: The current account.move record. + :param payment_terms_lines: The current payment terms lines. + :return: An account.account record. + ''' + if payment_terms_lines: + # Retrieve account from previous payment terms lines in order to allow the user to set a custom one. + return payment_terms_lines[0].account_id + elif self.partner_id: + # Retrieve account from partner. + if self.is_sale_document(include_receipts=True): + return self.partner_id.property_account_receivable_id + else: + return self.partner_id.property_account_payable_id + else: + # Search new account. + domain = [ + ('company_id', '=', self.company_id.id), + ('internal_type', '=', 'receivable' if self.type in ('out_invoice', 'out_refund', 'out_receipt') else 'payable'), + ] + return self.env['account.account'].search(domain, limit=1) + + def _compute_payment_terms(self, date, total_balance, total_amount_currency): + ''' Compute the payment terms. + :param self: The current account.move record. + :param date: The date computed by '_get_payment_terms_computation_date'. + :param total_balance: The invoice's total in company's currency. + :param total_amount_currency: The invoice's total in invoice's currency. + :return: A list <to_pay_company_currency, to_pay_invoice_currency, due_date>. + ''' + if self.invoice_payment_term_id: + to_compute = self.invoice_payment_term_id.compute(total_balance, date_ref=date, currency=self.currency_id) + if self.currency_id != self.company_id.currency_id: + # Multi-currencies. + to_compute_currency = self.invoice_payment_term_id.compute(total_amount_currency, date_ref=date, currency=self.currency_id) + return [(b[0], b[1], ac[1]) for b, ac in zip(to_compute, to_compute_currency)] + else: + # Single-currency. + return [(b[0], b[1], 0.0) for b in to_compute] + else: + return [(fields.Date.to_string(date), total_balance, total_amount_currency)] + + def _compute_diff_payment_terms_lines(self, existing_terms_lines, account, to_compute): + ''' Process the result of the '_compute_payment_terms' method and creates/updates corresponding invoice lines. + :param self: The current account.move record. + :param existing_terms_lines: The current payment terms lines. + :param account: The account.account record returned by '_get_payment_terms_account'. + :param to_compute: The list returned by '_compute_payment_terms'. + ''' + # As we try to update existing lines, sort them by due date. + existing_terms_lines = existing_terms_lines.sorted(lambda line: line.date_maturity or today) + existing_terms_lines_index = 0 + + # Recompute amls: update existing line or create new one for each payment term. + new_terms_lines = self.env['account.move.line'] + for date_maturity, balance, amount_currency in to_compute: + if existing_terms_lines_index < len(existing_terms_lines): + # Update existing line. + candidate = existing_terms_lines[existing_terms_lines_index] + existing_terms_lines_index += 1 + candidate.update({ + 'date_maturity': date_maturity, + 'amount_currency': -amount_currency, + 'debit': balance < 0.0 and -balance or 0.0, + 'credit': balance > 0.0 and balance or 0.0, + }) + else: + # Create new line. + create_method = in_draft_mode and self.env['account.move.line'].new or self.env['account.move.line'].create + candidate = create_method({ + 'name': self.invoice_payment_ref or '', + 'debit': balance < 0.0 and -balance or 0.0, + 'credit': balance > 0.0 and balance or 0.0, + 'quantity': 1.0, + 'amount_currency': -amount_currency, + 'date_maturity': date_maturity, + 'move_id': self.id, + 'currency_id': self.currency_id.id if self.currency_id != self.company_id.currency_id else False, + 'account_id': account.id, + 'partner_id': self.commercial_partner_id.id, + 'exclude_from_invoice_tab': True, + }) + new_terms_lines += candidate + if in_draft_mode: + candidate._onchange_amount_currency() + candidate._onchange_balance() + return new_terms_lines + + existing_terms_lines = self.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + others_lines = self.line_ids.filtered(lambda line: line.account_id.user_type_id.type not in ('receivable', 'payable')) + total_balance = sum(others_lines.mapped('balance')) + total_amount_currency = sum(others_lines.mapped('amount_currency')) + + if not others_lines: + self.line_ids -= existing_terms_lines + return + + computation_date = _get_payment_terms_computation_date(self) + account = _get_payment_terms_account(self, existing_terms_lines) + to_compute = _compute_payment_terms(self, computation_date, total_balance, total_amount_currency) + new_terms_lines = _compute_diff_payment_terms_lines(self, existing_terms_lines, account, to_compute) + + # Remove old terms lines that are no longer needed. + self.line_ids -= existing_terms_lines - new_terms_lines + + if new_terms_lines: + self.invoice_payment_ref = new_terms_lines[-1].name or '' + self.invoice_date_due = new_terms_lines[-1].date_maturity @api.multi - def _set_amount(self): + def _recompute_dynamic_lines(self, recompute_all_taxes=False): + ''' Recompute all lines that depend of others. + + For example, tax lines depends of base lines (lines having tax_ids set). This is also the case of cash rounding + lines that depend of base lines or tax lines depending the cash rounding strategy. When a payment term is set, + this method will auto-balance the move with payment term lines. + + :param recompute_all_taxes: Force the computation of taxes. If set to False, the computation will be done + or not depending of the field 'recompute_tax_line' in lines. + ''' + self.ensure_one() + + # Dispatch lines and pre-compute some aggregated values like taxes. + for line in self.line_ids: + if line.recompute_tax_line: + recompute_all_taxes = True + line.recompute_tax_line = False + + # Compute taxes. + if recompute_all_taxes: + self._recompute_tax_lines() + + if self.is_invoice(include_receipts=True): + + # Compute cash rounding. + self._recompute_cash_rounding_lines() + + # Compute payment terms. + self._recompute_payment_terms_lines() + + # Only synchronize one2many in onchange. + if self != self._origin: + self.invoice_line_ids = self.line_ids.filtered(lambda line: not line.exclude_from_invoice_tab) + + @api.multi + def onchange(self, values, field_name, field_onchange): + # OVERRIDE + # As the dynamic lines in this model are quite complex, we need to ensure some computations are done exactly + # at the beginning / at the end of the onchange mechanism. So, the onchange recursivity is disabled. + return super(AccountMove, self.with_context(recursive_onchanges=False)).onchange(values, field_name, field_onchange) + + # ------------------------------------------------------------------------- + # COMPUTE METHODS + # ------------------------------------------------------------------------- + + @api.depends('type') + def _compute_invoice_filter_type_domain(self): for move in self: - if len(move.line_ids) == 2 and move.amount != 0: - amount_in_company_currency = move.amount - if move.currency_id and move.currency_id != move.company_id.currency_id: - amount_in_company_currency = move.currency_id._convert(move.amount, move.company_id.currency_id, move.company_id, move.date) - for line in move.line_ids: - line.amount_currency = line.debit and move.amount or -move.amount - for line in move.with_context(check_move_validity=False).line_ids: - line.debit = line.debit and amount_in_company_currency or 0.0 - line.credit = line.credit and amount_in_company_currency or 0.0 - - @api.depends('line_ids.debit', 'line_ids.credit', 'line_ids.matched_debit_ids.amount', 'line_ids.matched_credit_ids.amount', 'line_ids.account_id.user_type_id.type') - def _compute_matched_percentage(self): - """Compute the percentage to apply for cash basis method. This value is relevant only for moves that - involve journal items on receivable or payable accounts. - """ + if move.is_sale_document(include_receipts=True): + move.invoice_filter_type_domain = 'sale' + elif move.is_purchase_document(include_receipts=True): + move.invoice_filter_type_domain = 'purchase' + else: + move.invoice_filter_type_domain = False + + @api.depends('partner_id') + def _compute_commercial_partner_id(self): + for move in self: + move.commercial_partner_id = move.partner_id.commercial_partner_id + + @api.depends('commercial_partner_id') + def _compute_bank_partner_id(self): + for move in self: + if move.is_outbound(): + move.bank_partner_id = move.commercial_partner_id + else: + move.bank_partner_id = move.company_id.partner_id + + @api.depends( + 'line_ids.debit', + 'line_ids.credit', + 'line_ids.currency_id', + 'line_ids.amount_currency', + 'line_ids.amount_residual', + 'line_ids.amount_residual_currency', + 'line_ids.payment_id.state') + def _compute_amount(self): + invoice_ids = [move.id for move in self if move.id and move.is_invoice(include_receipts=True)] + if invoice_ids: + self._cr.execute( + ''' + SELECT move.id + FROM account_move move + JOIN account_move_line line ON line.move_id = move.id + JOIN account_partial_reconcile part ON part.debit_move_id = line.id OR part.credit_move_id = line.id + JOIN account_move_line rec_line ON + (rec_line.id = part.credit_move_id AND line.id = part.debit_move_id) + OR + (rec_line.id = part.debit_move_id AND line.id = part.credit_move_id) + JOIN account_payment payment ON payment.id = rec_line.payment_id + JOIN account_journal journal ON journal.id = rec_line.journal_id + WHERE payment.state IN ('posted', 'sent') + AND journal.post_at_bank_rec IS TRUE + AND move.id IN %s + ''', [tuple(invoice_ids)] + ) + in_payment_set = set(res[0] for res in self._cr.fetchall()) + else: + in_payment_set = {} + for move in self: - total_amount = 0.0 - total_reconciled = 0.0 + total_untaxed = 0.0 + total_untaxed_currency = 0.0 + total_tax = 0.0 + total_tax_currency = 0.0 + total_residual = 0.0 + total_residual_currency = 0.0 + currencies = set() + for line in move.line_ids: - if line.account_id.user_type_id.type in ('receivable', 'payable'): - amount = abs(line.debit - line.credit) - total_amount += amount - precision_currency = move.currency_id or move.company_id.currency_id - if float_is_zero(total_amount, precision_rounding=precision_currency.rounding): - move.matched_percentage = 1.0 + if line.currency_id: + currencies.add(line.currency_id) + + # Untaxed amount. + if (move.is_invoice(include_receipts=True) and not line.exclude_from_invoice_tab)\ + or (move.type == 'entry' and line.debit and not line.tax_line_id): + total_untaxed += line.balance + total_untaxed_currency += line.amount_currency + + # Tax amount. + if line.tax_line_id: + total_tax += line.balance + total_tax_currency += line.amount_currency + + # Residual amount. + if move.type == 'entry' or line.account_id.user_type_id.type in ('receivable', 'payable'): + total_residual += line.amount_residual + total_residual_currency += line.amount_residual_currency + + total = total_untaxed + total_tax + total_currency = total_untaxed_currency + total_tax_currency + + if (move.type == 'entry' and total < 0.0) or move.is_inbound(): + sign = -1 else: - for line in move.line_ids: - if line.account_id.user_type_id.type in ('receivable', 'payable'): - for partial_line in (line.matched_debit_ids + line.matched_credit_ids): - total_reconciled += partial_line.amount - move.matched_percentage = total_reconciled / total_amount + sign = 1 + + move.amount_untaxed = sign * (total_untaxed_currency if len(currencies) == 1 else total_untaxed) + move.amount_tax = sign * (total_tax_currency if len(currencies) == 1 else total_tax) + move.amount_total = sign * (total_currency if len(currencies) == 1 else total) + move.amount_residual = -sign * (total_residual_currency if len(currencies) == 1 else total_residual) + move.amount_untaxed_signed = -total_untaxed + move.amount_tax_signed = -total_tax + move.amount_total_signed = -total + move.amount_residual_signed = total_residual + + currency = len(currencies) == 1 and currencies.pop() or move.company_id.currency_id + is_paid = currency and currency.is_zero(move.amount_residual) or not move.amount_residual + + # Compute 'invoice_payment_state'. + if move.state == 'posted' and is_paid: + if move.id in in_payment_set: + move.invoice_payment_state = 'in_payment' + else: + move.invoice_payment_state = 'paid' + else: + move.invoice_payment_state = 'not_paid' @api.multi - @api.depends('line_ids.reconcile_model_id') - def _compute_reconcile_model(self): + def _inverse_amount_total(self): for move in self: - move.reconcile_model_id = move.line_ids.mapped('reconcile_model_id') + if len(move.line_ids) != 2 or move.type != 'entry': + continue - @api.model - @api.depends('reconcile_model_id') - def _search_reconcile_model(self, operator, operand): - if operand: - rmi = self.search([('line_ids.reconcile_model_id', operator, operand)]) + to_write = [] + + if move.currency_id != move.company_id.currency_id: + amount_currency = abs(move.amount_total) + balance = move.currency_id._convert(amount_currency, move.currency_id, move.company_id, move.date) + else: + balance = abs(move.amount_total) + amount_currency = 0.0 + + for line in move.line_ids: + to_write.append((1, line.id, { + 'debit': line.balance > 0.0 and balance or 0.0, + 'credit': line.balance < 0.0 and balance or 0.0, + 'amount_currency': line.balance > 0.0 and amount_currency or -amount_currency, + })) + + move.write({'line_ids': to_write}) + + @api.multi + def _get_domain_matching_supsense_moves(self): + self.ensure_one() + domain = self.env['account.move.line']._get_suspense_moves_domain() + domain += ['|', ('partner_id', '=?', self.partner_id.id), ('partner_id', '=', False)] + if self.is_inbound(): + domain.append(('balance', '=', -self.amount_residual)) else: - rmi = self.search([('line_ids', operator, operand)]) - if rmi: - return [('id', 'in', rmi.ids)] - return [('id', '=', False)] + domain.append(('balance', '=', self.amount_residual)) + return domain + + def _compute_has_matching_suspense_amount(self): + for r in self: + res = False + if r.state == 'posted' and r.is_invoice() and r.invoice_payment_state == 'not_paid': + domain = r._get_domain_matching_supsense_moves() + #there are more than one but less than 5 suspense moves matching the residual amount + if (0 < self.env['account.move.line'].search_count(domain) < 5): + domain2 = [ + ('invoice_payment_state', '=', 'not_paid'), + ('state', '=', 'open'), + ('amount_residual', '=', r.amount_residual), + ('type', '=', r.type)] + #there are less than 5 other open invoices of the same type with the same residual + if self.env['account.move'].search_count(domain2) < 5: + res = True + r.invoice_has_matching_supsense_amount = res + + @api.depends('partner_id', 'invoice_source_email') + def _compute_invoice_vendor_display_info(self): + for move in self: + vendor_display_name = move.partner_id.name + move.invoice_icon = '' + if not vendor_display_name: + if move.invoice_source_email: + vendor_display_name = _('From: ') + move.invoice_source_email + move.invoice_vendor_icon = '@' + else: + vendor_display_name = ('Created by: ') + move.create_uid.name + move.invoice_vendor_icon = '#' + move.invoice_vendor_display_name = vendor_display_name + + @api.depends('state', 'journal_id', 'invoice_date') + def _compute_invoice_sequence_number_next(self): + """ computes the prefix of the number that will be assigned to the first invoice/bill/refund of a journal, in order to + let the user manually change it. + """ + # Check user group. + system_user = self.env.user._is_system() + if not system_user: + return + + # Check moves being candidates to set a custom number next. + moves = self.filtered(lambda move: move.is_invoice() and move.name == '/') + if not moves: + return + + for key, group in groupby(moves, key=lambda move: (move.journal_id, move._get_sequence())): + journal, sequence = key + domain = [('journal_id', '=', journal.id), ('state', '=', 'posted')] + if not isinstance(self.id, models.NewId): + domain.append(('id', '!=', self.id)) + if journal.type == 'sale': + domain.append(('type', 'in', ('out_invoice', 'out_refund'))) + elif journal.type == 'purchase': + domain.append(('type', 'in', ('in_invoice', 'in_refund'))) + else: + continue + if self.search_count(domain): + continue + + for move in group: + prefix, dummy = sequence._get_prefix_suffix(date=move.invoice_date or fields.Date.today(), date_range=move.invoice_date) + number_next = sequence._get_current_sequence().number_next_actual + move.invoice_sequence_number_next_prefix = prefix + move.invoice_sequence_number_next = '%%0%sd' % sequence.padding % number_next @api.multi - def _get_default_journal(self): - if self.env.context.get('default_journal_type'): - return self.env['account.journal'].search([('company_id', '=', self.env.company.id), ('type', '=', self.env.context['default_journal_type'])], limit=1).id + def _inverse_invoice_sequence_number_next(self): + ''' Set the number_next on the sequence related to the invoice/bill/refund''' + # Check user group. + if not self.env.user._is_admin(): + return + + # Set the next number in the sequence. + for move in self: + if not move.invoice_sequence_number_next: + continue + sequence = move._get_sequence() + nxt = re.sub("[^0-9]", '', move.invoice_sequence_number_next) + result = re.match("(0*)([0-9]+)", nxt) + if result and sequence: + date_sequence = sequence._get_current_sequence() + date_sequence.number_next_actual = int(result.group(2)) + + @api.multi + def _compute_payments_widget_to_reconcile_info(self): + for move in self: + move.invoice_outstanding_credits_debits_widget = json.dumps(False) + + if move.state != 'posted' or move.invoice_payment_state != 'not_paid' or not move.is_invoice(include_receipts=True): + continue + pay_term_line_ids = move.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + + domain = [('account_id', 'in', pay_term_line_ids.mapped('account_id').ids), + ('move_id.state', '=', 'posted'), + ('partner_id', '=', move.commercial_partner_id.id), + ('reconciled', '=', False), '|', ('amount_residual', '!=', 0.0), + ('amount_residual_currency', '!=', 0.0)] + + if move.is_inbound(): + domain.extend([('credit', '>', 0), ('debit', '=', 0)]) + type_payment = _('Outstanding credits') + else: + domain.extend([('credit', '=', 0), ('debit', '>', 0)]) + type_payment = _('Outstanding debits') + info = {'title': '', 'outstanding': True, 'content': [], 'move_id': move.id} + lines = self.env['account.move.line'].search(domain) + currency_id = move.currency_id + if len(lines) != 0: + for line in lines: + # get the outstanding residual value in invoice currency + if line.currency_id and line.currency_id == move.currency_id: + amount_to_show = abs(line.amount_residual_currency) + else: + currency = line.company_id.currency_id + amount_to_show = currency._convert(abs(line.amount_residual), move.currency_id, move.company_id, + line.date or fields.Date.today()) + if float_is_zero(amount_to_show, precision_rounding=move.currency_id.rounding): + continue + info['content'].append({ + 'journal_name': line.ref or line.move_id.name, + 'amount': amount_to_show, + 'currency': currency_id.symbol, + 'id': line.id, + 'position': currency_id.position, + 'digits': [69, move.currency_id.decimal_places], + }) + info['title'] = type_payment + move.invoice_outstanding_credits_debits_widget = json.dumps(info) + move.invoice_has_outstanding = True @api.multi - @api.depends('line_ids.partner_id') - def _compute_partner_id(self): + def _get_reconciled_info_JSON_values(self): + self.ensure_one() + foreign_currency = self.currency_id if self.currency_id != self.company_id.currency_id else False + + reconciled_vals = [] + pay_term_line_ids = self.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + partials = pay_term_line_ids.mapped('matched_debit_ids') + pay_term_line_ids.mapped('matched_credit_ids') + for partial in partials: + counterpart_lines = partial.debit_move_id + partial.credit_move_id + counterpart_line = counterpart_lines.filtered(lambda line: line not in self.line_ids) + + if foreign_currency and partial.currency_id == foreign_currency: + amount = partial.amount_currency + else: + amount = partial.company_currency_id._convert(partial.amount, self.currency_id, self.company_id, self.date) + + if float_is_zero(amount, precision_rounding=self.currency_id.rounding): + continue + + ref = counterpart_line.move_id.name + if counterpart_line.move_id.ref: + ref += ' (' + counterpart_line.move_id.ref + ')' + + reconciled_vals.append({ + 'name': counterpart_line.name, + 'journal_name': counterpart_line.journal_id.name, + 'amount': amount, + 'currency': self.currency_id.symbol, + 'digits': [69, self.currency_id.decimal_places], + 'position': self.currency_id.position, + 'date': counterpart_line.date, + 'payment_id': counterpart_line.id, + 'account_payment_id': counterpart_line.payment_id.id, + 'move_id': counterpart_line.move_id.id, + 'ref': ref, + }) + return reconciled_vals + + @api.depends('type', 'line_ids.amount_residual') + def _compute_payments_widget_reconciled_info(self): for move in self: - partner = move.line_ids.mapped('partner_id') - move.partner_id = partner.id if len(partner) == 1 else False - - @api.onchange('date') - def _onchange_date(self): - '''On the form view, a change on the date will trigger onchange() on account.move - but not on account.move.line even the date field is related to account.move. - Then, trigger the _onchange_amount_currency manually. + if move.state != 'posted' or not move.is_invoice(include_receipts=True): + continue + reconciled_vals = move._get_reconciled_info_JSON_values() + if reconciled_vals: + info = { + 'title': _('Less Payment'), + 'outstanding': False, + 'content': reconciled_vals, + } + move.invoice_payments_widget = json.dumps(info, default=date_utils.json_default) + else: + move.invoice_payments_widget = json.dumps(False) + + @api.depends('line_ids.price_subtotal', 'line_ids.tax_base_amount', 'line_ids.tax_line_id', 'partner_id', 'currency_id') + def _compute_invoice_taxes_by_group(self): + ''' Helper to get the taxes grouped according their account.tax.group. + This method is only used when printing the invoice. ''' - self.line_ids._onchange_amount_currency() - - name = fields.Char(string='Number', required=True, copy=False, default='/') - ref = fields.Char(string='Reference', copy=False) - date = fields.Date(required=True, states={'posted': [('readonly', True)]}, index=True, default=fields.Date.context_today) - journal_id = fields.Many2one('account.journal', string='Journal', required=True, states={'posted': [('readonly', True)]}, default=_get_default_journal) - state = fields.Selection([('draft', 'Unposted'), ('posted', 'Posted')], string='Status', - required=True, readonly=True, copy=False, default='draft', - help='All manually created new journal entries are usually in the status \'Unposted\', ' - 'but you can set the option to skip that status on the related journal. ' - 'In that case, they will behave as journal entries automatically created by the ' - 'system on document validation (invoices, bank statements...) and will be created ' - 'in \'Posted\' status.') - line_ids = fields.One2many('account.move.line', 'move_id', string='Journal Items', - states={'posted': [('readonly', True)]}, copy=True) - partner_id = fields.Many2one('res.partner', compute='_compute_partner_id', string="Partner", store=True, readonly=True) - amount = fields.Monetary(compute='_amount_compute', inverse="_set_amount", store=True) - currency_id = fields.Many2one('res.currency', compute='_amount_compute', store=True, string="Currency") - narration = fields.Text(string='Internal Note') - company_id = fields.Many2one('res.company', related='journal_id.company_id', string='Company', store=True, readonly=True) - matched_percentage = fields.Float('Percentage Matched', compute='_compute_matched_percentage', digits=0, store=True, readonly=True, help="Technical field used in cash basis method") - reconcile_model_id = fields.Many2many('account.reconcile.model', compute='_compute_reconcile_model', search='_search_reconcile_model', string="Reconciliation Model", readonly=True) - # Dummy Account field to search on account.move by account_id - dummy_account_id = fields.Many2one('account.account', related='line_ids.account_id', string='Account', store=False, readonly=True) - tax_cash_basis_rec_id = fields.Many2one( - 'account.partial.reconcile', - string='Tax Cash Basis Entry of', - help="Technical field used to keep track of the tax cash basis reconciliation. " - "This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.") - auto_post = fields.Boolean(string='Post Automatically', default=False, help='If this checkbox is ticked, this entry will be automatically posted at its date.') - reverse_entry_id = fields.Many2one('account.move', String="Reverse entry", store=True, readonly=True) - to_check = fields.Boolean(string='To Check', default=False, help='If this checkbox is ticked, it means that the user was not sure of all the related informations at the time of the creation of the move and that the move needs to be checked again.') - tax_type_domain = fields.Char(store=False, help='Technical field used to have a dynamic taxes domain on the form view.') + for move in self: + lang_env = move.with_context(lang=move.partner_id.lang).env + tax_lines = move.line_ids.filtered(lambda line: line.tax_line_id) + res = {} + for line in tax_lines: + res.setdefault(line.tax_line_id.tax_group_id, {'base': 0.0, 'amount': 0.0}) + res[line.tax_line_id.tax_group_id]['amount'] += line.price_subtotal + res[line.tax_line_id.tax_group_id]['base'] += line.tax_base_amount + res = sorted(res.items(), key=lambda l: l[0].sequence) + move.amount_by_group = [( + group.name, amounts['amount'], + amounts['base'], + formatLang(lang_env, amounts['amount'], currency_obj=move.currency_id), + formatLang(lang_env, amounts['base'], currency_obj=move.currency_id), + len(res), + ) for group, amounts in res] + + # ------------------------------------------------------------------------- + # CONSTRAINS METHODS + # ------------------------------------------------------------------------- @api.constrains('line_ids', 'journal_id') def _validate_move_modification(self): if 'posted' in self.mapped('line_ids.payment_id.state'): raise ValidationError(_("You cannot modify a journal entry linked to a posted payment.")) - @api.onchange('journal_id') - def _onchange_journal_id(self): - self.tax_type_domain = self.journal_id.type if self.journal_id.type in ('sale', 'purchase') else None + @api.constrains('name', 'journal_id') + def _check_unique_sequence_number(self): + if not self: + return + + self._cr.execute(''' + SELECT move.id + FROM account_move move + INNER JOIN account_move move2 ON + move2.name = move.name + AND move2.company_id = move.company_id + AND move2.journal_id = move.journal_id + AND move2.type = move.type + AND move2.id != move.id + WHERE move.id IN %s + AND move.state = 'posted' + AND move2.state = 'posted' + ''', [tuple(self.ids)]) + res = self._cr.fetchone() + if res: + raise ValidationError(_('Posted journal entry must have an unique sequence number per company.')) + + @api.constrains('ref') + def _check_duplicate_supplier_reference(self): + moves = self.filtered(lambda move: move.is_purchase_document() and move.ref) + if not moves: + return - @api.onchange('line_ids') - def _onchange_line_ids(self): - '''Compute additional lines corresponding to the taxes set on the line_ids. + self._cr.execute(''' + SELECT move.id + FROM account_move move + INNER JOIN account_move move2 ON + move2.ref = move.ref + AND move2.company_id = move.company_id + AND move2.commercial_partner_id = move.commercial_partner_id + AND move2.type = move.type + AND move2.id != move.id + WHERE move.id IN %s + AND move.type in ('in_invoice', 'in_refund') + AND move.ref IS NOT NULL + ''', [tuple(self.ids)]) + if self._cr.fetchone(): + raise ValidationError(_('Duplicated vendor reference detected. You probably encoded twice the same vendor bill/credit note.')) - For example, add a line with 1000 debit and 15% tax, this onchange will add a new - line with 150 debit. + @api.multi + def _check_balanced(self): + ''' Assert the move is fully balanced debit = credit. + An error is raised if it's not the case. ''' - def _str_to_list(string): - #remove heading and trailing brackets and return a list of int. This avoid calling safe_eval on untrusted field content - string = string[1:-1] - if string: - return [int(x) for x in string.split(',')] - return [] - - def _build_grouping_key(line): - #build a string containing all values used to create the tax line - return str(line.tax_ids.ids) + '-' + str(line.analytic_tag_ids.ids) + '-' + (line.analytic_account_id and str(line.analytic_account_id.id) or '') - - def _parse_grouping_key(line): - # Retrieve values computed the last time this method has been run. - if not line.tax_line_grouping_key: - return {'tax_ids': [], 'tag_ids': [], 'analytic_account_id': False} - tax_str, tags_str, analytic_account_str = line.tax_line_grouping_key.split('-') - return { - 'tax_ids': _str_to_list(tax_str), - 'tag_ids': _str_to_list(tags_str), - 'analytic_account_id': analytic_account_str and int(analytic_account_str) or False, - } + moves = self.filtered(lambda move: move.line_ids) + if not moves: + return + + # /!\ As this method is called in create / write, we can't make the assumption the computed stored fields + # are already done. Then, this query MUST NOT depend of computed stored fields (e.g. balance). + # It happens as the ORM makes the create with the 'no_recompute' statement. + self._cr.execute(''' + SELECT line.move_id + FROM account_move_line line + JOIN account_move move ON move.id = line.move_id + JOIN account_journal journal ON journal.id = move.journal_id + JOIN res_company company ON company.id = journal.company_id + JOIN res_currency currency ON currency.id = company.currency_id + WHERE line.move_id IN %s + GROUP BY line.move_id, currency.decimal_places + HAVING ROUND(SUM(debit - credit), currency.decimal_places) != 0.0; + ''', [tuple(self.ids)]) + + query_res = self._cr.fetchall() + if query_res: + ids = [res[0] for res in query_res] + raise UserError(_("Cannot create unbalanced journal entry. Ids: %s") % str(ids)) + + @api.multi + def _check_fiscalyear_lock_date(self): + for move in self: + lock_date = max(move.company_id.period_lock_date or date.min, move.company_id.fiscalyear_lock_date or date.min) + if self.user_has_groups('account.group_account_manager'): + lock_date = move.company_id.fiscalyear_lock_date + if move.date <= (lock_date or date.min): + if self.user_has_groups('account.group_account_manager'): + message = _("You cannot add/modify entries prior to and inclusive of the lock date %s") % lock_date + else: + message = _("You cannot add/modify entries prior to and inclusive of the lock date %s. Check the company settings or ask someone with the 'Adviser' role") % lock_date + raise UserError(message) + return True - def _find_existing_tax_line(line_ids, tax_repartition_line_id, analytic_tag_ids, analytic_account_id): - # tax_repartition_line_id, tag_ids and analytic_account_id are real ids - if tax.analytic: - return line_ids.filtered(lambda x: x.tax_repartition_line_id.id == tax_repartition_line_id and x.analytic_tag_ids.ids == analytic_tag_ids and x.analytic_account_id.id == analytic_account_id) - return line_ids.filtered(lambda x: x.tax_repartition_line_id.id == tax_repartition_line_id) + @api.multi + def _check_tax_lock_date(self): + if not self: + return + + self._cr.execute(''' + SELECT move.id, company.tax_lock_date + FROM account_move move + JOIN account_journal journal ON journal.id = move.journal_id + JOIN res_company company ON company.id = journal.company_id + WHERE move.id IN %s + AND move.date < company.tax_lock_date + ''', [tuple(self.ids)]) + + query_res = self._cr.fetchone() + if query_res: + raise UserError(_(''' + The operation is refused as it would impact an already issued tax statement. + Please change the journal entry date or the tax lock date set in the settings (%s) to proceed + ''' % query_res[1])) + + @api.multi + def _check_move_consistency(self): + for move in self: + if move.line_ids: + if not all([x.company_id.id == move.company_id.id for x in move.line_ids]): + raise UserError(_("Cannot create moves for different companies.")) - def _get_lines_to_sum(line_ids, tax, tag_ids, analytic_account_id): - # tax is a real record; tag_ids and analytic_account_id are real ids - if tax.analytic: - return line_ids.filtered(lambda x: tax in x.tax_ids._origin and x.analytic_tag_ids.ids == tag_ids and x.analytic_account_id.id == analytic_account_id) - return line_ids.filtered(lambda x: tax in x.tax_ids._origin) + self._check_balanced() + self._check_fiscalyear_lock_date() - # Cache the already computed tax to avoid useless recalculation (real records) - processed_taxes = self.env['account.tax'] + # ------------------------------------------------------------------------- + # LOW-LEVEL METHODS + # ------------------------------------------------------------------------- + @api.multi + def _move_autocomplete_invoice_lines_values(self): + ''' This method recomputes dynamic lines on the current journal entry that include taxes, cash rounding + and payment terms lines. + ''' self.ensure_one() - for line in self.line_ids.filtered(lambda x: x.recompute_tax_line): - # Retrieve old field values. - parsed_key = _parse_grouping_key(line) - - # Unmark the line. - line.recompute_tax_line = False - - # Manage group of taxes (new records) - group_taxes = line.tax_ids.filtered(lambda t: t.amount_type == 'group') - children_taxes = group_taxes.mapped('children_tax_ids') - if children_taxes: - line.tax_ids |= children_taxes - # Because the taxes on the line changed, we need to recompute them. - processed_taxes -= children_taxes._origin - - # Get the taxes to process (actual records) - taxes = self.env['account.tax'].browse(parsed_key['tax_ids']) - taxes |= line.tax_ids._origin - taxes |= children_taxes._origin - to_process_taxes = (taxes - processed_taxes).filtered(lambda t: t.amount_type != 'group') - processed_taxes += to_process_taxes - - # Apply tags on base line - line.tag_ids = taxes.mapped('invoice_repartition_line_ids').filtered(lambda x: x.repartition_type == 'base').mapped('tag_ids') - - # Process taxes (real records) - for tax in to_process_taxes: - lines_to_sum = _get_lines_to_sum(self.line_ids, tax, parsed_key['tag_ids'], parsed_key['analytic_account_id']) - - balance = sum([l.balance for l in lines_to_sum]) - - # Compute the tax amount one by one. - quantity = len(lines_to_sum) if tax.amount_type == 'fixed' else 1 - taxes_vals = tax.compute_all(balance, quantity=quantity, currency=line.currency_id, product=line.product_id, partner=line.partner_id) - - if taxes_vals.get('taxes'): - for line_vals in taxes_vals['taxes']: - tax_line = _find_existing_tax_line(self.line_ids, line_vals['tax_repartition_line_id'], parsed_key['tag_ids'], parsed_key['analytic_account_id']) - if tax_line: - if not lines_to_sum: - # Drop tax line because the originator tax is no longer used. - self.line_ids -= tax_line - elif balance: - # Update the existing tax_line. - # Update the debit/credit amount according to the new balance. - amount = line_vals['amount'] - account = line_vals['account_id'] or line.account_id - tax_line.debit = amount > 0 and amount or 0.0 - tax_line.credit = amount < 0 and -amount or 0.0 - tax_line.account_id = account - else: - # Reset debit/credit in case of the originator line is temporary set to 0 in both debit/credit. - tax_line.debit = tax_line.credit = 0.0 - else: - # Create a new tax_line. - amount = line_vals['amount'] - to_create_vals = { - 'account_id': line_vals['account_id'] or line.account_id.id, - 'name': line_vals['name'], - 'partner_id': line.partner_id.id, - 'debit': amount > 0 and amount or 0.0, - 'credit': amount < 0 and -amount or 0.0, - 'analytic_account_id': line.analytic_account_id.id if tax.analytic else False, - 'analytic_tag_ids': line.analytic_tag_ids.ids if tax.analytic else False, - 'move_id': self.id, - 'tax_exigible': tax.tax_exigibility == 'on_invoice', - 'company_id': self.company_id.id, - 'company_currency_id': self.company_id.currency_id.id, - 'tax_repartition_line_id': line_vals['tax_repartition_line_id'], - 'tag_ids': line_vals['tag_ids'], - 'tax_base_amount': line_vals['base'], - } - # N.B. currency_id/amount_currency are not set because if we have two lines with the same tax - # and different currencies, we have no idea which currency set on this line. - self.env['account.move.line'].new(to_create_vals) - - # Keep record of the values used as taxes the last time this method has been run. - line.tax_line_grouping_key = _build_grouping_key(line) - @api.model - def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): - res = super(AccountMove, self).fields_view_get( - view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) - if self._context.get('vat_domain'): - res['fields']['line_ids']['views']['tree']['fields']['tax_line_id']['domain'] = [('tag_ids', 'in', [self.env.ref(self._context.get('vat_domain')).id])] - return res + line_currency = self.currency_id if self.currency_id != self.company_id.currency_id else False + for line in self.line_ids: + # Do something only on invoice lines. + if line.exclude_from_invoice_tab: + continue + + # Ensure related fields are well copied. + line.partner_id = self.partner_id + line.date = self.date + line.recompute_tax_line = True + line.currency_id = line_currency + + # Shortcut to load the demo data. + if not line.account_id: + line.account_id = line._get_computed_account() + if not line.account_id: + if self.is_sale_document(include_receipts=True): + line.account_id = self.journal_id.default_credit_account_id + elif self.is_purchase_document(include_receipts=True): + line.account_id = self.journal_id.default_debit_account_id - @api.constrains('company_id') - def _check_company_id(self): - if self.filtered(lambda record: any([x.company_id.id != record.company_id.id for x in record.line_ids])): - raise ValidationError(_("Cannot create moves for different companies.")) + self.line_ids._onchange_price_subtotal() + self._recompute_dynamic_lines(recompute_all_taxes=True) + + values = self._convert_to_write(self._cache) + values.pop('invoice_line_ids', None) + return values @api.model - def create(self, vals): - move = super(AccountMove, self.with_context(mail_create_nolog=True, check_move_validity=False, partner_id=vals.get('partner_id'))).create(vals) - move.assert_balanced() - return move + def _move_autocomplete_invoice_lines_create(self, vals_list): + ''' During the create of an account.move with only 'invoice_line_ids' set and not 'line_ids', this method is called + to auto compute accounting lines of the invoice. In that case, accounts will be retrieved and taxes, cash rounding + and payment terms will be computed. At the end, the values will contains all accounting lines in 'line_ids' + and the moves should be balanced. + + :param vals_list: The list of values passed to the 'create' method. + :return: Modified list of values. + ''' + new_vals_list = [] + for vals in vals_list: + if not vals.get('invoice_line_ids'): + new_vals_list.append(vals) + continue + if vals.get('line_ids'): + vals.pop('invoice_line_ids', None) + new_vals_list.append(vals) + continue + if not vals.get('type') and not self._context.get('default_type'): + vals.pop('invoice_line_ids', None) + new_vals_list.append(vals) + continue + vals['type'] = vals.get('type', self._context.get('default_type', 'entry')) + if not vals['type'] in self.get_invoice_types(include_receipts=True): + new_vals_list.append(vals) + continue + + vals['line_ids'] = vals.pop('invoice_line_ids') + + if vals.get('invoice_date') and not vals.get('date'): + vals['date'] = vals['invoice_date'] + + ctx_vals = {'default_type': vals.get('type') or self._context.get('default_type')} + if vals.get('journal_id'): + ctx_vals['default_journal_id'] = vals['journal_id'] + self_ctx = self.with_context(**ctx_vals) + new_vals = self_ctx._add_missing_default_values(vals) + + move = self_ctx.new(new_vals) + new_vals_list.append(move._move_autocomplete_invoice_lines_values()) + return new_vals_list + + @api.multi + def _move_autocomplete_invoice_lines_write(self, vals): + ''' During the write of an account.move with only 'invoice_line_ids' set and not 'line_ids', this method is called + to auto compute accounting lines of the invoice. In that case, accounts will be retrieved and taxes, cash rounding + and payment terms will be computed. At the end, the values will contains all accounting lines in 'line_ids' + and the moves should be balanced. + + :param vals_list: A python dict representing the values to write. + :return: True if the auto-completion did something, False otherwise. + ''' + enable_autocomplete = 'invoice_line_ids' in vals and 'line_ids' not in vals and True or False + + if not enable_autocomplete: + return False + + vals['line_ids'] = vals.pop('invoice_line_ids') + for invoice in self: + invoice_new = invoice.with_context(default_type=invoice.type, default_journal_id=invoice.journal_id.id).new(origin=invoice) + invoice_new.update(vals) + values = invoice_new._move_autocomplete_invoice_lines_values() + values.pop('invoice_line_ids', None) + invoice.write(values) + return True + + @api.model_create_multi + def create(self, vals_list): + # OVERRIDE + vals_list = self._move_autocomplete_invoice_lines_create(vals_list) + + moves = super(AccountMove, self).create(vals_list) + + # Trigger 'action_invoice_paid' when the invoice is directly paid at its creation. + moves.filtered(lambda move: move.is_invoice(include_receipts=True) and move.invoice_payment_state in ('paid', 'in_payment')).action_invoice_paid() + + return moves @api.multi def write(self, vals): - if 'line_ids' in vals: - res = super(AccountMove, self.with_context(check_move_validity=False)).write(vals) - self.assert_balanced() + not_paid_invoices = self.filtered(lambda move: move.is_invoice(include_receipts=True) and move.invoice_payment_state not in ('paid', 'in_payment')) + + if self._move_autocomplete_invoice_lines_write(vals): + res = True else: - res = super(AccountMove, self).write(vals) + vals.pop('invoice_line_ids', None) + res = super(AccountMove, self.with_context(check_move_validity=False)).write(vals) + + # Ensure the move is still well balanced. + if 'line_ids' in vals and self._context.get('check_move_validity', True): + # 'check_move_validity' is needed as the write will be done line per line. + self._check_move_consistency() + + # Trigger 'action_invoice_paid' when the invoice becomes paid after a write. + not_paid_invoices.filtered(lambda move: move.invoice_payment_state in ('paid', 'in_payment')).action_invoice_paid() + return res @api.multi + def unlink(self): + for move in self: + # check the lock date + check if some entries are reconciled + move.line_ids._update_check() + move.line_ids.unlink() + return super(AccountMove, self).unlink() + + @api.multi + @api.depends('name', 'state') + def name_get(self): + result = [] + for move in self: + if self._context.get('name_groupby') and not (move.type == 'entry' and move.state == 'draft'): + name = '**%s**, %s %s' % (format_date(self.env, move.date), move.name, move.partner_id.name or '') + elif move.type == 'entry': + # Miscellaneous operation. + if move.state == 'draft': + name = '* %s' % str(move.id) + else: + name = move.name + else: + # Invoice. + name = move._get_invoice_display_name(show_ref=True) + result.append((move.id, name)) + return result + + @api.multi + def _track_subtype(self, init_values): + # OVERRIDE to add custom subtype depending of the state. + self.ensure_one() + + if not self.is_invoice(include_receipts=True): + return super(AccountMove, self)._track_subtype(init_values) + + if 'invoice_payment_state' in init_values and self.invoice_payment_state == 'paid': + return self.env.ref('account.mt_invoice_paid') + elif 'state' in init_values and self.state == 'posted' and self.is_sale_document(include_receipts=True): + return self.env.ref('account.mt_invoice_validated') + elif 'state' in init_values and self.state == 'draft' and self.is_sale_document(include_receipts=True): + return self.env.ref('account.mt_invoice_created') + return super(AccountMove, self)._track_subtype(init_values) + + # ------------------------------------------------------------------------- + # BUSINESS METHODS + # ------------------------------------------------------------------------- + + @api.model + def get_invoice_types(self, include_receipts=False): + return ['out_invoice', 'out_refund', 'in_refund', 'in_invoice'] + (include_receipts and ['out_receipt', 'in_receipt'] or []) + + def is_invoice(self, include_receipts=False): + return self.type in self.get_invoice_types(include_receipts) + + @api.model + def get_sale_types(self, include_receipts=False): + return ['out_invoice', 'out_refund'] + (include_receipts and ['out_receipt'] or []) + + def is_sale_document(self, include_receipts=False): + return self.type in self.get_sale_types(include_receipts) + + @api.model + def get_purchase_types(self, include_receipts=False): + return ['in_invoice', 'in_refund'] + (include_receipts and ['in_receipt'] or []) + + def is_purchase_document(self, include_receipts=False): + return self.type in self.get_purchase_types(include_receipts) + + @api.model + def get_inbound_types(self, include_receipts=True): + return ['out_invoice', 'in_refund'] + (include_receipts and ['out_receipt'] or []) + + def is_inbound(self, include_receipts=True): + return self.type in self.get_inbound_types(include_receipts) + + @api.model + def get_outbound_types(self, include_receipts=True): + return ['in_invoice', 'out_refund'] + (include_receipts and ['in_receipt'] or []) + + def is_outbound(self, include_receipts=True): + return self.type in self.get_outbound_types(include_receipts) + + @api.multi + def _get_invoice_reference_euro_invoice(self): + """ This computes the reference based on the RF Creditor Reference. + The data of the reference is the database id number of the invoice. + For instance, if an invoice is issued with id 43, the check number + is 07 so the reference will be 'RF07 43'. + """ + self.ensure_one() + base = self.id + check_digits = mod_97_10.calc_check_digits('{}RF'.format(base)) + reference = 'RF{} {}'.format(check_digits, " ".join(["".join(x) for x in zip_longest(*[iter(str(base))]*4, fillvalue="")])) + return reference + + @api.multi + def _get_invoice_reference_euro_partner(self): + """ This computes the reference based on the RF Creditor Reference. + The data of the reference is the user defined reference of the + partner or the database id number of the parter. + For instance, if an invoice is issued for the partner with internal + reference 'food buyer 654', the digits will be extracted and used as + the data. This will lead to a check number equal to 00 and the + reference will be 'RF00 654'. + If no reference is set for the partner, its id in the database will + be used. + """ + self.ensure_one() + partner_ref = self.partner_id.ref + partner_ref_nr = re.sub('\D', '', partner_ref or '')[-21:] or str(self.partner_id.id)[-21:] + partner_ref_nr = partner_ref_nr[-21:] + check_digits = mod_97_10.calc_check_digits('{}RF'.format(partner_ref_nr)) + reference = 'RF{} {}'.format(check_digits, " ".join(["".join(x) for x in zip_longest(*[iter(partner_ref_nr)]*4, fillvalue="")])) + return reference + + @api.multi + def _get_invoice_reference_odoo_invoice(self): + """ This computes the reference based on the Odoo format. + We simply return the number of the invoice, defined on the journal + sequence. + """ + self.ensure_one() + return self.name + + @api.multi + def _get_invoice_reference_odoo_partner(self): + """ This computes the reference based on the Odoo format. + The data used is the reference set on the partner or its database + id otherwise. For instance if the reference of the customer is + 'dumb customer 97', the reference will be 'CUST/dumb customer 97'. + """ + ref = self.partner_id.ref or str(self.partner_id.id) + prefix = _('CUST') + return '%s/%s' % (prefix, ref) + + @api.multi + def _get_invoice_computed_reference(self): + self.ensure_one() + if self.journal_id.invoice_reference_type == 'none': + return '' + else: + ref_function = getattr(self, '_get_invoice_reference_{}_{}'.format(self.journal_id.invoice_reference_model, self.journal_id.invoice_reference_type)) + if ref_function: + return ref_function() + else: + raise UserError(_('The combination of reference model and reference type on the journal is not implemented')) + + @api.multi + def _get_sequence(self): + ''' Return the sequence to be used during the post of the current move. + :return: An ir.sequence record or False. + ''' + self.ensure_one() + + journal = self.journal_id + if self.type in ('entry', 'out_invoice', 'in_invoice') or not journal.refund_sequence: + return journal.sequence_id + if not journal.refund_sequence_id: + return + return journal.refund_sequence_id + + @api.multi + def _get_invoice_display_name(self, show_ref=False): + ''' Helper to get the display name of an invoice depending of its type. + :param show_ref: A flag indicating of the display name must include or not the journal entry reference. + :return: A string representing the invoice. + ''' + self.ensure_one() + if self.state == 'draft': + return { + 'out_invoice': _('Draft Invoice'), + 'out_refund': _('Credit Note'), + 'in_invoice': _('Vendor Bill'), + 'in_refund': _('Vendor Credit Note'), + 'out_receipt': _('Sales Receipt'), + 'in_receipt': _('Purchase Receipt'), + }[self.type] + else: + return ('%s' % self.name) + (show_ref and self.ref and '(%s)' % self.ref or '') + + @api.multi + def _get_invoice_delivery_partner_id(self): + ''' Hook allowing to retrieve the right delivery address depending of installed modules. + :return: A res.partner record's id representing the delivery address. + ''' + self.ensure_one() + return self.partner_id.address_get(['delivery'])['delivery'] + + @api.multi + def _get_invoice_intrastat_country_id(self): + ''' Hook allowing to retrieve the intrastat country depending of installed modules. + :return: A res.country record's id. + ''' + self.ensure_one() + return self.partner_id.country_id.id + + @api.multi + def _get_cash_basis_matched_percentage(self): + """Compute the percentage to apply for cash basis method. This value is relevant only for moves that + involve journal items on receivable or payable accounts. + """ + self.ensure_one() + query = ''' + SELECT + ( + SELECT COALESCE(SUM(line.balance), 0.0) + FROM account_move_line line + JOIN account_account account ON account.id = line.account_id + JOIN account_account_type account_type ON account_type.id = account.user_type_id + WHERE line.move_id = %s AND account_type.type IN ('receivable', 'payable') + ) AS total_amount, + ( + SELECT COALESCE(SUM(partial.amount), 0.0) + FROM account_move_line line + JOIN account_account account ON account.id = line.account_id + JOIN account_account_type account_type ON account_type.id = account.user_type_id + LEFT JOIN account_partial_reconcile partial ON + partial.debit_move_id = line.id + OR + partial.credit_move_id = line.id + WHERE line.move_id = %s AND account_type.type IN ('receivable', 'payable') + ) AS total_reconciled + ''' + params = [self.id, self.id] + self._cr.execute(query, params) + total_amount, total_reconciled = self._cr.fetchone() + if float_is_zero(total_amount, precision_rounding=self.company_id.currency_id.rounding): + return 1.0 + else: + return abs(total_reconciled / total_amount) + + @api.multi + def _reverse_move_vals(self, default_values, cancel=True): + ''' Reverse values passed as parameter being the copied values of the original journal entry. + For example, debit / credit must be switched. The tax lines must be edited in case of refunds. + + :param default_values: A copy_date of the original journal entry. + :param cancel: A flag indicating the reverse is made to cancel the original journal entry. + :return: The updated default_values. + ''' + self.ensure_one() + + def compute_tax_repartition_lines_mapping(move_vals): + ''' Computes and returns a mapping between the current repartition lines to the new expected one. + :param move_vals: The newly created invoice as a python dictionary to be passed to the 'create' method. + :return: A map invoice_repartition_line => refund_repartition_line. + ''' + # invoice_repartition_line => refund_repartition_line + mapping = {} + + # Do nothing if the move is not a credit note. + if move_vals['type'] not in ('out_refund', 'in_refund'): + return mapping + + for line_command in move_vals.get('line_ids', []): + line_vals = line_command[2] # (0, 0, {...}) + + if line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: + # Base line. + tax_ids = line_vals['tax_ids'][0][2] + elif line_vals.get('tax_line_id'): + # Tax line. + tax_ids = [line_vals['tax_line_id']] + else: + continue + + for tax in self.env['account.tax'].browse(tax_ids): + for inv_rep_line, ref_rep_line in zip(tax.invoice_repartition_line_ids, tax.refund_repartition_line_ids): + mapping[inv_rep_line] = ref_rep_line + return mapping + + move_vals = self.with_context(include_business_fields=True).copy_data(default=default_values)[0] + + tax_repartition_lines_mapping = compute_tax_repartition_lines_mapping(move_vals) + + for line_command in move_vals.get('line_ids', []): + line_vals = line_command[2] # (0, 0, {...}) + + # ==== Inverse debit / credit / amount_currency ==== + amount_currency = -line_vals.get('amount_currency', 0.0) + balance = line_vals['credit'] - line_vals['debit'] + + line_vals.update({ + 'amount_currency': amount_currency, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + }) + + if move_vals['type'] not in ('out_refund', 'in_refund'): + continue + + # ==== Map tax repartition lines ==== + if line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: + # Base line. + invoice_repartition_lines = self.env['account.tax'].browse(line_vals['tax_ids'][0][2])\ + .mapped('invoice_repartition_line_ids')\ + .filtered(lambda line: line.repartition_type == 'base') + refund_repartition_lines = invoice_repartition_lines\ + .mapped(lambda line: tax_repartition_lines_mapping[line]) + + line_vals['tag_ids'] = [(6, 0, refund_repartition_lines.mapped('tag_ids').ids)] + elif line_vals.get('tax_repartition_line_id'): + # Tax line. + invoice_repartition_line = self.env['account.tax.repartition.line'].browse(line_vals['tax_repartition_line_id']) + refund_repartition_line = tax_repartition_lines_mapping[invoice_repartition_line] + + # Find the right account. + account_id = self.env['account.move.line']._get_default_tax_account(refund_repartition_line).id + if not account_id: + if not invoice_repartition_line.account_id: + # Keep the current account as the current one comes from the base line. + account_id = line_vals['account_id'] + else: + tax = invoice_repartition_line.invoice_tax_id + base_line = self.line_ids.filtered(lambda line: tax in line.tax_ids)[0] + account_id = base_line.account_id.id + + line_vals.update({ + 'tax_repartition_line_id': refund_repartition_line.id, + 'account_id': account_id, + 'tag_ids': [(6, 0, refund_repartition_line.tag_ids.ids)], + }) + return move_vals + + @api.multi + def _reverse_moves(self, default_values_list=None, cancel=False): + ''' Reverse a recordset of account.move. + If cancel parameter is true, the reconcilable or liquidity lines + of each original move will be reconciled with its reverse's. + + :param default_values_list: A list of default values to consider per move. + ('type' & 'reversed_entry_id' are computed in the method). + :return: An account.move recordset, reverse of the current self. + ''' + if not default_values_list: + default_values_list = [{} for move in self] + + if cancel: + lines = self.mapped('line_ids') + # Avoid maximum recursion depth. + if lines: + lines.remove_move_reconcile() + + reverse_type_map = { + 'entry': 'entry', + 'out_invoice': 'out_refund', + 'in_invoice': 'in_refund', + 'in_refund': 'in_invoice', + 'out_receipt': 'in_receipt', + 'in_receipt': 'out_receipt', + } + + move_vals_list = [] + for move, default_values in zip(self, default_values_list): + default_values.update({ + 'type': reverse_type_map[self.type], + 'reversed_entry_id': self.id, + }) + move_vals_list.append(move._reverse_move_vals(default_values, cancel=cancel)) + reverse_moves = self.env['account.move'].create(move_vals_list) + + # Reconcile moves together to cancel the previous one. + if cancel: + reverse_moves.with_context(move_reverse_cancel=cancel).post() + for move, reverse_move in zip(self, reverse_moves): + accounts = move.mapped('line_ids.account_id') \ + .filtered(lambda account: account.reconcile or account.internal_type == 'liquidity') + for account in accounts: + (move.line_ids + reverse_move.line_ids)\ + .filtered(lambda line: line.account_id == account and line.balance)\ + .reconcile() + + return reverse_moves + + @api.multi + def open_reconcile_view(self): + return self.line_ids.open_reconcile_view() + + @api.multi def post(self): - self._post_validate() + for move in self: + if move.auto_post and move.date > fields.Date.today(): + date_msg = move.date.strftime(self.env['res.lang']._lang_get(self.env.user.lang).date_format) + raise UserError(_("This move is configured to be auto-posted on %s" % date_msg)) + + if not move.partner_id: + if move.is_sale_document(): + raise UserError(_("The field 'Customer' is required, please complete it to validate the Customer Invoice.")) + elif move.is_purchase_document(): + raise UserError(_("The field 'Vendor' is required, please complete it to validate the Vendor Bill.")) + + if move.is_invoice(include_receipts=True) and float_compare(move.amount_total, 0.0, precision_rounding=move.currency_id.rounding) < 0: + raise UserError(_("You cannot validate an invoice with a negative total amount. You should create a credit note instead.")) + + # Handle case when the invoice_date is not set. In that case, the invoice_date is set at today and then, + # lines are recomputed accordingly. + if not move.invoice_date and move.is_invoice(include_receipts=True): + move.invoice_date = fields.Date.context_today(self) + move.with_context(check_move_validity=False)._onchange_invoice_date() + + self._check_tax_lock_date() + self._check_move_consistency() # Create the analytic lines in batch is faster as it leads to less cache invalidation. self.mapped('line_ids').create_analytic_lines() for move in self: if move.auto_post and move.date > fields.Date.today(): raise UserError(_("This move is configured to be auto-posted on {}".format(move.date.strftime(self.env['res.lang']._lang_get(self.env.user.lang).date_format)))) + to_write = {'state': 'posted'} if move.name == '/': - new_name = False - journal = move.journal_id + # Get the journal's sequence. + sequence = move._get_sequence() + if not sequence: + raise UserError(_('Please define a sequence on your journal.')) - if journal.sequence_id: - sequence = journal.sequence_id - new_name = sequence.with_context(ir_sequence_date=move.date).next_by_id() - else: - raise UserError(_('Please define a sequence on the journal.')) + # Consume a new number. + to_write['name'] = sequence.next_by_id(sequence_date=move.date) + + move.write(to_write) - if new_name: - move.name = new_name + # Compute 'ref' for 'out_invoice'. + if move.type == 'out_invoice' and not move.invoice_payment_ref: + to_write = { + 'invoice_payment_ref': move._get_invoice_computed_reference(), + 'line_ids': [] + } + for line in move.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')): + to_write['line_ids'].append((1, line.id, {'name': to_write['invoice_payment_ref']})) + move.write(to_write) if move == move.company_id.account_opening_move_id and not move.company_id.account_bank_reconciliation_start: # For opening moves, we set the reconciliation date threshold @@ -357,22 +1906,41 @@ class AccountMove(models.Model): # installing Accounting- with bank statements) move.company_id.account_bank_reconciliation_start = move.date - return self.write({'state': 'posted'}) + @api.multi + def action_reverse(self): + action = self.env.ref('account.action_view_account_move_reversal').read()[0] + + if self.is_invoice(): + action['name'] = _('Credit Note') + + return action @api.multi def action_post(self): - if self.mapped('line_ids.payment_id'): - if any(self.mapped('journal_id.post_at_bank_rec')): - raise UserError(_("A payment journal entry generated in a journal configured to post entries only when payments are reconciled with a bank statement cannot be manually posted. Those will be posted automatically after performing the bank reconciliation.")) + if self.mapped('line_ids.payment_id') and any(self.mapped('journal_id.post_at_bank_rec')): + raise UserError(_("A payment journal entry generated in a journal configured to post entries only when payments are reconciled with a bank statement cannot be manually posted. Those will be posted automatically after performing the bank reconciliation.")) return self.post() @api.multi + def js_assign_outstanding_line(self, line_id): + self.ensure_one() + lines = self.env['account.move.line'].browse(line_id) + lines += self.line_ids.filtered(lambda line: line.account_id == lines[0].account_id and not line.reconciled) + return lines.reconcile() + + @api.multi + def button_draft(self): + if any(move.state != 'cancel' for move in self): + raise UserError(_('Only cancelled journal entries can be reset to draft.')) + self.write({'state': 'draft'}) + + @api.multi def button_cancel(self): AccountMoveLine = self.env['account.move.line'] excluded_move_ids = [] - if self._context.get('edition_mode'): - excluded_move_ids = AccountMoveLine.search(AccountMoveLine._get_domain_for_edition_mode() + [('move_id', 'in', self.ids)]).mapped('move_id').ids + if self._context.get('suspense_moves_mode'): + excluded_move_ids = AccountMoveLine.search(AccountMoveLine._get_suspense_moves_domain() + [('move_id', 'in', self.ids)]).mapped('move_id').ids for move in self: if not move.journal_id.update_posted and move.id not in excluded_move_ids: @@ -382,122 +1950,130 @@ class AccountMove(models.Model): if self.ids: self.check_access_rights('write') self.check_access_rule('write') - self._check_lock_date() - self._cr.execute('UPDATE account_move '\ - 'SET state=%s '\ - 'WHERE id IN %s', ('draft', tuple(self.ids),)) + self._check_fiscalyear_lock_date() + self._cr.execute('UPDATE account_move SET state=%s WHERE id IN %s', ('cancel', tuple(self.ids))) self.invalidate_cache() - self._check_lock_date() + self._check_fiscalyear_lock_date() + self.mapped('line_ids').remove_move_reconcile() return True @api.multi - def unlink(self): - for move in self: - #check the lock date + check if some entries are reconciled - move.line_ids._update_check() - move.line_ids.unlink() - return super(AccountMove, self).unlink() + def action_invoice_sent(self): + """ Open a window to compose an email, with the edi invoice template + message loaded by default + """ + self.ensure_one() + template = self.env.ref('account.email_template_edi_invoice', raise_if_not_found=False) + compose_form = self.env.ref('account.account_invoice_send_wizard_form', raise_if_not_found=False) + ctx = dict( + default_model='account.move', + default_res_id=self.id, + default_use_template=bool(template), + default_template_id=template and template.id or False, + default_composition_mode='comment', + mark_invoice_as_sent=True, + custom_layout="mail.mail_notification_paynow", + force_email=True + ) + return { + 'name': _('Send Invoice'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'account.invoice.send', + 'views': [(compose_form.id, 'form')], + 'view_id': compose_form.id, + 'target': 'new', + 'context': ctx, + } @api.multi - def _post_validate(self): - for move in self: - if move.line_ids: - if not all([x.company_id.id == move.company_id.id for x in move.line_ids]): - raise UserError(_("Cannot create moves for different companies.")) - self.assert_balanced() - return self._check_lock_date() + def action_invoice_print(self): + """ Print the invoice and mark it as sent, so that we can see more + easily the next step of the workflow + """ + if any(not move.is_invoice(include_receipts=True) for move in self): + raise UserError(_("Only invoices could be printed.")) + + self.filtered(lambda inv: not inv.invoice_sent).write({'invoice_sent': True}) + if self.user_has_groups('account.group_account_invoice'): + return self.env.ref('account.account_invoices').report_action(self) + else: + return self.env.ref('account.account_invoices_without_payment').report_action(self) @api.multi - def _check_lock_date(self): - for move in self: - lock_date = max(move.company_id.period_lock_date or date.min, move.company_id.fiscalyear_lock_date or date.min) - if self.user_has_groups('account.group_account_manager'): - lock_date = move.company_id.fiscalyear_lock_date - if move.date <= (lock_date or date.min): - if self.user_has_groups('account.group_account_manager'): - message = _("You cannot add/modify entries prior to and inclusive of the lock date %s") % (lock_date) - else: - message = _("You cannot add/modify entries prior to and inclusive of the lock date %s. Check the company settings or ask someone with the 'Adviser' role") % (lock_date) - raise UserError(message) - return True + def action_invoice_paid(self): + ''' Hook to be overrided called when the invoice moves to the paid state. ''' + pass @api.multi - def assert_balanced(self): - if not self.ids: - return True - prec = self.env.company.currency_id.decimal_places - - self._cr.execute("""\ - SELECT move_id - FROM account_move_line - WHERE move_id in %s - GROUP BY move_id - HAVING abs(sum(debit) - sum(credit)) > %s - """, (tuple(self.ids), 10 ** (-max(5, prec)))) - if len(self._cr.fetchall()) != 0: - raise UserError(_("Cannot create unbalanced journal entry.")) - return True + def action_open_matching_suspense_moves(self): + self.ensure_one() + domain = self._get_domain_matching_supsense_moves() + ids = self.env['account.move.line'].search(domain).mapped('statement_line_id').ids + action_context = {'show_mode_selector': False, 'company_ids': self.mapped('company_id').ids} + action_context.update({'suspense_moves_mode': True}) + action_context.update({'statement_line_ids': ids}) + action_context.update({'partner_id': self.partner_id.id}) + action_context.update({'partner_name': self.partner_id.name}) + return { + 'type': 'ir.actions.client', + 'tag': 'bank_statement_reconciliation_view', + 'context': action_context, + } + + @api.multi + def action_invoice_register_payment(self): + return self.env['account.payment']\ + .with_context(active_ids=self.ids, active_model='account.move', active_id=self.id)\ + .action_register_payment() @api.multi - def _reverse_move(self, date=None, journal_id=None): + def _get_report_base_filename(self): + if any(not move.is_invoice() for move in self): + raise UserError(_("Only invoices could be printed.")) + return self._get_invoice_display_name() + + @api.multi + def preview_invoice(self): self.ensure_one() - date = date or fields.Date.today() - with self.env.norecompute(): - reversed_move = self.copy(default={ - 'date': date, - 'journal_id': journal_id.id if journal_id else self.journal_id.id, - 'ref': _('Reversal of: %s') % (self.name), - }) - for acm_line in reversed_move.line_ids.with_context(check_move_validity=False): - acm_line.write({ - 'debit': acm_line.credit, - 'credit': acm_line.debit, - 'amount_currency': -acm_line.amount_currency - }) - self.reverse_entry_id = reversed_move - self.recompute() - return reversed_move - - @api.multi - def reverse_moves(self, date=None, journal_id=None): - date = date or fields.Date.today() - reversed_moves = self.env['account.move'] - for ac_move in self: - #unreconcile all lines reversed - aml = ac_move.line_ids.filtered(lambda x: x.account_id.reconcile or x.account_id.internal_type == 'liquidity') - aml.remove_move_reconcile() - reversed_move = ac_move._reverse_move(date=date, journal_id=journal_id) - reversed_moves |= reversed_move - #reconcile together the reconcilable (or the liquidity aml) and their newly created counterpart - for account in set([x.account_id for x in aml]): - to_rec = aml.filtered(lambda y: y.account_id == account) - to_rec |= reversed_move.line_ids.filtered(lambda y: y.account_id == account) - #reconciliation will be full, so speed up the computation by using skip_full_reconcile_check in the context - to_rec.reconcile() - if reversed_moves: - reversed_moves._post_validate() - reversed_moves.post() - return [x.id for x in reversed_moves] - return [] + return { + 'type': 'ir.actions.act_url', + 'target': 'self', + 'url': self.get_portal_url(), + } @api.multi - def open_reconcile_view(self): - return self.line_ids.open_reconcile_view() + def _compute_access_url(self): + super(AccountMove, self)._compute_access_url() + for move in self.filtered(lambda move: move.is_invoice()): + move.access_url = '/my/invoices/%s' % (move.id) - # FIXME: Clarify me and change me in master @api.multi - def action_duplicate(self): + def action_view_reverse_entry(self): self.ensure_one() - action = self.env.ref('account.action_move_journal_line').read()[0] - action['context'] = dict(self.env.context) - action['context']['form_view_initial_mode'] = 'edit' - action['context']['view_no_maturity'] = False - action['views'] = [(self.env.ref('account.view_move_form').id, 'form')] - action['res_id'] = self.copy().id + + # Create action. + action = { + 'name': _('Reverse Moves'), + 'type': 'ir.actions.act_window', + 'res_model': 'account.move', + } + reverse_entries = self.env['account.move'].search([('reversed_entry_id', '=', self.id)]) + if len(reverse_entries) == 1: + action.update({ + 'view_mode': 'form', + 'res_id': reverse_entries.id, + }) + else: + action.update({ + 'view_mode': 'tree', + 'domain': [('id', 'in', reverse_entries.ids)], + }) return action @api.model - def _run_post_draft_to_post(self): + def _autopost_draft_entries(self): ''' This method is called from a cron job. It is used to post entries such as those created by the module account_asset. @@ -509,46 +2085,546 @@ class AccountMove(models.Model): ]) records.post() - @api.multi - def action_view_reverse_entry(self): - action = self.env.ref('account.action_move_journal_line').read()[0] - action['views'] = [(self.env.ref('account.view_move_form').id, 'form')] - action['res_id'] = self.reverse_entry_id.id - return action class AccountMoveLine(models.Model): _name = "account.move.line" _description = "Journal Item" - _order = "date desc, move_name desc, id desc" + _order = "sequence, date desc, move_name desc, id" + + # ==== Business fields ==== + move_id = fields.Many2one('account.move', string='Journal Entry', + index=True, required=True, auto_join=True, ondelete="cascade", + help="The move of this entry line.") + move_name = fields.Char(string='Number', related='move_id.name', store=True, index=True) + date = fields.Date(related='move_id.date', store=True, readonly=True, index=True, copy=False) + ref = fields.Char(related='move_id.ref', store=True, copy=False, index=True, readonly=False) + parent_state = fields.Selection(related='move_id.state', store=True, readonly=True) + journal_id = fields.Many2one(related='move_id.journal_id', store=True, readonly=False, index=True, copy=False) + company_id = fields.Many2one(related='move_id.company_id', store=True, readonly=True) + company_currency_id = fields.Many2one(related='company_id.currency_id', string='Company Currency', + readonly=True, store=True, + help='Utility field to express amount currency') + account_id = fields.Many2one('account.account', string='Account', + index=True, ondelete="cascade", + domain=[('deprecated', '=', False)]) + account_internal_type = fields.Selection(related='account_id.user_type_id.type', string="Internal Type", store=True, readonly=True) + sequence = fields.Integer(default=10) + name = fields.Char(string='Label') + quantity = fields.Float(string='Quantity', + default=1.0, digits=dp.get_precision('Product Unit of Measure'), + help="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.") + price_unit = fields.Float(string='Unit Price', digits=dp.get_precision('Product Price')) + discount = fields.Float(string='Discount (%)', digits=dp.get_precision('Discount'), default=0.0) + debit = fields.Monetary(string='Debit', default=0.0, currency_field='company_currency_id') + credit = fields.Monetary(string='Credit', default=0.0, currency_field='company_currency_id') + balance = fields.Monetary(string='Balance', store=True, + currency_field='company_currency_id', + compute='_compute_balance', + help="Technical field holding the debit - credit in order to open meaningful graph views from reports") + amount_currency = fields.Monetary(string='Balance in Currency', store=True, copy=True, + help="The amount expressed in an optional other currency if it is a multi-currency entry.") + price_subtotal = fields.Monetary(string='Subtotal', store=True, readonly=True, + currency_field='always_set_currency_id') + price_total = fields.Monetary(string='Total', store=True, readonly=True, + currency_field='always_set_currency_id') + reconciled = fields.Boolean(compute='_amount_residual', store=True) + blocked = fields.Boolean(string='No Follow-up', default=False, + help="You can check this box to mark this journal item as a litigation with the associated partner") + date_maturity = fields.Date(string='Due date', index=True, + help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.") + currency_id = fields.Many2one('res.currency', string='Currency') + partner_id = fields.Many2one('res.partner', string='Partner', ondelete='restrict') + product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure') + product_id = fields.Many2one('product.product', string='Product') + + # ==== Origin fields ==== + reconcile_model_id = fields.Many2one('account.reconcile.model', string="Reconciliation Model", copy=False) + payment_id = fields.Many2one('account.payment', string="Originator Payment", copy=False, + help="Payment that created this entry") + statement_line_id = fields.Many2one('account.bank.statement.line', + string='Bank statement line reconciled with this entry', + index=True, copy=False, readonly=True) + statement_id = fields.Many2one(related='statement_line_id.statement_id', store=True, index=True, copy=False, + help="The bank statement used for bank reconciliation") + + # ==== Tax fields ==== + tax_ids = fields.Many2many('account.tax', string='Taxes') + tax_line_id = fields.Many2one('account.tax', string='Originator tax', ondelete='restrict', store=True, + compute='_compute_tax_line_id') + tax_base_amount = fields.Monetary(string="Base Amount", store=True, + currency_field='company_currency_id') + tax_exigible = fields.Boolean(string='Appears in VAT report', default=True, + help="Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items" + " are displayed). By default all new journal items are directly exigible, but with the feature cash_basis" + " on taxes, some will become exigible only when the payment is recorded.") + tax_repartition_line_id = fields.Many2one(comodel_name='account.tax.repartition.line', + string="Originator Tax Repartition Line", ondelete='restrict', + help="Tax repartition line that caused the creation of this move line, if any") + tag_ids = fields.Many2many(string="Tags", comodel_name='account.account.tag', ondelete='restrict', + help="Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.") + tax_audit = fields.Char(string="Tax Audit String", compute="_compute_tax_audit", store=True, + help="Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.") + + # ==== Reconciliation fields ==== + amount_residual = fields.Monetary(string='Residual Amount', store=True, + currency_field='company_currency_id', + compute='_amount_residual', + help="The residual amount on a journal item expressed in the company currency.") + amount_residual_currency = fields.Monetary(string='Residual Amount in Currency', store=True, + compute='_amount_residual', + help="The residual amount on a journal item expressed in its currency (possibly not the company currency).") + full_reconcile_id = fields.Many2one('account.full.reconcile', string="Matching Number", copy=False, index=True) + matched_debit_ids = fields.One2many('account.partial.reconcile', 'credit_move_id', String='Matched Debits', + help='Debit journal items that are matched with this journal item.') + matched_credit_ids = fields.One2many('account.partial.reconcile', 'debit_move_id', String='Matched Credits', + help='Credit journal items that are matched with this journal item.') + + # ==== Analytic fields ==== + analytic_line_ids = fields.One2many('account.analytic.line', 'move_id', string='Analytic lines') + analytic_account_id = fields.Many2one('account.analytic.account', string='Analytic Account', index=True) + analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags') + + # ==== Onchange / display purpose fields ==== + recompute_tax_line = fields.Boolean(store=False, readonly=True, + help="Technical field used to know on which lines the taxes must be recomputed.") + display_type = fields.Selection([ + ('line_section', 'Section'), + ('line_note', 'Note'), + ], default=False, help="Technical field for UX purpose.") + is_rounding_line = fields.Boolean(help="Technical field used to retrieve the cash rounding line.") + exclude_from_invoice_tab = fields.Boolean(help="Technical field used to exclude some lines from the invoice_line_ids tab in the form view.") + always_set_currency_id = fields.Many2one('res.currency', string='Foreign Currency', + compute='_compute_always_set_currency_id', + help="Technical field used to compute the monetary field. As currency_id is not a required field, we need to use either the foreign currency, either the company one.") + + _sql_constraints = [ + ( + 'check_credit_debit', + 'CHECK(credit + debit>=0 AND credit * debit=0)', + 'Wrong credit or debit value in accounting entry !' + ), + ( + 'check_accountable_required_fields', + "CHECK(display_type IN ('line_section', 'line_note') OR account_id IS NOT NULL)", + "Missing required account on accountable invoice line." + ), + ( + 'check_non_accountable_fields_null', + "CHECK(display_type NOT IN ('line_section', 'line_note') OR (amount_currency = 0 AND debit = 0 AND credit = 0 AND account_id IS NULL))", + "Forbidden unit price, account and quantity on non-accountable invoice line" + ), + ( + 'check_amount_currency_balance_sign', + '''CHECK( + currency_id IS NULL + OR + company_currency_id IS NULL + OR + ( + (currency_id != company_currency_id) + AND + ( + (balance > 0 AND amount_currency > 0) + OR (balance <= 0 AND amount_currency <= 0) + OR (balance >= 0 AND amount_currency >= 0) + ) + ) + )''', + "The amount expressed in the secondary currency must be positive when account is debited and negative when account is credited." + ), + ] + + # ------------------------------------------------------------------------- + # HELPERS + # ------------------------------------------------------------------------- - @api.onchange('debit', 'credit', 'tax_ids', 'analytic_account_id', 'analytic_tag_ids') - def onchange_tax_ids_create_aml(self): + @api.model + def _get_default_tax_account(self, repartition_line): + tax = repartition_line.invoice_tax_id or repartition_line.refund_tax_id + if tax.tax_exigibility == 'on_payment': + account = tax.cash_basis_transition_account_id + else: + account = repartition_line.account_id + return account + + @api.multi + def _get_computed_name(self): + self.ensure_one() + + if not self.product_id: + return '' + + if self.partner_id.lang: + product = self.product_id.with_context(lang=self.partner_id.lang) + else: + product = self.product_id + + values = [] + if product.partner_ref: + values.append(product.partner_ref) + if self.journal_id.type == 'sale': + if product.description_sale: + values.append(product.description_sale) + elif self.journal_id.type == 'purchase': + if product.description_purchase: + values.append(product.description_purchase) + return '\n'.join(values) + + @api.multi + def _get_computed_price_unit(self): + self.ensure_one() + + if not self.product_id: + return self.price_unit + elif self.move_id.is_sale_document(include_receipts=True): + # Out invoice. + price_unit = self.product_id.lst_price + elif self.move_id.is_purchase_document(include_receipts=True): + # In invoice. + price_unit = self.product_id.standard_price + else: + return self.price_unit + + if self.product_uom_id != self.product_id.uom_id: + price_unit = self.product_id.uom_id._compute_price(price_unit, self.product_uom_id) + + company = self.move_id.company_id + if self.move_id.currency_id != company.currency_id: + price_unit = company.currency_id._convert( + price_unit, self.move_id.currency_id, company, self.move_id.date) + return price_unit + + @api.multi + def _get_computed_account(self): + self.ensure_one() + + if not self.product_id: + return + + fiscal_position = self.move_id.fiscal_position_id + accounts = self.product_id.product_tmpl_id.get_product_accounts(fiscal_pos=fiscal_position) + if self.move_id.is_sale_document(include_receipts=True): + # Out invoice. + return accounts['income'] + elif self.move_id.is_purchase_document(include_receipts=True): + # In invoice. + return accounts['expense'] + + @api.multi + def _get_computed_taxes(self): + self.ensure_one() + + if self.move_id.is_sale_document(include_receipts=True): + # Out invoice. + if self.product_id.taxes_id: + tax_ids = self.product_id.taxes_id.filtered(lambda tax: tax.company_id == self.move_id.company_id) + elif self.account_id.tax_ids: + tax_ids = self.account_id.tax_ids + else: + tax_ids = self.env['account.tax'] + if not tax_ids and not self.exclude_from_invoice_tab: + tax_ids = self.move_id.company_id.account_sale_tax_id + elif self.move_id.is_purchase_document(include_receipts=True): + # In invoice. + if self.product_id.supplier_taxes_id: + tax_ids = self.product_id.supplier_taxes_id.filtered(lambda tax: tax.company_id == self.move_id.company_id) + elif self.account_id.tax_ids: + tax_ids = self.account_id.tax_ids + else: + tax_ids = self.env['account.tax'] + if not tax_ids and not self.exclude_from_invoice_tab: + tax_ids = self.move_id.company_id.account_purchase_tax_id + else: + # Miscellaneous operation. + tax_ids = self.account_id.tax_ids + + if self.company_id: + tax_ids = tax_ids.filtered(lambda tax: tax.company_id == self.company_id) + + fiscal_position = self.move_id.fiscal_position_id + if tax_ids and fiscal_position: + return fiscal_position.map_tax(tax_ids, partner=self.partner_id) + else: + return tax_ids + + @api.multi + def _get_computed_uom(self): + self.ensure_one() + if self.product_id: + return self.product_id.uom_id + return False + + @api.multi + def _get_price_total_and_subtotal(self, price_unit=None, quantity=None, discount=None, currency=None, product=None, partner=None, taxes=None, move_type=None): + self.ensure_one() + return self._get_price_total_and_subtotal_model( + price_unit=price_unit or self.price_unit, + quantity=quantity or self.quantity, + discount=discount or self.discount, + currency=currency or self.currency_id, + product=product or self.product_id, + partner=partner or self.partner_id, + taxes=taxes or self.tax_ids, + move_type=move_type or self.move_id.type, + ) + + @api.model + def _get_price_total_and_subtotal_model(self, price_unit, quantity, discount, currency, product, partner, taxes, move_type): + ''' This method is used to compute 'price_total' & 'price_subtotal'. + + :param price_unit: The current price unit. + :param quantity: The current quantity. + :param discount: The current discount. + :param currency: The line's currency. + :param product: The line's product. + :param partner: The line's partner. + :param taxes: The applied taxes. + :param move_type: The type of the move. + :return: A dictionary containing 'price_subtotal' & 'price_total'. + ''' + res = {} + + # Compute 'price_subtotal'. + price_unit_wo_discount = price_unit * (1 - (discount / 100.0)) + subtotal = quantity * price_unit_wo_discount + + # Compute 'price_total'. + if taxes: + taxes_res = taxes._origin.compute_all(price_unit_wo_discount, + quantity=quantity, currency=currency, product=product, partner=partner, is_refund=move_type in ('out_refund', 'in_refund')) + res['price_subtotal'] = taxes_res['total_excluded'] + res['price_total'] = taxes_res['total_included'] + else: + res['price_total'] = res['price_subtotal'] = subtotal + return res + + @api.multi + def _get_fields_onchange_subtotal(self, price_subtotal=None, move_type=None, currency=None, company=None, date=None): + self.ensure_one() + return self._get_fields_onchange_subtotal_model( + price_subtotal=price_subtotal or self.price_subtotal, + move_type=move_type or self.move_id.type, + currency=currency or self.currency_id, + company=company or self.move_id.company_id, + date=date or self.move_id.date, + ) + + @api.model + def _get_fields_onchange_subtotal_model(self, price_subtotal, move_type, currency, company, date): + ''' This method is used to recompute the values of 'amount_currency', 'debit', 'credit' due to a change made + in some business fields (affecting the 'price_subtotal' field). + + :param price_subtotal: The untaxed amount. + :param move_type: The type of the move. + :param currency: The line's currency. + :param company: The move's company. + :param date: The move's date. + :return: A dictionary containing 'debit', 'credit', 'amount_currency'. + ''' + if move_type in self.move_id.get_outbound_types(): + sign = 1 + elif move_type in self.move_id.get_inbound_types(): + sign = -1 + else: + sign = 1 + price_subtotal *= sign + + if currency and currency != company.currency_id: + # Multi-currencies. + balance = currency._convert(price_subtotal, company.currency_id, company, date) + return { + 'amount_currency': price_subtotal, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + } + else: + # Single-currency. + return { + 'amount_currency': 0.0, + 'debit': price_subtotal > 0.0 and price_subtotal or 0.0, + 'credit': price_subtotal < 0.0 and -price_subtotal or 0.0, + } + + @api.multi + def _get_fields_onchange_balance(self, quantity=None, discount=None, balance=None, move_type=None, currency=None, taxes=None): + self.ensure_one() + return self._get_fields_onchange_balance_model( + quantity=quantity or self.quantity, + discount=discount or self.discount, + balance=balance or self.balance, + move_type=move_type or self.move_id.type, + currency=currency or self.currency_id, + taxes=taxes or self.tax_ids, + ) + + @api.model + def _get_fields_onchange_balance_model(self, quantity, discount, balance, move_type, currency, taxes): + ''' This method is used to recompute the values of 'quantity', 'discount', 'price_unit' due to a change made + in some accounting fields such as 'balance'. + + This method is a bit complex as we need to handle some special cases. + For example, setting a positive balance with a 100% discount. + + :param quantity: The current quantity. + :param discount: The current discount. + :param balance: The new balance. + :param move_type: The type of the move. + :param currency: The currency. + :param taxes: The applied taxes. + :return: A dictionary containing 'quantity', 'discount', 'price_unit'. + ''' + if move_type in self.move_id.get_outbound_types(): + sign = 1 + elif move_type in self.move_id.get_inbound_types(): + sign = -1 + else: + sign = 1 + balance *= sign + + taxes = taxes.flatten_taxes_hierarchy() + if taxes and any(tax.price_include for tax in taxes): + # Inverse taxes. E.g: + # + # Price Unit | Taxes | Originator Tax |Price Subtotal | Price Total + # ----------------------------------------------------------------------------------- + # 110 | 10% incl, 5% | | 100 | 115 + # 10 | | 10% incl | 10 | 10 + # 5 | | 5% | 5 | 5 + # + # When setting the balance to -200, the expected result is: + # + # Price Unit | Taxes | Originator Tax |Price Subtotal | Price Total + # ----------------------------------------------------------------------------------- + # 220 | 10% incl, 5% | | 200 | 230 + # 20 | | 10% incl | 20 | 20 + # 10 | | 5% | 10 | 10 + taxes_res = taxes._origin.compute_all(balance, currency=currency, handle_price_include=False) + for tax_res in taxes_res['taxes']: + tax = self.env['account.tax'].browse(tax_res['id']) + if tax.price_include: + balance += tax_res['amount'] + + discount_factor = 1 - (discount / 100.0) + if balance and discount_factor: + # discount != 100% + vals = { + 'quantity': quantity or 1.0, + 'price_unit': balance / discount_factor / (quantity or 1.0), + } + elif balance and not discount_factor: + # discount == 100% + vals = { + 'quantity': quantity or 1.0, + 'discount': 0.0, + 'price_unit': balance / (quantity or 1.0), + } + else: + vals = {} + return vals + + # ------------------------------------------------------------------------- + # ONCHANGE METHODS + # ------------------------------------------------------------------------- + + @api.onchange('amount_currency', 'currency_id', 'debit', 'credit', 'tax_ids', 'account_id', 'analytic_account_id', 'analytic_tag_ids') + def _onchange_mark_recompute_taxes(self): + ''' Recompute the dynamic onchange based on taxes. + If the edited line is a tax line, don't recompute anything as the user must be able to + set a custom value. + ''' for line in self: - line.recompute_tax_line = True + if not line.tax_repartition_line_id: + line.recompute_tax_line = True + + @api.onchange('product_id') + def _onchange_product_id(self): + for line in self: + if not line.product_id or line.display_type in ('line_section', 'line_note'): + continue + + line.name = line._get_computed_name() + line.account_id = line._get_computed_account() + line.tax_ids = line._get_computed_taxes() + line.product_uom_id = line._get_computed_uom() + line.price_unit = line._get_computed_price_unit() + + if len(self) == 1: + return {'domain': {'product_uom_id': [('category_id', '=', self.product_uom_id.category_id.id)]}} + + @api.onchange('product_uom_id') + def _onchange_uom_id(self): + ''' Recompute the 'price_unit' depending of the unit of measure. ''' + self.price_unit = self._get_computed_price_unit() + + @api.onchange('account_id') + def _onchange_account_id(self): + ''' Recompute 'tax_ids' based on 'account_id'. ''' + if not self.display_type in ('line_section', 'line_note'): + self.tax_ids = self._get_computed_taxes() + + @api.multi + def _onchange_balance(self): + for line in self: + if line.currency_id: + continue + if not line.move_id.is_invoice(include_receipts=True): + continue + line.update(line._get_fields_onchange_balance()) + line.update(line._get_price_total_and_subtotal()) @api.onchange('debit') def _onchange_debit(self): - self.ensure_one() - if self.debit != 0: - self.credit = 0 + if self.debit: + self.credit = 0.0 + self._onchange_balance() @api.onchange('credit') def _onchange_credit(self): - self.ensure_one() - if self.credit != 0: - self.debit = 0 + if self.credit: + self.debit = 0.0 + self._onchange_balance() - @api.model_cr - def init(self): - """ change index on partner_id to a multi-column index on (partner_id, ref), the new index will behave in the - same way when we search on partner_id, with the addition of being optimal when having a query that will - search on partner_id and ref at the same time (which is the case when we open the bank reconciliation widget) - """ - cr = self._cr - cr.execute('DROP INDEX IF EXISTS account_move_line_partner_id_index') - cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('account_move_line_partner_id_ref_idx',)) - if not cr.fetchone(): - cr.execute('CREATE INDEX account_move_line_partner_id_ref_idx ON account_move_line (partner_id, ref)') + @api.onchange('amount_currency') + def _onchange_amount_currency(self): + for line in self: + if not line.currency_id: + continue + if not line.move_id.is_invoice(include_receipts=True): + continue + line.update(line._get_fields_onchange_balance( + balance=line.amount_currency, + )) + line.update(line._get_price_total_and_subtotal()) + + @api.onchange('quantity', 'discount', 'price_unit', 'tax_ids') + def _onchange_price_subtotal(self): + for line in self: + if not line.move_id.is_invoice(include_receipts=True): + continue + + line.update(line._get_price_total_and_subtotal()) + line.update(line._get_fields_onchange_subtotal()) + + @api.onchange('currency_id') + def _onchange_currency(self): + for line in self: + if line.move_id.is_invoice(include_receipts=True): + line._onchange_price_subtotal() + + # ------------------------------------------------------------------------- + # COMPUTE METHODS + # ------------------------------------------------------------------------- + + @api.depends('currency_id') + def _compute_always_set_currency_id(self): + for line in self: + line.always_set_currency_id = line.currency_id or line.company_currency_id + + @api.depends('debit', 'credit') + def _compute_balance(self): + for line in self: + line.balance = line.debit - line.credit @api.depends('debit', 'credit', 'amount_currency', 'currency_id', 'matched_debit_ids', 'matched_credit_ids', 'matched_debit_ids.amount', 'matched_credit_ids.amount', 'move_id.state') def _amount_residual(self): @@ -601,163 +2677,9 @@ class AccountMoveLine(models.Model): reconciled = True line.reconciled = reconciled - line.amount_residual = line.company_id.currency_id.round(amount * sign) + line.amount_residual = line.move_id.company_id.currency_id.round(amount * sign) line.amount_residual_currency = line.currency_id and line.currency_id.round(amount_residual_currency * sign) or 0.0 - @api.depends('debit', 'credit') - def _store_balance(self): - for line in self: - line.balance = line.debit - line.credit - - @api.model - def _get_currency(self): - currency = False - context = self._context or {} - if context.get('default_journal_id', False): - currency = self.env['account.journal'].browse(context['default_journal_id']).currency_id - return currency - - @api.depends('move_id') - def _compute_parent_state(self): - for record in self.filtered('move_id'): - record.parent_state = record.move_id.state - - name = fields.Char(string="Label") - move_name = fields.Char(string='Number', related='move_id.name', store=True, index=True) - quantity = fields.Float(digits=dp.get_precision('Product Unit of Measure'), - help="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.") - product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure') - product_id = fields.Many2one('product.product', string='Product') - debit = fields.Monetary(default=0.0, currency_field='company_currency_id') - credit = fields.Monetary(default=0.0, currency_field='company_currency_id') - balance = fields.Monetary(compute='_store_balance', store=True, currency_field='company_currency_id', - help="Technical field holding the debit - credit in order to open meaningful graph views from reports") - amount_currency = fields.Monetary(default=0.0, help="The amount expressed in an optional other currency if it is a multi-currency entry.") - company_currency_id = fields.Many2one('res.currency', related='company_id.currency_id', string="Company Currency", readonly=True, - help='Utility field to express amount currency', store=True) - currency_id = fields.Many2one('res.currency', string='Currency', default=_get_currency, - help="The optional other currency if it is a multi-currency entry.") - amount_residual = fields.Monetary(compute='_amount_residual', string='Residual Amount', store=True, currency_field='company_currency_id', - help="The residual amount on a journal item expressed in the company currency.") - amount_residual_currency = fields.Monetary(compute='_amount_residual', string='Residual Amount in Currency', store=True, - help="The residual amount on a journal item expressed in its currency (possibly not the company currency).") - tax_base_amount = fields.Monetary(string="Base Amount", currency_field='company_currency_id') - account_id = fields.Many2one('account.account', string='Account', required=True, index=True, - ondelete="cascade", domain=[('deprecated', '=', False)], default=lambda self: self._context.get('account_id', False)) - move_id = fields.Many2one('account.move', string='Journal Entry', ondelete="cascade", - help="The move of this entry line.", index=True, required=True, auto_join=True) - narration = fields.Text(related='move_id.narration', string='Narration', readonly=False) - ref = fields.Char(related='move_id.ref', string='Reference', store=True, copy=False, index=True, readonly=False) - payment_id = fields.Many2one('account.payment', string="Originator Payment", help="Payment that created this entry", copy=False) - statement_line_id = fields.Many2one('account.bank.statement.line', index=True, string='Bank statement line reconciled with this entry', copy=False, readonly=True) - statement_id = fields.Many2one('account.bank.statement', related='statement_line_id.statement_id', string='Statement', store=True, - help="The bank statement used for bank reconciliation", index=True, copy=False) - reconciled = fields.Boolean(compute='_amount_residual', store=True) - reconcile_model_id = fields.Many2one('account.reconcile.model', string="Reconciliation Model", copy=False) - full_reconcile_id = fields.Many2one('account.full.reconcile', string="Matching Number", copy=False, index=True) - matched_debit_ids = fields.One2many('account.partial.reconcile', 'credit_move_id', String='Matched Debits', - help='Debit journal items that are matched with this journal item.') - matched_credit_ids = fields.One2many('account.partial.reconcile', 'debit_move_id', String='Matched Credits', - help='Credit journal items that are matched with this journal item.') - journal_id = fields.Many2one('account.journal', related='move_id.journal_id', string='Journal', readonly=False, - index=True, store=True, copy=False) # related is required - blocked = fields.Boolean(string='No Follow-up', default=False, - help="You can check this box to mark this journal item as a litigation with the associated partner") - date_maturity = fields.Date(string='Due date', index=True, required=True, copy=False, - help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.") - date = fields.Date(related='move_id.date', string='Date', index=True, store=True, copy=False, readonly=False) # related is required - analytic_line_ids = fields.One2many('account.analytic.line', 'move_id', string='Analytic lines', oldname="analytic_lines") - tax_ids = fields.Many2many('account.tax', string='Taxes', domain=['|', ('active', '=', False), ('active', '=', True)]) - tax_line_id = fields.Many2one('account.tax', string='Originator tax', ondelete='restrict', compute='_compute_tax_line_id', store=True) - tax_repartition_line_id = fields.Many2one(comodel_name='account.tax.repartition.line', string="Originator Tax Repartition Line", ondelete='restrict', help="Tax repartition line that caused the creation of this move line, if any") - analytic_account_id = fields.Many2one('account.analytic.account', string='Analytic Account', index=True) - analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags') - company_id = fields.Many2one('res.company', related='account_id.company_id', string='Company', store=True, readonly=True) - - # TODO: put the invoice link and partner_id on the account_move - invoice_id = fields.Many2one('account.invoice', oldname="invoice") - partner_id = fields.Many2one('res.partner', string='Partner', ondelete='restrict') - tax_exigible = fields.Boolean(string='Appears in VAT report', default=True, - help="Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the feature cash_basis on taxes, some will become exigible only when the payment is recorded.") - parent_state = fields.Char(compute="_compute_parent_state", help="State of the parent account.move") - - recompute_tax_line = fields.Boolean(store=False, help="Technical field used to know if the tax_ids field has been modified in the UI.") - tax_line_grouping_key = fields.Char(store=False, string='Old Taxes', help="Technical field used to store the old values of fields used to compute tax lines (in account.move form view) between the moment the user changed it and the moment the ORM reflects that change in its one2many") - tag_ids = fields.Many2many(string="Tags", comodel_name='account.account.tag', ondelete='restrict', help="Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.") - tax_audit = fields.Char(string="Tax Audit String", compute="_compute_tax_audit", store=True, help="Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.") - - _sql_constraints = [ - ('credit_debit1', 'CHECK (credit*debit=0)', 'Wrong credit or debit value in accounting entry! Credit or debit should be zero.'), - ('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in accounting entry! Credit and debit should be positive.'), - ] - - @api.model - def default_get(self, fields): - rec = super(AccountMoveLine, self).default_get(fields) - if 'line_ids' not in self._context or "account_move_line_default_get" in self._context: - return rec - if {'debit', 'credit', 'partner_id', 'account_id'}.isdisjoint(fields): - return rec - # compute the default credit/debit of the next line in case of a manual entry - move = self.env['account.move'].with_context(account_move_line_default_get=True).new({'line_ids': self._context['line_ids']}) - balance = 0 - for line in move.line_ids: - balance += line.debit - line.credit - if balance < 0: - rec.update({'debit': -balance}) - if balance > 0: - rec.update({'credit': balance}) - - # Set the partner/account to the same value as the two last lines if they are equal - if len(move.line_ids) > 1: - last_lines = move.line_ids[-2:] - if last_lines[0].account_id == last_lines[1].account_id: - rec['account_id'] = last_lines[0].account_id.id - if last_lines[0].partner_id == last_lines[1].partner_id: - rec['partner_id'] = last_lines[0].partner_id.id - - return rec - - @api.multi - @api.constrains('tax_ids', 'tax_line_id') - def _check_tax_lock_date1(self): - for line in self: - if line.date <= (line.company_id.tax_lock_date or date.min): - raise ValidationError(_("The operation is refused as it would impact an already issued tax statement. " + - "Please change the journal entry date or the tax lock date set in the settings ({}) to proceed").format(line.company_id.tax_lock_date or date.min)) - - @api.multi - @api.constrains('credit', 'debit', 'date') - def _check_tax_lock_date2(self): - for line in self: - if (line.tax_ids or line.tax_line_id) and line.date <= (line.company_id.tax_lock_date or date.min): - raise ValidationError(_("The operation is refused as it would impact an already issued tax statement. " + - "Please change the journal entry date or the tax lock date set in the settings ({}) to proceed").format(line.company_id.tax_lock_date or date.min)) - - @api.multi - @api.constrains('currency_id', 'account_id') - def _check_currency(self): - for line in self: - account_currency = line.account_id.currency_id - if account_currency and account_currency != line.company_id.currency_id: - if not line.currency_id or line.currency_id != account_currency: - raise ValidationError(_('The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account.')) - - @api.multi - @api.constrains('currency_id', 'amount_currency') - def _check_currency_and_amount(self): - for line in self: - if (line.amount_currency and not line.currency_id): - raise ValidationError(_("You cannot create journal items with a secondary currency without filling both 'currency' and 'amount currency' fields.")) - - @api.multi - @api.constrains('amount_currency', 'debit', 'credit') - def _check_currency_amount(self): - for line in self: - if line.amount_currency: - if (line.amount_currency > 0.0 and line.credit > 0.0) or (line.amount_currency < 0.0 and line.debit > 0.0): - raise ValidationError(_('The amount expressed in the secondary currency must be positive when account is debited and negative when account is credited.')) - @api.depends('tax_repartition_line_id.invoice_tax_id', 'tax_repartition_line_id.refund_tax_id') def _compute_tax_line_id(self): """ tax_line_id is computed as the tax linked to the repartition line creating @@ -774,7 +2696,7 @@ class AccountMoveLine(models.Model): unaffected_earnings_type = self.env.ref("account.data_unaffected_earnings") record.is_unaffected_earnings_line = unaffected_earnings_type == record.account_id.user_type_id - @api.depends('tag_ids', 'debit', 'credit', 'journal_id', 'invoice_id') + @api.depends('tag_ids', 'debit', 'credit', 'journal_id') def _compute_tax_audit(self): separator = ' ' @@ -782,7 +2704,7 @@ class AccountMoveLine(models.Model): currency = record.company_id.currency_id audit_str = '' for tag in record.tag_ids: - tag_amount = (tag.tax_negate and -1 or 1) * (record.journal_id.type == 'sale' and -1 or 1) * (record.invoice_id.type in ('in_refund', 'out_refund') and -1 or 1) * record.balance + tag_amount = (tag.tax_negate and -1 or 1) * (record.move_id.is_outbound() and -1 or 1) * record.balance if tag.tax_report_line_ids: #Then, the tag comes from a report line, and hence has a + or - sign (also in its name) @@ -796,24 +2718,279 @@ class AccountMoveLine(models.Model): record.tax_audit = audit_str - @api.onchange('amount_currency', 'currency_id', 'account_id') - def _onchange_amount_currency(self): - '''Recompute the debit/credit based on amount_currency/currency_id and date. - However, date is a related field on account.move. Then, this onchange will not be triggered - by the form view by changing the date on the account.move. - To fix this problem, see _onchange_date method on account.move. - ''' + # ------------------------------------------------------------------------- + # CONSTRAINT METHODS + # ------------------------------------------------------------------------- + + @api.constrains('account_id') + def _check_constrains_account_id(self): for line in self: - company_currency_id = line.account_id.company_id.currency_id - amount = line.amount_currency - if line.currency_id and company_currency_id and line.currency_id != company_currency_id: - amount = line.currency_id._convert(amount, company_currency_id, line.company_id, line.date or fields.Date.today()) - line.debit = amount > 0 and amount or 0.0 - line.credit = amount < 0 and -amount or 0.0 + account = line.account_id + journal = line.journal_id - #################################################### - # Reconciliation methods - #################################################### + if account.deprecated: + raise UserError(_('The account %s (%s) is deprecated.') % (account.name, account.code)) + + control_type_failed = journal.type_control_ids and account.user_type_id not in journal.type_control_ids + control_account_failed = journal.account_control_ids and account not in journal.account_control_ids + if control_type_failed or control_account_failed: + raise UserError(_('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.')) + + @api.constrains('tax_ids', 'tax_line_id') + def _check_tax_lock_date1(self): + for line in self: + if line.date <= (line.company_id.tax_lock_date or date.min): + raise ValidationError( + _("The operation is refused as it would impact an already issued tax statement. " + + "Please change the journal entry date or the tax lock date set in the settings ({}) to proceed").format( + line.company_id.tax_lock_date or date.min)) + + @api.constrains('credit', 'debit', 'date') + def _check_tax_lock_date2(self): + for line in self: + if (line.tax_ids or line.tax_line_id) and line.date <= (line.company_id.tax_lock_date or date.min): + raise ValidationError( + _("The operation is refused as it would impact an already issued tax statement. " + + "Please change the journal entry date or the tax lock date set in the settings ({}) to proceed").format( + line.company_id.tax_lock_date or date.min)) + + @api.multi + def _update_check(self): + """ Raise Warning to cause rollback if the move is posted, some entries are reconciled or the move is older than the lock date""" + move_ids = set() + for line in self: + err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id)) + if line.move_id.state != 'draft': + raise UserError(_('You cannot do this modification on a posted journal entry, you can just change some non legal fields. You must revert the journal entry to cancel it.\n%s.') % err_msg) + if line.reconciled and not (line.debit == 0 and line.credit == 0): + raise UserError(_('You cannot do this modification on a reconciled entry. You can just change some non legal fields or you must unreconcile first.\n%s.') % err_msg) + if line.move_id.id not in move_ids: + move_ids.add(line.move_id.id) + self.env['account.move'].browse(list(move_ids))._check_fiscalyear_lock_date() + return True + + # ------------------------------------------------------------------------- + # LOW-LEVEL METHODS + # ------------------------------------------------------------------------- + + @api.model_cr + def init(self): + """ change index on partner_id to a multi-column index on (partner_id, ref), the new index will behave in the + same way when we search on partner_id, with the addition of being optimal when having a query that will + search on partner_id and ref at the same time (which is the case when we open the bank reconciliation widget) + """ + cr = self._cr + cr.execute('DROP INDEX IF EXISTS account_move_line_partner_id_index') + cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('account_move_line_partner_id_ref_idx',)) + if not cr.fetchone(): + cr.execute('CREATE INDEX account_move_line_partner_id_ref_idx ON account_move_line (partner_id, ref)') + + @api.model_create_multi + def create(self, vals_list): + # OVERRIDE + ACCOUNTING_FIELDS = ('debit', 'credit', 'amount_currency') + BUSINESS_FIELDS = ('price_unit', 'quantity', 'discount', 'tax_ids') + + for vals in vals_list: + move = self.env['account.move'].browse(vals['move_id']) + + if move.is_invoice(include_receipts=True): + currency = self.env['res.currency'].browse(vals.get('currency_id')) + partner = self.env['res.partner'].browse(vals.get('partner_id')) + taxes = self.resolve_2many_commands('tax_ids', vals.get('tax_ids', []), fields=['id']) + tax_ids = set(tax['id'] for tax in taxes) + taxes = self.env['account.tax'].browse(tax_ids) + + # Ensure consistency between accounting & business fields. + # As we can't express such synchronization as computed fields without cycling, we need to do it both + # in onchange and in create/write. So, if something changed in accounting [resp. business] fields, + # business [resp. accounting] fields are recomputed. + if any(vals.get(field) for field in ACCOUNTING_FIELDS): + if vals.get('currency_id'): + balance = vals.get('amount_currency', 0.0) + else: + balance = vals.get('debit', 0.0) - vals.get('credit', 0.0) + vals.update(self._get_fields_onchange_balance_model( + vals.get('quantity', 0.0), + vals.get('discount', 0.0), + balance, + move.type, + currency, + taxes + )) + vals.update(self._get_price_total_and_subtotal_model( + vals.get('price_unit', 0.0), + vals.get('quantity', 0.0), + vals.get('discount', 0.0), + currency, + self.env['product.product'].browse(vals.get('product_id')), + partner, + taxes, + move.type, + )) + elif any(vals.get(field) for field in BUSINESS_FIELDS): + vals.update(self._get_price_total_and_subtotal_model( + vals.get('price_unit', 0.0), + vals.get('quantity', 0.0), + vals.get('discount', 0.0), + currency, + self.env['product.product'].browse(vals.get('product_id')), + partner, + taxes, + move.type, + )) + vals.update(self._get_fields_onchange_subtotal_model( + vals['price_subtotal'], + move.type, + currency, + move.company_id, + move.date, + )) + + # Ensure consistency between taxes & tax exigibility fields. + if 'tax_exigible' in vals: + continue + if vals.get('tax_repartition_line_id'): + repartition_line = self.env['account.tax.repartition.line'].browse(vals['tax_repartition_line_id']) + tax = repartition_line.invoice_tax_id or repartition_line.refund_tax_id + vals['tax_exigible'] = tax.tax_exigibility == 'on_invoice' + elif vals.get('tax_ids'): + taxes = self.resolve_2many_commands('tax_ids', vals['tax_ids']) + vals['tax_exigible'] = not any([tax['tax_exigibility'] == 'on_payment' for tax in taxes]) + + lines = super(AccountMoveLine, self).create(vals_list) + + # Check the move is balanced debit = credit. + if self._context.get('check_move_validity', True): + lines.mapped('move_id')._check_move_consistency() + + return lines + + @api.multi + def write(self, vals): + # OVERRIDE + ACCOUNTING_FIELDS = ('debit', 'credit', 'amount_currency') + BUSINESS_FIELDS = ('price_unit', 'quantity', 'discount', 'tax_ids') + + if ('account_id' in vals) and self.env['account.account'].browse(vals['account_id']).deprecated: + raise UserError(_('You cannot use a deprecated account.')) + if any(key in vals for key in ('account_id', 'journal_id', 'date', 'move_id', 'debit', 'credit')): + self._update_check() + if not self._context.get('allow_amount_currency') and any( + key in vals for key in ('amount_currency', 'currency_id')): + # hackish workaround to write the amount_currency when assigning a payment to an invoice through the 'add' button + # this is needed to compute the correct amount_residual_currency and potentially create an exchange difference entry + self._update_check() + # when making a reconciliation on an existing liquidity journal item, mark the payment as reconciled + for record in self: + if 'statement_line_id' in vals and record.payment_id: + # In case of an internal transfer, there are 2 liquidity move lines to match with a bank statement + if all(line.statement_id for line in record.payment_id.move_line_ids.filtered( + lambda r: r.id != record.id and r.account_id.internal_type == 'liquidity')): + record.payment_id.state = 'reconciled' + + result = super(AccountMoveLine, self).write(vals) + + for line in self: + if not line.move_id.is_invoice(include_receipts=True): + continue + + # Ensure consistency between accounting & business fields. + # As we can't express such synchronization as computed fields without cycling, we need to do it both + # in onchange and in create/write. So, if something changed in accounting [resp. business] fields, + # business [resp. accounting] fields are recomputed. + if any(field in vals for field in ACCOUNTING_FIELDS): + price_subtotal = line.currency_id and line.amount_currency or line.debit - line.credit + to_write = line._get_fields_onchange_balance( + balance=price_subtotal, + ) + to_write.update(line._get_price_total_and_subtotal( + price_unit=to_write.get('price_unit', line.price_unit), + quantity=to_write.get('quantity', line.quantity), + discount=to_write.get('discount', line.discount), + )) + super(AccountMoveLine, line).write(to_write) + elif any(field in vals for field in BUSINESS_FIELDS): + to_write = self._get_price_total_and_subtotal() + to_write.update(line._get_fields_onchange_subtotal( + price_subtotal=to_write['price_subtotal'], + )) + super(AccountMoveLine, line).write(to_write) + + if self._context.get('check_move_validity', True) and any(key in vals for key in ('account_id', 'journal_id', 'date', 'move_id', 'debit', 'credit')): + self.env['account.move'].browse(self.mapped('move_id.id'))._check_move_consistency() + + return result + + @api.multi + def unlink(self): + self._update_check() + self._check_tax_lock_date2() + move_ids = set() + for line in self: + if line.move_id.id not in move_ids: + move_ids.add(line.move_id.id) + result = super(AccountMoveLine, self).unlink() + if self._context.get('check_move_validity', True) and move_ids: + self.env['account.move'].browse(list(move_ids))._check_move_consistency() + return result + + @api.model + def default_get(self, default_fields): + # OVERRIDE + values = super(AccountMoveLine, self).default_get(default_fields) + + if 'account_id' in default_fields \ + and (self._context.get('journal_id') or self._context.get('default_journal_id')) \ + and not values.get('account_id') \ + and self._context.get('default_type') in self.move_id.get_inbound_types(): + # Fill missing 'account_id'. + journal = self.env['account.journal'].browse(self._context.get('default_journal_id') or self._context['journal_id']) + values['account_id'] = journal.default_credit_account_id.id + elif 'account_id' in default_fields \ + and (self._context.get('journal_id') or self._context.get('default_journal_id')) \ + and not values.get('account_id') \ + and self._context.get('default_type') in self.move_id.get_outbound_types(): + # Fill missing 'account_id'. + journal = self.env['account.journal'].browse(self._context.get('default_journal_id') or self._context['journal_id']) + values['account_id'] = journal.default_debit_account_id.id + elif self._context.get('line_ids') and any(field_name in default_fields for field_name in ('debit', 'credit', 'account_id', 'partner_id')): + move = self.env['account.move'].new({'line_ids': self._context['line_ids']}) + + # Suggest default value for debit / credit to balance the journal entry. + balance = sum(line['debit'] - line['credit'] for line in move.line_ids) + if balance < 0.0: + values.update({'debit': -balance}) + if balance > 0.0: + values.update({'credit': balance}) + + # Suggest default value for 'partner_id'. + if 'partner_id' in default_fields and not values.get('partner_id'): + partners = move.line_ids[-2:].mapped('partner_id') + if len(partners) == 1: + values['partner_id'] = partners.id + + # Suggest default value for 'account_id'. + if 'account_id' in default_fields and not values.get('account_id'): + accounts = move.line_ids[-2:].mapped('account_id') + if len(accounts) == 1: + values['account_id'] = accounts.id + return values + + @api.multi + @api.depends('ref', 'move_id') + def name_get(self): + result = [] + for line in self: + if line.ref: + result.append((line.id, (line.move_id.name or '') + '(' + line.ref + ')')) + else: + result.append((line.id, line.move_id.name)) + return result + + # ------------------------------------------------------------------------- + # RECONCILIATION + # ------------------------------------------------------------------------- @api.multi def check_full_reconcile(self): @@ -894,7 +3071,7 @@ class AccountMoveLine(models.Model): exchange_move_id = False # Eventually create a journal entry to book the difference due to foreign currency's exchange rate that fluctuates if to_balance and any([not float_is_zero(residual, precision_rounding=digits_rounding_precision) for aml, residual in to_balance.values()]): - exchange_move = self.env['account.move'].create( + exchange_move = self.env['account.move'].with_context(default_type='entry').create( self.env['account.full.reconcile']._prepare_exchange_diff_move(move_date=maxdate, company=amls[0].company_id)) part_reconcile = self.env['account.partial.reconcile'] for aml_to_balance, total in to_balance.values(): @@ -985,13 +3162,12 @@ class AccountMoveLine(models.Model): for after_rec_dict in cash_basis_subjected: new_rec = part_rec.create(after_rec_dict) # if the pair belongs to move being reverted, do not create CABA entry - if cash_basis and not (new_rec.debit_move_id + new_rec.credit_move_id).mapped('move_id').mapped('reverse_entry_id'): + if cash_basis and not (new_rec.debit_move_id + new_rec.credit_move_id).mapped('move_id.reversed_entry_id'): new_rec.create_tax_cash_basis_entry(cash_basis_percentage_before_rec) self.recompute() return debit_moves+credit_moves - @api.multi def auto_reconcile_lines(self): # Create list of debit and list of credit move ordered by date-currency @@ -1032,7 +3208,7 @@ class AccountMoveLine(models.Model): # Empty self can happen if the user tries to reconcile entries which are already reconciled. # The calling method might have filtered out reconciled lines. if not self: - return True + return self._check_reconcile_validity() #reconcile everything that can be @@ -1058,7 +3234,6 @@ class AccountMoveLine(models.Model): def _create_writeoff(self, writeoff_vals): """ Create a writeoff move per journal for the account.move.lines in self. If debit/credit is not specified in vals, the writeoff amount will be computed as the sum of amount_residual of the given recordset. - :param writeoff_vals: list of dicts containing values suitable for account_move_line.create(). The data in vals will be processed to create bot writeoff acount.move.line and their enclosing account.move. """ @@ -1138,208 +3313,38 @@ class AccountMoveLine(models.Model): 'line_ids': [(0, 0, line) for line in writeoff_lines], }) writeoff_moves += writeoff_move - # writeoff_move.post() - line_to_reconcile += writeoff_move.line_ids.filtered(lambda r: r.account_id == self[0].account_id).sorted(key='id')[-1:] + + #post all the writeoff moves at once if writeoff_moves: writeoff_moves.post() + # Return the writeoff move.line which is to be reconciled return line_to_reconcile @api.multi def remove_move_reconcile(self): """ Undo a reconciliation """ - if not self: - return True - rec_move_ids = self.env['account.partial.reconcile'] - for account_move_line in self: - account_move_line.reconcile_model_id = False - for invoice in account_move_line.payment_id.invoice_ids: - if invoice.id == self.env.context.get('invoice_id') and account_move_line in invoice.payment_move_line_ids: - account_move_line.payment_id.write({'invoice_ids': [(3, invoice.id, None)]}) - rec_move_ids += account_move_line.matched_debit_ids - rec_move_ids += account_move_line.matched_credit_ids - if self.env.context.get('invoice_id'): - current_invoice = self.env['account.invoice'].browse(self.env.context['invoice_id']) - aml_to_keep = current_invoice.move_id.line_ids | current_invoice.move_id.line_ids.mapped('full_reconcile_id.exchange_move_id.line_ids') - rec_move_ids = rec_move_ids.filtered( - lambda r: (r.debit_move_id + r.credit_move_id) & aml_to_keep - ) - return rec_move_ids.unlink() - - def _apply_taxes(self, vals, amount): - tax_lines_vals = [] - # Get ids from triplets : https://www.odoo.com/documentation/10.0/reference/orm.html#odoo.models.Model.write - tax_ids = [tax['id'] for tax in self.resolve_2many_commands('tax_ids', vals['tax_ids']) if tax.get('id')] - # Since create() receives ids instead of recordset, let's just use the old-api bridge - taxes = self.env['account.tax'].browse(tax_ids) - currency = self.env['res.currency'].browse(vals.get('currency_id')) - partner = self.env['res.partner'].browse(vals.get('partner_id')) - ctx = dict(self._context) - ctx['round'] = ctx.get('round', True) - res = taxes.with_context(ctx).compute_all(amount, - currency, 1, vals.get('product_id'), partner) - # Adjust line amount if any tax is price_include - if abs(res['total_excluded']) < abs(amount): - if vals['debit'] != 0.0: vals['debit'] = res['total_excluded'] - if vals['credit'] != 0.0: vals['credit'] = -res['total_excluded'] - if vals.get('amount_currency'): - vals['amount_currency'] = self.env['res.currency'].browse(vals['currency_id']).round(vals['amount_currency'] * (res['total_excluded']/amount)) - # Create tax lines - for tax_vals in res['taxes']: - if tax_vals['amount']: - tax = self.env['account.tax'].browse([tax_vals['id']]) - account_id = (amount > 0 and tax_vals['account_id'] or tax_vals['refund_account_id']) - if not account_id: account_id = vals['account_id'] - temp = { - 'account_id': account_id, - 'name': vals['name'] + ' ' + tax_vals['name'], - 'tax_line_id': tax_vals['id'], - 'move_id': vals['move_id'], - 'partner_id': vals.get('partner_id'), - 'statement_id': vals.get('statement_id'), - 'debit': tax_vals['amount'] > 0 and tax_vals['amount'] or 0.0, - 'credit': tax_vals['amount'] < 0 and -tax_vals['amount'] or 0.0, - 'analytic_account_id': vals.get('analytic_account_id') if tax.analytic else False, - } - bank = self.env["account.bank.statement.line"].browse(vals.get('statement_line_id')).statement_id - if bank.currency_id != bank.company_id.currency_id: - ctx = {} - if 'date' in vals: - ctx['date'] = vals['date'] - elif 'date_maturity' in vals: - ctx['date'] = vals['date_maturity'] - temp['currency_id'] = bank.currency_id.id - temp['amount_currency'] = bank.company_id.currency_id.with_context(ctx).compute(tax_vals['amount'], bank.currency_id, round=True) - if vals.get('tax_exigible'): - temp['tax_exigible'] = True - temp['account_id'] = tax.cash_basis_account.id or account_id - tax_lines_vals.append(temp) - return tax_lines_vals - - #################################################### - # CRUD methods - #################################################### - - @api.model_create_multi - def create(self, vals_list): - """ :context's key `check_move_validity`: check data consistency after move line creation. Eg. set to false to disable verification that the move - debit-credit == 0 while creating the move lines composing the move. - """ - for vals in vals_list: - amount = vals.get('debit', 0.0) - vals.get('credit', 0.0) - move = self.env['account.move'].browse(vals['move_id']) - account = self.env['account.account'].browse(vals['account_id']) - if account.deprecated: - raise UserError(_('The account %s (%s) is deprecated.') %(account.name, account.code)) - journal = vals.get('journal_id') and self.env['account.journal'].browse(vals['journal_id']) or move.journal_id - vals['date_maturity'] = vals.get('date_maturity') or vals.get('date') or move.date - - ok = ( - (not journal.type_control_ids and not journal.account_control_ids) - or account.user_type_id in journal.type_control_ids - or account in journal.account_control_ids - ) - if not ok: - raise UserError(_('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.')) - - # Automatically convert in the account's secondary currency if there is one and - # the provided values were not already multi-currency - if account.currency_id and 'amount_currency' not in vals and account.currency_id.id != account.company_id.currency_id.id: - vals['currency_id'] = account.currency_id.id - date = vals.get('date') or vals.get('date_maturity') or fields.Date.today() - vals['amount_currency'] = account.company_id.currency_id._convert(amount, account.currency_id, account.company_id, date) - - #Toggle the 'tax_exigible' field to False in case it is not yet given and the tax in 'tax_line_id' or one of - #the 'tax_ids' is a cash based tax. - taxes = False - if vals.get('tax_repartition_line_id'): - taxes = [{'tax_exigibility': self.env['account.tax.repartition.line'].browse(vals['tax_repartition_line_id']).tax_id.tax_exigibility}] - if vals.get('tax_ids'): - taxes = self.env['account.move.line'].resolve_2many_commands('tax_ids', vals['tax_ids']) - if taxes and any([tax['tax_exigibility'] == 'on_payment' for tax in taxes]) and not vals.get('tax_exigible'): - vals['tax_exigible'] = False - - lines = super(AccountMoveLine, self).create(vals_list) - - if self._context.get('check_move_validity', True): - lines.mapped('move_id')._post_validate() - - return lines - - @api.multi - def unlink(self): - self._update_check() - self._check_tax_lock_date2() - move_ids = set() - for line in self: - if line.move_id.id not in move_ids: - move_ids.add(line.move_id.id) - result = super(AccountMoveLine, self).unlink() - if self._context.get('check_move_validity', True) and move_ids: - self.env['account.move'].browse(list(move_ids))._post_validate() - return result + (self.mapped('matched_debit_ids') + self.mapped('matched_credit_ids')).unlink() @api.multi - def write(self, vals): - if ('account_id' in vals) and self.env['account.account'].browse(vals['account_id']).deprecated: - raise UserError(_('You cannot use a deprecated account.')) - if any(key in vals for key in ('account_id', 'journal_id', 'date', 'move_id', 'debit', 'credit')): - self._update_check() - if not self._context.get('allow_amount_currency') and any(key in vals for key in ('amount_currency', 'currency_id')): - #hackish workaround to write the amount_currency when assigning a payment to an invoice through the 'add' button - #this is needed to compute the correct amount_residual_currency and potentially create an exchange difference entry - self._update_check() - #when we set the expected payment date, log a note on the invoice_id related (if any) - if vals.get('expected_pay_date') and self.invoice_id: - str_expected_pay_date = vals['expected_pay_date'] - if isinstance(str_expected_pay_date, date): - str_expected_pay_date = fields.Date.to_string(str_expected_pay_date) - msg = _('New expected payment date: ') + str_expected_pay_date + '.\n' + vals.get('internal_note', '') - self.invoice_id.message_post(body=msg) #TODO: check it is an internal note (not a regular email)! - #when making a reconciliation on an existing liquidity journal item, mark the payment as reconciled - for record in self: - if 'statement_line_id' in vals and record.payment_id: - # In case of an internal transfer, there are 2 liquidity move lines to match with a bank statement - if all(line.statement_id for line in record.payment_id.move_line_ids.filtered(lambda r: r.id != record.id and r.account_id.internal_type=='liquidity')): - record.payment_id.state = 'reconciled' - - result = super(AccountMoveLine, self).write(vals) - if self._context.get('check_move_validity', True) and any(key in vals for key in ('account_id', 'journal_id', 'date', 'move_id', 'debit', 'credit')): - move_ids = set() - for line in self: - if line.move_id.id not in move_ids: - move_ids.add(line.move_id.id) - self.env['account.move'].browse(list(move_ids))._post_validate() - return result + def _copy_data_extend_business_fields(self, values): + ''' Hook allowing copying business fields under certain conditions. + E.g. The link to the sale order lines must be preserved in case of a refund. + ''' + self.ensure_one() @api.multi - def _update_check(self): - """ Raise Warning to cause rollback if the move is posted, some entries are reconciled or the move is older than the lock date""" - move_ids = set() - for line in self: - err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id)) - if line.reconciled and not (line.debit == 0 and line.credit == 0): - raise UserError(_('You cannot do this modification on a reconciled entry. You can just change some non legal fields or you must unreconcile first.\n%s.') % err_msg) - if line.move_id.id not in move_ids: - move_ids.add(line.move_id.id) - self.env['account.move'].browse(list(move_ids))._check_lock_date() - return True - - #################################################### - # Misc / utility methods - #################################################### + def copy_data(self, default=None): + res = super(AccountMoveLine, self).copy_data(default=default) + if self._context.get('include_business_fields'): + for line, values in zip(self, res): + line._copy_data_extend_business_fields(values) + return res - @api.multi - @api.depends('ref', 'move_id') - def name_get(self): - result = [] - for line in self: - if line.ref: - result.append((line.id, (line.move_id.name or '') + '(' + line.ref + ')')) - else: - result.append((line.id, line.move_id.name)) - return result + # ------------------------------------------------------------------------- + # MISC + # ------------------------------------------------------------------------- def _get_matched_percentage(self): """ This function returns a dictionary giving for each move_id of self, the percentage to consider as cash basis factor. @@ -1370,7 +3375,7 @@ class AccountMoveLine(models.Model): break if not all_same_currency: #we cannot rely on amount_currency fields as it is not present on all partial reconciliation - matched_percentage_per_move[line.move_id.id] = line.move_id.matched_percentage + matched_percentage_per_move[line.move_id.id] = line.move_id._get_cash_basis_matched_percentage() else: #we can rely on amount_currency fields, which allow us to post a tax cash basis move at the initial rate #to avoid currency rate difference issues. @@ -1380,22 +3385,6 @@ class AccountMoveLine(models.Model): matched_percentage_per_move[line.move_id.id] = total_reconciled_currency / total_amount_currency return matched_percentage_per_move - @api.model - def _compute_amount_fields(self, amount, src_currency, company_currency): - """ Helper function to compute value for fields debit/credit/amount_currency based on an amount and the currencies given in parameter""" - amount_currency = False - currency_id = False - date = self.env.context.get('date') or fields.Date.today() - company = self.env.context.get('company_id') - company = self.env['res.company'].browse(company) if company else self.env.company - if src_currency and src_currency != company_currency: - amount_currency = amount - amount = src_currency._convert(amount, company_currency, company, date) - currency_id = src_currency.id - debit = amount > 0 and amount or 0.0 - credit = amount < 0 and -amount or 0.0 - return debit, credit, amount_currency, currency_id - def _get_analytic_tag_ids(self): self.ensure_one() return self.analytic_tag_ids.filtered(lambda r: not r.active_analytic_distribution).ids @@ -1441,7 +3430,7 @@ class AccountMoveLine(models.Model): 'general_account_id': move_line.account_id.id, 'ref': move_line.ref, 'move_id': move_line.id, - 'user_id': move_line.invoice_id.user_id.id or self._uid, + 'user_id': move_line.move_id.invoice_user_id.id or self._uid, 'partner_id': move_line.partner_id.id, 'company_id': move_line.analytic_account_id.company_id.id or self.env.company.id, }) @@ -1467,7 +3456,7 @@ class AccountMoveLine(models.Model): 'general_account_id': self.account_id.id, 'ref': self.ref, 'move_id': self.id, - 'user_id': self.invoice_id.user_id.id or self._uid, + 'user_id': self.move_id.invoice_user_id.id or self._uid, 'company_id': distribution.account_id.company_id.id or self.env.company.id, } @@ -1531,6 +3520,9 @@ class AccountMoveLine(models.Model): where_clause_params = [] tables = '' if domain: + domain.append(('display_type', 'not in', ('line_section', 'line_note'))) + domain.append(('move_id.state', '!=', 'cancel')) + query = self._where_calc(domain) # Wrap the query with 'company_id IN (...)' to avoid bypassing company access rights. @@ -1539,6 +3531,19 @@ class AccountMoveLine(models.Model): tables, where_clause, where_clause_params = query.get_sql() return tables, where_clause, where_clause_params + # FIXME: Clarify me and change me in master + @api.multi + def action_duplicate(self): + self.ensure_one() + action = self.env.ref('account.action_move_journal_line').read()[0] + action['target'] = 'inline' + action['context'] = dict(self.env.context) + action['context']['form_view_initial_mode'] = 'edit' + action['context']['view_no_maturity'] = False + action['views'] = [(self.env.ref('account.view_move_form').id, 'form')] + action['res_id'] = self.copy().id + return action + @api.multi def open_reconcile_view(self): [action] = self.env.ref('account.action_account_moves_all').read() @@ -1551,7 +3556,7 @@ class AccountMoveLine(models.Model): return action @api.model - def _get_domain_for_edition_mode(self): + def _get_suspense_moves_domain(self): return [ ('move_id.to_check', '=', True), ('full_reconcile_id', '=', False), @@ -1603,7 +3608,6 @@ class AccountPartialReconcile(models.Model): new journal item will be made into the given `move` in the company `currency_exchange_journal_id`, and one of its journal items is matched with the other lines to balance the full reconciliation. - :param aml_to_fix: recordset of account.move.line (possible several but sharing the same currency) :param move: account.move @@ -1653,7 +3657,6 @@ class AccountPartialReconcile(models.Model): def _get_tax_cash_basis_base_account(self, line, tax): ''' Get the account of lines that will contain the base amount of taxes. - :param line: An account.move.line record :param tax: An account.tax record :return: An account record @@ -1711,7 +3714,6 @@ class AccountPartialReconcile(models.Model): 'account_id': line.tax_repartition_line_id.account_id.id, 'analytic_account_id': line.analytic_account_id.id, 'analytic_tag_ids': line.analytic_tag_ids.ids, - 'tax_line_id': line.tax_line_id.id, 'tax_exigible': True, 'amount_currency': line.amount_currency and line.currency_id.round(line.amount_currency * amount / line.balance) or 0.0, 'currency_id': line.currency_id.id, @@ -1792,9 +3794,9 @@ class AccountPartialReconcile(models.Model): #reverse the tax basis move created at the reconciliation time for move in self.env['account.move'].search([('tax_cash_basis_rec_id', 'in', self._ids)]): if move.date > (move.company_id.period_lock_date or date.min): - move.reverse_moves(date=move.date) + move._reverse_moves([{'ref': _('Reversal of %s') % move.name}], cancel=True) else: - move.reverse_moves() + move._reverse_moves([{'date': fields.Date.today(), 'ref': _('Reversal of %s') % move.name}], cancel=True) res = super(AccountPartialReconcile, self).unlink() if full_to_unlink: full_to_unlink.unlink() @@ -1824,7 +3826,10 @@ class AccountFullReconcile(models.Model): # (reversing will cause a nested attempt to drop the full reconciliation) to_reverse = rec.exchange_move_id rec.exchange_move_id = False - to_reverse.reverse_moves() + to_reverse._reverse_moves([{ + 'date': fields.Date.today(), + 'ref': _('Reversal of: %s') % to_reverse.name, + }], cancel=True) return super(AccountFullReconcile, self).unlink() @api.model diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py index 8bf41bbd119..c5c8cfd7749 100644 --- a/addons/account/models/account_payment.py +++ b/addons/account/models/account_payment.py @@ -2,22 +2,14 @@ from odoo import models, fields, api, _ from odoo.exceptions import UserError, ValidationError -from odoo.tools import float_compare - -from itertools import groupby MAP_INVOICE_TYPE_PARTNER_TYPE = { 'out_invoice': 'customer', 'out_refund': 'customer', + 'out_receipt': 'customer', 'in_invoice': 'supplier', 'in_refund': 'supplier', -} -# Since invoice amounts are unsigned, this is how we know if money comes in or goes out -MAP_INVOICE_TYPE_PAYMENT_SIGN = { - 'out_invoice': 1, - 'in_refund': -1, - 'in_invoice': -1, - 'out_refund': 1, + 'in_receipt': 'supplier', } @@ -47,11 +39,11 @@ class account_payment(models.Model): # For money transfer, money goes from journal_id to a transfer account, then from the transfer account to destination_journal_id destination_journal_id = fields.Many2one('account.journal', string='Transfer To', domain=[('type', 'in', ('bank', 'cash'))], readonly=True, states={'draft': [('readonly', False)]}) - invoice_ids = fields.Many2many('account.invoice', 'account_invoice_payment_rel', 'payment_id', 'invoice_id', string="Invoices", copy=False, readonly=True, + invoice_ids = fields.Many2many('account.move', 'account_invoice_payment_rel', 'payment_id', 'invoice_id', string="Invoices", copy=False, readonly=True, help="""Technical field containing the invoice for which the payment has been generated. This does not especially correspond to the invoices reconciled with the payment, as it can have been generated first, and reconciled later""") - reconciled_invoice_ids = fields.Many2many('account.invoice', string='Reconciled Invoices', compute='_compute_reconciled_invoice_ids', help="Invoices whose journal items have been reconciled with this payment's.") + reconciled_invoice_ids = fields.Many2many('account.move', string='Reconciled Invoices', compute='_compute_reconciled_invoice_ids', help="Invoices whose journal items have been reconciled with these payments.") has_invoices = fields.Boolean(compute="_compute_reconciled_invoice_ids", help="Technical field used for usability purposes") move_line_ids = fields.One2many('account.move.line', 'payment_id', readonly=True, copy=False, ondelete='restrict') @@ -94,19 +86,19 @@ class account_payment(models.Model): require_partner_bank_account = fields.Boolean(compute='_compute_show_partner_bank', help='Technical field used to know whether the field `partner_bank_account_id` needs to be required or not in the payments form views') @api.model - def default_get(self, fields): - rec = super(account_payment, self).default_get(fields) + def default_get(self, default_fields): + rec = super(account_payment, self).default_get(default_fields) active_ids = self._context.get('active_ids') or self._context.get('active_id') active_model = self._context.get('active_model') # Check for selected invoices ids - if not active_ids or active_model != 'account.invoice': + if not active_ids or active_model != 'account.move': return rec - invoices = self.env['account.invoice'].browse(active_ids) + invoices = self.env['account.move'].browse(active_ids).filtered(lambda move: move.is_invoice(include_receipts=True)) # Check all invoices are open - if any(invoice.state != 'open' for invoice in invoices): + if not invoices or any(invoice.state != 'posted' for invoice in invoices): raise UserError(_("You can only register payments for open invoices")) # Check if, in batch payments, there are not negative invoices and positive invoices dtype = invoices[0].type @@ -119,23 +111,23 @@ class account_payment(models.Model): (dtype == 'out_invoice' and inv.type == 'out_refund')): raise UserError(_("You cannot register payments for customer invoices and credit notes at the same time.")) - amount = self._compute_payment_amount(invoices, invoices[0].currency_id) + amount = self._compute_payment_amount(invoices, invoices[0].currency_id, invoices[0].journal_id, rec.get('payment_date') or fields.Date.today()) rec.update({ 'currency_id': invoices[0].currency_id.id, 'amount': abs(amount), 'payment_type': 'inbound' if amount > 0 else 'outbound', 'partner_id': invoices[0].commercial_partner_id.id, 'partner_type': MAP_INVOICE_TYPE_PARTNER_TYPE[invoices[0].type], - 'communication': invoices[0].reference or invoices[0].number, + 'communication': invoices[0].ref or invoices[0].name, 'invoice_ids': [(6, 0, invoices.ids)], }) return rec - @api.one @api.constrains('amount') def _check_amount(self): - if self.amount < 0: - raise ValidationError(_('The payment amount cannot be negative.')) + for payment in self: + if payment.amount < 0: + raise ValidationError(_('The payment amount cannot be negative.')) @api.model def _get_method_codes_using_bank_account(self): @@ -169,11 +161,14 @@ class account_payment(models.Model): def _compute_payment_difference(self): for pay in self.filtered(lambda p: p.invoice_ids and p.state == 'draft'): payment_amount = -pay.amount if pay.payment_type == 'outbound' else pay.amount - pay.payment_difference = pay._compute_payment_amount() - payment_amount + pay.payment_difference = pay._compute_payment_amount(pay.invoice_ids, pay.currency_id, pay.journal_id, pay.payment_date) - payment_amount @api.onchange('journal_id') def _onchange_journal(self): if self.journal_id: + if self.journal_id.currency_id: + self.currency_id = self.journal_id.currency_id + # Set default payment method (we consider the first to be the default one) payment_methods = self.payment_type == 'inbound' and self.journal_id.inbound_payment_method_ids or self.journal_id.outbound_payment_method_ids payment_methods_list = payment_methods.ids @@ -190,18 +185,18 @@ class account_payment(models.Model): domain = {'payment_method_id': [('payment_type', '=', payment_type), ('id', 'in', payment_methods_list)]} - if self.env.context.get('active_model') == 'account.invoice': + if self.env.context.get('active_model') == 'account.move': active_ids = self._context.get('active_ids') - invoices = self.env['account.invoice'].browse(active_ids) - self.amount = abs(self._compute_payment_amount(invoices)) + invoices = self.env['account.move'].browse(active_ids) + self.amount = abs(self._compute_payment_amount(invoices, self.currency_id, self.journal_id, self.payment_date)) return {'domain': domain} return {} @api.onchange('partner_id') def _onchange_partner_id(self): - if self.invoice_ids and self.invoice_ids[0].partner_bank_id: - self.partner_bank_account_id = self.invoice_ids[0].partner_bank_id + if self.invoice_ids and self.invoice_ids[0].invoice_partner_bank_id: + self.partner_bank_account_id = self.invoice_ids[0].invoice_partner_bank_id elif self.partner_id != self.partner_bank_account_id.partner_id: # This condition ensures we use the default value provided into # context for partner_bank_account_id properly when provided with a @@ -272,7 +267,7 @@ class account_payment(models.Model): @api.onchange('currency_id') def _onchange_currency(self): - self.amount = abs(self._compute_payment_amount()) + self.amount = abs(self._compute_payment_amount(self.invoice_ids, self.currency_id, self.journal_id, self.payment_date)) if self.journal_id: # TODO: only return if currency differ? return @@ -285,36 +280,48 @@ class account_payment(models.Model): if journal: return {'value': {'journal_id': journal.id}} - @api.multi - def _compute_payment_amount(self, invoices=None, currency=None): + @api.model + def _compute_payment_amount(self, invoices, currency, journal, date): '''Compute the total amount for the payment wizard. - :param invoices: If not specified, pick all the invoices. - :param currency: If not specified, search a default currency on wizard/journal. - :return: The total amount to pay the invoices. + :param invoices: Invoices on which compute the total as an account.invoice recordset. + :param currency: The payment's currency as a res.currency record. + :param journal: The payment's journal as an account.journal record. + :param date: The payment's date as a datetime.date object. + :return: The total amount to pay the invoices. ''' + company = journal.company_id + currency = currency or journal.currency_id or company.currency_id + date = date or fields.Date.today() - # Get the payment invoices if not invoices: - invoices = self.invoice_ids - - # Get the payment currency - if not currency: - currency = self.currency_id or self.journal_id.currency_id or self.journal_id.company_id.currency_id + return 0.0 + + self._cr.execute(''' + SELECT + move.type AS type, + move.currency_id AS currency_id, + SUM(line.amount_residual) AS amount_residual, + SUM(line.amount_residual_currency) AS residual_currency + FROM account_move move + LEFT JOIN account_move_line line ON line.move_id = move.id + LEFT JOIN account_account account ON account.id = line.account_id + LEFT JOIN account_account_type account_type ON account_type.id = account.user_type_id + WHERE move.id IN %s + AND account_type.type IN ('receivable', 'payable') + GROUP BY move.id, move.type + ''', [tuple(invoices.ids)]) + query_res = self._cr.dictfetchall() - # Avoid currency rounding issues by summing the amounts according to the company_currency_id before - invoice_datas = invoices.read_group( - [('id', 'in', invoices.ids)], - ['currency_id', 'type', 'residual_signed'], - ['currency_id', 'type'], lazy=False) total = 0.0 - for invoice_data in invoice_datas: - amount_total = MAP_INVOICE_TYPE_PAYMENT_SIGN[invoice_data['type']] * invoice_data['residual_signed'] - payment_currency = self.env['res.currency'].browse(invoice_data['currency_id'][0]) - if payment_currency == currency: - total += amount_total + for res in query_res: + move_currency = self.env['res.currency'].browse(res['currency_id']) + if move_currency == currency and move_currency != company.currency_id: + total += res['residual_currency'] + elif move_currency == currency == company.currency_id: + total += res['amount_residual'] else: - total += payment_currency._convert(amount_total, currency, self.env.company, self.payment_date or fields.Date.today()) + total += move_currency._convert(res['amount_residual'], currency, company, date) return total @api.multi @@ -358,7 +365,8 @@ class account_payment(models.Model): @api.depends('invoice_ids', 'payment_type', 'partner_type', 'partner_id') def _compute_destination_account_id(self): if self.invoice_ids: - self.destination_account_id = self.invoice_ids[0].account_id.id + self.destination_account_id = self.invoice_ids[0].mapped('line_ids.account_id')\ + .filtered(lambda account: account.user_type_id.type in ('receivable', 'payable'))[0] elif self.payment_type == 'transfer': if not self.company_id.transfer_account_id.id: raise UserError(_('There is no Transfer Account defined in the accounting settings. Please define one to be able to confirm this transfer.')) @@ -378,8 +386,9 @@ class account_payment(models.Model): @api.depends('move_line_ids.matched_debit_ids', 'move_line_ids.matched_credit_ids') def _compute_reconciled_invoice_ids(self): for record in self: - record.reconciled_invoice_ids = (record.move_line_ids.mapped('matched_debit_ids.debit_move_id.invoice_id') | - record.move_line_ids.mapped('matched_credit_ids.credit_move_id.invoice_id')) + reconciled_moves = record.move_line_ids.mapped('matched_debit_ids.debit_move_id.move_id')\ + + record.move_line_ids.mapped('matched_credit_ids.credit_move_id.move_id') + record.reconciled_invoice_ids = reconciled_moves.filtered(lambda move: move.is_invoice()) record.has_invoices = bool(record.reconciled_invoice_ids) @api.multi @@ -411,16 +420,12 @@ class account_payment(models.Model): @api.multi def button_invoices(self): - if self.partner_type == 'supplier': - views = [(self.env.ref('account.invoice_supplier_tree').id, 'tree'), (self.env.ref('account.invoice_supplier_form').id, 'form')] - else: - views = [(self.env.ref('account.invoice_tree').id, 'tree'), (self.env.ref('account.invoice_form').id, 'form')] return { 'name': _('Paid Invoices'), 'view_mode': 'tree,form', - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'view_id': False, - 'views': views, + 'views': [(self.env.ref('account.view_move_tree').id, 'tree'), (self.env.ref('account.view_move_form').id, 'form')], 'type': 'ir.actions.act_window', 'domain': [('id', 'in', [x.id for x in self.reconciled_invoice_ids])], } @@ -455,6 +460,186 @@ class account_payment(models.Model): return super(account_payment, self).unlink() @api.multi + def _prepare_payment_moves(self): + ''' Prepare the creation of journal entries (account.move) by creating a list of python dictionary to be passed + to the 'create' method. + + Example 1: outbound with write-off: + + Account | Debit | Credit + --------------------------------------------------------- + BANK | 900.0 | + RECEIVABLE | | 1000.0 + WRITE-OFF ACCOUNT | 100.0 | + + Example 2: internal transfer from BANK to CASH: + + Account | Debit | Credit + --------------------------------------------------------- + BANK | | 1000.0 + TRANSFER | 1000.0 | + CASH | 1000.0 | + TRANSFER | | 1000.0 + + :return: A list of Python dictionary to be passed to env['account.move'].create. + ''' + all_move_vals = [] + for payment in self: + company_currency = payment.company_id.currency_id + + # Compute amounts. + write_off_amount = payment.payment_difference_handling == 'reconcile' and -payment.payment_difference or 0.0 + if payment.payment_type in ('outbound', 'transfer'): + counterpart_amount = payment.amount + liquidity_line_account = payment.journal_id.default_debit_account_id + else: + counterpart_amount = -payment.amount + liquidity_line_account = payment.journal_id.default_credit_account_id + + # Manage currency. + if payment.currency_id == company_currency: + # Single-currency. + balance = counterpart_amount + write_off_balance = write_off_amount + counterpart_amount = write_off_amount = 0.0 + currency_id = False + else: + # Multi-currencies. + balance = payment.currency_id._convert(counterpart_amount, company_currency, payment.company_id, payment.payment_date) + write_off_balance = payment.currency_id._convert(write_off_amount, company_currency, payment.company_id, payment.payment_date) + currency_id = payment.currency_id.id + + # Manage custom currency on journal for liquidity line. + if payment.journal_id.currency_id and payment.currency_id != payment.journal_id.currency_id: + # Custom currency on journal. + liquidity_line_currency_id = payment.journal_id.currency_id.id + liquidity_amount = company_currency._convert( + balance, payment.journal_id.currency_id, payment.company_id, payment.payment_date) + else: + # Use the payment currency. + liquidity_line_currency_id = currency_id + liquidity_amount = counterpart_amount + + # Compute 'name' to be used in receivable/payable line. + rec_pay_line_name = '' + if payment.payment_type == 'transfer': + rec_pay_line_name = payment.name + else: + if payment.partner_type == 'customer': + if payment.payment_type == 'inbound': + rec_pay_line_name += _("Customer Payment") + elif payment.payment_type == 'outbound': + rec_pay_line_name += _("Customer Credit Note") + elif payment.partner_type == 'supplier': + if payment.payment_type == 'inbound': + rec_pay_line_name += _("Vendor Credit Note") + elif payment.payment_type == 'outbound': + rec_pay_line_name += _("Vendor Payment") + if payment.invoice_ids: + rec_pay_line_name += ': %s' % ', '.join(payment.invoice_ids.mapped('name')) + + # Compute 'name' to be used in liquidity line. + if payment.payment_type == 'transfer': + liquidity_line_name = _('Transfer to %s') % payment.destination_journal_id.name + else: + liquidity_line_name = payment.name + + # ==== 'inbound' / 'outbound' ==== + + move_vals = { + 'date': payment.payment_date, + 'ref': payment.communication, + 'journal_id': payment.journal_id.id, + 'currency_id': payment.journal_id.currency_id.id or payment.company_id.currency_id.id, + 'partner_id': payment.partner_id.id, + 'line_ids': [ + # Receivable / Payable / Transfer line. + (0, 0, { + 'name': rec_pay_line_name, + 'amount_currency': counterpart_amount + write_off_amount, + 'currency_id': currency_id, + 'debit': balance + write_off_balance > 0.0 and balance + write_off_balance or 0.0, + 'credit': balance + write_off_balance < 0.0 and -balance - write_off_balance or 0.0, + 'date_maturity': payment.payment_date, + 'partner_id': payment.partner_id.id, + 'account_id': payment.destination_account_id.id, + 'payment_id': payment.id, + }), + # Liquidity line. + (0, 0, { + 'name': liquidity_line_name, + 'amount_currency': -liquidity_amount, + 'currency_id': liquidity_line_currency_id, + 'debit': balance < 0.0 and -balance or 0.0, + 'credit': balance > 0.0 and balance or 0.0, + 'date_maturity': payment.payment_date, + 'partner_id': payment.partner_id.id, + 'account_id': liquidity_line_account.id, + 'payment_id': payment.id, + }), + ], + } + if write_off_balance: + # Write-off line. + move_vals['line_ids'].append((0, 0, { + 'name': payment.writeoff_label, + 'amount_currency': -write_off_amount, + 'currency_id': currency_id, + 'debit': write_off_balance < 0.0 and -write_off_balance or 0.0, + 'credit': write_off_balance > 0.0 and write_off_balance or 0.0, + 'date_maturity': payment.payment_date, + 'partner_id': payment.partner_id.id, + 'account_id': payment.writeoff_account_id.id, + 'payment_id': payment.id, + })) + + all_move_vals.append(move_vals) + + # ==== 'transfer' ==== + if payment.payment_type == 'transfer': + + if payment.destination_journal_id.currency_id: + transfer_amount = payment.currency_id._convert(counterpart_amount, payment.destination_journal_id.currency_id, payment.company_id, payment.payment_date) + else: + transfer_amount = 0.0 + + transfer_move_vals = { + 'date': payment.payment_date, + 'ref': payment.communication, + 'partner_id': payment.partner_id.id, + 'journal_id': payment.destination_journal_id.id, + 'line_ids': [ + # Transfer debit line. + (0, 0, { + 'name': payment.name, + 'amount_currency': -counterpart_amount, + 'currency_id': currency_id, + 'debit': balance < 0.0 and -balance or 0.0, + 'credit': balance > 0.0 and balance or 0.0, + 'date_maturity': payment.payment_date, + 'partner_id': payment.partner_id.id, + 'account_id': payment.company_id.transfer_account_id.id, + 'payment_id': payment.id, + }), + # Liquidity credit line. + (0, 0, { + 'name': _('Transfer from %s') % payment.journal_id.name, + 'amount_currency': transfer_amount, + 'currency_id': payment.destination_journal_id.currency_id.id, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + 'date_maturity': payment.payment_date, + 'partner_id': payment.partner_id.id, + 'account_id': payment.destination_journal_id.default_credit_account_id.id, + 'payment_id': payment.id, + }), + ], + } + + all_move_vals.append(transfer_move_vals) + return all_move_vals + + @api.multi def post(self): """ Create the journal items for the payment and update the payment's state to 'posted'. A journal entry is created containing an item in the source liquidity account (selected journal's default_debit or default_credit) @@ -462,12 +647,13 @@ class account_payment(models.Model): If invoice_ids is not empty, there will be one reconcilable move line per invoice to reconcile with. If the payment is a transfer, a second journal entry is created in the destination journal to receive money from the transfer account. """ + AccountMove = self.env['account.move'].with_context(default_type='entry') for rec in self: if rec.state != 'draft': raise UserError(_("Only a draft payment can be posted.")) - if any(inv.state != 'open' for inv in rec.invoice_ids): + if any(inv.state != 'posted' for inv in rec.invoice_ids): raise ValidationError(_("The payment cannot be processed because the invoice is not open!")) # keep the name in case of a payment reset to draft @@ -486,187 +672,35 @@ class account_payment(models.Model): sequence_code = 'account.payment.supplier.refund' if rec.payment_type == 'outbound': sequence_code = 'account.payment.supplier.invoice' - rec.name = self.env['ir.sequence'].with_context(ir_sequence_date=rec.payment_date).next_by_code(sequence_code) + rec.name = self.env['ir.sequence'].next_by_code(sequence_code, sequence_date=rec.payment_date) if not rec.name and rec.payment_type != 'transfer': raise UserError(_("You have to define a sequence for %s in your company.") % (sequence_code,)) - # Create the journal entry - amount = rec.amount * (rec.payment_type in ('outbound', 'transfer') and 1 or -1) - move = rec._create_payment_entry(amount) + moves = AccountMove.create(rec._prepare_payment_moves()) + moves.filtered(lambda move: not move.journal_id.post_at_bank_rec).post() + + # Update the state / move before performing any reconciliation. + rec.write({'state': 'posted', 'move_name': moves[0].name}) - # In case of a transfer, the first journal entry created debited the source liquidity account and credited - # the transfer account. Now we debit the transfer account and credit the destination liquidity account. - if rec.payment_type == 'transfer': - transfer_credit_aml = move.line_ids.filtered(lambda r: r.account_id == rec.company_id.transfer_account_id) - transfer_debit_aml = rec._create_transfer_entry(amount) - (transfer_credit_aml + transfer_debit_aml).reconcile() + if rec.payment_type in ('inbound', 'outbound'): + # ==== 'inbound' / 'outbound' ==== + if rec.invoice_ids: + (moves[0] + rec.invoice_ids).line_ids \ + .filtered(lambda line: not line.reconciled and line.account_id == rec.destination_account_id)\ + .reconcile() + elif rec.payment_type == 'transfer': + # ==== 'transfer' ==== + moves.mapped('line_ids')\ + .filtered(lambda line: line.account_id == rec.company_id.transfer_account_id)\ + .reconcile() - rec.write({'state': 'posted', 'move_name': move.name}) return True @api.multi def action_draft(self): return self.write({'state': 'draft'}) - def _create_payment_entry(self, amount): - """ Create a journal entry corresponding to a payment, if the payment references invoice(s) they are reconciled. - Return the journal entry. - """ - aml_obj = self.env['account.move.line'].with_context(check_move_validity=False) - debit, credit, amount_currency, currency_id = aml_obj.with_context(date=self.payment_date)._compute_amount_fields(amount, self.currency_id, self.company_id.currency_id) - - move = self.env['account.move'].create(self._get_move_vals()) - - #Write line corresponding to invoice payment - counterpart_aml_dict = self._get_shared_move_line_vals(debit, credit, amount_currency, move.id, False) - counterpart_aml_dict.update(self._get_counterpart_move_line_vals(self.invoice_ids)) - counterpart_aml_dict.update({'currency_id': currency_id}) - counterpart_aml = aml_obj.create(counterpart_aml_dict) - - #Reconcile with the invoices - if self.payment_difference_handling == 'reconcile' and self.payment_difference: - writeoff_line = self._get_shared_move_line_vals(0, 0, 0, move.id, False) - debit_wo, credit_wo, amount_currency_wo, currency_id = aml_obj.with_context(date=self.payment_date)._compute_amount_fields(self.payment_difference, self.currency_id, self.company_id.currency_id) - writeoff_line['name'] = self.writeoff_label - writeoff_line['account_id'] = self.writeoff_account_id.id - writeoff_line['debit'] = debit_wo - writeoff_line['credit'] = credit_wo - writeoff_line['amount_currency'] = amount_currency_wo - writeoff_line['currency_id'] = currency_id - writeoff_line = aml_obj.create(writeoff_line) - if counterpart_aml['debit'] or (writeoff_line['credit'] and not counterpart_aml['credit']): - counterpart_aml['debit'] += credit_wo - debit_wo - if counterpart_aml['credit'] or (writeoff_line['debit'] and not counterpart_aml['debit']): - counterpart_aml['credit'] += debit_wo - credit_wo - counterpart_aml['amount_currency'] -= amount_currency_wo - - #Write counterpart lines - if not self.currency_id.is_zero(self.amount): - if not self.currency_id != self.company_id.currency_id: - amount_currency = 0 - liquidity_aml_dict = self._get_shared_move_line_vals(credit, debit, -amount_currency, move.id, False) - liquidity_aml_dict.update(self._get_liquidity_move_line_vals(-amount)) - aml_obj.create(liquidity_aml_dict) - - #validate the payment - if not self.journal_id.post_at_bank_rec: - move.post() - - #reconcile the invoice receivable/payable line(s) with the payment - if self.invoice_ids: - self.invoice_ids.register_payment(counterpart_aml) - - return move - - def _create_transfer_entry(self, amount): - """ Create the journal entry corresponding to the 'incoming money' part of an internal transfer, return the reconcilable move line - """ - aml_obj = self.env['account.move.line'].with_context(check_move_validity=False) - debit, credit, amount_currency, dummy = aml_obj.with_context(date=self.payment_date)._compute_amount_fields(amount, self.currency_id, self.company_id.currency_id) - amount_currency = self.destination_journal_id.currency_id and self.currency_id._convert(amount, self.destination_journal_id.currency_id, self.company_id, self.payment_date or fields.Date.today()) or 0 - - dst_move = self.env['account.move'].create(self._get_move_vals(self.destination_journal_id)) - - dst_liquidity_aml_dict = self._get_shared_move_line_vals(debit, credit, amount_currency, dst_move.id) - dst_liquidity_aml_dict.update({ - 'name': _('Transfer from %s') % self.journal_id.name, - 'account_id': self.destination_journal_id.default_credit_account_id.id, - 'currency_id': self.destination_journal_id.currency_id.id, - 'journal_id': self.destination_journal_id.id}) - aml_obj.create(dst_liquidity_aml_dict) - - transfer_debit_aml_dict = self._get_shared_move_line_vals(credit, debit, 0, dst_move.id) - transfer_debit_aml_dict.update({ - 'name': self.name, - 'account_id': self.company_id.transfer_account_id.id, - 'journal_id': self.destination_journal_id.id}) - if self.currency_id != self.company_id.currency_id: - transfer_debit_aml_dict.update({ - 'currency_id': self.currency_id.id, - 'amount_currency': -self.amount, - }) - transfer_debit_aml = aml_obj.create(transfer_debit_aml_dict) - if not self.destination_journal_id.post_at_bank_rec: - dst_move.post() - return transfer_debit_aml - - def _get_move_vals(self, journal=None): - """ Return dict to create the payment move - """ - journal = journal or self.journal_id - move_vals = { - 'date': self.payment_date, - 'ref': self.communication or '', - 'company_id': self.company_id.id, - 'journal_id': journal.id, - } - if self.move_name: - move_vals['name'] = self.move_name - return move_vals - - def _get_shared_move_line_vals(self, debit, credit, amount_currency, move_id, invoice_id=False): - """ Returns values common to both move lines (except for debit, credit and amount_currency which are reversed) - """ - return { - 'partner_id': self.payment_type in ('inbound', 'outbound') and self.env['res.partner']._find_accounting_partner(self.partner_id).id or False, - 'invoice_id': invoice_id and invoice_id.id or False, - 'move_id': move_id, - 'debit': debit, - 'credit': credit, - 'amount_currency': amount_currency or False, - 'payment_id': self.id, - 'journal_id': self.journal_id.id, - } - - def _get_counterpart_move_line_vals(self, invoice=False): - if self.payment_type == 'transfer': - name = self.name - else: - name = '' - if self.partner_type == 'customer': - if self.payment_type == 'inbound': - name += _("Customer Payment") - elif self.payment_type == 'outbound': - name += _("Customer Credit Note") - elif self.partner_type == 'supplier': - if self.payment_type == 'inbound': - name += _("Vendor Credit Note") - elif self.payment_type == 'outbound': - name += _("Vendor Payment") - if invoice: - name += ': ' - for inv in invoice: - if inv.move_id: - name += inv.number + ', ' - name = name[:len(name)-2] - return { - 'name': name, - 'account_id': self.destination_account_id.id, - 'currency_id': self.currency_id != self.company_id.currency_id and self.currency_id.id or False, - } - - def _get_liquidity_move_line_vals(self, amount): - name = self.name - if self.payment_type == 'transfer': - name = _('Transfer to %s') % self.destination_journal_id.name - vals = { - 'name': name, - 'account_id': self.payment_type in ('outbound', 'transfer') and self.journal_id.default_debit_account_id.id or self.journal_id.default_credit_account_id.id, - 'journal_id': self.journal_id.id, - 'currency_id': self.currency_id != self.company_id.currency_id and self.currency_id.id or False, - } - - # If the journal has a currency specified, the journal item need to be expressed in this currency - if self.journal_id.currency_id and self.currency_id != self.journal_id.currency_id: - amount = self.currency_id._convert(amount, self.journal_id.currency_id, self.company_id, self.payment_date or fields.Date.today()) - debit, credit, amount_currency, dummy = self.env['account.move.line'].with_context(date=self.payment_date)._compute_amount_fields(amount, self.journal_id.currency_id, self.company_id.currency_id) - vals.update({ - 'amount_currency': amount_currency, - 'currency_id': self.journal_id.currency_id.id, - }) - - return vals - + @api.multi def _get_invoice_payment_amount(self, inv): """ Computes the amount covered by the current payment in the given invoice. @@ -677,11 +711,10 @@ class account_payment(models.Model): self.ensure_one() return sum([ data['amount'] - for data in inv._get_payments_vals() + for data in inv._get_reconciled_info_JSON_values() if data['account_payment_id'] == self.id ]) - class payment_register(models.TransientModel): _name = 'account.payment.register' _description = 'Register Payment' @@ -694,21 +727,20 @@ class payment_register(models.TransientModel): "Check: Pay bill by check and print it from Odoo.\n" "Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\n" "SEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed ") - invoice_ids = fields.Many2many('account.invoice', 'account_invoice_payment_rel_transient', 'payment_id', 'invoice_id', string="Invoices", copy=False, readonly=True) + invoice_ids = fields.Many2many('account.move', 'account_invoice_payment_rel_transient', 'payment_id', 'invoice_id', string="Invoices", copy=False, readonly=True) @api.model def default_get(self, fields): rec = super(payment_register, self).default_get(fields) active_ids = self._context.get('active_ids') - active_model = self._context.get('active_model') - invoices = self.env['account.invoice'].browse(active_ids) + invoices = self.env['account.move'].browse(active_ids) # Check all invoices are open - if any(invoice.state != 'open' for invoice in invoices): + if any(invoice.state != 'posted' or invoice.invoice_payment_state != 'not_paid' or not invoice.is_invoice() for invoice in invoices): raise UserError(_("You can only register payments for open invoices")) # Check all invoices are inbound or all invoices are outbound - outbound_list = [invoice.type in ('in_invoice', 'out_refund') for invoice in invoices] - first_outbound = invoices[0].type in ('in_invoice', 'out_refund') + outbound_list = [invoice.is_outbound() for invoice in invoices] + first_outbound = invoices[0].is_outbound() if any(x != first_outbound for x in outbound_list): raise UserError(_("You can only register at the same time for payment that are all inbound or all outbound")) if 'invoice_ids' not in rec: @@ -716,7 +748,7 @@ class payment_register(models.TransientModel): if 'journal_id' not in rec: rec['journal_id'] = self.env['account.journal'].search([('company_id', '=', self.env.company.id), ('type', 'in', ('bank', 'cash'))], limit=1).id if 'payment_method_id' not in rec: - if invoices[0].type in ('out_invoice', 'in_refund'): + if invoices[0].is_inbound(): domain = [('payment_type', '=', 'inbound')] else: domain = [('payment_type', '=', 'outbound')] @@ -726,9 +758,9 @@ class payment_register(models.TransientModel): @api.onchange('journal_id', 'invoice_ids') def _onchange_journal(self): active_ids = self._context.get('active_ids') - invoices = self.env['account.invoice'].browse(active_ids) + invoices = self.env['account.move'].browse(active_ids) if self.journal_id and invoices: - if invoices[0].type in ('out_invoice', 'in_refund'): + if invoices[0].is_inbound(): domain = [('payment_type', '=', 'inbound'), ('id', 'in', self.journal_id.inbound_payment_method_ids.ids)] else: domain = [('payment_type', '=', 'outbound'), ('id', 'in', self.journal_id.outbound_payment_method_ids.ids)] @@ -743,19 +775,19 @@ class payment_register(models.TransientModel): :param invoice: A single invoice/bill to pay. :return: The payment values as a dictionary. ''' - amount = self.env['account.payment']._compute_payment_amount(invoices=invoice, currency=invoice.currency_id) + amount = self.env['account.payment']._compute_payment_amount(invoice, invoice.currency_id, self.journal_id, self.payment_date) values = { 'journal_id': self.journal_id.id, 'payment_method_id': self.payment_method_id.id, 'payment_date': self.payment_date, - 'communication': invoice.reference or invoice.number, + 'communication': invoice.ref or invoice.name, 'invoice_ids': [(6, 0, invoice.ids)], 'payment_type': ('inbound' if amount > 0 else 'outbound'), 'amount': abs(amount), 'currency_id': invoice.currency_id.id, 'partner_id': invoice.commercial_partner_id.id, 'partner_type': MAP_INVOICE_TYPE_PARTNER_TYPE[invoice.type], - 'partner_bank_account_id': invoice.partner_bank_id.id, + 'partner_bank_account_id': invoice.invoice_partner_bank_id.id, } return values diff --git a/addons/account/models/account_payment_term.py b/addons/account/models/account_payment_term.py index bec851e8d6b..d8705908bc4 100644 --- a/addons/account/models/account_payment_term.py +++ b/addons/account/models/account_payment_term.py @@ -33,15 +33,15 @@ class AccountPaymentTerm(models.Model): raise ValidationError(_('A Payment Term should have only one line of type Balance.')) @api.multi - def compute(self, value, date_ref=False): + def compute(self, value, date_ref=False, currency=None): self.ensure_one() date_ref = date_ref or fields.Date.today() amount = value sign = value < 0 and -1 or 1 result = [] - if self.env.context.get('currency_id'): + if not currency and self.env.context.get('currency_id'): currency = self.env['res.currency'].browse(self.env.context['currency_id']) - else: + elif not currency: currency = self.env.company.currency_id for line in self.line_ids: if line.value == 'fixed': @@ -50,19 +50,18 @@ class AccountPaymentTerm(models.Model): amt = currency.round(value * (line.value_amount / 100.0)) elif line.value == 'balance': amt = currency.round(amount) - if amt: - next_date = fields.Date.from_string(date_ref) - if line.option == 'day_after_invoice_date': - next_date += relativedelta(days=line.days) - if line.day_of_the_month > 0: - months_delta = (line.day_of_the_month < next_date.day) and 1 or 0 - next_date += relativedelta(day=line.day_of_the_month, months=months_delta) - elif line.option == 'day_following_month': - next_date += relativedelta(day=line.days, months=1) - elif line.option == 'day_current_month': - next_date += relativedelta(day=line.days, months=0) - result.append((fields.Date.to_string(next_date), amt)) - amount -= amt + next_date = fields.Date.from_string(date_ref) + if line.option == 'day_after_invoice_date': + next_date += relativedelta(days=line.days) + if line.day_of_the_month > 0: + months_delta = (line.day_of_the_month < next_date.day) and 1 or 0 + next_date += relativedelta(day=line.day_of_the_month, months=months_delta) + elif line.option == 'day_following_month': + next_date += relativedelta(day=line.days, months=1) + elif line.option == 'day_current_month': + next_date += relativedelta(day=line.days, months=0) + result.append((fields.Date.to_string(next_date), amt)) + amount -= amt amount = sum(amt for _, amt in result) dist = currency.round(value - amount) if dist: @@ -73,7 +72,7 @@ class AccountPaymentTerm(models.Model): @api.multi def unlink(self): for terms in self: - if self.env['account.invoice'].search([('payment_term_id', 'in', terms.ids)]): + if self.env['account.move'].search([('payment_term_id', 'in', terms.ids)]): raise UserError(_('You can not delete payment terms as other records still reference it. However, you can archive it.')) property_recs = self.env['ir.property'].search([('value_reference', 'in', ['account.payment.term,%s'%payment_term.id for payment_term in terms])]) property_recs.unlink() diff --git a/addons/account/models/account_reconcile_model.py b/addons/account/models/account_reconcile_model.py index 4966d498f1b..67523d4e562 100644 --- a/addons/account/models/account_reconcile_model.py +++ b/addons/account/models/account_reconcile_model.py @@ -102,18 +102,25 @@ class AccountReconcileModel(models.Model): second_analytic_account_id = fields.Many2one('account.analytic.account', string='Second Analytic Account', ondelete='set null') second_analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Second Analytic Tags', relation='account_reconcile_model_second_analytic_tag_rel') - + number_entries = fields.Integer(string='Number of entries related to this model', compute='_compute_number_entries') @api.multi def action_reconcile_stat(self): + self.ensure_one() action = self.env.ref('account.action_move_journal_line').read()[0] + self._cr.execute(''' + SELECT ARRAY_AGG(DISTINCT move_id) + FROM account_move_line + WHERE reconcile_model_id = %s + ''', [self.id]) action.update({ - 'context': {'search_default_reconcile_model_id': self.name}, + 'context': {}, + 'domain': [('id', 'in', self._cr.fetchone()[0])], 'help': """<p class="o_view_nocontent_empty_folder">{}</p>""".format(_('No move from this reconciliation model')), }) return action - + @api.multi def _compute_number_entries(self): data = self.env['account.move.line'].read_group([('reconcile_model_id', 'in', self.ids)], ['reconcile_model_ids'], 'reconcile_model_id') @@ -438,10 +445,11 @@ class AccountReconcileModel(models.Model): LEFT JOIN res_company company ON company.id = st_line.company_id LEFT JOIN partners_table line_partner ON line_partner.line_id = st_line.id , account_move_line aml - LEFT JOIN account_move move ON move.id = aml.move_id + LEFT JOIN account_move move ON move.id = aml.move_id AND move.state = 'posted' LEFT JOIN account_account account ON account.id = aml.account_id WHERE st_line.id IN %s AND aml.company_id = st_line.company_id + AND move.state = 'posted' AND ( -- the field match_partner of the rule might enforce the second part of -- the OR condition, later in _apply_conditions() @@ -456,7 +464,7 @@ class AccountReconcileModel(models.Model): -- if there is a partner, propose all aml of the partner, otherwise propose only the ones -- matching the statement line communication - AND + AND ( ( line_partner.partner_id != 0 diff --git a/addons/account/models/chart_template.py b/addons/account/models/chart_template.py index 6409ae13445..4ec8f31a0dd 100644 --- a/addons/account/models/chart_template.py +++ b/addons/account/models/chart_template.py @@ -264,7 +264,7 @@ class AccountChartTemplate(models.Model): the provided company (meaning hence that its chart of accounts cannot be changed anymore). """ - model_to_check = ['account.move.line', 'account.invoice', 'account.payment', 'account.bank.statement'] + model_to_check = ['account.move', 'account.payment', 'account.bank.statement'] for model in model_to_check: if len(self.env[model].search([('company_id', '=', company_id.id)])) > 0: return True diff --git a/addons/account/models/company.py b/addons/account/models/company.py index 512289962f3..42bb719afec 100644 --- a/addons/account/models/company.py +++ b/addons/account/models/company.py @@ -2,7 +2,6 @@ from datetime import timedelta, datetime import calendar -import time from dateutil.relativedelta import relativedelta from odoo import fields, models, api, _ @@ -10,6 +9,7 @@ from odoo.exceptions import ValidationError, UserError, RedirectWarning from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT from odoo.tools.float_utils import float_round, float_is_zero from odoo.tools import date_utils +from odoo.tests.common import Form MONTH_SELECTION = [ @@ -102,7 +102,7 @@ Best Regards,''')) account_dashboard_onboarding_state = fields.Selection([('not_done', "Not done"), ('just_done', "Just done"), ('done', "Done"), ('closed', "Closed")], string="State of the account dashboard onboarding panel", default='not_done') invoice_terms = fields.Text(string='Default Terms and Conditions', translate=True) - @api.constrains('account_opening_date', 'fiscalyear_last_day', 'fiscalyear_last_month') + @api.constrains('account_opening_move_id', 'fiscalyear_last_day', 'fiscalyear_last_month') def _check_fiscalyear_last_day(self): # if the user explicitly chooses the 29th of February we allow it: # there is no "fiscalyear_last_year" so we do not know his intentions. @@ -483,7 +483,7 @@ Best Regards,''')) company_id = self.env.company.id # try to find an existing sample invoice - sample_invoice = self.env['account.invoice'].search( + sample_invoice = self.env['account.move'].search( [('company_id', '=', company_id), ('partner_id', '=', partner.id)], limit=1) @@ -498,25 +498,23 @@ Best Regards,''')) "\nPlease go to Configuration > Journals.") raise RedirectWarning(msg, action.id, _("Go to the journal configuration")) - sample_invoice = self.env['account.invoice'].create({ - 'name': _("Sample invoice"), - 'journal_id': journal.id, + sample_invoice = self.env['account.move'].with_context(default_type='out_invoice', default_journal_id=journal.id).create({ + 'invoice_payment_ref': _('Sample invoice'), 'partner_id': partner.id, - }) - # sample invoice lines - self.env['account.invoice.line'].create({ - 'name': _("Sample invoice line name"), - 'invoice_id': sample_invoice.id, - 'account_id': account.id, - 'price_unit': 199.99, - 'quantity': 2, - }) - self.env['account.invoice.line'].create({ - 'name': _("Sample invoice line name 2"), - 'invoice_id': sample_invoice.id, - 'account_id': account.id, - 'price_unit': 25, - 'quantity': 1, + 'invoice_line_ids': [ + (0, 0, { + 'name': _('Sample invoice line name'), + 'account_id': account.id, + 'quantity': 2, + 'price_unit': 199.99, + }), + (0, 0, { + 'name': _('Sample invoice line name 2'), + 'account_id': account.id, + 'quantity': 1, + 'price_unit': 25.0, + }), + ], }) return sample_invoice @@ -531,7 +529,7 @@ Best Regards,''')) 'default_res_id': sample_invoice.id, 'default_use_template': bool(template), 'default_template_id': template and template.id or False, - 'default_model': 'account.invoice', + 'default_model': 'account.move', 'default_composition_mode': 'comment', 'mark_invoice_as_sent': True, 'custom_layout': 'mail.mail_notification_borders', diff --git a/addons/account/models/digest.py b/addons/account/models/digest.py index 0160efe5225..da7d673053b 100644 --- a/addons/account/models/digest.py +++ b/addons/account/models/digest.py @@ -16,14 +16,18 @@ class Digest(models.Model): raise AccessError(_("Do not have access, skip this data for user's digest email")) for record in self: start, end, company = record._get_kpi_compute_parameters() - account_moves = self.env['account.move'].read_group([ - ('journal_id.type', '=', 'sale'), - ('company_id', '=', company.id), - ('date', '>=', start), - ('date', '<', end)], ['journal_id', 'amount'], ['journal_id']) - record.kpi_account_total_revenue_value = sum([account_move['amount'] for account_move in account_moves]) + self._cr.execute(''' + SELECT SUM(line.debit) + FROM account_move_line line + JOIN account_move move ON move.id = line.move_id + JOIN account_journal journal ON journal.id = move.journal_id + WHERE line.company_id = %s AND line.date >= %s AND line.date < %s + AND journal.type = 'sale' + ''', [company.id, start, end]) + query_res = self._cr.fetchone() + record.kpi_account_total_revenue_value = query_res and query_res[0] or 0.0 def compute_kpis_actions(self, company, user): res = super(Digest, self).compute_kpis_actions(company, user) - res['kpi_account_total_revenue'] = 'account.action_invoice_tree1&menu_id=%s' % self.env.ref('account.menu_finance').id + res['kpi_account_total_revenue'] = 'account.action_move_out_invoice_type&menu_id=%s' % self.env.ref('account.menu_finance').id return res diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index 16c420fe52c..2465b91d03f 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -209,7 +209,7 @@ class ResPartner(models.Model): if where_clause: where_clause = 'AND ' + where_clause self._cr.execute("""SELECT account_move_line.partner_id, act.type, SUM(account_move_line.amount_residual) - FROM account_move_line + FROM """ + tables + """ LEFT JOIN account_account a ON (account_move_line.account_id=a.id) LEFT JOIN account_account_type act ON (a.user_type_id=act.id) WHERE act.type IN ('receivable','payable') @@ -286,7 +286,7 @@ class ResPartner(models.Model): # price_total is in the company currency query = """ - SELECT SUM(price_total) as total, partner_id + SELECT SUM(price_subtotal) as total, partner_id FROM account_invoice_report account_invoice_report WHERE %s GROUP BY partner_id @@ -410,7 +410,7 @@ class ResPartner(models.Model): help='Last time the invoices & payments matching was performed for this partner. ' 'It is set either if there\'s not at least an unreconciled debit and an unreconciled credit ' 'or if you click the "Done" button.') - invoice_ids = fields.One2many('account.invoice', 'partner_id', string='Invoices', readonly=True, copy=False) + invoice_ids = fields.One2many('account.move', 'partner_id', string='Invoices', readonly=True, copy=False) contract_ids = fields.One2many('account.analytic.account', 'partner_id', string='Partner Contracts', readonly=True) bank_account_count = fields.Integer(compute='_compute_bank_count', string="Bank") trust = fields.Selection([('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')], string='Degree of trust you have in this debtor', default='normal', company_dependent=True) @@ -437,15 +437,17 @@ class ResPartner(models.Model): @api.multi def action_view_partner_invoices(self): self.ensure_one() - action = self.env.ref('account.action_invoice_refund_out_tree').read()[0] - action['domain'] = [('type','in', ['out_invoice', 'out_refund']), ('state', '!=', 'cancel')] - action['domain'].append(('partner_id', 'child_of', self.id)) + action = self.env.ref('account.action_move_out_invoice_type').read()[0] + action['domain'] = [ + ('type', 'in', ('out_invoice', 'out_refund')), + ('type', '=', 'posted'), + ('partner_id', 'child_of', self.id), + ] action['context'] = {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale', 'search_default_unpaid': 1} return action @api.onchange('company_id') def _onchange_company_id(self): - company = self.env['res.company'] if self.company_id: company = self.company_id else: @@ -456,10 +458,9 @@ class ResPartner(models.Model): can_edit_vat = super(ResPartner, self).can_edit_vat() if not can_edit_vat: return can_edit_vat - Invoice = self.env['account.invoice'] - has_invoice = Invoice.search([ + has_invoice = self.env['account.move'].search([ ('type', 'in', ['out_invoice', 'out_refund']), ('partner_id', 'child_of', self.commercial_partner_id.id), - ('state', 'not in', ['draft', 'cancel']) + ('state', '=', 'posted') ], limit=1) return can_edit_vat and not (bool(has_invoice)) diff --git a/addons/account/models/product.py b/addons/account/models/product.py index f9b046c652a..2282da699c4 100644 --- a/addons/account/models/product.py +++ b/addons/account/models/product.py @@ -55,31 +55,3 @@ class ProductTemplate(models.Model): if not fiscal_pos: fiscal_pos = self.env['account.fiscal.position'] return fiscal_pos.map_accounts(accounts) - -class ProductProduct(models.Model): - _inherit = "product.product" - - @api.model - def _convert_prepared_anglosaxon_line(self, line, partner): - return { - 'date_maturity': line.get('date_maturity', False), - 'partner_id': partner, - 'name': line['name'], - 'debit': line['price'] > 0 and line['price'], - 'credit': line['price'] < 0 and -line['price'], - 'account_id': line['account_id'], - 'analytic_line_ids': line.get('analytic_line_ids', []), - 'amount_currency': line['price'] > 0 and abs(line.get('amount_currency', False)) or -abs(line.get('amount_currency', False)), - 'currency_id': line.get('currency_id', False), - 'quantity': line.get('quantity', 1.00), - 'product_id': line.get('product_id', False), - 'product_uom_id': line.get('uom_id', False), - 'analytic_account_id': line.get('account_analytic_id', False), - 'invoice_id': line.get('invoice_id', False), - 'tax_ids': line.get('tax_ids', False), - 'tax_line_id': line.get('tax_line_id', False), - 'analytic_tag_ids': line.get('analytic_tag_ids', False), - 'tax_repartition_line_id': line.get('tax_repartition_line_id'), - 'tag_ids': line.get('tag_ids'), - 'tax_base_amount': line.get('tax_base_amount'), - } diff --git a/addons/account/models/reconciliation_widget.py b/addons/account/models/reconciliation_widget.py index f10bacfa3f3..5e49e94e272 100644 --- a/addons/account/models/reconciliation_widget.py +++ b/addons/account/models/reconciliation_widget.py @@ -200,7 +200,7 @@ class AccountReconciliation(models.AbstractModel): """ if not bank_statement_line_ids: return {} - edition_mode = self._context.get('edition_mode') + suspense_moves_mode = self._context.get('suspense_moves_mode') bank_statements = self.env['account.bank.statement.line'].browse(bank_statement_line_ids).mapped('statement_id') search_sql = ''' @@ -220,7 +220,7 @@ class AccountReconciliation(models.AbstractModel): {srch} GROUP BY line.id '''.format( - cond=not edition_mode and "AND NOT EXISTS (SELECT 1 from account_move_line aml WHERE aml.statement_line_id = line.id)" or "", + cond=not suspense_moves_mode and "AND NOT EXISTS (SELECT 1 from account_move_line aml WHERE aml.statement_line_id = line.id)" or "", srch=search_str and search_sql or "", ) self.env.cr.execute(query, {'ids':tuple(bank_statement_line_ids), 'search_str':search_str}) @@ -503,7 +503,7 @@ class AccountReconciliation(models.AbstractModel): AccountMoveLine = self.env['account.move.line'] #Always exclude the journal items that have been marked as 'to be checked' in a former bank statement reconciliation - to_check_excluded = AccountMoveLine.search(AccountMoveLine._get_domain_for_edition_mode()).ids + to_check_excluded = AccountMoveLine.search(AccountMoveLine._get_suspense_moves_domain()).ids excluded_ids.extend(to_check_excluded) domain_reconciliation = [ diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py index 2cebf29d6d5..d63c997347f 100644 --- a/addons/account/report/account_invoice_report.py +++ b/addons/account/report/account_invoice_report.py @@ -8,46 +8,19 @@ class AccountInvoiceReport(models.Model): _name = "account.invoice.report" _description = "Invoices Statistics" _auto = False - _rec_name = 'date' + _rec_name = 'invoice_date' + _order = 'invoice_date desc' - @api.multi - @api.depends('currency_id', 'date', 'price_total', 'price_average', 'residual') - def _compute_amounts_in_user_currency(self): - """Compute the amounts in the currency of the user - """ - user_currency_id = self.env.company.currency_id - currency_rate_id = self.env['res.currency.rate'].search([ - ('rate', '=', 1), - '|', ('company_id', '=', self.env.company.id), ('company_id', '=', False)], limit=1) - base_currency_id = currency_rate_id.currency_id - for record in self: - date = record.date or fields.Date.today() - company = record.company_id - record.user_currency_price_total = base_currency_id._convert(record.price_total, user_currency_id, company, date) - record.user_currency_price_average = base_currency_id._convert(record.price_average, user_currency_id, company, date) - record.user_currency_residual = base_currency_id._convert(record.residual, user_currency_id, company, date) - - number = fields.Char('Invoice #', readonly=True) - date = fields.Date(readonly=True, string="Invoice Date") - product_id = fields.Many2one('product.product', string='Product', readonly=True) - product_qty = fields.Float(string='Product Quantity', readonly=True) - uom_name = fields.Char(string='Reference Unit of Measure', readonly=True) - payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms', oldname='payment_term', readonly=True) - fiscal_position_id = fields.Many2one('account.fiscal.position', oldname='fiscal_position', string='Fiscal Position', readonly=True) - currency_id = fields.Many2one('res.currency', string='Currency', readonly=True) - categ_id = fields.Many2one('product.category', string='Product Category', readonly=True) + # ==== Invoice fields ==== + move_id = fields.Many2one('account.move', readonly=True) + name = fields.Char('Invoice #', readonly=True) journal_id = fields.Many2one('account.journal', string='Journal', readonly=True) + company_id = fields.Many2one('res.company', string='Company', readonly=True) + currency_id = fields.Many2one('res.currency', string='Currency', readonly=True) partner_id = fields.Many2one('res.partner', string='Partner', readonly=True) commercial_partner_id = fields.Many2one('res.partner', string='Partner Company', help="Commercial Entity") - company_id = fields.Many2one('res.company', string='Company', readonly=True) - user_id = fields.Many2one('res.users', string='Salesperson', readonly=True) - price_total = fields.Float(string='Untaxed Total', readonly=True) - user_currency_price_total = fields.Float(string="Total Without Tax in Currency", compute='_compute_amounts_in_user_currency', digits=0) - price_average = fields.Float(string='Average Price', readonly=True, group_operator="avg") - user_currency_price_average = fields.Float(string="Average Price in Currency", compute='_compute_amounts_in_user_currency', digits=0) - currency_rate = fields.Float(string='Currency Rate', readonly=True, group_operator="avg", groups="base.group_multi_currency") - nbr = fields.Integer(string='Line Count', readonly=True) # TDE FIXME master: rename into nbr_lines - invoice_id = fields.Many2one('account.invoice', readonly=True) + country_id = fields.Many2one('res.country', string="Partner Company's Country") + invoice_user_id = fields.Many2one('res.users', string='Salesperson', readonly=True) type = fields.Selection([ ('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), @@ -56,32 +29,42 @@ class AccountInvoiceReport(models.Model): ], readonly=True) state = fields.Selection([ ('draft', 'Draft'), - ('open', 'Open'), - ('paid', 'Paid'), + ('posted', 'Open'), ('cancel', 'Cancelled') ], string='Invoice Status', readonly=True) - date_due = fields.Date(string='Due Date', readonly=True) - account_id = fields.Many2one('account.account', string='Receivable/Payable Account', readonly=True, domain=[('deprecated', '=', False)]) - account_line_id = fields.Many2one('account.account', string='Revenue/Expense Account', readonly=True, domain=[('deprecated', '=', False)]) - partner_bank_id = fields.Many2one('res.partner.bank', string='Bank Account', readonly=True) + invoice_payment_state = fields.Selection(selection=[ + ('not_paid', 'Not Paid'), + ('in_payment', 'In Payment'), + ('paid', 'paid') + ], string='Payment Status', readonly=True) + fiscal_position_id = fields.Many2one('account.fiscal.position', oldname='fiscal_position', string='Fiscal Position', readonly=True) + invoice_date = fields.Date(readonly=True, string="Invoice Date") + invoice_payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms', oldname='payment_term', readonly=True) + invoice_partner_bank_id = fields.Many2one('res.partner.bank', string='Bank Account', readonly=True) + nbr_lines = fields.Integer(string='Line Count', readonly=True) residual = fields.Float(string='Due Amount', readonly=True) - user_currency_residual = fields.Float(string="Total Residual", compute='_compute_amounts_in_user_currency', digits=0) - country_id = fields.Many2one('res.country', string="Partner Company's Country") - account_analytic_id = fields.Many2one('account.analytic.account', string='Analytic Account', groups="analytic.group_analytic_accounting") amount_total = fields.Float(string='Total', readonly=True) - _order = 'date desc' + # ==== Invoice line fields ==== + quantity = fields.Float(string='Product Quantity', readonly=True) + product_id = fields.Many2one('product.product', string='Product', readonly=True) + product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure', readonly=True) + product_categ_id = fields.Many2one('product.category', string='Product Category', readonly=True) + invoice_date_due = fields.Date(string='Due Date', readonly=True) + account_id = fields.Many2one('account.account', string='Revenue/Expense Account', readonly=True, domain=[('deprecated', '=', False)]) + analytic_account_id = fields.Many2one('account.analytic.account', string='Analytic Account', groups="analytic.group_analytic_accounting") + price_subtotal = fields.Float(string='Untaxed Total', readonly=True) + price_average = fields.Float(string='Average Price', readonly=True, group_operator="avg") _depends = { - 'account.invoice': [ - 'account_id', 'amount_total_company_signed', 'commercial_partner_id', 'company_id', - 'currency_id', 'date_due', 'date_invoice', 'fiscal_position_id', - 'journal_id', 'number', 'partner_bank_id', 'partner_id', 'payment_term_id', - 'residual', 'state', 'type', 'user_id', + 'account.move': [ + 'name', 'state', 'type', 'partner_id', 'invoice_user_id', 'fiscal_position_id', + 'invoice_date', 'invoice_date_due', 'invoice_payment_term_id', 'invoice_partner_bank_id', ], - 'account.invoice.line': [ - 'account_id', 'invoice_id', 'price_subtotal', 'product_id', - 'quantity', 'uom_id', 'account_analytic_id', + 'account.move.line': [ + 'quantity', 'price_subtotal', 'amount_residual', 'balance', 'amount_currency', + 'move_id', 'product_id', 'product_uom_id', 'account_id', 'analytic_account_id', + 'journal_id', 'company_id', 'currency_id', 'partner_id', ], 'product.product': ['product_tmpl_id'], 'product.template': ['categ_id'], @@ -90,97 +73,107 @@ class AccountInvoiceReport(models.Model): 'res.partner': ['country_id'], } + @api.model def _select(self): - select_str = """ - SELECT sub.id, sub.number, sub.date, sub.product_id, sub.partner_id, sub.country_id, sub.account_analytic_id, - sub.payment_term_id, sub.uom_name, sub.currency_id, sub.journal_id, - sub.fiscal_position_id, sub.user_id, sub.company_id, sub.nbr, sub.invoice_id, sub.type, sub.state, - sub.categ_id, sub.date_due, sub.account_id, sub.account_line_id, sub.partner_bank_id, - sub.product_qty, sub.price_total as price_total, sub.price_average as price_average, sub.amount_total / COALESCE(cr.rate, 1) as amount_total, - COALESCE(cr.rate, 1) as currency_rate, sub.residual as residual, sub.commercial_partner_id as commercial_partner_id - """ - return select_str - - def _sub_select(self): - select_str = """ - SELECT ail.id AS id, - ai.date_invoice AS date, - ai.number as number, - ail.product_id, ai.partner_id, ai.payment_term_id, ail.account_analytic_id, - u2.name AS uom_name, - ai.currency_id, ai.journal_id, ai.fiscal_position_id, ai.user_id, ai.company_id, - 1 AS nbr, - ai.id AS invoice_id, ai.type, ai.state, pt.categ_id, ai.date_due, ai.account_id, ail.account_id AS account_line_id, - ai.partner_bank_id, - SUM ((invoice_type.sign_qty * ail.quantity) / COALESCE(u.factor,1) * COALESCE(u2.factor,1)) AS product_qty, - SUM(ail.price_subtotal_signed * invoice_type.sign) AS price_total, - SUM(ail.price_total * invoice_type.sign_qty) AS amount_total, - SUM(ABS(ail.price_subtotal_signed)) / CASE - WHEN SUM(ail.quantity / COALESCE(u.factor,1) * COALESCE(u2.factor,1)) <> 0::numeric - THEN SUM(ail.quantity / COALESCE(u.factor,1) * COALESCE(u2.factor,1)) - ELSE 1::numeric - END AS price_average, - ai.residual_company_signed / (SELECT count(*) FROM account_invoice_line l where invoice_id = ai.id) * - count(*) * invoice_type.sign AS residual, - ai.commercial_partner_id as commercial_partner_id, - coalesce(partner.country_id, partner_ai.country_id) AS country_id - """ - return select_str + return ''' + SELECT + line.id, + line.move_id, + line.product_id, + line.account_id, + line.analytic_account_id, + line.journal_id, + line.company_id, + line.currency_id, + line.partner_id AS commercial_partner_id, + move.name, + move.state, + move.type, + move.partner_id, + move.invoice_user_id, + move.fiscal_position_id, + move.invoice_payment_state, + move.invoice_date, + move.invoice_date_due, + move.invoice_payment_term_id, + move.invoice_partner_bank_id, + move.amount_residual_signed AS residual, + move.amount_total_signed AS amount_total, + uom_template.id AS product_uom_id, + template.categ_id AS product_categ_id, + SUM(line.quantity / NULLIF(COALESCE(uom_line.factor, 1) * COALESCE(uom_template.factor, 1), 0.0)) + AS quantity, + -SUM(line.balance) AS price_subtotal, + -SUM(line.balance / NULLIF(COALESCE(uom_line.factor, 1) * COALESCE(uom_template.factor, 1), 0.0)) + AS price_average, + COALESCE(partner.country_id, commercial_partner.country_id) AS country_id, + 1 AS nbr_lines + ''' + @api.model def _from(self): - from_str = """ - FROM account_invoice_line ail - JOIN account_invoice ai ON ai.id = ail.invoice_id - JOIN res_partner partner ON ai.commercial_partner_id = partner.id - JOIN res_partner partner_ai ON ai.partner_id = partner_ai.id - LEFT JOIN product_product pr ON pr.id = ail.product_id - left JOIN product_template pt ON pt.id = pr.product_tmpl_id - LEFT JOIN uom_uom u ON u.id = ail.uom_id - LEFT JOIN uom_uom u2 ON u2.id = pt.uom_id - JOIN ( - -- Temporary table to decide if the qty should be added or retrieved (Invoice vs Credit Note) - SELECT id,(CASE - WHEN ai.type::text = ANY (ARRAY['in_refund'::character varying::text, 'in_invoice'::character varying::text]) - THEN -1 - ELSE 1 - END) AS sign,(CASE - WHEN ai.type::text = ANY (ARRAY['out_refund'::character varying::text, 'in_invoice'::character varying::text]) - THEN -1 - ELSE 1 - END) AS sign_qty - FROM account_invoice ai - ) AS invoice_type ON invoice_type.id = ai.id - """ - return from_str + return ''' + FROM account_move_line line + LEFT JOIN res_partner partner ON partner.id = line.partner_id + LEFT JOIN product_product product ON product.id = line.product_id + LEFT JOIN account_account account ON account.id = line.account_id + LEFT JOIN account_account_type user_type ON user_type.id = account.user_type_id + LEFT JOIN product_template template ON template.id = product.product_tmpl_id + LEFT JOIN uom_uom uom_line ON uom_line.id = line.product_uom_id + LEFT JOIN uom_uom uom_template ON uom_template.id = template.uom_id + INNER JOIN account_move move ON move.id = line.move_id + LEFT JOIN res_partner commercial_partner ON commercial_partner.id = move.commercial_partner_id + ''' + + @api.model + def _where(self): + return ''' + WHERE move.type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt') + AND line.account_id IS NOT NULL + AND NOT line.exclude_from_invoice_tab + ''' + @api.model def _group_by(self): - group_by_str = """ - GROUP BY ail.id, ail.product_id, ail.account_analytic_id, ai.date_invoice, ai.id, - ai.partner_id, ai.payment_term_id, u2.name, u2.id, ai.currency_id, ai.journal_id, - ai.fiscal_position_id, ai.user_id, ai.company_id, ai.id, ai.type, invoice_type.sign, ai.state, pt.categ_id, - ai.date_due, ai.account_id, ail.account_id, ai.partner_bank_id, ai.residual_company_signed, - ai.amount_total_company_signed, ai.commercial_partner_id, coalesce(partner.country_id, partner_ai.country_id) - """ - return group_by_str + return ''' + GROUP BY + line.id, + line.move_id, + line.product_id, + line.account_id, + line.analytic_account_id, + line.journal_id, + line.company_id, + line.currency_id, + line.partner_id, + move.name, + move.state, + move.type, + move.amount_residual_signed, + move.amount_total_signed, + move.partner_id, + move.invoice_user_id, + move.fiscal_position_id, + move.invoice_payment_state, + move.invoice_date, + move.invoice_date_due, + move.invoice_payment_term_id, + move.invoice_partner_bank_id, + uom_template.id, + template.categ_id, + COALESCE(partner.country_id, commercial_partner.country_id) + ''' @api.model_cr def init(self): - # self._table = account_invoice_report tools.drop_view_if_exists(self.env.cr, self._table) - self.env.cr.execute("""CREATE or REPLACE VIEW %s as ( - WITH currency_rate AS (%s) - %s - FROM ( - %s %s WHERE ail.account_id IS NOT NULL %s - ) AS sub - LEFT JOIN currency_rate cr ON - (cr.currency_id = sub.currency_id AND - cr.company_id = sub.company_id AND - cr.date_start <= COALESCE(sub.date, NOW()) AND - (cr.date_end IS NULL OR cr.date_end > COALESCE(sub.date, NOW()))) - )""" % ( - self._table, self.env['res.currency']._select_companies_rates(), - self._select(), self._sub_select(), self._from(), self._group_by())) + self.env.cr.execute(''' + CREATE OR REPLACE VIEW %s AS ( + %s %s %s %s + ) + ''' % ( + self._table, self._select(), self._from(), self._where(), self._group_by() + )) class ReportInvoiceWithPayment(models.AbstractModel): diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index fae28049bf4..479d187b867 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -6,9 +6,9 @@ <field name="model">account.invoice.report</field> <field name="arch" type="xml"> <pivot string="Invoices Analysis" disable_linking="True"> - <field name="categ_id" type="row"/> - <field name="date" type="col"/> - <field name="price_total" type="measure"/> + <field name="product_categ_id" type="row"/> + <field name="invoice_date" type="col"/> + <field name="price_subtotal" type="measure"/> </pivot> </field> </record> @@ -18,8 +18,8 @@ <field name="model">account.invoice.report</field> <field name="arch" type="xml"> <graph string="Invoices Analysis"> - <field name="categ_id"/> - <field name="price_total" type="measure"/> + <field name="product_categ_id"/> + <field name="price_subtotal" type="measure"/> </graph> </field> </record> @@ -30,35 +30,35 @@ <field name="model_id">account.invoice.report</field> <field name="domain">[]</field> <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date:month', 'user_id']}</field> + <field name="context">{'group_by': ['invoice_date:month', 'invoice_user_id']}</field> </record> <record id="filter_invoice_product" model="ir.filters"> <field name="name">By Product</field> <field name="model_id">account.invoice.report</field> <field name="domain">[]</field> <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date:month', 'product_id'], 'set_visible':True, 'residual_invisible':True}</field> + <field name="context">{'group_by': ['invoice_date:month', 'product_id'], 'set_visible':True, 'residual_invisible':True}</field> </record> <record id="filter_invoice_product_category" model="ir.filters"> <field name="name">By Product Category</field> <field name="model_id">account.invoice.report</field> <field name="domain">[]</field> <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date:month', 'categ_id'], 'residual_invisible':True}</field> + <field name="context">{'group_by': ['invoice_date:month', 'product_categ_id'], 'residual_invisible':True}</field> </record> <record id="filter_invoice_refund" model="ir.filters"> <field name="name">By Credit Note</field> <field name="model_id">account.invoice.report</field> <field name="domain">[('type', '=', 'out_refund')]</field> <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date:month', 'user_id']}</field> + <field name="context">{'group_by': ['invoice_date:month', 'invoice_user_id']}</field> </record> <record id="filter_invoice_country" model="ir.filters"> <field name="name">By Country</field> <field name="model_id">account.invoice.report</field> <field name="domain">[]</field> <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date:month', 'country_id']}</field> + <field name="context">{'group_by': ['invoice_date:month', 'country_id']}</field> </record> <record id="view_account_invoice_report_search" model="ir.ui.view"> @@ -66,9 +66,9 @@ <field name="model">account.invoice.report</field> <field name="arch" type="xml"> <search string="Invoices Analysis"> - <filter string="My Invoices" name="my_invoice" domain="[('user_id', '=', uid)]"/> + <filter string="My Invoices" name="my_invoice" domain="[('invoice_user_id', '=', uid)]"/> <separator/> - <field name="date"/> + <field name="invoice_date"/> <separator/> <filter string="To Invoice" name="toinvoice" domain="[('state','=','draft')]" help = "Draft Invoices"/> <filter string="Invoiced" name="current" domain="[('state','not in', ('draft','cancel'))]"/> @@ -79,19 +79,19 @@ <filter string="Invoices" name="invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]"/> <filter string="Credit Notes" name="creditnote" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]"/> <field name="partner_id" operator="child_of"/> - <field name="user_id" /> + <field name="invoice_user_id" /> <field name="product_id" /> - <field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/> + <field name="product_categ_id" filter_domain="[('product_categ_id', 'child_of', self)]"/> <group expand="1" string="Group By"> - <filter string="Salesperson" name='user' context="{'group_by':'user_id'}"/> + <filter string="Salesperson" name='user' context="{'group_by':'invoice_user_id'}"/> <filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/> - <filter string="Product Category" name="category_product" context="{'group_by':'categ_id','residual_invisible':True}"/> + <filter string="Product Category" name="category_product" context="{'group_by':'product_categ_id','residual_invisible':True}"/> <filter string="Status" name="status" context="{'group_by':'state'}"/> - <filter string="Analytic Account" name="account_analytic_id" context="{'group_by':'account_analytic_id'}" groups="analytic.group_analytic_accounting" /> + <filter string="Analytic Account" name="analytic_account_id" context="{'group_by':'analytic_account_id'}" groups="analytic.group_analytic_accounting" /> <filter string="Company" name="company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> <separator orientation="vertical" /> - <filter string="Date" name="date" context="{'group_by':'date'}"/> - <filter string="Due Date" name="duemonth" context="{'group_by':'date_due:month'}"/> + <filter string="Date" name="invoice_date" context="{'group_by':'invoice_date'}"/> + <filter string="Due Date" name="duemonth" context="{'group_by':'invoice_date_due:month'}"/> </group> </search> </field> diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index 34f80bf9c68..dce3f3da4f1 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -131,13 +131,6 @@ <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> </record> - <record id="invoice_comp_rule" model="ir.rule"> - <field name="name">Invoice multi-company</field> - <field name="model_id" ref="model_account_invoice"/> - <field name="global" eval="True"/> - <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> - </record> - <record id="invoice_analysis_comp_rule" model="ir.rule"> <field name="name">Invoice Analysis multi-company</field> <field name="model_id" ref="model_account_invoice_report"/> @@ -152,13 +145,6 @@ <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> </record> - <record model="ir.rule" id="account_invoice_line_comp_rule"> - <field name="name">Invoice Line company rule</field> - <field name="model_id" ref="model_account_invoice_line"/> - <field name="global" eval="True"/> - <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> - </record> - <record model="ir.rule" id="account_bank_statement_comp_rule"> <field name="name">Account bank statement company rule</field> <field name="model_id" ref="model_account_bank_statement"/> @@ -193,18 +179,18 @@ <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> </record> - <!-- Portal for invoice and invoice lines --> + <!-- Portal for invoice move and invoice move lines --> <record id="account_invoice_rule_portal" model="ir.rule"> <field name="name">Portal Personal Account Invoices</field> - <field name="model_id" ref="account.model_account_invoice"/> - <field name="domain_force">[('message_partner_ids','child_of',[user.commercial_partner_id.id])]</field> + <field name="model_id" ref="account.model_account_move"/> + <field name="domain_force">[('type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('message_partner_ids','child_of',[user.commercial_partner_id.id])]</field> <field name="groups" eval="[(4, ref('base.group_portal'))]"/> </record> <record id="account_invoice_line_rule_portal" model="ir.rule"> <field name="name">Portal Invoice Lines</field> - <field name="model_id" ref="account.model_account_invoice_line"/> - <field name="domain_force">[('invoice_id.message_partner_ids','child_of',[user.commercial_partner_id.id])]</field> + <field name="model_id" ref="account.model_account_move_line"/> + <field name="domain_force">[('move_id.type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('move_id.message_partner_ids','child_of',[user.commercial_partner_id.id])]</field> <field name="groups" eval="[(4, ref('base.group_portal'))]"/> </record> </data> diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index 467a9af3fb5..1925e05545f 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -23,11 +23,10 @@ access_account_bank_statement,account.bank.statement,model_account_bank_statemen access_account_bank_statement_line,account.bank.statement.line,model_account_bank_statement_line,account.group_account_user,1,1,1,1 access_account_analytic_line_manager,account.analytic.line manager,model_account_analytic_line,account.group_account_manager,1,0,0,0 access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,base.group_user,1,0,0,0 -access_account_invoice_uinvoice,account.invoice,model_account_invoice,account.group_account_invoice,1,1,1,1 -access_account_invoice_line_uinvoice,account.invoice.line,model_account_invoice_line,account.group_account_invoice,1,1,1,1 -access_account_invoice_tax_uinvoice,account.invoice.tax,model_account_invoice_tax,account.group_account_invoice,1,1,1,1 access_account_move_uinvoice,account.move,model_account_move,account.group_account_invoice,1,1,1,1 access_account_move_line_uinvoice,account.move.line invoice,model_account_move_line,account.group_account_invoice,1,1,1,1 +access_account_invoice_portal,account.move.portal,account.model_account_move,base.group_portal,1,0,0,0 +access_account_invoice_line_portal,account.move.line.portal,account.model_account_move_line,base.group_portal,1,0,0,0 access_account_payment_term_manager,account.payment.term,model_account_payment_term,account.group_account_manager,1,1,1,1 access_account_payment_term_line_manager,account.payment.term.line,model_account_payment_term_line,account.group_account_manager,1,1,1,1 access_account_cash_rounding_uinvoice,account.cash.rounding,model_account_cash_rounding,account.group_account_invoice,1,1,1,1 @@ -35,11 +34,8 @@ access_account_tax_manager,account.tax,model_account_tax,account.group_account_m access_account_journal_manager,account.journal,model_account_journal,account.group_account_manager,1,1,1,1 access_account_journal_user,account.journal,model_account_journal,account.group_account_user,1,0,0,0 access_account_journal_invoice,account.journal invoice,model_account_journal,account.group_account_invoice,1,0,0,0 -access_account_invoice_group_invoice,account.invoice group invoice,model_account_invoice,account.group_account_invoice,1,1,1,1 access_res_currency_account_manager,res.currency account manager,base.model_res_currency,group_account_manager,1,1,1,1 access_res_currency_rate_account_manager,res.currency.rate account manager,base.model_res_currency_rate,group_account_manager,1,1,1,1 -access_account_invoice_portal,account.invoice.portal,account.model_account_invoice,base.group_portal,1,0,0,0 -access_account_invoice_line_portal,account.invoice.line.portal,account.model_account_invoice_line,base.group_portal,1,0,0,0 access_account_payment_term_partner_manager,account.payment.term partner manager,model_account_payment_term,base.group_user,1,0,0,0 access_account_payment_term_line_partner_manager,account.payment.term.line partner manager,model_account_payment_term_line,base.group_user,1,0,0,0 access_account_fiscal_position_product_manager,account.fiscal.position account.manager,model_account_fiscal_position,account.group_account_manager,1,1,1,1 @@ -55,12 +51,9 @@ access_account_invoice_report_user,account.invoice.report_user,model_account_inv access_account_invoice_report,account.invoice.report,model_account_invoice_report,account.group_account_manager,1,1,1,1 access_account_invoice_report_billing,account.invoice.report_billing,model_account_invoice_report,account.group_account_invoice,1,0,0,0 access_res_partner_group_account_manager,res_partner group_account_manager,model_res_partner,account.group_account_manager,1,0,0,0 -access_account_invoice_accountant,account.invoice accountant,model_account_invoice,account.group_account_user,1,0,0,0 access_account_move_line_manager,account.move.line manager,model_account_move_line,account.group_account_manager,1,0,0,0 access_account_move_manager,account.move manager,model_account_move,account.group_account_manager,1,0,0,0 -access_account_invoice_tax_accountant,account.invoice.tax accountant,model_account_invoice_tax,account.group_account_user,1,0,0,0 access_account_analytic_line_invoice,account.analytic.line invoice,model_account_analytic_line,account.group_account_invoice,1,1,1,1 -access_account_invoice_line_accountant,account.invoice.line accountant,model_account_invoice_line,account.group_account_user,1,0,0,0 access_account_account_invoice,account.account invoice,model_account_account,account.group_account_invoice,1,0,0,0 access_account_analytic_accountant,account.analytic.account accountant,analytic.model_account_analytic_account,account.group_account_user,1,1,1,1 access_account_account_type_invoice,account.account.type invoice,model_account_account_type,account.group_account_invoice,1,0,0,0 diff --git a/addons/account/static/src/js/account_payment_field.js b/addons/account/static/src/js/account_payment_field.js index 2b8507de197..8cba2a2d035 100644 --- a/addons/account/static/src/js/account_payment_field.js +++ b/addons/account/static/src/js/account_payment_field.js @@ -69,7 +69,6 @@ var ShowPaymentLineWidget = AbstractField.extend({ move_id: content.move_id, ref: content.ref, account_payment_id: content.account_payment_id, - invoice_id: content.invoice_id, })); $content.filter('.js_unreconcile_payment').on('click', self._onRemoveMoveReconcile.bind(self)); $content.filter('.js_open_payment').on('click', self._onOpenPayment.bind(self)); @@ -96,15 +95,11 @@ var ShowPaymentLineWidget = AbstractField.extend({ * @param {MouseEvent} event */ _onOpenPayment: function (event) { - var invoiceId = parseInt($(event.target).attr('invoice-id')); var paymentId = parseInt($(event.target).attr('payment-id')); var moveId = parseInt($(event.target).attr('move-id')); var res_model; var id; - if (invoiceId !== undefined && !isNaN(invoiceId)){ - res_model = "account.invoice"; - id = invoiceId; - } else if (paymentId !== undefined && !isNaN(paymentId)){ + if (paymentId !== undefined && !isNaN(paymentId)){ res_model = "account.payment"; id = paymentId; } else if (moveId !== undefined && !isNaN(moveId)){ @@ -133,9 +128,9 @@ var ShowPaymentLineWidget = AbstractField.extend({ var self = this; var id = $(event.target).data('id') || false; this._rpc({ - model: 'account.invoice', - method: 'assign_outstanding_credit', - args: [JSON.parse(this.value).invoice_id, id], + model: 'account.move', + method: 'js_assign_outstanding_line', + args: [JSON.parse(this.value).move_id, id], }).then(function () { self.trigger_up('reload'); }); @@ -153,7 +148,7 @@ var ShowPaymentLineWidget = AbstractField.extend({ model: 'account.move.line', method: 'remove_move_reconcile', args: [paymentId], - context: {'invoice_id': this.res_id}, + context: {'move_id': this.res_id}, }).then(function () { self.trigger_up('reload'); }); diff --git a/addons/account/static/src/xml/account_payment.xml b/addons/account/static/src/xml/account_payment.xml index 55b327183fc..408681ecde8 100644 --- a/addons/account/static/src/xml/account_payment.xml +++ b/addons/account/static/src/xml/account_payment.xml @@ -79,7 +79,7 @@ </table> </div> <button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-payment-id="payment_id" style="margin-top:5px; margin-bottom:5px;">Unreconcile</button> - <button class="btn btn-sm btn-secondary js_open_payment float-right" t-att-payment-id="account_payment_id" t-att-invoice-id="invoice_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button> + <button class="btn btn-sm btn-secondary js_open_payment float-right" t-att-payment-id="account_payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button> </t> </templates> diff --git a/addons/account/static/tests/account_payment_field_tests.js b/addons/account/static/tests/account_payment_field_tests.js index 18ae4300ad1..379f099d29c 100644 --- a/addons/account/static/tests/account_payment_field_tests.js +++ b/addons/account/static/tests/account_payment_field_tests.js @@ -9,7 +9,7 @@ var createView = testUtils.createView; QUnit.module('account', { beforeEach: function () { this.data = { - 'account.invoice': { + 'account.move': { fields: { payments_widget: {string: "payments_widget data", type: "char"}, outstanding_credits_debits_widget: {string: "outstanding_credits_debits_widget data", type: "char"}, @@ -17,7 +17,7 @@ QUnit.module('account', { records: [{ id: 1, payments_widget: '{"content": [{"digits": [69, 2], "currency": "$", "amount": 555.0, "name": "Customer Payment: INV/2017/0004", "date": "2017-04-25", "position": "before", "ref": "BNK1/2017/0003 (INV/2017/0004)", "payment_id": 22, "move_id": 10, "journal_name": "Bank"}], "outstanding": false, "title": "Less Payment"}', - outstanding_credits_debits_widget: '{"content": [{"digits": [69, 2], "currency": "$", "amount": 100.0, "journal_name": "INV/2017/0004", "position": "before", "id": 20}], "invoice_id": 4, "outstanding": true, "title": "Outstanding credits"}', + outstanding_credits_debits_widget: '{"content": [{"digits": [69, 2], "currency": "$", "amount": 100.0, "journal_name": "INV/2017/0004", "position": "before", "id": 20}], "move_id": 4, "outstanding": true, "title": "Outstanding credits"}', }] }, }; @@ -30,7 +30,7 @@ QUnit.module('account', { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', data: this.data, arch: '<form>'+ '<field name="outstanding_credits_debits_widget" widget="payment"/>'+ @@ -40,11 +40,11 @@ QUnit.module('account', { mockRPC: function (route, args) { if (args.method === 'remove_move_reconcile') { assert.deepEqual(args.args, [22], "should call remove_move_reconcile {warning: required focus}"); - assert.deepEqual(args.kwargs, {context: {"invoice_id": 1}}, "should call remove_move_reconcile {warning: required focus}"); + assert.deepEqual(args.kwargs, {context: {"move_id": 1}}, "should call remove_move_reconcile {warning: required focus}"); return Promise.resolve(); } - if (args.method === 'assign_outstanding_credit') { - assert.deepEqual(args.args, [4, 20], "should call assign_outstanding_credit {warning: required focus}"); + if (args.method === 'js_assign_outstanding_line') { + assert.deepEqual(args.args, [4, 20], "should call js_assign_outstanding_line {warning: required focus}"); return Promise.resolve(); } return this._super.apply(this, arguments); diff --git a/addons/account/tests/__init__.py b/addons/account/tests/__init__.py index 0eb1d84e613..c2612d50551 100644 --- a/addons/account/tests/__init__.py +++ b/addons/account/tests/__init__.py @@ -1,23 +1,20 @@ -#Accounting tests written in python should extend the class AccountingTestCase. -#See its doc for more info. +# -*- coding: utf-8 -*- -from . import test_account_customer_invoice -from . import test_account_move_closed_period -from . import test_account_move_tax_lock_date -from . import test_account_supplier_invoice -from . import test_account_validate_account_move -from . import test_account_invoice_rounding +from . import test_account_move_out_invoice +from . import test_account_move_out_refund +from . import test_account_move_in_invoice +from . import test_account_move_in_refund +from . import test_account_move_entry +from . import test_account_invoice_report +from . import test_account_journal_dashboard from . import test_bank_statement_reconciliation from . import test_fiscal_position -from . import test_invoice_onchange from . import test_reconciliation_widget from . import test_payment -from . import test_product_id_change from . import test_reconciliation from . import test_search from . import test_tax from . import test_invoice_taxes -from . import test_account_move_taxes_edition from . import test_templates_consistency from . import test_account_fiscal_year from . import test_account_all_l10n diff --git a/addons/account/tests/account_test_savepoint.py b/addons/account/tests/account_test_savepoint.py new file mode 100644 index 00000000000..7cea2de366d --- /dev/null +++ b/addons/account/tests/account_test_savepoint.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +from odoo import fields +from odoo.tests.common import Form, SavepointCase +from odoo.tests import tagged + + +@tagged('post_install', '-at_install') +class AccountingSavepointCase(SavepointCase): + + # ------------------------------------------------------------------------- + # DATA GENERATION + # ------------------------------------------------------------------------- + + @classmethod + def setUpClass(cls): + super(AccountingSavepointCase, cls).setUpClass() + + chart_template = cls.env.user.company_id.chart_template_id + if not chart_template: + chart_template = cls.env.ref('l10n_generic_coa.configurable_chart_template', raise_if_not_found=False) + if not chart_template: + cls.skipTest("Accounting Tests skipped because the user's company has no chart of accounts.") + + # Create user. + user = cls.env['res.users'].create({ + 'name': 'Because I am accountman!', + 'login': 'accountman', + 'groups_id': [(6, 0, cls.env.user.groups_id.ids)], + }) + user.partner_id.email = 'accountman@test.com' + + # Shadow the current environment/cursor with one having the report user. + # This is mandatory to test access rights. + cls.env = cls.env(user=user) + cls.cr = cls.env.cr + + cls.company_data = cls.setup_company_data('company_1_data') + cls.currency_data = cls.setup_multi_currency_data() + + @classmethod + def setup_company_data(cls, company_name, **kwargs): + ''' Create a new company having the name passed as parameter. + A chart of accounts will be installed to this company: the same as the current company one. + The current user will get access to this company. + + :param company_name: The name of the company. + :return: A dictionary will be returned containing all relevant accounting data for testing. + ''' + chart_template = cls.env.user.company_id.chart_template_id + company = cls.env['res.company'].create({ + 'name': company_name, + 'currency_id': cls.env.user.company_id.currency_id.id, + **kwargs, + }) + cls.env.user.company_ids |= company + cls.env.user.company_id = company + + chart_template = cls.env['account.chart.template'].browse(chart_template.id) + chart_template.load_for_current_company(15.0, 15.0) + + # The currency could be different after the installation of the chart template. + company.write({'currency_id': kwargs.get('currency_id', cls.env.user.company_id.currency_id.id)}) + + return { + 'company': company, + 'currency': company.currency_id, + 'default_account_revenue': cls.env['account.account'].search([ + ('company_id', '=', company.id), + ('user_type_id', '=', cls.env.ref('account.data_account_type_revenue').id) + ], limit=1), + 'default_account_expense': cls.env['account.account'].search([ + ('company_id', '=', company.id), + ('user_type_id', '=', cls.env.ref('account.data_account_type_expenses').id) + ], limit=1), + 'default_account_receivable': cls.env['account.account'].search([ + ('company_id', '=', company.id), + ('user_type_id.type', '=', 'receivable') + ], limit=1), + 'default_account_payable': cls.env['account.account'].search([ + ('company_id', '=', company.id), + ('user_type_id.type', '=', 'payable') + ], limit=1), + 'default_account_tax_sale': company.account_sale_tax_id.mapped('invoice_repartition_line_ids.account_id'), + 'default_account_tax_purchase': company.account_purchase_tax_id.mapped('invoice_repartition_line_ids.account_id'), + 'default_journal_misc': cls.env['account.journal'].search([ + ('company_id', '=', company.id), + ('type', '=', 'general') + ], limit=1), + 'default_journal_sale': cls.env['account.journal'].search([ + ('company_id', '=', company.id), + ('type', '=', 'sale') + ], limit=1), + 'default_journal_purchase': cls.env['account.journal'].search([ + ('company_id', '=', company.id), + ('type', '=', 'purchase') + ], limit=1), + 'default_tax_sale': company.account_sale_tax_id, + 'default_tax_purchase': company.account_purchase_tax_id, + } + + @classmethod + def setup_multi_currency_data(cls): + gold_currency = cls.env['res.currency'].create({ + 'name': 'Gold Coin', + 'symbol': '☺', + 'rounding': 0.001, + 'position': 'after', + 'currency_unit_label': 'Gold', + 'currency_subunit_label': 'Silver', + }) + rate1 = cls.env['res.currency.rate'].create({ + 'name': '2016-01-01', + 'rate': 3.0, + 'currency_id': gold_currency.id, + 'company_id': cls.env.company.id, + }) + rate2 = cls.env['res.currency.rate'].create({ + 'name': '2017-01-01', + 'rate': 2.0, + 'currency_id': gold_currency.id, + 'company_id': cls.env.company.id, + }) + return { + 'currency': gold_currency, + 'rates': rate1 + rate2, + } + + @classmethod + def setup_armageddon_tax(cls, tax_name, company_data): + return cls.env['account.tax'].create({ + 'name': '%s (group)' % tax_name, + 'amount_type': 'group', + 'amount': 0.0, + 'children_tax_ids': [ + (0, 0, { + 'name': '%s (child 1)' % tax_name, + 'amount_type': 'percent', + 'amount': 20.0, + 'price_include': True, + 'include_base_amount': True, + 'tax_exigibility': 'on_invoice', + 'invoice_repartition_line_ids': [ + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'base', + }), + (0, 0, { + 'factor_percent': 40, + 'repartition_type': 'tax', + 'account_id': company_data['default_account_tax_sale'].id, + }), + (0, 0, { + 'factor_percent': 60, + 'repartition_type': 'tax', + # /!\ No account set. + }), + ], + 'refund_repartition_line_ids': [ + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'base', + }), + (0, 0, { + 'factor_percent': 40, + 'repartition_type': 'tax', + 'account_id': company_data['default_account_tax_sale'].id, + }), + (0, 0, { + 'factor_percent': 60, + 'repartition_type': 'tax', + # /!\ No account set. + }), + ], + }), + (0, 0, { + 'name': '%s (child 2)' % tax_name, + 'amount_type': 'percent', + 'amount': 10.0, + 'tax_exigibility': 'on_payment', + 'cash_basis_transition_account_id': company_data['default_account_tax_sale'].copy().id, + 'invoice_repartition_line_ids': [ + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'base', + }), + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'tax', + 'account_id': company_data['default_account_tax_sale'].id, + }), + ], + 'refund_repartition_line_ids': [ + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'base', + }), + + (0, 0, { + 'factor_percent': 100, + 'repartition_type': 'tax', + 'account_id': company_data['default_account_tax_sale'].id, + }), + ], + }), + ], + }) diff --git a/addons/account/tests/invoice_test_common.py b/addons/account/tests/invoice_test_common.py new file mode 100644 index 00000000000..1094cbdd208 --- /dev/null +++ b/addons/account/tests/invoice_test_common.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.account_test_savepoint import AccountingSavepointCase +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo.exceptions import ValidationError +from odoo import fields + +import logging + +_logger = logging.getLogger(__name__) + + +@tagged('post_install', '-at_install') +class InvoiceTestCommon(AccountingSavepointCase): + + @classmethod + def setUpClass(cls): + super(InvoiceTestCommon, cls).setUpClass() + + # ==== Taxes ==== + cls.tax_sale_a = cls.company_data['default_tax_sale'] + cls.tax_sale_b = cls.company_data['default_tax_sale'].copy() + cls.tax_purchase_a = cls.company_data['default_tax_purchase'] + cls.tax_purchase_b = cls.company_data['default_tax_purchase'].copy() + cls.tax_armageddon = cls.setup_armageddon_tax('complex_tax', cls.company_data) + + # ==== Products ==== + cls.product_a = cls.env['product.product'].create({ + 'name': 'product_a', + 'uom_id': cls.env.ref('uom.product_uom_unit').id, + 'lst_price': 1000.0, + 'standard_price': 800.0, + 'property_account_income_id': cls.company_data['default_account_revenue'].id, + 'property_account_expense_id': cls.company_data['default_account_expense'].id, + 'taxes_id': [(6, 0, cls.tax_sale_a.ids)], + 'supplier_taxes_id': [(6, 0, cls.tax_purchase_a.ids)], + }) + cls.product_b = cls.env['product.product'].create({ + 'name': 'product_b', + 'uom_id': cls.env.ref('uom.product_uom_dozen').id, + 'lst_price': 200.0, + 'standard_price': 160.0, + 'property_account_income_id': cls.company_data['default_account_revenue'].copy().id, + 'property_account_expense_id': cls.company_data['default_account_expense'].copy().id, + 'taxes_id': [(6, 0, (cls.tax_sale_a + cls.tax_sale_b).ids)], + 'supplier_taxes_id': [(6, 0, (cls.tax_purchase_a + cls.tax_purchase_b).ids)], + }) + + # ==== Fiscal positions ==== + cls.fiscal_pos_a = cls.env['account.fiscal.position'].create({ + 'name': 'fiscal_pos_a', + 'tax_ids': [ + (0, None, { + 'tax_src_id': cls.tax_sale_a.id, + 'tax_dest_id': cls.tax_sale_b.id, + }), + (0, None, { + 'tax_src_id': cls.tax_purchase_a.id, + 'tax_dest_id': cls.tax_purchase_b.id, + }), + ], + 'account_ids': [ + (0, None, { + 'account_src_id': cls.product_a.property_account_income_id.id, + 'account_dest_id': cls.product_b.property_account_income_id.id, + }), + (0, None, { + 'account_src_id': cls.product_a.property_account_expense_id.id, + 'account_dest_id': cls.product_b.property_account_expense_id.id, + }), + ], + }) + + # ==== Payment terms ==== + cls.pay_terms_a = cls.env.ref('account.account_payment_term_immediate') + cls.pay_terms_b = cls.env['account.payment.term'].create({ + 'name': '30% Advance End of Following Month', + 'note': 'Payment terms: 30% Advance End of Following Month', + 'line_ids': [ + (0, 0, { + 'value': 'percent', + 'value_amount': 30.0, + 'sequence': 400, + 'days': 0, + 'option': 'day_after_invoice_date', + }), + (0, 0, { + 'value': 'balance', + 'value_amount': 0.0, + 'sequence': 500, + 'days': 31, + 'option': 'day_following_month', + }), + ], + }) + + # ==== Partners ==== + cls.partner_a = cls.env['res.partner'].create({ + 'name': 'partner_a', + 'property_payment_term_id': cls.pay_terms_a.id, + 'property_supplier_payment_term_id': cls.pay_terms_a.id, + 'property_account_receivable_id': cls.company_data['default_account_receivable'].id, + 'property_account_payable_id': cls.company_data['default_account_payable'].id, + 'company_id': False, + }) + cls.partner_b = cls.env['res.partner'].create({ + 'name': 'partner_b', + 'property_payment_term_id': cls.pay_terms_b.id, + 'property_supplier_payment_term_id': cls.pay_terms_b.id, + 'property_account_position_id': cls.fiscal_pos_a.id, + 'property_account_receivable_id': cls.company_data['default_account_receivable'].copy().id, + 'property_account_payable_id': cls.company_data['default_account_payable'].copy().id, + 'company_id': False, + }) + + # ==== Cash rounding ==== + cls.cash_rounding_a = cls.env['account.cash.rounding'].create({ + 'name': 'add_invoice_line', + 'rounding': 0.05, + 'strategy': 'add_invoice_line', + 'account_id': cls.company_data['default_account_revenue'].copy().id, + 'rounding_method': 'UP', + }) + cls.cash_rounding_b = cls.env['account.cash.rounding'].create({ + 'name': 'biggest_tax', + 'rounding': 0.05, + 'strategy': 'biggest_tax', + 'rounding_method': 'DOWN', + }) + + @classmethod + def init_invoice(cls, move_type): + move_form = Form(cls.env['account.move'].with_context(default_type=move_type)) + move_form.invoice_date = fields.Date.from_string('2019-01-01') + move_form.partner_id = cls.partner_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = cls.product_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = cls.product_b + return move_form.save() + + def assertInvoiceValues(self, move, expected_lines_values, expected_move_values): + def sort_lines(lines): + return lines.sorted(lambda line: (line.exclude_from_invoice_tab, not bool(line.tax_line_id), line.name or '', line.balance)) + self.assertRecordValues(sort_lines(move.line_ids), expected_lines_values) + self.assertRecordValues(sort_lines(move.invoice_line_ids), expected_lines_values[:len(move.invoice_line_ids)]) + self.assertRecordValues(move, [expected_move_values]) diff --git a/addons/account/tests/test_account_customer_invoice.py b/addons/account/tests/test_account_customer_invoice.py deleted file mode 100644 index 1a84c82cda2..00000000000 --- a/addons/account/tests/test_account_customer_invoice.py +++ /dev/null @@ -1,364 +0,0 @@ -from unittest.mock import patch - -from odoo.addons.account.tests.account_test_users import AccountTestUsers -import datetime -from odoo.tests import tagged - - -@tagged('post_install', '-at_install') -class TestAccountCustomerInvoice(AccountTestUsers): - - def test_customer_invoice(self): - # I will create bank detail with using manager access rights - # because account manager can only create bank details. - self.res_partner_bank_0 = self.env['res.partner.bank'].sudo(self.account_manager.id).create(dict( - acc_type='bank', - company_id=self.main_company.id, - partner_id=self.main_partner.id, - acc_number='123456789', - bank_id=self.main_bank.id, - )) - - # Test with that user which have rights to make Invoicing and payment and who is accountant. - # Create a customer invoice - self.account_invoice_obj = self.env['account.invoice'] - self.payment_term = self.env.ref('account.account_payment_term_advance') - self.journalrec = self.env['account.journal'].search([('type', '=', 'sale')])[0] - self.partner3 = self.env.ref('base.res_partner_3') - account_user_type = self.env.ref('account.data_account_type_receivable') - self.ova = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_current_assets').id)], limit=1) - - #only adviser can create an account - self.account_rec1_id = self.account_model.sudo(self.account_manager.id).create(dict( - code="cust_acc", - name="customer account", - user_type_id=account_user_type.id, - reconcile=True, - )) - - invoice_line_data = [ - (0, 0, - { - 'product_id': self.env.ref('product.product_product_5').id, - 'quantity': 10.0, - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, - 'name': 'product test 5', - 'price_unit': 100.00, - } - ) - ] - - self.account_invoice_customer0 = self.account_invoice_obj.sudo(self.account_user.id).create(dict( - name="Test Customer Invoice", - payment_term_id=self.payment_term.id, - journal_id=self.journalrec.id, - partner_id=self.partner3.id, - account_id=self.account_rec1_id.id, - invoice_line_ids=invoice_line_data - )) - - # I manually assign tax on invoice - invoice_tax_line = { - 'name': 'Test Tax for Customer Invoice', - 'manual': 1, - 'amount': 9050, - 'account_id': self.ova.id, - 'invoice_id': self.account_invoice_customer0.id, - } - tax = self.env['account.invoice.tax'].create(invoice_tax_line) - assert tax, "Tax has not been assigned correctly" - - total_before_confirm = self.partner3.total_invoiced - - # I check that Initially customer invoice is in the "Draft" state - self.assertEquals(self.account_invoice_customer0.state, 'draft') - - # I check that there is no move attached to the invoice - self.assertEquals(len(self.account_invoice_customer0.move_id), 0) - - # I validate invoice by creating on - self.account_invoice_customer0.action_invoice_open() - - # I check that the invoice state is "Open" - self.assertEquals(self.account_invoice_customer0.state, 'open') - - # I check that now there is a move attached to the invoice - assert self.account_invoice_customer0.move_id, "Move not created for open invoice" - - # I totally pay the Invoice - self.account_invoice_customer0.pay_and_reconcile(self.env['account.journal'].search([('type', '=', 'bank')], limit=1), 10050.0) - - # I verify that invoice is now in Paid state - assert (self.account_invoice_customer0.state == 'paid'), "Invoice is not in Paid state" - - self.partner3.invalidate_cache(ids=self.partner3.ids) - total_after_confirm = self.partner3.total_invoiced - self.assertEquals(total_after_confirm - total_before_confirm, self.account_invoice_customer0.amount_untaxed_signed) - - # I created a credit note Using Add Credit Note Button - invoice_refund_obj = self.env['account.invoice.refund'] - self.account_invoice_refund_0 = invoice_refund_obj.create(dict( - description='Credit Note for China Export', - date=datetime.date.today(), - filter_refund='refund' - )) - - # I clicked on Add Credit Note button. - self.account_invoice_refund_0.invoice_refund() - - def test_customer_invoice_tax(self): - - self.env.company.tax_calculation_rounding_method = 'round_globally' - - payment_term = self.env.ref('account.account_payment_term_advance') - journalrec = self.env['account.journal'].search([('type', '=', 'sale')])[0] - partner3 = self.env.ref('base.res_partner_3') - account_id = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id - - tax = self.env['account.tax'].create({ - 'name': 'Tax 15.0', - 'amount': 15.0, - 'amount_type': 'percent', - 'type_tax_use': 'sale', - }) - - invoice_line_data = [ - (0, 0, - { - 'product_id': self.env.ref('product.product_product_1').id, - 'quantity': 40.0, - 'account_id': account_id, - 'name': 'product test 1', - 'discount' : 10.00, - 'price_unit': 2.27, - 'invoice_line_tax_ids': [(6, 0, [tax.id])], - } - ), - (0, 0, - { - 'product_id': self.env.ref('product.product_product_2').id, - 'quantity': 21.0, - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, - 'name': 'product test 2', - 'discount' : 10.00, - 'price_unit': 2.77, - 'invoice_line_tax_ids': [(6, 0, [tax.id])], - } - ), - (0, 0, - { - 'product_id': self.env.ref('product.product_product_3').id, - 'quantity': 21.0, - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, - 'name': 'product test 3', - 'discount' : 10.00, - 'price_unit': 2.77, - 'invoice_line_tax_ids': [(6, 0, [tax.id])], - } - ) - ] - - invoice = self.env['account.invoice'].create(dict( - name="Test Customer Invoice", - payment_term_id=payment_term.id, - journal_id=journalrec.id, - partner_id=partner3.id, - invoice_line_ids=invoice_line_data - )) - - self.assertAlmostEquals(invoice.amount_untaxed, sum([x.base for x in invoice.tax_line_ids])) - - def test_customer_invoice_tax_refund(self): - company = self.env.company - tax_account = self.env['account.account'].create({ - 'name': 'TAX', - 'code': 'TAX', - 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, - 'company_id': company.id, - }) - - tax_refund_account = self.env['account.account'].create({ - 'name': 'TAX_REFUND', - 'code': 'TAX_R', - 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, - 'company_id': company.id, - }) - - journalrec = self.env['account.journal'].search([('type', '=', 'sale')])[0] - partner3 = self.env.ref('base.res_partner_3') - account_id = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id - - tax = self.env['account.tax'].create({ - 'name': 'Tax 15.0', - 'amount': 15.0, - 'amount_type': 'percent', - 'type_tax_use': 'sale', - 'invoice_repartition_line_ids': [ - (0,0, { - 'factor_percent': 100, - 'repartition_type': 'base', - }), - - (0,0, { - 'factor_percent': 100, - 'repartition_type': 'tax', - 'account_id': tax_account.id, - }), - - ], - 'refund_repartition_line_ids': [ - (0,0, { - 'factor_percent': 100, - 'repartition_type': 'base', - }), - - (0,0, { - 'factor_percent': 100, - 'repartition_type': 'tax', - 'account_id': tax_refund_account.id, - }), - - ], - }) - - invoice_line_data = [ - (0, 0, - { - 'product_id': self.env.ref('product.product_product_1').id, - 'quantity': 40.0, - 'account_id': account_id, - 'name': 'product test 1', - 'discount': 10.00, - 'price_unit': 2.27, - 'invoice_line_tax_ids': [(6, 0, [tax.id])], - } - )] - - invoice = self.env['account.invoice'].create(dict( - name="Test Customer Invoice", - journal_id=journalrec.id, - partner_id=partner3.id, - invoice_line_ids=invoice_line_data - )) - - invoice.action_invoice_open() - - refund = invoice.refund() - self.assertEqual(invoice.tax_line_ids.mapped('account_id'), tax_account) - self.assertEqual(refund.tax_line_ids.mapped('account_id'), tax_refund_account) - - def test_customer_invoice_dashboard(self): - def patched_today(*args, **kwargs): - return '2019-01-22' - - date_invoice = '2019-01-21' - partner3 = self.env.ref('base.res_partner_3') - account_id = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id - - journal = self.env['account.journal'].create({ - 'name': 'sale_0', - 'code': 'SALE0', - 'type': 'sale', - }) - - invoice_line_data = [ - (0, 0, - { - 'product_id': self.env.ref('product.product_product_1').id, - 'quantity': 40.0, - 'account_id': account_id, - 'name': 'product test 1', - 'discount': 10.00, - 'price_unit': 2.27, - } - ) - ] - - invoice = self.env['account.invoice'].create(dict( - name="Test Customer Invoice", - journal_id=journal.id, - partner_id=partner3.id, - invoice_line_ids=invoice_line_data, - date_invoice=date_invoice, - )) - - refund_line_data = [ - (0, 0, - { - 'product_id': self.env.ref('product.product_product_1').id, - 'quantity': 1.0, - 'account_id': account_id, - 'name': 'product test 1', - 'price_unit': 13.3, - } - )] - - refund = self.env['account.invoice'].create(dict( - name="Test Customer Refund", - type='out_refund', - journal_id=journal.id, - partner_id=partner3.id, - invoice_line_ids=refund_line_data, - date_invoice=date_invoice, - )) - - # Check Draft - dashboard_data = journal.get_journal_dashboard_datas() - - self.assertEquals(dashboard_data['number_draft'], 2) - self.assertIn('68.42', dashboard_data['sum_draft']) - - self.assertEquals(dashboard_data['number_waiting'], 0) - self.assertIn('0.00', dashboard_data['sum_waiting']) - - # Check Both - invoice.action_invoice_open() - - dashboard_data = journal.get_journal_dashboard_datas() - self.assertEquals(dashboard_data['number_draft'], 1) - self.assertIn('-13.30', dashboard_data['sum_draft']) - - self.assertEquals(dashboard_data['number_waiting'], 1) - self.assertIn('81.72', dashboard_data['sum_waiting']) - - # Check waiting payment - refund.action_invoice_open() - - dashboard_data = journal.get_journal_dashboard_datas() - self.assertEquals(dashboard_data['number_draft'], 0) - self.assertIn('0.00', dashboard_data['sum_draft']) - - self.assertEquals(dashboard_data['number_waiting'], 2) - self.assertIn('68.42', dashboard_data['sum_waiting']) - - # Check partial - receivable_account = refund.move_id.line_ids.mapped('account_id').filtered(lambda a: a.internal_type == 'receivable') - payment_move = self.env['account.move'].create({ - 'journal_id': journal.id, - }) - payment_move_line = self.env['account.move.line'].with_context(check_move_validity=False).create({ - 'move_id': payment_move.id, - 'account_id': receivable_account.id, - 'debit': 10.00, - }) - self.env['account.move.line'].with_context(check_move_validity=False).create({ - 'move_id': payment_move.id, - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_liquidity').id)], limit=1).id, - 'credit': 10.00, - }) - - payment_move.post() - - refund.register_payment(payment_move_line) - - dashboard_data = journal.get_journal_dashboard_datas() - self.assertEquals(dashboard_data['number_draft'], 0) - self.assertIn('0.00', dashboard_data['sum_draft']) - - self.assertEquals(dashboard_data['number_waiting'], 2) - self.assertIn('78.42', dashboard_data['sum_waiting']) - - with patch('odoo.fields.Date.today', patched_today): - dashboard_data = journal.get_journal_dashboard_datas() - self.assertEquals(dashboard_data['number_late'], 2) - self.assertIn('78.42', dashboard_data['sum_late']) diff --git a/addons/account/tests/test_account_invoice_report.py b/addons/account/tests/test_account_invoice_report.py new file mode 100644 index 00000000000..d54f4e944d8 --- /dev/null +++ b/addons/account/tests/test_account_invoice_report.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo import fields + +from unittest.mock import patch + + +@tagged('post_install', '-at_install') +class TestAccountInvoiceReport(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountInvoiceReport, cls).setUpClass() + + cls.invoices = cls.env['account.move'].create([ + { + 'type': 'out_invoice', + 'partner_id': cls.partner_a.id, + 'invoice_date': fields.Date.from_string('2016-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 3, + 'price_unit': 1000, + }), + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 3000, + }), + ] + }, + { + 'type': 'out_receipt', + 'invoice_date': fields.Date.from_string('2016-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 6000, + }), + ] + }, + { + 'type': 'out_refund', + 'partner_id': cls.partner_a.id, + 'invoice_date': fields.Date.from_string('2017-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 1200, + }), + ] + }, + { + 'type': 'in_invoice', + 'partner_id': cls.partner_a.id, + 'invoice_date': fields.Date.from_string('2016-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 60, + }), + ] + }, + { + 'type': 'in_receipt', + 'partner_id': cls.partner_a.id, + 'invoice_date': fields.Date.from_string('2016-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 60, + }), + ] + }, + { + 'type': 'in_refund', + 'partner_id': cls.partner_a.id, + 'invoice_date': fields.Date.from_string('2017-01-01'), + 'currency_id': cls.currency_data['currency'].id, + 'invoice_line_ids': [ + (0, None, { + 'product_id': cls.product_a.id, + 'quantity': 1, + 'price_unit': 12, + }), + ] + }, + ]) + + def assertInvoiceReportValues(self, expected_values_list): + reports = self.env['account.invoice.report'].search([('company_id', '=', self.company_data['company'].id)], order='price_subtotal DESC') + expected_values_dict = [{ + 'amount_total': vals[0], + 'price_average': vals[1], + 'price_subtotal': vals[2], + 'residual': vals[3], + 'quantity': vals[4], + } for vals in expected_values_list] + self.assertRecordValues(reports, expected_values_dict) + + def test_invoice_report_multiple_types(self): + self.assertInvoiceReportValues([ + # amount_total price_average price_subtotal residual quantity + [2000, 2000, 2000, 2000, 1], + [2000, 1000, 1000, 2000, 1], + [2000, 1000, 1000, 2000, 3], + [6, 6, 6, 6, 1], + [-20, -20, -20, -20, 1], + [-20, -20, -20, -20, 1], + [-600, -600, -600, -600, 1], + ]) diff --git a/addons/account/tests/test_account_invoice_rounding.py b/addons/account/tests/test_account_invoice_rounding.py deleted file mode 100644 index dcb3752f6bc..00000000000 --- a/addons/account/tests/test_account_invoice_rounding.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- coding: utf-8 -*- - -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.exceptions import ValidationError -from odoo.tests import tagged - -import time - - -@tagged('post_install', '-at_install') -class TestAccountInvoiceRounding(AccountingTestCase): - - def setUp(self): - super(TestAccountInvoiceRounding, self).setUp() - self.account_receivable = self.env['account.account'].search( - [('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - self.account_revenue = self.env['account.account'].search( - [('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1) - self.fixed_tax = self.env['account.tax'].create({ - 'name': 'Test Tax', - 'amount': 0.0, - 'amount_type': 'fixed', - }) - - def create_cash_rounding(self, rounding, method, strategy): - return self.env['account.cash.rounding'].create({ - 'name': 'rounding ' + method, - 'rounding': rounding, - 'account_id': self.account_receivable.id, - 'strategy': strategy, - 'rounding_method': method, - }) - - def create_invoice(self, amount, cash_rounding_id, tax_amount=None): - """ Returns an open invoice """ - invoice_id = self.env['account.invoice'].create({ - 'partner_id': self.env.ref("base.res_partner_2").id, - 'currency_id': self.env.ref('base.USD').id, - 'name': 'invoice test rounding', - 'account_id': self.account_receivable.id, - 'type': 'out_invoice', - 'date_invoice': time.strftime('%Y') + '-06-26', - }) - if tax_amount: - self.fixed_tax.amount = tax_amount - self.env['account.invoice.line'].create({ - 'product_id': self.env.ref("product.product_product_4").id, - 'quantity': 1, - 'price_unit': amount, - 'invoice_id': invoice_id.id, - 'name': 'something', - 'account_id': self.account_revenue.id, - 'invoice_line_tax_ids': [(6, 0, [self.fixed_tax.id])] if tax_amount else None - }) - # Create the tax_line_ids - invoice_id._onchange_invoice_line_ids() - - # We need to set the cash_rounding_id after the _onchange_invoice_line_ids - # to avoid a ValidationError from _check_cash_rounding because the onchange - # are not well triggered in the tests. - try: - invoice_id.cash_rounding_id = cash_rounding_id - except ValidationError: - pass - - invoice_id._onchange_cash_rounding() - invoice_id.action_invoice_open() - return invoice_id - - def _check_invoice_rounding(self, inv, exp_lines_values, exp_tax_values=None): - inv_lines = inv.invoice_line_ids - self.assertEquals(len(inv_lines), len(exp_lines_values)) - for i in range(0, len(exp_lines_values)): - self.assertEquals(inv_lines[i].price_unit, exp_lines_values[i]) - - if exp_tax_values: - tax_lines = inv.tax_line_ids - self.assertEquals(len(tax_lines), len(exp_tax_values)) - for i in range(0, len(exp_tax_values)): - self.assertEquals(tax_lines[i].amount_total, exp_tax_values[i]) - - def test_rounding_add_invoice_line(self): - self._check_invoice_rounding( - self.create_invoice(100.2, self.create_cash_rounding(0.5, 'UP', 'add_invoice_line')), - [100.2, 0.3] - ) - self._check_invoice_rounding( - self.create_invoice(100.9, self.create_cash_rounding(1.0, 'DOWN', 'add_invoice_line')), - [100.9, -0.9] - ) - self._check_invoice_rounding( - self.create_invoice(100.5, self.create_cash_rounding(1.0, 'HALF-UP', 'add_invoice_line')), - [100.5, 0.5] - ) - - def test_rounding_biggest_tax(self): - self._check_invoice_rounding( - self.create_invoice(100.2, self.create_cash_rounding(0.5, 'UP', 'biggest_tax'), 1.0), - [100.2], [1.3] - ) - self._check_invoice_rounding( - self.create_invoice(100.9, self.create_cash_rounding(1.0, 'DOWN', 'biggest_tax'), 2.0), - [100.9], [1.1] - ) - self._check_invoice_rounding( - self.create_invoice(100.5, self.create_cash_rounding(1.0, 'HALF-UP', 'biggest_tax'), 1.0), - [100.5], [1.5] - ) diff --git a/addons/account/tests/test_account_journal_dashboard.py b/addons/account/tests/test_account_journal_dashboard.py new file mode 100644 index 00000000000..ef7f8fad3a1 --- /dev/null +++ b/addons/account/tests/test_account_journal_dashboard.py @@ -0,0 +1,108 @@ +from unittest.mock import patch + +from odoo.addons.account.tests.account_test_users import AccountTestUsers +from odoo.tests import tagged + + +@tagged('post_install', '-at_install') +class TestAccountJournalDashboard(AccountTestUsers): + def test_customer_invoice_dashboard(self): + def patched_today(*args, **kwargs): + return '2019-01-22' + + date_invoice = '2019-01-21' + + journal = self.env['account.journal'].create({ + 'name': 'sale_0', + 'code': 'SALE0', + 'type': 'sale', + }) + + invoice = self.env['account.move'].create({ + 'type': 'out_invoice', + 'journal_id': journal.id, + 'partner_id': self.env.ref('base.res_partner_3').id, + 'invoice_date': date_invoice, + 'date': date_invoice, + 'invoice_line_ids': [(0, 0, { + 'product_id': self.env.ref('product.product_product_1').id, + 'quantity': 40.0, + 'name': 'product test 1', + 'discount': 10.00, + 'price_unit': 2.27, + })] + }) + refund = self.env['account.move'].create({ + 'type': 'out_refund', + 'journal_id': journal.id, + 'partner_id': self.env.ref('base.res_partner_3').id, + 'invoice_date': '2019-01-21', + 'date': date_invoice, + 'invoice_line_ids': [(0, 0, { + 'product_id': self.env.ref('product.product_product_1').id, + 'quantity': 1.0, + 'name': 'product test 1', + 'price_unit': 13.3, + })] + }) + + # Check Draft + dashboard_data = journal.get_journal_dashboard_datas() + + self.assertEquals(dashboard_data['number_draft'], 2) + self.assertIn('68.42', dashboard_data['sum_draft']) + + self.assertEquals(dashboard_data['number_waiting'], 0) + self.assertIn('0.00', dashboard_data['sum_waiting']) + + # Check Both + invoice.post() + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEquals(dashboard_data['number_draft'], 1) + self.assertIn('-13.30', dashboard_data['sum_draft']) + + self.assertEquals(dashboard_data['number_waiting'], 1) + self.assertIn('81.72', dashboard_data['sum_waiting']) + + # Check waiting payment + refund.post() + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEquals(dashboard_data['number_draft'], 0) + self.assertIn('0.00', dashboard_data['sum_draft']) + + self.assertEquals(dashboard_data['number_waiting'], 2) + self.assertIn('68.42', dashboard_data['sum_waiting']) + + # Check partial + receivable_account = refund.line_ids.mapped('account_id').filtered(lambda a: a.internal_type == 'receivable') + payment_move = self.env['account.move'].create({ + 'journal_id': journal.id, + }) + payment_move_line = self.env['account.move.line'].with_context(check_move_validity=False).create({ + 'move_id': payment_move.id, + 'account_id': receivable_account.id, + 'debit': 10.00, + }) + self.env['account.move.line'].with_context(check_move_validity=False).create({ + 'move_id': payment_move.id, + 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_liquidity').id)], limit=1).id, + 'credit': 10.00, + }) + + payment_move.post() + + refund.js_assign_outstanding_line(payment_move_line.id) + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEquals(dashboard_data['number_draft'], 0) + self.assertIn('0.00', dashboard_data['sum_draft']) + + self.assertEquals(dashboard_data['number_waiting'], 2) + self.assertIn('78.42', dashboard_data['sum_waiting']) + + with patch('odoo.fields.Date.today', patched_today): + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEquals(dashboard_data['number_late'], 2) + self.assertIn('78.42', dashboard_data['sum_late']) diff --git a/addons/account/tests/test_account_move_closed_period.py b/addons/account/tests/test_account_move_closed_period.py deleted file mode 100644 index 5de3e97ac4f..00000000000 --- a/addons/account/tests/test_account_move_closed_period.py +++ /dev/null @@ -1,48 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.osv.orm import except_orm -from datetime import datetime -from dateutil.relativedelta import relativedelta -from calendar import monthrange -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -from odoo.tests import tagged - - -@tagged('post_install', '-at_install') -class TestPeriodState(AccountingTestCase): - """ - Forbid creation of Journal Entries for a closed period. - """ - - def setUp(self): - super(TestPeriodState, self).setUp() - self.user_id = self.env.user - - last_day_month = datetime.now() - relativedelta(months=1) - last_day_month = last_day_month.replace(day=monthrange(last_day_month.year, last_day_month.month)[1]) - self.last_day_month_str = last_day_month.strftime(DEFAULT_SERVER_DATE_FORMAT) - - #make sure there is no unposted entry - draft_entries = self.env['account.move'].search([('date', '<=', self.last_day_month_str), ('state', '=', 'draft')]) - if draft_entries: - draft_entries.post() - self.user_id.company_id.fiscalyear_lock_date = self.last_day_month_str - self.sale_journal_id = self.env['account.journal'].search([('type', '=', 'sale')])[0] - self.account_id = self.env['account.account'].search([('internal_type', '=', 'receivable')])[0] - - def test_period_state(self): - with self.assertRaises(except_orm): - move = self.env['account.move'].create({ - 'name': '/', - 'journal_id': self.sale_journal_id.id, - 'date': self.last_day_month_str, - 'line_ids': [(0, 0, { - 'name': 'foo', - 'debit': 10, - 'account_id': self.account_id.id, - }), (0, 0, { - 'name': 'bar', - 'credit': 10, - 'account_id': self.account_id.id, - })] - }) - move.post() diff --git a/addons/account/tests/test_account_move_entry.py b/addons/account/tests/test_account_move_entry.py new file mode 100644 index 00000000000..e831ab54878 --- /dev/null +++ b/addons/account/tests/test_account_move_entry.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests import tagged +from odoo import fields +from odoo.exceptions import ValidationError, UserError + + +@tagged('post_install', '-at_install') +class TestAccountMove(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountMove, cls).setUpClass() + + tax_repartition_line = cls.company_data['default_tax_sale'].invoice_repartition_line_ids\ + .filtered(lambda line: line.repartition_type == 'tax') + cls.test_move = cls.env['account.move'].create({ + 'type': 'entry', + 'date': fields.Date.from_string('2016-01-01'), + 'line_ids': [ + (0, None, { + 'name': 'revenue line 1', + 'account_id': cls.company_data['default_account_revenue'].id, + 'debit': 500.0, + 'credit': 0.0, + }), + (0, None, { + 'name': 'revenue line 2', + 'account_id': cls.company_data['default_account_revenue'].id, + 'debit': 1000.0, + 'credit': 0.0, + 'tax_ids': [(6, 0, cls.company_data['default_tax_sale'].ids)], + }), + (0, None, { + 'name': 'tax line', + 'account_id': cls.company_data['default_account_tax_sale'].id, + 'debit': 150.0, + 'credit': 0.0, + 'tax_repartition_line_id': tax_repartition_line.id, + }), + (0, None, { + 'name': 'counterpart line', + 'account_id': cls.company_data['default_account_expense'].id, + 'debit': 0.0, + 'credit': 1650.0, + }), + ] + }) + + def test_misc_fiscalyear_lock_date_1(self): + with self.assertRaises((ValidationError, UserError)): + self.test_move.company_id.fiscalyear_lock_date = fields.Date.from_string('2017-01-01') + + self.cr.execute('''UPDATE res_company SET fiscalyear_lock_date = '2017-01-01' WHERE id = %s''', self.test_move.company_id.ids) + + with self.assertRaises((ValidationError, UserError)): + self.test_move.post() + + with self.assertRaises(UserError): + self.env['account.move'].create(self.test_move.copy_data()) + + def test_misc_tax_lock_date_1(self): + # Set the tax lock date after the journal entry date. + self.test_move.company_id.tax_lock_date = fields.Date.from_string('2017-01-01') + + # lines[0] = 'counterpart line' + # lines[1] = 'tax line' + # lines[2] = 'revenue line 1' + # lines[3] = 'revenue line 2' + lines = self.test_move.line_ids.sorted('debit') + + # Writing not affecting a tax is allowed. + self.test_move.write({ + 'line_ids': [ + (1, lines[0].id, {'credit': 1750.0}), # counterpart line + (1, lines[2].id, {'debit': 600.0}), # revenue line 1 + ], + }) + + self.cr.execute('SAVEPOINT test_misc_tax_lock_date_1') + + # Writing something affecting a tax is not allowed. + with self.assertRaises(ValidationError): + self.test_move.write({ + 'line_ids': [ + (1, lines[0].id, {'credit': 2750.0}), + (1, lines[3].id, {'debit': 2000.0}), + ], + }) + + with self.assertRaises(ValidationError): + self.test_move.write({ + 'line_ids': [ + (1, lines[3].id, {'tax_ids': [(6, 0, self.company_data['default_tax_purchase'].ids)]}), + ], + }) + + with self.assertRaises(ValidationError): + self.test_move.write({ + 'line_ids': [ + (1, lines[0].id, {'credit': 1900.0}), + (1, lines[1].id, {'debit': 300.0}), + ], + }) + + with self.assertRaises(ValidationError): + self.test_move.unlink() + + self.cr.execute('ROLLBACK TO SAVEPOINT test_misc_tax_lock_date_1') + + with self.assertRaises(UserError): + self.test_move.post() diff --git a/addons/account/tests/test_account_move_in_invoice.py b/addons/account/tests/test_account_move_in_invoice.py new file mode 100644 index 00000000000..b14c1206f4b --- /dev/null +++ b/addons/account/tests/test_account_move_in_invoice.py @@ -0,0 +1,1043 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo import fields + + +@tagged('post_install', '-at_install') +class TestAccountMoveInInvoiceOnchanges(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountMoveInInvoiceOnchanges, cls).setUpClass() + + cls.invoice = cls.init_invoice('in_invoice') + + cls.product_line_vals_1 = { + 'name': cls.product_a.name, + 'product_id': cls.product_a.id, + 'account_id': cls.product_a.property_account_expense_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_a.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 920.0, + 'tax_ids': cls.product_a.supplier_taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 800.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.product_line_vals_2 = { + 'name': cls.product_b.name, + 'product_id': cls.product_b.id, + 'account_id': cls.product_b.property_account_expense_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_b.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 160.0, + 'price_subtotal': 160.0, + 'price_total': 208.0, + 'tax_ids': cls.product_b.supplier_taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 160.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_1 = { + 'name': cls.tax_purchase_a.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_purchase'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 144.0, + 'price_subtotal': 144.0, + 'price_total': 144.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_purchase_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 144.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_2 = { + 'name': cls.tax_purchase_b.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_purchase'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_purchase_b.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 24.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.term_line_vals_1 = { + 'name': '', + 'product_id': False, + 'account_id': cls.company_data['default_account_payable'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -1128.0, + 'price_subtotal': -1128.0, + 'price_total': -1128.0, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 1128.0, + 'date_maturity': fields.Date.from_string('2019-01-01'), + 'tax_exigible': True, + } + cls.move_vals = { + 'partner_id': cls.partner_a.id, + 'currency_id': cls.company_data['currency'].id, + 'journal_id': cls.company_data['default_journal_purchase'].id, + 'date': fields.Date.from_string('2019-01-01'), + 'fiscal_position_id': False, + 'invoice_payment_ref': '', + 'invoice_payment_term_id': cls.pay_terms_a.id, + 'amount_untaxed': 960.0, + 'amount_tax': 168.0, + 'amount_total': 1128.0, + } + + def setUp(self): + super(TestAccountMoveInInvoiceOnchanges, self).setUp() + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_in_invoice_line_onchange_product_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'name': self.product_b.name, + 'product_id': self.product_b.id, + 'product_uom_id': self.product_b.uom_id.id, + 'account_id': self.product_b.property_account_expense_id.id, + 'price_unit': 160.0, + 'price_subtotal': 160.0, + 'price_total': 208.0, + 'tax_ids': self.product_b.supplier_taxes_id.ids, + 'debit': 160.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 48.0, + 'price_subtotal': 48.0, + 'price_total': 48.0, + 'debit': 48.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 48.0, + 'price_subtotal': 48.0, + 'price_total': 48.0, + 'debit': 48.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -416.0, + 'price_subtotal': -416.0, + 'price_total': -416.0, + 'credit': 416.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 320.0, + 'amount_tax': 96.0, + 'amount_total': 416.0, + }) + + def test_in_invoice_line_onchange_business_fields_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # Current price_unit is 1000. + # We set quantity = 4, discount = 50%, price_unit = 400 because (4 * 400) * 0.5 = 800. + line_form.quantity = 4 + line_form.discount = 50 + line_form.price_unit = 400 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 4, + 'discount': 50.0, + 'price_unit': 400.0, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Reset field except the discount that becomes 100%. + # /!\ The modification is made on the accounting tab. + line_form.quantity = 1 + line_form.discount = 100 + line_form.price_unit = 800 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'discount': 100.0, + 'price_subtotal': 0.0, + 'price_total': 0.0, + 'debit': 0.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'debit': 24.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -208.0, + 'price_subtotal': -208.0, + 'price_total': -208.0, + 'credit': 208.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 160.0, + 'amount_tax': 48.0, + 'amount_total': 208.0, + }) + + def test_in_invoice_line_onchange_accounting_fields_1(self): + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Custom debit on the first product line. + line_form.debit = 3000 + with move_form.line_ids.edit(3) as line_form: + # Custom credit on the second product line. Credit should be reset by onchange. + # /!\ It's a negative line. + line_form.credit = 500 + with move_form.line_ids.edit(0) as line_form: + # Custom debit on the first tax line. + line_form.debit = 800 + with move_form.line_ids.edit(4) as line_form: + # Custom debit on the second tax line. + line_form.debit = 250 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 3000.0, + 'price_subtotal': 3000.0, + 'price_total': 3450.0, + 'debit': 3000.0, + }, + { + **self.product_line_vals_2, + 'price_unit': -500.0, + 'price_subtotal': -500.0, + 'price_total': -650.0, + 'debit': 0.0, + 'credit': 500.0, + }, + { + **self.tax_line_vals_1, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 800.0, + 'debit': 800.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 250.0, + 'price_subtotal': 250.0, + 'price_total': 250.0, + 'debit': 250.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -3550.0, + 'price_subtotal': -3550.0, + 'price_total': -3550.0, + 'credit': 3550.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 2500.0, + 'amount_tax': 1050.0, + 'amount_total': 3550.0, + }) + + def test_in_invoice_line_onchange_partner_1(self): + move_form = Form(self.invoice) + move_form.partner_id = self.partner_b + move_form.invoice_payment_ref = 'turlututu' + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -789.6, + 'price_subtotal': -789.6, + 'price_total': -789.6, + 'credit': 789.6, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -338.4, + 'price_subtotal': -338.4, + 'price_total': -338.4, + 'credit': 338.4, + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 960.0, + 'amount_tax': 168.0, + 'amount_total': 1128.0, + }) + + # Remove lines and recreate them to apply the fiscal position. + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'account_id': self.product_b.property_account_expense_id.id, + 'partner_id': self.partner_b.id, + 'tax_ids': self.tax_purchase_b.ids, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + 'price_total': 184.0, + 'tax_ids': self.tax_purchase_b.ids, + }, + { + **self.tax_line_vals_1, + 'name': self.tax_purchase_b.name, + 'partner_id': self.partner_b.id, + 'tax_line_id': self.tax_purchase_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_payable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -772.8, + 'price_subtotal': -772.8, + 'price_total': -772.8, + 'credit': 772.8, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_payable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -331.2, + 'price_subtotal': -331.2, + 'price_total': -331.2, + 'credit': 331.2, + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 960.0, + 'amount_tax': 144.0, + 'amount_total': 1104.0, + }) + + def test_in_invoice_line_onchange_taxes_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 960 + line_form.tax_ids.add(self.tax_armageddon) + move_form.save() + + child_tax_1 = self.tax_armageddon.children_tax_ids[0] + child_tax_2 = self.tax_armageddon.children_tax_ids[1] + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 960.0, + 'price_subtotal': 800.0, + 'price_total': 1176.0, + 'tax_ids': (self.tax_purchase_a + self.tax_armageddon).ids, + 'tax_exigible': False, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 64.0, + 'price_subtotal': 64.0, + 'price_total': 70.4, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 64.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_expense'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 96.0, + 'price_subtotal': 96.0, + 'price_total': 105.6, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 96.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_2.name, + 'product_id': False, + 'account_id': child_tax_2.cash_basis_transition_account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 96.0, + 'price_subtotal': 96.0, + 'price_total': 96.0, + 'tax_ids': [], + 'tax_line_id': child_tax_2.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 96.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': False, + }, + { + **self.term_line_vals_1, + 'price_unit': -1384.0, + 'price_subtotal': -1384.0, + 'price_total': -1384.0, + 'credit': 1384.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 960.0, + 'amount_tax': 424.0, + 'amount_total': 1384.0, + }) + + def test_in_invoice_line_onchange_cash_rounding_1(self): + move_form = Form(self.invoice) + # Add a cash rounding having 'add_invoice_line'. + move_form.invoice_cash_rounding_id = self.cash_rounding_a + move_form.save() + + # The cash rounding does nothing as the total is already rounded. + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 799.99 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + 'name': 'add_invoice_line', + 'product_id': False, + 'account_id': self.cash_rounding_a.account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 0.01, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.01, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.product_line_vals_1, + 'price_unit': 799.99, + 'price_subtotal': 799.99, + 'price_total': 919.99, + 'debit': 799.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + # Change the cash rounding to one having 'biggest_tax'. + move_form.invoice_cash_rounding_id = self.cash_rounding_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 799.99, + 'price_subtotal': 799.99, + 'price_total': 919.99, + 'debit': 799.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': '%s (rounding)' % self.tax_purchase_a.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_purchase'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -0.04, + 'price_subtotal': -0.04, + 'price_total': -0.04, + 'tax_ids': [], + 'tax_line_id': self.tax_purchase_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 0.04, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.term_line_vals_1, + 'price_unit': -1127.95, + 'price_subtotal': -1127.95, + 'price_total': -1127.95, + 'credit': 1127.95, + }, + ], { + **self.move_vals, + 'amount_untaxed': 959.99, + 'amount_tax': 167.96, + 'amount_total': 1127.95, + }) + + def test_in_invoice_line_onchange_currency_1(self): + # New journal having a foreign currency set. + journal = self.company_data['default_journal_purchase'].copy() + journal.currency_id = self.currency_data['currency'] + + move_form = Form(self.invoice) + move_form.journal_id = journal + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 800.0, + 'debit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 160.0, + 'debit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 144.0, + 'debit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 24.0, + 'debit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1128.0, + 'credit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + }) + + move_form = Form(self.invoice) + # Change the date to get another rate: 1/3 instead of 1/2. + move_form.date = fields.Date.from_string('2016-01-01') + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 800.0, + 'debit': 266.67, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 160.0, + 'debit': 53.33, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 144.0, + 'debit': 48.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 24.0, + 'debit': 8.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1128.0, + 'credit': 376.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + }) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # 0.045 * 0.1 = 0.0045. As the foreign currency has a 0.001 rounding, + # the result should be 0.005 after rounding. + line_form.quantity = 0.1 + line_form.price_unit = 0.045 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.05, + 'price_subtotal': 0.005, + 'price_total': 0.006, + 'currency_id': journal.currency_id.id, + 'amount_currency': 0.005, + 'debit': 0.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 160.0, + 'debit': 53.33, + }, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.001, + 'price_total': 24.001, + 'currency_id': journal.currency_id.id, + 'amount_currency': 24.001, + 'debit': 8.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 24.0, + 'debit': 8.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'price_unit': -208.01, + 'price_subtotal': -208.006, + 'price_total': -208.006, + 'amount_currency': -208.006, + 'credit': 69.33, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 160.005, + 'amount_tax': 48.001, + 'amount_total': 208.006, + }) + + move_form = Form(self.invoice) + move_form.currency_id = self.company_data['currency'] + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.1, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'debit': 0.01, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'debit': 24.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -208.01, + 'price_subtotal': -208.01, + 'price_total': -208.01, + 'credit': 208.01, + }, + ], { + **self.move_vals, + 'currency_id': self.company_data['currency'].id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 160.01, + 'amount_tax': 48.0, + 'amount_total': 208.01, + }) + + def test_in_invoice_line_onchange_sequence_number_1(self): + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0001', + 'invoice_sequence_number_next_prefix': 'BILL/2019/', + }]) + + move_form = Form(self.invoice) + move_form.invoice_sequence_number_next = '0042' + move_form.save() + + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0042', + 'invoice_sequence_number_next_prefix': 'BILL/2019/', + }]) + + self.invoice.post() + + self.assertRecordValues(self.invoice, [{'name': 'BILL/2019/0042'}]) + + invoice_copy = self.invoice.copy() + invoice_copy.post() + + self.assertRecordValues(invoice_copy, [{'name': 'BILL/2019/0043'}]) + + def test_in_invoice_onchange_past_invoice_1(self): + copy_invoice = self.invoice.copy() + + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + move_form.invoice_vendor_bill_id = copy_invoice + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_in_invoice_create_draft_refund(self): + self.invoice.post() + + move_reversal = self.env['account.move.reversal'].with_context(active_ids=self.invoice.ids).create({ + 'date': fields.Date.from_string('2019-02-01'), + 'reason': 'no reason', + 'refund_method': 'refund', + }) + reversal = move_reversal.reverse_moves() + reverse_move = self.env['account.move'].browse(reversal['res_id']) + + self.assertInvoiceValues(reverse_move, [ + { + **self.product_line_vals_1, + 'debit': 0.0, + 'credit': 800.0, + }, + { + **self.product_line_vals_2, + 'debit': 0.0, + 'credit': 160.0, + }, + { + **self.tax_line_vals_1, + 'debit': 0.0, + 'credit': 144.0, + }, + { + **self.tax_line_vals_2, + 'debit': 0.0, + 'credit': 24.0, + }, + { + **self.term_line_vals_1, + 'debit': 1128.0, + 'credit': 0.0, + }, + ], { + **self.move_vals, + 'date': move_reversal.date, + 'state': 'draft', + 'invoice_payment_ref': move_reversal.reason, + 'invoice_payment_state': 'not_paid', + }) + + move_reversal = self.env['account.move.reversal'].with_context(active_ids=self.invoice.ids).create({ + 'date': fields.Date.from_string('2019-02-01'), + 'reason': 'no reason', + 'refund_method': 'cancel', + }) + reversal = move_reversal.reverse_moves() + reverse_move = self.env['account.move'].browse(reversal['res_id']) + + self.assertInvoiceValues(reverse_move, [ + { + **self.product_line_vals_1, + 'debit': 0.0, + 'credit': 800.0, + }, + { + **self.product_line_vals_2, + 'debit': 0.0, + 'credit': 160.0, + }, + { + **self.tax_line_vals_1, + 'debit': 0.0, + 'credit': 144.0, + }, + { + **self.tax_line_vals_2, + 'debit': 0.0, + 'credit': 24.0, + }, + { + **self.term_line_vals_1, + 'debit': 1128.0, + 'credit': 0.0, + }, + ], { + **self.move_vals, + 'date': move_reversal.date, + 'state': 'posted', + 'invoice_payment_ref': move_reversal.reason, + 'invoice_payment_state': 'paid', + }) + + def test_in_invoice_create_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'in_invoice', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 800.0, + 'debit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 160.0, + 'debit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 144.0, + 'debit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 24.0, + 'debit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1128.0, + 'credit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) + + def test_in_invoice_write_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'in_invoice', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + ] + }) + move.write({ + 'invoice_line_ids': [ + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 800.0, + 'debit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 160.0, + 'debit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 144.0, + 'debit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 24.0, + 'debit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1128.0, + 'credit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) diff --git a/addons/account/tests/test_account_move_in_refund.py b/addons/account/tests/test_account_move_in_refund.py new file mode 100644 index 00000000000..7fc49e62eaa --- /dev/null +++ b/addons/account/tests/test_account_move_in_refund.py @@ -0,0 +1,956 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo import fields + + +@tagged('post_install', '-at_install') +class TestAccountMoveInRefundOnchanges(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountMoveInRefundOnchanges, cls).setUpClass() + + cls.invoice = cls.init_invoice('in_refund') + + cls.product_line_vals_1 = { + 'name': cls.product_a.name, + 'product_id': cls.product_a.id, + 'account_id': cls.product_a.property_account_expense_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_a.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 920.0, + 'tax_ids': cls.product_a.supplier_taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 800.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.product_line_vals_2 = { + 'name': cls.product_b.name, + 'product_id': cls.product_b.id, + 'account_id': cls.product_b.property_account_expense_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_b.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 160.0, + 'price_subtotal': 160.0, + 'price_total': 208.0, + 'tax_ids': cls.product_b.supplier_taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 160.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_1 = { + 'name': cls.tax_purchase_a.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_purchase'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 144.0, + 'price_subtotal': 144.0, + 'price_total': 144.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_purchase_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 144.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_2 = { + 'name': cls.tax_purchase_b.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_purchase'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_purchase_b.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 24.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.term_line_vals_1 = { + 'name': '', + 'product_id': False, + 'account_id': cls.company_data['default_account_payable'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -1128.0, + 'price_subtotal': -1128.0, + 'price_total': -1128.0, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 1128.0, + 'credit': 0.0, + 'date_maturity': fields.Date.from_string('2019-01-01'), + 'tax_exigible': True, + } + cls.move_vals = { + 'partner_id': cls.partner_a.id, + 'currency_id': cls.company_data['currency'].id, + 'journal_id': cls.company_data['default_journal_purchase'].id, + 'date': fields.Date.from_string('2019-01-01'), + 'fiscal_position_id': False, + 'invoice_payment_ref': '', + 'invoice_payment_term_id': cls.pay_terms_a.id, + 'amount_untaxed': 960.0, + 'amount_tax': 168.0, + 'amount_total': 1128.0, + } + + def setUp(self): + super(TestAccountMoveInRefundOnchanges, self).setUp() + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_in_refund_line_onchange_product_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'name': self.product_b.name, + 'product_id': self.product_b.id, + 'product_uom_id': self.product_b.uom_id.id, + 'account_id': self.product_b.property_account_expense_id.id, + 'price_unit': 160.0, + 'price_subtotal': 160.0, + 'price_total': 208.0, + 'tax_ids': self.product_b.supplier_taxes_id.ids, + 'credit': 160.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 48.0, + 'price_subtotal': 48.0, + 'price_total': 48.0, + 'credit': 48.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 48.0, + 'price_subtotal': 48.0, + 'price_total': 48.0, + 'credit': 48.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -416.0, + 'price_subtotal': -416.0, + 'price_total': -416.0, + 'debit': 416.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 320.0, + 'amount_tax': 96.0, + 'amount_total': 416.0, + }) + + def test_in_refund_line_onchange_business_fields_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # Current price_unit is 1000. + # We set quantity = 4, discount = 50%, price_unit = 400 because (4 * 400) * 0.5 = 800. + line_form.quantity = 4 + line_form.discount = 50 + line_form.price_unit = 400 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 4, + 'discount': 50.0, + 'price_unit': 400.0, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Reset field except the discount that becomes 100%. + # /!\ The modification is made on the accounting tab. + line_form.quantity = 1 + line_form.discount = 100 + line_form.price_unit = 800 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'discount': 100.0, + 'price_subtotal': 0.0, + 'price_total': 0.0, + 'credit': 0.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'credit': 24.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -208.0, + 'price_subtotal': -208.0, + 'price_total': -208.0, + 'debit': 208.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 160.0, + 'amount_tax': 48.0, + 'amount_total': 208.0, + }) + + def test_in_refund_line_onchange_accounting_fields_1(self): + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Custom credit on the first product line. + line_form.credit = 3000 + with move_form.line_ids.edit(3) as line_form: + # Custom debit on the second product line. Credit should be reset by onchange. + # /!\ It's a negative line. + line_form.debit = 500 + with move_form.line_ids.edit(0) as line_form: + # Custom credit on the first tax line. + line_form.credit = 800 + with move_form.line_ids.edit(4) as line_form: + # Custom credit on the second tax line. + line_form.credit = 250 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 3000.0, + 'price_subtotal': 3000.0, + 'price_total': 3450.0, + 'credit': 3000.0, + }, + { + **self.product_line_vals_2, + 'price_unit': -500.0, + 'price_subtotal': -500.0, + 'price_total': -650.0, + 'credit': 0.0, + 'debit': 500.0, + }, + { + **self.tax_line_vals_1, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 800.0, + 'credit': 800.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 250.0, + 'price_subtotal': 250.0, + 'price_total': 250.0, + 'credit': 250.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -3550.0, + 'price_subtotal': -3550.0, + 'price_total': -3550.0, + 'debit': 3550.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 2500.0, + 'amount_tax': 1050.0, + 'amount_total': 3550.0, + }) + + def test_in_refund_line_onchange_partner_1(self): + move_form = Form(self.invoice) + move_form.partner_id = self.partner_b + move_form.invoice_payment_ref = 'turlututu' + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -338.4, + 'price_subtotal': -338.4, + 'price_total': -338.4, + 'debit': 338.4, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -789.6, + 'price_subtotal': -789.6, + 'price_total': -789.6, + 'debit': 789.6, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 960.0, + 'amount_tax': 168.0, + 'amount_total': 1128.0, + }) + + # Remove lines and recreate them to apply the fiscal position. + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'account_id': self.product_b.property_account_expense_id.id, + 'partner_id': self.partner_b.id, + 'tax_ids': self.tax_purchase_b.ids, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + 'price_total': 184.0, + 'tax_ids': self.tax_purchase_b.ids, + }, + { + **self.tax_line_vals_1, + 'name': self.tax_purchase_b.name, + 'partner_id': self.partner_b.id, + 'tax_line_id': self.tax_purchase_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_payable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -331.2, + 'price_subtotal': -331.2, + 'price_total': -331.2, + 'debit': 331.2, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_payable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -772.8, + 'price_subtotal': -772.8, + 'price_total': -772.8, + 'debit': 772.8, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 960.0, + 'amount_tax': 144.0, + 'amount_total': 1104.0, + }) + + def test_in_refund_line_onchange_taxes_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 960 + line_form.tax_ids.add(self.tax_armageddon) + move_form.save() + + child_tax_1 = self.tax_armageddon.children_tax_ids[0] + child_tax_2 = self.tax_armageddon.children_tax_ids[1] + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 960.0, + 'price_subtotal': 800.0, + 'price_total': 1176.0, + 'tax_ids': (self.tax_purchase_a + self.tax_armageddon).ids, + 'tax_exigible': False, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_expense'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 96.0, + 'price_subtotal': 96.0, + 'price_total': 105.6, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 96.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 64.0, + 'price_subtotal': 64.0, + 'price_total': 70.4, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 64.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_2.name, + 'product_id': False, + 'account_id': child_tax_2.cash_basis_transition_account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 96.0, + 'price_subtotal': 96.0, + 'price_total': 96.0, + 'tax_ids': [], + 'tax_line_id': child_tax_2.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 96.0, + 'date_maturity': False, + 'tax_exigible': False, + }, + { + **self.term_line_vals_1, + 'price_unit': -1384.0, + 'price_subtotal': -1384.0, + 'price_total': -1384.0, + 'debit': 1384.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 960.0, + 'amount_tax': 424.0, + 'amount_total': 1384.0, + }) + + def test_in_refund_line_onchange_cash_rounding_1(self): + move_form = Form(self.invoice) + # Add a cash rounding having 'add_invoice_line'. + move_form.invoice_cash_rounding_id = self.cash_rounding_a + move_form.save() + + # The cash rounding does nothing as the total is already rounded. + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 799.99 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + 'name': 'add_invoice_line', + 'product_id': False, + 'account_id': self.cash_rounding_a.account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 0.01, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 0.01, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.product_line_vals_1, + 'price_unit': 799.99, + 'price_subtotal': 799.99, + 'price_total': 919.99, + 'credit': 799.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + # Change the cash rounding to one having 'biggest_tax'. + move_form.invoice_cash_rounding_id = self.cash_rounding_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 799.99, + 'price_subtotal': 799.99, + 'price_total': 919.99, + 'credit': 799.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': '%s (rounding)' % self.tax_purchase_a.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_purchase'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -0.04, + 'price_subtotal': -0.04, + 'price_total': -0.04, + 'tax_ids': [], + 'tax_line_id': self.tax_purchase_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.04, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.term_line_vals_1, + 'price_unit': -1127.95, + 'price_subtotal': -1127.95, + 'price_total': -1127.95, + 'debit': 1127.95, + }, + ], { + **self.move_vals, + 'amount_untaxed': 959.99, + 'amount_tax': 167.96, + 'amount_total': 1127.95, + }) + + def test_in_refund_line_onchange_currency_1(self): + # New journal having a foreign currency set. + journal = self.company_data['default_journal_purchase'].copy() + journal.currency_id = self.currency_data['currency'] + + move_form = Form(self.invoice) + move_form.journal_id = journal + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -800.0, + 'credit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -160.0, + 'credit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -144.0, + 'credit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -24.0, + 'credit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1128.0, + 'debit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + }) + + move_form = Form(self.invoice) + # Change the date to get another rate: 1/3 instead of 1/2. + move_form.date = fields.Date.from_string('2016-01-01') + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -800.0, + 'credit': 266.67, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -160.0, + 'credit': 53.33, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -144.0, + 'credit': 48.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -24.0, + 'credit': 8.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1128.0, + 'debit': 376.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + }) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # 0.045 * 0.1 = 0.0045. As the foreign currency has a 0.001 rounding, + # the result should be 0.005 after rounding. + line_form.quantity = 0.1 + line_form.price_unit = 0.045 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.05, + 'price_subtotal': 0.005, + 'price_total': 0.006, + 'currency_id': journal.currency_id.id, + 'amount_currency': -0.005, + 'credit': 0.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -160.0, + 'credit': 53.33, + }, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.001, + 'price_total': 24.001, + 'currency_id': journal.currency_id.id, + 'amount_currency': -24.001, + 'credit': 8.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -24.0, + 'credit': 8.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'price_unit': -208.01, + 'price_subtotal': -208.006, + 'price_total': -208.006, + 'amount_currency': 208.006, + 'debit': 69.33, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 160.005, + 'amount_tax': 48.001, + 'amount_total': 208.006, + }) + + move_form = Form(self.invoice) + move_form.currency_id = self.company_data['currency'] + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.1, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'credit': 0.01, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 24.0, + 'price_subtotal': 24.0, + 'price_total': 24.0, + 'credit': 24.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -208.01, + 'price_subtotal': -208.01, + 'price_total': -208.01, + 'debit': 208.01, + }, + ], { + **self.move_vals, + 'currency_id': self.company_data['currency'].id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 160.01, + 'amount_tax': 48.0, + 'amount_total': 208.01, + }) + + def test_in_refund_line_onchange_sequence_number_1(self): + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0001', + 'invoice_sequence_number_next_prefix': 'BILL/2019/', + }]) + + move_form = Form(self.invoice) + move_form.invoice_sequence_number_next = '0042' + move_form.save() + + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0042', + 'invoice_sequence_number_next_prefix': 'BILL/2019/', + }]) + + self.invoice.post() + + self.assertRecordValues(self.invoice, [{'name': 'BILL/2019/0042'}]) + + invoice_copy = self.invoice.copy() + invoice_copy.post() + + self.assertRecordValues(invoice_copy, [{'name': 'BILL/2019/0043'}]) + + def test_in_refund_onchange_past_invoice_1(self): + copy_invoice = self.invoice.copy() + + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + move_form.invoice_vendor_bill_id = copy_invoice + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_in_refund_create_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'in_refund', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -800.0, + 'credit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -160.0, + 'credit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -144.0, + 'credit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -24.0, + 'credit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1128.0, + 'debit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) + + def test_in_refund_write_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'in_refund', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + ] + }) + move.write({ + 'invoice_line_ids': [ + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -800.0, + 'credit': 400.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -160.0, + 'credit': 80.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -144.0, + 'credit': 72.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -24.0, + 'credit': 12.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1128.0, + 'debit': 564.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) diff --git a/addons/account/tests/test_account_move_out_invoice.py b/addons/account/tests/test_account_move_out_invoice.py new file mode 100644 index 00000000000..50038eb9efc --- /dev/null +++ b/addons/account/tests/test_account_move_out_invoice.py @@ -0,0 +1,1117 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo import fields + +from unittest.mock import patch + + +@tagged('post_install', '-at_install') +class TestAccountMoveOutInvoiceOnchanges(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountMoveOutInvoiceOnchanges, cls).setUpClass() + + cls.invoice = cls.init_invoice('out_invoice') + + cls.product_line_vals_1 = { + 'name': cls.product_a.name, + 'product_id': cls.product_a.id, + 'account_id': cls.product_a.property_account_income_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_a.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 1000.0, + 'price_subtotal': 1000.0, + 'price_total': 1150.0, + 'tax_ids': cls.product_a.taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 1000.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.product_line_vals_2 = { + 'name': cls.product_b.name, + 'product_id': cls.product_b.id, + 'account_id': cls.product_b.property_account_income_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_b.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 200.0, + 'price_subtotal': 200.0, + 'price_total': 260.0, + 'tax_ids': cls.product_b.taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 200.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_1 = { + 'name': cls.tax_sale_a.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_sale'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 180.0, + 'price_subtotal': 180.0, + 'price_total': 180.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_sale_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 180.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_2 = { + 'name': cls.tax_sale_b.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_sale'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_sale_b.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 30.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.term_line_vals_1 = { + 'name': '', + 'product_id': False, + 'account_id': cls.company_data['default_account_receivable'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -1410.0, + 'price_subtotal': -1410.0, + 'price_total': -1410.0, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 1410.0, + 'credit': 0.0, + 'date_maturity': fields.Date.from_string('2019-01-01'), + 'tax_exigible': True, + } + cls.move_vals = { + 'partner_id': cls.partner_a.id, + 'currency_id': cls.company_data['currency'].id, + 'journal_id': cls.company_data['default_journal_sale'].id, + 'date': fields.Date.from_string('2019-01-01'), + 'fiscal_position_id': False, + 'invoice_payment_ref': '', + 'invoice_payment_term_id': cls.pay_terms_a.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 210.0, + 'amount_total': 1410.0, + } + + def setUp(self): + super(TestAccountMoveOutInvoiceOnchanges, self).setUp() + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_out_invoice_line_onchange_product_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'name': self.product_b.name, + 'product_id': self.product_b.id, + 'product_uom_id': self.product_b.uom_id.id, + 'account_id': self.product_b.property_account_income_id.id, + 'price_unit': 200.0, + 'price_subtotal': 200.0, + 'price_total': 260.0, + 'tax_ids': self.product_b.taxes_id.ids, + 'credit': 200.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 60.0, + 'price_subtotal': 60.0, + 'price_total': 60.0, + 'credit': 60.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 60.0, + 'price_subtotal': 60.0, + 'price_total': 60.0, + 'credit': 60.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -520.0, + 'price_subtotal': -520.0, + 'price_total': -520.0, + 'debit': 520.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 400.0, + 'amount_tax': 120.0, + 'amount_total': 520.0, + }) + + def test_out_invoice_line_onchange_business_fields_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # Current price_unit is 1000. + # We set quantity = 4, discount = 50%, price_unit = 500 because (4 * 500) * 0.5 = 1000. + line_form.quantity = 4 + line_form.discount = 50 + line_form.price_unit = 500 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 4, + 'discount': 50.0, + 'price_unit': 500.0, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Reset field except the discount that becomes 100%. + # /!\ The modification is made on the accounting tab. + line_form.quantity = 1 + line_form.discount = 100 + line_form.price_unit = 1000 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'discount': 100.0, + 'price_subtotal': 0.0, + 'price_total': 0.0, + 'credit': 0.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'credit': 30.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -260.0, + 'price_subtotal': -260.0, + 'price_total': -260.0, + 'debit': 260.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 200.0, + 'amount_tax': 60.0, + 'amount_total': 260.0, + }) + + def test_out_invoice_line_onchange_accounting_fields_1(self): + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Custom credit on the first product line. + line_form.credit = 3000 + with move_form.line_ids.edit(3) as line_form: + # Custom debit on the second product line. Credit should be reset by onchange. + # /!\ It's a negative line. + line_form.debit = 500 + with move_form.line_ids.edit(0) as line_form: + # Custom credit on the first tax line. + line_form.credit = 800 + with move_form.line_ids.edit(4) as line_form: + # Custom credit on the second tax line. + line_form.credit = 250 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 3000.0, + 'price_subtotal': 3000.0, + 'price_total': 3450.0, + 'credit': 3000.0, + }, + { + **self.product_line_vals_2, + 'price_unit': -500.0, + 'price_subtotal': -500.0, + 'price_total': -650.0, + 'debit': 500.0, + 'credit': 0.0, + }, + { + **self.tax_line_vals_1, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 800.0, + 'credit': 800.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 250.0, + 'price_subtotal': 250.0, + 'price_total': 250.0, + 'credit': 250.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -3550.0, + 'price_subtotal': -3550.0, + 'price_total': -3550.0, + 'debit': 3550.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 2500.0, + 'amount_tax': 1050.0, + 'amount_total': 3550.0, + }) + + def test_out_invoice_line_onchange_partner_1(self): + move_form = Form(self.invoice) + move_form.partner_id = self.partner_b + move_form.invoice_payment_ref = 'turlututu' + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -423.0, + 'price_subtotal': -423.0, + 'price_total': -423.0, + 'debit': 423.0, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -987.0, + 'price_subtotal': -987.0, + 'price_total': -987.0, + 'debit': 987.0, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 210.0, + 'amount_total': 1410.0, + }) + + # Remove lines and recreate them to apply the fiscal position. + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'account_id': self.product_b.property_account_income_id.id, + 'partner_id': self.partner_b.id, + 'tax_ids': self.tax_sale_b.ids, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + 'price_total': 230.0, + 'tax_ids': self.tax_sale_b.ids, + }, + { + **self.tax_line_vals_1, + 'name': self.tax_sale_b.name, + 'partner_id': self.partner_b.id, + 'tax_line_id': self.tax_sale_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_receivable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -414.0, + 'price_subtotal': -414.0, + 'price_total': -414.0, + 'debit': 414.0, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_receivable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -966.0, + 'price_subtotal': -966.0, + 'price_total': -966.0, + 'debit': 966.0, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 180.0, + 'amount_total': 1380.0, + }) + + def test_out_invoice_line_onchange_taxes_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 1200 + line_form.tax_ids.add(self.tax_armageddon) + move_form.save() + + child_tax_1 = self.tax_armageddon.children_tax_ids[0] + child_tax_2 = self.tax_armageddon.children_tax_ids[1] + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 1200.0, + 'price_subtotal': 1000.0, + 'price_total': 1470.0, + 'tax_ids': (self.tax_sale_a + self.tax_armageddon).ids, + 'tax_exigible': False, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_revenue'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 120.0, + 'price_subtotal': 120.0, + 'price_total': 132.0, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 120.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 80.0, + 'price_subtotal': 80.0, + 'price_total': 88.0, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 80.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_2.name, + 'product_id': False, + 'account_id': child_tax_2.cash_basis_transition_account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 120.0, + 'price_subtotal': 120.0, + 'price_total': 120.0, + 'tax_ids': [], + 'tax_line_id': child_tax_2.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 120.0, + 'date_maturity': False, + 'tax_exigible': False, + }, + { + **self.term_line_vals_1, + 'price_unit': -1730.0, + 'price_subtotal': -1730.0, + 'price_total': -1730.0, + 'debit': 1730.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 1200.0, + 'amount_tax': 530.0, + 'amount_total': 1730.0, + }) + + def test_out_invoice_line_onchange_cash_rounding_1(self): + move_form = Form(self.invoice) + # Add a cash rounding having 'add_invoice_line'. + move_form.invoice_cash_rounding_id = self.cash_rounding_a + move_form.save() + + # The cash rounding does nothing as the total is already rounded. + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 999.99 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + 'name': 'add_invoice_line', + 'product_id': False, + 'account_id': self.cash_rounding_a.account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 0.01, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 0.01, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.product_line_vals_1, + 'price_unit': 999.99, + 'price_subtotal': 999.99, + 'price_total': 1149.99, + 'credit': 999.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + # Change the cash rounding to one having 'biggest_tax'. + move_form.invoice_cash_rounding_id = self.cash_rounding_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 999.99, + 'price_subtotal': 999.99, + 'price_total': 1149.99, + 'credit': 999.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': '%s (rounding)' % self.tax_sale_a.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -0.04, + 'price_subtotal': -0.04, + 'price_total': -0.04, + 'tax_ids': [], + 'tax_line_id': self.tax_sale_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.04, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.term_line_vals_1, + 'price_unit': -1409.95, + 'price_subtotal': -1409.95, + 'price_total': -1409.95, + 'debit': 1409.95, + }, + ], { + **self.move_vals, + 'amount_untaxed': 1199.99, + 'amount_tax': 209.96, + 'amount_total': 1409.95, + }) + + def test_out_invoice_line_onchange_currency_1(self): + # New journal having a foreign currency set. + journal = self.company_data['default_journal_sale'].copy() + journal.currency_id = self.currency_data['currency'] + + move_form = Form(self.invoice) + move_form.journal_id = journal + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1000.0, + 'credit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -200.0, + 'credit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -180.0, + 'credit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -30.0, + 'credit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1410.0, + 'debit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + }) + + move_form = Form(self.invoice) + # Change the date to get another rate: 1/3 instead of 1/2. + move_form.date = fields.Date.from_string('2016-01-01') + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1000.0, + 'credit': 333.33, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -200.0, + 'credit': 66.67, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -180.0, + 'credit': 60.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -30.0, + 'credit': 10.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1410.0, + 'debit': 470.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + }) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # 0.045 * 0.1 = 0.0045. As the foreign currency has a 0.001 rounding, + # the result should be 0.005 after rounding. + line_form.quantity = 0.1 + line_form.price_unit = 0.045 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.05, + 'price_subtotal': 0.005, + 'price_total': 0.006, + 'currency_id': journal.currency_id.id, + 'amount_currency': -0.005, + 'credit': 0.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -200.0, + 'credit': 66.67, + }, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.001, + 'price_total': 30.001, + 'currency_id': journal.currency_id.id, + 'amount_currency': -30.001, + 'credit': 10.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': -30.0, + 'credit': 10.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'price_unit': -260.01, + 'price_subtotal': -260.006, + 'price_total': -260.006, + 'amount_currency': 260.006, + 'debit': 86.67, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 200.005, + 'amount_tax': 60.001, + 'amount_total': 260.006, + }) + + move_form = Form(self.invoice) + move_form.currency_id = self.company_data['currency'] + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.1, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'credit': 0.01, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'credit': 30.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -260.01, + 'price_subtotal': -260.01, + 'price_total': -260.01, + 'debit': 260.01, + }, + ], { + **self.move_vals, + 'currency_id': self.company_data['currency'].id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 200.01, + 'amount_tax': 60.0, + 'amount_total': 260.01, + }) + + def test_out_invoice_onchange_sequence_number_1(self): + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0001', + 'invoice_sequence_number_next_prefix': 'INV/2019/', + }]) + + move_form = Form(self.invoice) + move_form.invoice_sequence_number_next = '0042' + move_form.save() + + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0042', + 'invoice_sequence_number_next_prefix': 'INV/2019/', + }]) + + self.invoice.post() + + self.assertRecordValues(self.invoice, [{'name': 'INV/2019/0042'}]) + + invoice_copy = self.invoice.copy() + invoice_copy.post() + + self.assertRecordValues(invoice_copy, [{'name': 'INV/2019/0043'}]) + + def test_out_invoice_create_draft_refund(self): + self.invoice.post() + + move_reversal = self.env['account.move.reversal'].with_context(active_ids=self.invoice.ids).create({ + 'date': fields.Date.from_string('2019-02-01'), + 'reason': 'no reason', + 'refund_method': 'refund', + }) + reversal = move_reversal.reverse_moves() + reverse_move = self.env['account.move'].browse(reversal['res_id']) + + self.assertInvoiceValues(reverse_move, [ + { + **self.product_line_vals_1, + 'debit': 1000.0, + 'credit': 0.0, + }, + { + **self.product_line_vals_2, + 'debit': 200.0, + 'credit': 0.0, + }, + { + **self.tax_line_vals_1, + 'debit': 180.0, + 'credit': 0.0, + }, + { + **self.tax_line_vals_2, + 'debit': 30.0, + 'credit': 0.0, + }, + { + **self.term_line_vals_1, + 'name': self.invoice.name, + 'debit': 0.0, + 'credit': 1410.0, + }, + ], { + **self.move_vals, + 'date': move_reversal.date, + 'state': 'draft', + 'invoice_payment_ref': move_reversal.reason, + 'invoice_payment_state': 'not_paid', + }) + + move_reversal = self.env['account.move.reversal'].with_context(active_ids=self.invoice.ids).create({ + 'date': fields.Date.from_string('2019-02-01'), + 'reason': 'no reason', + 'refund_method': 'cancel', + }) + reversal = move_reversal.reverse_moves() + reverse_move = self.env['account.move'].browse(reversal['res_id']) + + self.assertInvoiceValues(reverse_move, [ + { + **self.product_line_vals_1, + 'debit': 1000.0, + 'credit': 0.0, + }, + { + **self.product_line_vals_2, + 'debit': 200.0, + 'credit': 0.0, + }, + { + **self.tax_line_vals_1, + 'debit': 180.0, + 'credit': 0.0, + }, + { + **self.tax_line_vals_2, + 'debit': 30.0, + 'credit': 0.0, + }, + { + **self.term_line_vals_1, + 'name': self.invoice.name, + 'debit': 0.0, + 'credit': 1410.0, + }, + ], { + **self.move_vals, + 'date': move_reversal.date, + 'state': 'posted', + 'invoice_payment_ref': move_reversal.reason, + 'invoice_payment_state': 'paid', + }) + + def test_out_invoice_create_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'out_invoice', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1000.0, + 'credit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -200.0, + 'credit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -180.0, + 'credit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -30.0, + 'credit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1410.0, + 'debit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) + + def test_out_invoice_write_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'out_invoice', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + ] + }) + move.write({ + 'invoice_line_ids': [ + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1000.0, + 'credit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -200.0, + 'credit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -180.0, + 'credit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -30.0, + 'credit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1410.0, + 'debit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) + + def test_out_invoice_post_1(self): + frozen_today = fields.Date.today() + with patch.object(fields.Date, 'today', lambda *args, **kwargs: frozen_today), patch.object(fields.Date, 'context_today', lambda *args, **kwargs: frozen_today): + # Create an invoice with rate 1/3. + move = self.env['account.move'].create({ + 'type': 'out_invoice', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2016-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + (0, None, self.product_line_vals_2), + ] + }) + + # Remove the invoice_date to check: + # - The invoice_date must be set automatically at today during the post. + # - As the invoice_date changed, date did too so the currency rate has changed (1/3 => 1/2). + # - A different invoice_date implies also a new date_maturity. + # Add a manual edition of a tax line: + # - The modification must be preserved in the business fields. + # - The journal entry must be balanced before / after the post. + move.write({ + 'invoice_date': False, + 'line_ids': [ + (1, move.line_ids.filtered(lambda line: line.tax_line_id.id == self.tax_line_vals_1['tax_line_id']).id, { + 'amount_currency': -200.0, + }), + (1, move.line_ids.filtered(lambda line: line.date_maturity).id, { + 'amount_currency': 1430.0, + }), + ], + }) + + move.post() + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1000.0, + 'credit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -200.0, + 'credit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'price_unit': 200.0, + 'price_subtotal': 200.0, + 'price_total': 200.0, + 'amount_currency': -200.0, + 'credit': 100.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -30.0, + 'credit': 15.0, + }, + { + **self.term_line_vals_1, + 'name': move.name, + 'currency_id': self.currency_data['currency'].id, + 'price_unit': -1430.0, + 'price_subtotal': -1430.0, + 'price_total': -1430.0, + 'amount_currency': 1430.0, + 'debit': 715.0, + 'date_maturity': frozen_today, + }, + ], { + **self.move_vals, + 'invoice_payment_ref': move.name, + 'currency_id': self.currency_data['currency'].id, + 'date': frozen_today, + 'invoice_date': frozen_today, + 'invoice_date_due': frozen_today, + 'amount_tax': 230.0, + 'amount_total': 1430.0, + }) diff --git a/addons/account/tests/test_account_move_out_refund.py b/addons/account/tests/test_account_move_out_refund.py new file mode 100644 index 00000000000..6d7c38d5ca3 --- /dev/null +++ b/addons/account/tests/test_account_move_out_refund.py @@ -0,0 +1,939 @@ +# -*- coding: utf-8 -*- +from odoo.addons.account.tests.invoice_test_common import InvoiceTestCommon +from odoo.tests.common import Form +from odoo.tests import tagged +from odoo import fields + + +@tagged('post_install', '-at_install') +class TestAccountMoveOutRefundOnchanges(InvoiceTestCommon): + + @classmethod + def setUpClass(cls): + super(TestAccountMoveOutRefundOnchanges, cls).setUpClass() + + cls.invoice = cls.init_invoice('out_refund') + + cls.product_line_vals_1 = { + 'name': cls.product_a.name, + 'product_id': cls.product_a.id, + 'account_id': cls.product_a.property_account_income_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_a.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 1000.0, + 'price_subtotal': 1000.0, + 'price_total': 1150.0, + 'tax_ids': cls.product_a.taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 1000.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.product_line_vals_2 = { + 'name': cls.product_b.name, + 'product_id': cls.product_b.id, + 'account_id': cls.product_b.property_account_income_id.id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': cls.product_b.uom_id.id, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 200.0, + 'price_subtotal': 200.0, + 'price_total': 260.0, + 'tax_ids': cls.product_b.taxes_id.ids, + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 200.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_1 = { + 'name': cls.tax_sale_a.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_sale'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 180.0, + 'price_subtotal': 180.0, + 'price_total': 180.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_sale_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 180.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.tax_line_vals_2 = { + 'name': cls.tax_sale_b.name, + 'product_id': False, + 'account_id': cls.company_data['default_account_tax_sale'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'tax_ids': [], + 'tax_line_id': cls.tax_sale_b.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 30.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + } + cls.term_line_vals_1 = { + 'name': '', + 'product_id': False, + 'account_id': cls.company_data['default_account_receivable'].id, + 'partner_id': cls.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -1410.0, + 'price_subtotal': -1410.0, + 'price_total': -1410.0, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 1410.0, + 'date_maturity': fields.Date.from_string('2019-01-01'), + 'tax_exigible': True, + } + cls.move_vals = { + 'partner_id': cls.partner_a.id, + 'currency_id': cls.company_data['currency'].id, + 'journal_id': cls.company_data['default_journal_sale'].id, + 'date': fields.Date.from_string('2019-01-01'), + 'fiscal_position_id': False, + 'invoice_payment_ref': '', + 'invoice_payment_term_id': cls.pay_terms_a.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 210.0, + 'amount_total': 1410.0, + } + + def setUp(self): + super(TestAccountMoveOutRefundOnchanges, self).setUp() + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + def test_out_refund_line_onchange_product_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'name': self.product_b.name, + 'product_id': self.product_b.id, + 'product_uom_id': self.product_b.uom_id.id, + 'account_id': self.product_b.property_account_income_id.id, + 'price_unit': 200.0, + 'price_subtotal': 200.0, + 'price_total': 260.0, + 'tax_ids': self.product_b.taxes_id.ids, + 'debit': 200.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 60.0, + 'price_subtotal': 60.0, + 'price_total': 60.0, + 'debit': 60.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 60.0, + 'price_subtotal': 60.0, + 'price_total': 60.0, + 'debit': 60.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -520.0, + 'price_subtotal': -520.0, + 'price_total': -520.0, + 'credit': 520.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 400.0, + 'amount_tax': 120.0, + 'amount_total': 520.0, + }) + + def test_out_refund_line_onchange_business_fields_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # Current price_unit is 1000. + # We set quantity = 4, discount = 50%, price_unit = 500 because (4 * 500) * 0.5 = 1000. + line_form.quantity = 4 + line_form.discount = 50 + line_form.price_unit = 500 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 4, + 'discount': 50.0, + 'price_unit': 500.0, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Reset field except the discount that becomes 100%. + # /!\ The modification is made on the accounting tab. + line_form.quantity = 1 + line_form.discount = 100 + line_form.price_unit = 1000 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'discount': 100.0, + 'price_subtotal': 0.0, + 'price_total': 0.0, + 'debit': 0.0, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'debit': 30.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -260.0, + 'price_subtotal': -260.0, + 'price_total': -260.0, + 'credit': 260.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 200.0, + 'amount_tax': 60.0, + 'amount_total': 260.0, + }) + + def test_out_refund_line_onchange_accounting_fields_1(self): + move_form = Form(self.invoice) + with move_form.line_ids.edit(2) as line_form: + # Custom debit on the first product line. + line_form.debit = 3000 + with move_form.line_ids.edit(3) as line_form: + # Custom credit on the second product line. Credit should be reset by onchange. + # /!\ It's a negative line. + line_form.credit = 500 + with move_form.line_ids.edit(0) as line_form: + # Custom debit on the first tax line. + line_form.debit = 800 + with move_form.line_ids.edit(4) as line_form: + # Custom debit on the second tax line. + line_form.debit = 250 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 3000.0, + 'price_subtotal': 3000.0, + 'price_total': 3450.0, + 'debit': 3000.0, + }, + { + **self.product_line_vals_2, + 'price_unit': -500.0, + 'price_subtotal': -500.0, + 'price_total': -650.0, + 'debit': 0.0, + 'credit': 500.0, + }, + { + **self.tax_line_vals_1, + 'price_unit': 800.0, + 'price_subtotal': 800.0, + 'price_total': 800.0, + 'debit': 800.0, + }, + { + **self.tax_line_vals_2, + 'price_unit': 250.0, + 'price_subtotal': 250.0, + 'price_total': 250.0, + 'debit': 250.0, + }, + { + **self.term_line_vals_1, + 'price_unit': -3550.0, + 'price_subtotal': -3550.0, + 'price_total': -3550.0, + 'credit': 3550.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 2500.0, + 'amount_tax': 1050.0, + 'amount_total': 3550.0, + }) + + def test_out_refund_line_onchange_partner_1(self): + move_form = Form(self.invoice) + move_form.partner_id = self.partner_b + move_form.invoice_payment_ref = 'turlututu' + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_1, + 'partner_id': self.partner_b.id, + }, + { + **self.tax_line_vals_2, + 'partner_id': self.partner_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -987.0, + 'price_subtotal': -987.0, + 'price_total': -987.0, + 'credit': 987.0, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'partner_id': self.partner_b.id, + 'price_unit': -423.0, + 'price_subtotal': -423.0, + 'price_total': -423.0, + 'credit': 423.0, + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 210.0, + 'amount_total': 1410.0, + }) + + # Remove lines and recreate them to apply the fiscal position. + move_form = Form(self.invoice) + move_form.invoice_line_ids.remove(0) + move_form.invoice_line_ids.remove(0) + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_a + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'account_id': self.product_b.property_account_income_id.id, + 'partner_id': self.partner_b.id, + 'tax_ids': self.tax_sale_b.ids, + }, + { + **self.product_line_vals_2, + 'partner_id': self.partner_b.id, + 'price_total': 230.0, + 'tax_ids': self.tax_sale_b.ids, + }, + { + **self.tax_line_vals_1, + 'name': self.tax_sale_b.name, + 'partner_id': self.partner_b.id, + 'tax_line_id': self.tax_sale_b.id, + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_receivable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -966.0, + 'price_subtotal': -966.0, + 'price_total': -966.0, + 'credit': 966.0, + 'date_maturity': fields.Date.from_string('2019-02-28'), + }, + { + **self.term_line_vals_1, + 'name': 'turlututu', + 'account_id': self.partner_b.property_account_receivable_id.id, + 'partner_id': self.partner_b.id, + 'price_unit': -414.0, + 'price_subtotal': -414.0, + 'price_total': -414.0, + 'credit': 414.0, + }, + ], { + **self.move_vals, + 'partner_id': self.partner_b.id, + 'invoice_payment_ref': 'turlututu', + 'fiscal_position_id': self.fiscal_pos_a.id, + 'invoice_payment_term_id': self.pay_terms_b.id, + 'amount_untaxed': 1200.0, + 'amount_tax': 180.0, + 'amount_total': 1380.0, + }) + + def test_out_refund_line_onchange_taxes_1(self): + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 1200 + line_form.tax_ids.add(self.tax_armageddon) + move_form.save() + + child_tax_1 = self.tax_armageddon.children_tax_ids[0] + child_tax_2 = self.tax_armageddon.children_tax_ids[1] + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 1200.0, + 'price_subtotal': 1000.0, + 'price_total': 1470.0, + 'tax_ids': (self.tax_sale_a + self.tax_armageddon).ids, + 'tax_exigible': False, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 80.0, + 'price_subtotal': 80.0, + 'price_total': 88.0, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 80.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_1.name, + 'product_id': False, + 'account_id': self.company_data['default_account_revenue'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 120.0, + 'price_subtotal': 120.0, + 'price_total': 132.0, + 'tax_ids': child_tax_2.ids, + 'tax_line_id': child_tax_1.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 120.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + 'name': child_tax_2.name, + 'product_id': False, + 'account_id': child_tax_2.cash_basis_transition_account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 120.0, + 'price_subtotal': 120.0, + 'price_total': 120.0, + 'tax_ids': [], + 'tax_line_id': child_tax_2.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 120.0, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': False, + }, + { + **self.term_line_vals_1, + 'price_unit': -1730.0, + 'price_subtotal': -1730.0, + 'price_total': -1730.0, + 'credit': 1730.0, + }, + ], { + **self.move_vals, + 'amount_untaxed': 1200.0, + 'amount_tax': 530.0, + 'amount_total': 1730.0, + }) + + def test_out_refund_line_onchange_cash_rounding_1(self): + move_form = Form(self.invoice) + # Add a cash rounding having 'add_invoice_line'. + move_form.invoice_cash_rounding_id = self.cash_rounding_a + move_form.save() + + # The cash rounding does nothing as the total is already rounded. + self.assertInvoiceValues(self.invoice, [ + self.product_line_vals_1, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 999.99 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + 'name': 'add_invoice_line', + 'product_id': False, + 'account_id': self.cash_rounding_a.account_id.id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': 0.01, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'tax_ids': [], + 'tax_line_id': False, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.01, + 'credit': 0.0, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.product_line_vals_1, + 'price_unit': 999.99, + 'price_subtotal': 999.99, + 'price_total': 1149.99, + 'debit': 999.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + self.term_line_vals_1, + ], self.move_vals) + + move_form = Form(self.invoice) + # Change the cash rounding to one having 'biggest_tax'. + move_form.invoice_cash_rounding_id = self.cash_rounding_b + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'price_unit': 999.99, + 'price_subtotal': 999.99, + 'price_total': 1149.99, + 'debit': 999.99, + }, + self.product_line_vals_2, + self.tax_line_vals_1, + self.tax_line_vals_2, + { + 'name': '%s (rounding)' % self.tax_sale_a.name, + 'product_id': False, + 'account_id': self.company_data['default_account_tax_sale'].id, + 'partner_id': self.partner_a.id, + 'product_uom_id': False, + 'quantity': 1.0, + 'discount': 0.0, + 'price_unit': -0.04, + 'price_subtotal': -0.04, + 'price_total': -0.04, + 'tax_ids': [], + 'tax_line_id': self.tax_sale_a.id, + 'currency_id': False, + 'amount_currency': 0.0, + 'debit': 0.0, + 'credit': 0.04, + 'date_maturity': False, + 'tax_exigible': True, + }, + { + **self.term_line_vals_1, + 'price_unit': -1409.95, + 'price_subtotal': -1409.95, + 'price_total': -1409.95, + 'credit': 1409.95, + }, + ], { + **self.move_vals, + 'amount_untaxed': 1199.99, + 'amount_tax': 209.96, + 'amount_total': 1409.95, + }) + + def test_out_refund_line_onchange_currency_1(self): + # New journal having a foreign currency set. + journal = self.company_data['default_journal_sale'].copy() + journal.currency_id = self.currency_data['currency'] + + move_form = Form(self.invoice) + move_form.journal_id = journal + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1000.0, + 'debit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 200.0, + 'debit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 180.0, + 'debit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 30.0, + 'debit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1410.0, + 'credit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + }) + + move_form = Form(self.invoice) + # Change the date to get another rate: 1/3 instead of 1/2. + move_form.date = fields.Date.from_string('2016-01-01') + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 1000.0, + 'debit': 333.33, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 200.0, + 'debit': 66.67, + }, + { + **self.tax_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': 180.0, + 'debit': 60.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 30.0, + 'debit': 10.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'amount_currency': -1410.0, + 'credit': 470.0, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + }) + + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + # 0.045 * 0.1 = 0.0045. As the foreign currency has a 0.001 rounding, + # the result should be 0.005 after rounding. + line_form.quantity = 0.1 + line_form.price_unit = 0.045 + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.05, + 'price_subtotal': 0.005, + 'price_total': 0.006, + 'currency_id': journal.currency_id.id, + 'amount_currency': 0.005, + 'debit': 0.0, + }, + { + **self.product_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 200.0, + 'debit': 66.67, + }, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.001, + 'price_total': 30.001, + 'currency_id': journal.currency_id.id, + 'amount_currency': 30.001, + 'debit': 10.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': journal.currency_id.id, + 'amount_currency': 30.0, + 'debit': 10.0, + }, + { + **self.term_line_vals_1, + 'currency_id': journal.currency_id.id, + 'price_unit': -260.01, + 'price_subtotal': -260.006, + 'price_total': -260.006, + 'amount_currency': -260.006, + 'credit': 86.67, + }, + ], { + **self.move_vals, + 'currency_id': journal.currency_id.id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 200.005, + 'amount_tax': 60.001, + 'amount_total': 260.006, + }) + + move_form = Form(self.invoice) + move_form.currency_id = self.company_data['currency'] + move_form.save() + + self.assertInvoiceValues(self.invoice, [ + { + **self.product_line_vals_1, + 'quantity': 0.1, + 'price_unit': 0.1, + 'price_subtotal': 0.01, + 'price_total': 0.01, + 'debit': 0.01, + }, + self.product_line_vals_2, + { + **self.tax_line_vals_1, + 'price_unit': 30.0, + 'price_subtotal': 30.0, + 'price_total': 30.0, + 'debit': 30.0, + }, + self.tax_line_vals_2, + { + **self.term_line_vals_1, + 'price_unit': -260.01, + 'price_subtotal': -260.01, + 'price_total': -260.01, + 'credit': 260.01, + }, + ], { + **self.move_vals, + 'currency_id': self.company_data['currency'].id, + 'journal_id': journal.id, + 'date': fields.Date.from_string('2016-01-01'), + 'amount_untaxed': 200.01, + 'amount_tax': 60.0, + 'amount_total': 260.01, + }) + + def test_out_refund_line_onchange_sequence_number_1(self): + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0001', + 'invoice_sequence_number_next_prefix': 'INV/2019/', + }]) + + move_form = Form(self.invoice) + move_form.invoice_sequence_number_next = '0042' + move_form.save() + + self.assertRecordValues(self.invoice, [{ + 'invoice_sequence_number_next': '0042', + 'invoice_sequence_number_next_prefix': 'INV/2019/', + }]) + + self.invoice.post() + + self.assertRecordValues(self.invoice, [{'name': 'INV/2019/0042'}]) + + invoice_copy = self.invoice.copy() + invoice_copy.post() + + self.assertRecordValues(invoice_copy, [{'name': 'INV/2019/0043'}]) + + def test_out_refund_create_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'out_refund', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1000.0, + 'debit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 200.0, + 'debit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 180.0, + 'debit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 30.0, + 'debit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1410.0, + 'credit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) + + def test_out_refund_write_1(self): + # Test creating an account_move with the least information. + move = self.env['account.move'].create({ + 'type': 'out_refund', + 'partner_id': self.partner_a.id, + 'invoice_date': fields.Date.from_string('2019-01-01'), + 'currency_id': self.currency_data['currency'].id, + 'invoice_payment_term_id': self.pay_terms_a.id, + 'invoice_line_ids': [ + (0, None, self.product_line_vals_1), + ] + }) + move.write({ + 'invoice_line_ids': [ + (0, None, self.product_line_vals_2), + ] + }) + + self.assertInvoiceValues(move, [ + { + **self.product_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 1000.0, + 'debit': 500.0, + }, + { + **self.product_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 200.0, + 'debit': 100.0, + }, + { + **self.tax_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 180.0, + 'debit': 90.0, + }, + { + **self.tax_line_vals_2, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': 30.0, + 'debit': 15.0, + }, + { + **self.term_line_vals_1, + 'currency_id': self.currency_data['currency'].id, + 'amount_currency': -1410.0, + 'credit': 705.0, + }, + ], { + **self.move_vals, + 'currency_id': self.currency_data['currency'].id, + }) diff --git a/addons/account/tests/test_account_move_tax_lock_date.py b/addons/account/tests/test_account_move_tax_lock_date.py deleted file mode 100644 index 7afd4b7d0db..00000000000 --- a/addons/account/tests/test_account_move_tax_lock_date.py +++ /dev/null @@ -1,116 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.exceptions import ValidationError, UserError -from datetime import datetime, timedelta -from dateutil.relativedelta import relativedelta -from calendar import monthrange -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -from odoo.tests import tagged - - -@tagged('post_install', '-at_install') -class TestTaxBlockDate(AccountingTestCase): - """ - Forbid creation, edition and deletion of Journal Items related to taxes with - a date prior to the Tax Block Date. - """ - - def setUp(self): - super(TestTaxBlockDate, self).setUp() - self.user_id = self.env.user - company_id = self.user_id.company_id.id - - last_day_month = datetime.now() - last_day_month = last_day_month.replace(day=monthrange(last_day_month.year, last_day_month.month)[1]) - self.last_day_month_str = last_day_month.strftime(DEFAULT_SERVER_DATE_FORMAT) - first_day_month = datetime.now() - first_day_month = first_day_month.replace(day=1) - self.first_day_month_str = first_day_month.strftime(DEFAULT_SERVER_DATE_FORMAT) - middle_day_month = datetime.now() - middle_day_month = middle_day_month.replace(day=15) - self.middle_day_month_str = middle_day_month.strftime(DEFAULT_SERVER_DATE_FORMAT) - - self.sale_journal_id = self.env['account.journal'].search([('type', '=', 'sale'), ('company_id', '=', company_id)], limit=1)[0] - self.account_id = self.env['account.account'].search([('internal_type', '=', 'receivable'), ('company_id', '=', company_id)], limit=1)[0] - self.other_account_id = self.env['account.account'].search([('internal_type', '!=', 'receivable'), ('company_id', '=', company_id)], limit=1)[0] - self.tax_id = self.env['account.tax'].search([('company_id', '=', company_id)], limit=1)[0] - - self.move = { - 'name': '/', - 'journal_id': self.sale_journal_id.id, - 'date': self.middle_day_month_str, - 'line_ids': [(0, 0, { - 'name': 'foo', - 'debit': 10, - 'account_id': self.account_id.id, - 'tax_ids': [(6, False, [self.tax_id.id])] - }), (0, 0, { - 'name': 'bar', - 'credit': 10, - 'account_id': self.account_id.id, - })] - } - - def test_create_before_block_date(self): - """ - Checks that you cannot create an account.move with a date before the tax - lock date - """ - self.user_id.company_id.tax_lock_date = self.last_day_month_str - with self.assertRaises(ValidationError): - move = self.env['account.move'].create(self.move) - move.post() - - def test_change_after_block_date(self): - """ - Checks that you can change an account.move with a date after the tax - lock date - """ - self.user_id.company_id.tax_lock_date = self.first_day_month_str - move = self.env['account.move'].create(self.move) - move.line_ids[0].write({'account_id': self.other_account_id.id}) - move.line_ids[1].write({'account_id': self.other_account_id.id}) - move.line_ids[1].write({'debit': 11}) - move.line_ids[0].write({'credit': 11}) - move.post() - move.line_ids[1].write({'tax_ids': [(5, False, False)]}) - - def test_change_before_block_date(self): - """ - Checks that you cannot change an account.move with a date before the tax - lock date - """ - self.user_id.company_id.tax_lock_date = self.first_day_month_str - move = self.env['account.move'].create(self.move) - self.user_id.company_id.tax_lock_date = self.last_day_month_str - move.line_ids[0].write({'account_id': self.other_account_id.id}) - move.line_ids[1].write({'account_id': self.other_account_id.id}) - with self.assertRaises(ValidationError): - with self.cr.savepoint(): - move.line_ids[1].write({'debit': 11}) - with self.assertRaises(ValidationError): - with self.cr.savepoint(): - move.line_ids[1].write({'date': self.last_day_month_str, 'tax_ids': [(5, False, False)]}) - move.line_ids[0].write({'credit': 10}) - move.post() - - def test_unlink_before_block_date(self): - """ - Checks that you cannot unlink an account.move with a date before the tax - lock date - """ - self.user_id.company_id.tax_lock_date = self.first_day_month_str - move = self.env['account.move'].create(self.move) - move.post() - self.user_id.company_id.tax_lock_date = self.last_day_month_str - with self.assertRaises(ValidationError): - move.unlink() - - def test_unlink_after_block_date(self): - """ - Checks that you can unlink an account.move with a date after the lock - date - """ - self.user_id.company_id.tax_lock_date = self.first_day_month_str - move = self.env['account.move'].create(self.move) - move.post() - move.unlink() diff --git a/addons/account/tests/test_account_move_taxes_edition.py b/addons/account/tests/test_account_move_taxes_edition.py deleted file mode 100644 index 036ab2abdee..00000000000 --- a/addons/account/tests/test_account_move_taxes_edition.py +++ /dev/null @@ -1,194 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.tests import tagged -from odoo.tests.common import Form - - -@tagged('post_install', '-at_install') -class TestAccountMoveTaxesEdition(AccountingTestCase): - - def setUp(self): - super(AccountingTestCase, self).setUp() - self.percent_tax = self.env['account.tax'].create({ - 'name': 'tax_line', - 'amount_type': 'percent', - 'amount': 10, - }) - self.journal = self.env['account.journal'].search([], limit=1) - self.account = self.env['account.account'].search([ - ('deprecated', '=', False), ('company_id', '=', self.journal.company_id.id) - ], limit=1) - - def test_onchange_taxes_1(self): - ''' - Test an account.move.line is created automatically when adding a tax. - This test uses the following scenario: - - Create manually a debit line of 1000 having a tax. - - Assume a line containing the tax amount is created automatically. - - Create manually a credit line to balance the two previous lines. - - Save the move. - - tax = 10% - - Name | Debit | Credit | Tax_ids | Tax_line_id's name - ----------------|-----------|-----------|---------------|------------------- - debit_line_1 | 1000 | | tax | - tax_line | 100 | | | tax_line - debit_line_1 | | 1100 | | - ''' - move_form = Form(self.env['account.move'], view='account.view_move_form') - move_form.ref = 'azerty' - move_form.journal_id = self.journal - - # Create a new account.move.line with debit amount. - with move_form.line_ids.new() as debit_line: - debit_line.name = 'debit_line_1' - debit_line.account_id = self.account - debit_line.debit = 1000 - debit_line.tax_ids.clear() - debit_line.tax_ids.add(self.percent_tax) - - self.assertTrue(debit_line.recompute_tax_line) - - # Create a third account.move.line with credit amount. - with move_form.line_ids.new() as credit_line: - credit_line.name = 'credit_line_1' - credit_line.account_id = self.account - credit_line.credit = 1100 - - move = move_form.save() - - self.assertRecordValues(move.line_ids, [ - {'name': 'credit_line_1', 'debit': 0.0, 'credit': 1100.0, 'tax_ids': [], 'tax_line_id': False}, - {'name': 'tax_line', 'debit': 100.0, 'credit': 0.0, 'tax_ids': [], 'tax_line_id': self.percent_tax.id}, - {'name': 'debit_line_1', 'debit': 1000.0, 'credit': 0.0, 'tax_ids': [self.percent_tax.id], 'tax_line_id': False}, - ]) - - def test_onchange_taxes_2(self): - ''' - Test the amount of tax account.move.line is adapted when editing the account.move.line amount. - This test uses the following scenario: - - Create manually a debit line of 1000 having a tax. - - Assume a line containing the tax amount is created automatically. - - Set the debit amount to 2000 in the first created line. - - Assume the line containing the tax amount has been updated automatically. - - Create manually a credit line to balance the two previous lines. - - Save the move. - - tax = 10% - - Name | Debit | Credit | Tax_ids | Tax_line_id's name - ----------------|-----------|-----------|---------------|------------------- - debit_line_1 | 2000 | | tax | - tax_line | 200 | | | tax_line - debit_line_1 | | 2200 | | - ''' - move_form = Form(self.env['account.move'], view='account.view_move_form') - move_form.ref = 'azerty' - move_form.journal_id = self.journal - - # Create a new account.move.line with debit amount. - with move_form.line_ids.new() as debit_line: - debit_line.name = 'debit_line_1' - debit_line.account_id = self.account - debit_line.debit = 1000 - debit_line.tax_ids.clear() - debit_line.tax_ids.add(self.percent_tax) - - self.assertTrue(debit_line.recompute_tax_line) - - debit_line.debit = 2000 - - self.assertTrue(debit_line.recompute_tax_line) - - # Create a third account.move.line with credit amount. - with move_form.line_ids.new() as credit_line: - credit_line.name = 'credit_line_1' - credit_line.account_id = self.account - credit_line.credit = 2200 - - move = move_form.save() - - self.assertRecordValues(move.line_ids, [ - {'name': 'credit_line_1', 'debit': 0.0, 'credit': 2200.0, 'tax_ids': [], 'tax_line_id': False}, - {'name': 'tax_line', 'debit': 200.0, 'credit': 0.0, 'tax_ids': [], 'tax_line_id': self.percent_tax.id}, - {'name': 'debit_line_1', 'debit': 2000.0, 'credit': 0.0, 'tax_ids': [self.percent_tax.id], 'tax_line_id': False}, - ]) - - def test_onchange_taxes_3(self): - ''' - Test the amount of tax account.move.line is still editable manually. - Test the amount of tax account.move.line is cumulative for the same tax. - This test uses the following scenario: - - Create manually a debit line of 1000 having a tax. - - Assume a line containing the tax amount is created automatically. - - Edit the tax line amount of the auto-generated line by adding 5. - - Create manually a credit line to balance the two previous lines. - - Save the move. - - Edit the move. - - Create manually a debit line of 2000 having the same tax. - - Assume the line containing the tax amount has been updated (no new line created). - - Create manually a credit line to balance the four previous lines. - - Save the move. - - tax = 10% - - Name | Debit | Credit | Tax_ids | Tax_line_id's name - ----------------|-----------|-----------|---------------|------------------- - debit_line_1 | 1000 | | tax | - tax_line | 300 | | | tax_line - credit_line_1 | | 1105 | | - debit_line_2 | 2000 | | tax | - credit_line_2 | | 2195 | | - ''' - move_form = Form(self.env['account.move'], view='account.view_move_form') - move_form.ref = 'azerty' - move_form.journal_id = self.journal - - # Create a new account.move.line with debit amount. - with move_form.line_ids.new() as debit_line: - debit_line.name = 'debit_line_1' - debit_line.account_id = self.account - debit_line.debit = 1000 - debit_line.tax_ids.clear() - debit_line.tax_ids.add(self.percent_tax) - - self.assertTrue(debit_line.recompute_tax_line) - - # Edit the tax account.move.line - with move_form.line_ids.edit(index=1) as tax_line: - tax_line.debit = 105 # Was 100 - - # Create a third account.move.line with credit amount. - with move_form.line_ids.new() as credit_line: - credit_line.name = 'credit_line_1' - credit_line.account_id = self.account - credit_line.credit = 1105 - - move = move_form.save() - - move_form = Form(move, view='account.view_move_form') - # Create a new account.move.line with debit amount. - with move_form.line_ids.new() as debit_line2: - debit_line2.name = 'debit_line_2' - debit_line2.account_id = self.account - debit_line2.debit = 2000 - debit_line2.tax_ids.clear() - debit_line2.tax_ids.add(self.percent_tax) - - self.assertTrue(debit_line2.recompute_tax_line) - - with move_form.line_ids.new() as credit_line2: - credit_line2.name = 'credit_line_2' - credit_line2.account_id = self.account - credit_line2.credit = 2195 - - move = move_form.save() - - self.assertRecordValues(move.line_ids, [ - {'name': 'credit_line_2', 'debit': 0.0, 'credit': 2195.0, 'tax_ids': [], 'tax_line_id': False}, - {'name': 'debit_line_2', 'debit': 2000.0, 'credit': 0.0, 'tax_ids': [self.percent_tax.id], 'tax_line_id': False}, - {'name': 'credit_line_1', 'debit': 0.0, 'credit': 1105.0, 'tax_ids': [], 'tax_line_id': False}, - {'name': 'tax_line', 'debit': 300.0, 'credit': 0.0, 'tax_ids': [], 'tax_line_id': self.percent_tax.id}, - {'name': 'debit_line_1', 'debit': 1000.0, 'credit': 0.0, 'tax_ids': [self.percent_tax.id], 'tax_line_id': False}, - ]) diff --git a/addons/account/tests/test_account_supplier_invoice.py b/addons/account/tests/test_account_supplier_invoice.py deleted file mode 100644 index 60979f81b1a..00000000000 --- a/addons/account/tests/test_account_supplier_invoice.py +++ /dev/null @@ -1,145 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.tests import tagged -from odoo.exceptions import Warning - - -@tagged('post_install', '-at_install') -class TestAccountSupplierInvoice(AccountingTestCase): - - def test_supplier_invoice(self): - tax = self.env['account.tax'].create({ - 'name': 'Tax 10.0', - 'amount': 10.0, - 'amount_type': 'fixed', - }) - analytic_account = self.env['account.analytic.account'].create({ - 'name': 'test account', - }) - - # Should be changed by automatic on_change later - invoice_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1).id - invoice_line_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1).id - - invoice = self.env['account.invoice'].create({'partner_id': self.env.ref('base.res_partner_2').id, - 'account_id': invoice_account, - 'type': 'in_invoice', - }) - self.assertEquals(invoice.journal_id.type, 'purchase') - - self.env['account.invoice.line'].create({'product_id': self.env.ref('product.product_product_4').id, - 'quantity': 1.0, - 'price_unit': 100.0, - 'invoice_id': invoice.id, - 'name': 'product that cost 100', - 'account_id': invoice_line_account, - 'invoice_line_tax_ids': [(6, 0, [tax.id])], - 'account_analytic_id': analytic_account.id, - }) - - # check that Initially supplier bill state is "Draft" - self.assertTrue((invoice.state == 'draft'), "Initially vendor bill state is Draft") - - #change the state of invoice to open by clicking Validate button - invoice.action_invoice_open() - - #I cancel the account move which is in posted state and verifies that it gives warning message - with self.assertRaises(Warning): - invoice.move_id.button_cancel() - - def test_supplier_invoice2(self): - tax_fixed = self.env['account.tax'].create({ - 'sequence': 10, - 'name': 'Tax 10.0 (Fixed)', - 'amount': 10.0, - 'amount_type': 'fixed', - 'include_base_amount': True, - }) - tax_percent_included_base_incl = self.env['account.tax'].create({ - 'sequence': 20, - 'name': 'Tax 50.0% (Percentage of Price Tax Included)', - 'amount': 50.0, - 'amount_type': 'division', - 'include_base_amount': True, - }) - tax_percentage = self.env['account.tax'].create({ - 'sequence': 30, - 'name': 'Tax 20.0% (Percentage of Price)', - 'amount': 20.0, - 'amount_type': 'percent', - 'include_base_amount': False, - }) - analytic_account = self.env['account.analytic.account'].create({ - 'name': 'test account', - }) - - # Should be changed by automatic on_change later - invoice_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1).id - invoice_line_account = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1).id - - invoice = self.env['account.invoice'].create({'partner_id': self.env.ref('base.res_partner_2').id, - 'account_id': invoice_account, - 'type': 'in_invoice', - }) - self.assertEquals(invoice.journal_id.type, 'purchase') - - invoice_line = self.env['account.invoice.line'].create({'product_id': self.env.ref('product.product_product_4').id, - 'quantity': 5.0, - 'price_unit': 100.0, - 'invoice_id': invoice.id, - 'name': 'product that cost 100', - 'account_id': invoice_line_account, - 'invoice_line_tax_ids': [(6, 0, [tax_fixed.id, tax_percent_included_base_incl.id, tax_percentage.id])], - 'account_analytic_id': analytic_account.id, - }) - invoice.compute_taxes() - - # check that Initially supplier bill state is "Draft" - self.assertTrue((invoice.state == 'draft'), "Initially vendor bill state is Draft") - - #change the state of invoice to open by clicking Validate button - invoice.action_invoice_open() - - # Check if amount and corresponded base is correct for all tax scenarios given on a computational base - # Keep in mind that tax amount can be changed by the user at any time before validating (based on the invoice and tax laws applicable) - invoice_tax = invoice.tax_line_ids.sorted(key=lambda r: r.sequence) - self.assertEquals(invoice_tax.mapped('amount'), [50.0, 550.0, 220.0]) - self.assertEquals(invoice_tax.mapped('base'), [500.0, 550.0, 1100.0]) - - #I cancel the account move which is in posted state and verifies that it gives warning message - with self.assertRaises(Warning): - invoice.move_id.button_cancel() - - def test_vendor_bill_refund(self): - invoice_account = self.env['account.account'].search( - [('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - invoice_line_account = self.env['account.account'].search( - [('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1) - - if self.env.ref('base.main_partner').bank_account_count > 0: - bank = self.env['res.partner.bank'].search([('partner_id', '=', self.env.ref('base.main_partner').id)], limit=1) - - else: - bank = self.env['res.partner.bank'].create({ - 'acc_number': '12345678910', - 'partner_id': self.env.ref('base.main_partner').id, - }) - - invoice_id = self.env['account.invoice'].create({ - 'name': 'invoice test refund', - 'partner_id': self.env.ref("base.res_partner_2").id, - 'account_id': invoice_account.id, - 'currency_id': self.env.ref('base.USD').id, - 'type': 'in_invoice', - }) - self.env['account.invoice.line'].create({ - 'product_id': self.env.ref("product.product_product_4").id, - 'quantity': 1, - 'price_unit': 15.0, - 'invoice_id': invoice_id.id, - 'name': 'something', - 'account_id': invoice_line_account.id, - }) - - refund_invoices = invoice_id.refund() - - self.assertEqual(refund_invoices.partner_bank_id, bank) diff --git a/addons/account/tests/test_account_validate_account_move.py b/addons/account/tests/test_account_validate_account_move.py deleted file mode 100644 index dfc872d57fd..00000000000 --- a/addons/account/tests/test_account_validate_account_move.py +++ /dev/null @@ -1,44 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.tests import tagged - - -@tagged('post_install', '-at_install') -class TestAccountValidateAccount(AccountingTestCase): - - def test_account_validate_account(self): - account_move_line = self.env['account.move.line'] - account_cash = self.env['account.account'].search([('user_type_id.type', '=', 'liquidity')], limit=1) - journal = self.env['account.journal'].search([('type', '=', 'bank')], limit=1) - - company_id = self.env['res.users'].browse(self.env.uid).company_id.id - - # create move - move = self.env['account.move'].create({'name': '/', - 'ref':'2011010', - 'journal_id': journal.id, - 'state':'draft', - 'company_id': company_id, - }) - # create move line - account_move_line.create({'account_id': account_cash.id, - 'name': 'Four Person Desk', - 'move_id': move.id, - }) - - # create another move line - account_move_line.create({'account_id': account_cash.id, - 'name': 'Four Person Desk', - 'move_id': move.id, - }) - - # check that Initially account move state is "Draft" - self.assertTrue((move.state == 'draft'), "Initially account move state is Draft") - - # validate this account move by using the 'Post Journal Entries' wizard - validate_account_move = self.env['validate.account.move'].with_context(active_ids=move.id).create({}) - - #click on validate Button - validate_account_move.with_context({'active_ids': [move.id]}).validate_move() - - #check that the move state is now "Posted" - self.assertTrue((move.state == 'posted'), "Initially account move state is Posted") diff --git a/addons/account/tests/test_bank_statement_reconciliation.py b/addons/account/tests/test_bank_statement_reconciliation.py index a0a5fe2e65b..185b4654260 100644 --- a/addons/account/tests/test_bank_statement_reconciliation.py +++ b/addons/account/tests/test_bank_statement_reconciliation.py @@ -7,8 +7,6 @@ class TestBankStatementReconciliation(AccountingTestCase): def setUp(self): super(TestBankStatementReconciliation, self).setUp() - self.i_model = self.env['account.invoice'] - self.il_model = self.env['account.invoice.line'] self.bs_model = self.env['account.bank.statement'] self.bsl_model = self.env['account.bank.statement.line'] self.reconciliation_widget = self.env['account.reconciliation.widget'] @@ -62,40 +60,24 @@ class TestBankStatementReconciliation(AccountingTestCase): self.assertTrue(rcv_mv_line.reconciled) self.assertTrue(counterpart_mv_line.reconciled) self.assertEqual(counterpart_mv_line.matched_credit_ids, rcv_mv_line.matched_debit_ids) - self.assertEqual(rcv_mv_line.invoice_id.state, 'paid', "The related invoice's state should now be 'paid'") + self.assertEqual(rcv_mv_line.move_id.invoice_payment_state, 'paid', "The related invoice's state should now be 'paid'") def test_reconcile_with_write_off(self): pass def create_invoice(self, amount): """ Return the move line that gets to be reconciled (the one in the receivable account) """ - vals = {'partner_id': self.partner.id, - 'type': 'out_invoice', - 'name': '-', - 'currency_id': self.env.company.currency_id.id, - } - # new creates a temporary record to apply the on_change afterwards - invoice = self.i_model.new(vals) - invoice._onchange_partner_id() - vals.update({'account_id': invoice.account_id.id}) - invoice = self.i_model.create(vals) - - self.il_model.create({ - 'quantity': 1, - 'price_unit': amount, - 'invoice_id': invoice.id, - 'name': '.', - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, + move = self.env['account.move'].create({ + 'type': 'out_invoice', + 'partner_id': self.partner.id, + 'invoice_line_ids': [(0, 0, { + 'quantity': 1, + 'price_unit': amount, + 'name': 'test invoice', + })], }) - invoice.action_invoice_open() - - mv_line = None - for l in invoice.move_id.line_ids: - if l.account_id.id == vals['account_id']: - mv_line = l - self.assertIsNotNone(mv_line) - - return mv_line + move.post() + return move.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) def create_statement_line(self, st_line_amount): journal = self.bs_model.with_context(journal_type='bank')._default_journal() diff --git a/addons/account/tests/test_invoice_onchange.py b/addons/account/tests/test_invoice_onchange.py deleted file mode 100644 index 3a1402de503..00000000000 --- a/addons/account/tests/test_invoice_onchange.py +++ /dev/null @@ -1,33 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.tests import tagged -from odoo.tests.common import Form - - -@tagged('post_install', '-at_install') -class TestInvoiceOnchange(AccountingTestCase): - - def setUp(self): - super(TestInvoiceOnchange, self).setUp() - self.invoice_line_onchange = self.env['account.invoice.line']._onchange_spec() - self.half_currency = self.env['res.currency'].create({ - 'name': 'HALF', 'symbol': '$HALF', - 'rate_ids': [(0, 0, {'name': '1980-01-01', 'rate': 2})], - }) - self.apples_product = self.env['product.product'].create(dict( - self.env['product.product'].default_get(self.env['product.product']._fields), - lst_price=10, name='apples', - )) - - def test_invoice_currency_onchange(self): - self_ctx = self.env['account.invoice'].with_context(type='out_invoice') - with Form(self_ctx, view='account.invoice_form') as invoice_form: - invoice_form.partner_id = self.env.user.partner_id - with invoice_form.invoice_line_ids.new() as invoice_line_form: - invoice_line_form.product_id = self.apples_product - # Check onchange keep price_unit if currency not changed - self.assertEqual(invoice_line_form.price_unit, 10) - invoice_form.currency_id = self.half_currency - with invoice_form.invoice_line_ids.new() as invoice_line_form: - invoice_line_form.product_id = self.apples_product - # Check onchange gives converted price with custom currency - self.assertEqual(invoice_line_form.price_unit, 20) diff --git a/addons/account/tests/test_invoice_taxes.py b/addons/account/tests/test_invoice_taxes.py index dd2e8b52f15..6ff407a2892 100644 --- a/addons/account/tests/test_invoice_taxes.py +++ b/addons/account/tests/test_invoice_taxes.py @@ -46,21 +46,18 @@ class TestInvoiceTaxes(AccountingTestCase): :param taxes_per_line: A list of tuple (price_unit, account.tax recordset) ''' - self_ctx = self.env['account.invoice'].with_context(type=inv_type) - journal_id = self_ctx._default_journal().id - self_ctx = self_ctx.with_context(journal_id=journal_id) - - with Form(self_ctx, view=(inv_type in ('out_invoice', 'out_refund') and 'account.invoice_form' or 'invoice_supplier_form')) as invoice_form: - invoice_form.partner_id = self.env.ref('base.partner_demo') - - for amount, taxes in taxes_per_line: - with invoice_form.invoice_line_ids.new() as invoice_line_form: - invoice_line_form.name = 'xxxx' - invoice_line_form.quantity = 1 - invoice_line_form.price_unit = amount - invoice_line_form.invoice_line_tax_ids.clear() - for tax in taxes: - invoice_line_form.invoice_line_tax_ids.add(tax) + self_ctx = self.env['account.move'].with_context(default_type=inv_type) + invoice_form = Form(self_ctx) + invoice_form.partner_id = self.env.ref('base.partner_demo') + + for amount, taxes in taxes_per_line: + with invoice_form.invoice_line_ids.new() as invoice_line_form: + invoice_line_form.name = 'xxxx' + invoice_line_form.quantity = 1 + invoice_line_form.price_unit = amount + invoice_line_form.tax_ids.clear() + for tax in taxes: + invoice_line_form.tax_ids.add(tax) return invoice_form.save() def test_one_tax_per_line(self): @@ -83,11 +80,11 @@ class TestInvoiceTaxes(AccountingTestCase): (121, self.percent_tax_1_incl), (100, self.percent_tax_2), ]) - invoice.action_invoice_open() - self.assertRecordValues(invoice.tax_line_ids, [ - {'name': self.percent_tax_1.name, 'base': 100, 'amount': 21, 'tax_ids': []}, - {'name': self.percent_tax_1_incl.name, 'base': 100, 'amount': 21, 'tax_ids': []}, - {'name': self.percent_tax_2.name, 'base': 100, 'amount': 12, 'tax_ids': []}, + invoice.post() + self.assertRecordValues(invoice.line_ids.filtered('tax_line_id'), [ + {'name': self.percent_tax_1.name, 'tax_base_amount': 100, 'price_unit': 21, 'tax_ids': []}, + {'name': self.percent_tax_1_incl.name, 'tax_base_amount': 100, 'price_unit': 21, 'tax_ids': []}, + {'name': self.percent_tax_2.name, 'tax_base_amount': 100, 'price_unit': 12, 'tax_ids': []}, ]) def test_affecting_base_amount(self): @@ -108,10 +105,10 @@ class TestInvoiceTaxes(AccountingTestCase): (121, self.percent_tax_1_incl + self.percent_tax_2), (100, self.percent_tax_2), ]) - invoice.action_invoice_open() - self.assertRecordValues(invoice.tax_line_ids.sorted(lambda x: x.amount), [ - {'name': self.percent_tax_1_incl.name, 'base': 100, 'amount': 21, 'tax_ids': [self.percent_tax_2.id]}, - {'name': self.percent_tax_2.name, 'base': 221, 'amount': 26.52, 'tax_ids': []}, + invoice.post() + self.assertRecordValues(invoice.line_ids.filtered('tax_line_id').sorted(lambda x: x.price_unit), [ + {'name': self.percent_tax_1_incl.name, 'tax_base_amount': 100, 'price_unit': 21, 'tax_ids': [self.percent_tax_2.id]}, + {'name': self.percent_tax_2.name, 'tax_base_amount': 221, 'price_unit': 26.52, 'tax_ids': []}, ]) def test_group_of_taxes(self): @@ -132,10 +129,10 @@ class TestInvoiceTaxes(AccountingTestCase): (121, self.group_tax), (100, self.percent_tax_2), ]) - invoice.action_invoice_open() - self.assertRecordValues(invoice.tax_line_ids.sorted(lambda x: x.amount), [ - {'name': self.percent_tax_1_incl.name, 'base': 100, 'amount': 21, 'tax_ids': [self.percent_tax_2.id]}, - {'name': self.percent_tax_2.name, 'base': 221, 'amount': 26.52, 'tax_ids': []}, + invoice.post() + self.assertRecordValues(invoice.line_ids.filtered('tax_line_id').sorted(lambda x: x.price_unit), [ + {'name': self.percent_tax_1_incl.name, 'tax_base_amount': 100, 'price_unit': 21, 'tax_ids': [self.percent_tax_2.id]}, + {'name': self.percent_tax_2.name, 'tax_base_amount': 221, 'price_unit': 26.52, 'tax_ids': []}, ]) def _create_tax_tag(self, tag_name): @@ -205,15 +202,14 @@ class TestInvoiceTaxes(AccountingTestCase): # Test invoice repartition invoice = self._create_invoice([(100, tax)], inv_type='out_invoice') - invoice.action_invoice_open() - invoice_move = invoice.move_id + invoice.post() - self.assertEqual(len(invoice_move.line_ids), 4, "There should be 4 account move lines created for the invoice: payable, base and 2 tax lines") - inv_base_line = invoice_move.line_ids.filtered(lambda x: not x.tax_repartition_line_id and x.account_id.user_type_id.type != 'receivable') + self.assertEqual(len(invoice.line_ids), 4, "There should be 4 account move lines created for the invoice: payable, base and 2 tax lines") + inv_base_line = invoice.line_ids.filtered(lambda x: not x.tax_repartition_line_id and x.account_id.user_type_id.type != 'receivable') self.assertEqual(len(inv_base_line), 1, "There should be only one base line generated") self.assertEqual(abs(inv_base_line.balance), 100, "Base amount should be 100") self.assertEqual(inv_base_line.tag_ids, inv_base_tag, "Base line should have received base tag") - inv_tax_lines = invoice_move.line_ids.filtered(lambda x: x.tax_repartition_line_id.repartition_type == 'tax') + inv_tax_lines = invoice.line_ids.filtered(lambda x: x.tax_repartition_line_id.repartition_type == 'tax') self.assertEqual(len(inv_tax_lines), 2, "There should be two tax lines, one for each repartition line.") self.assertEqual(abs(inv_tax_lines.filtered(lambda x: x.account_id == account_1).balance), 4.2, "Tax line on account 1 should amount to 4.2 (10% of 42)") self.assertEqual(inv_tax_lines.filtered(lambda x: x.account_id == account_1).tag_ids, inv_tax_tag_10, "Tax line on account 1 should have 10% tag") @@ -222,15 +218,14 @@ class TestInvoiceTaxes(AccountingTestCase): # Test refund repartition refund = self._create_invoice([(100, tax)], inv_type='out_refund') - refund.action_invoice_open() - refund_move = refund.move_id + refund.post() - self.assertEqual(len(refund_move.line_ids), 4, "There should be 4 account move lines created for the refund: payable, base and 2 tax lines") - ref_base_line = refund_move.line_ids.filtered(lambda x: not x.tax_repartition_line_id and x.account_id.user_type_id.type != 'receivable') + self.assertEqual(len(refund.line_ids), 4, "There should be 4 account move lines created for the refund: payable, base and 2 tax lines") + ref_base_line = refund.line_ids.filtered(lambda x: not x.tax_repartition_line_id and x.account_id.user_type_id.type != 'receivable') self.assertEqual(len(ref_base_line), 1, "There should be only one base line generated") self.assertEqual(abs(ref_base_line.balance), 100, "Base amount should be 100") self.assertEqual(ref_base_line.tag_ids, ref_base_tag, "Base line should have received base tag") - ref_tax_lines = refund_move.line_ids.filtered(lambda x: x.tax_repartition_line_id.repartition_type == 'tax') + ref_tax_lines = refund.line_ids.filtered(lambda x: x.tax_repartition_line_id.repartition_type == 'tax') self.assertEqual(len(ref_tax_lines), 2, "There should be two refund tax lines") self.assertEqual(abs(ref_tax_lines.filtered(lambda x: x.account_id == ref_base_line.account_id).balance), 4.2, "Refund tax line on base account should amount to 4.2 (10% of 42)") self.assertEqual(abs(ref_tax_lines.filtered(lambda x: x.account_id == account_1).balance), 37.8, "Refund tax line on account 1 should amount to 37.8 (90% of 42)") diff --git a/addons/account/tests/test_payment.py b/addons/account/tests/test_payment.py index 1556bb14628..fb83cc45a54 100644 --- a/addons/account/tests/test_payment.py +++ b/addons/account/tests/test_payment.py @@ -9,10 +9,8 @@ class TestPayment(AccountingTestCase): def setUp(self): super(TestPayment, self).setUp() - self.register_payments_model = self.env['account.payment.register'].with_context(active_model='account.invoice') + self.register_payments_model = self.env['account.payment.register'].with_context(active_model='account.move') self.payment_model = self.env['account.payment'] - self.invoice_model = self.env['account.invoice'] - self.invoice_line_model = self.env['account.invoice.line'] self.acc_bank_stmt_model = self.env['account.bank.statement'] self.acc_bank_stmt_line_model = self.env['account.bank.statement.line'] @@ -46,23 +44,17 @@ class TestPayment(AccountingTestCase): def create_invoice(self, amount=100, type='out_invoice', currency_id=None, partner=None, account_id=None): """ Returns an open invoice """ - invoice = self.invoice_model.create({ + invoice = self.env['account.move'].create({ + 'type': type, 'partner_id': partner or self.partner_agrolait.id, 'currency_id': currency_id or self.currency_eur_id, - 'name': type, - 'account_id': account_id or self.account_receivable.id, - 'type': type, - 'date_invoice': time.strftime('%Y') + '-06-26', + 'invoice_date': time.strftime('%Y') + '-06-26', + 'date': time.strftime('%Y') + '-06-26', + 'invoice_line_ids': [ + (0, 0, {'product_id': self.product.id, 'quantity': 1, 'price_unit': amount}) + ], }) - self.invoice_line_model.create({ - 'product_id': self.product.id, - 'quantity': 1, - 'price_unit': amount, - 'invoice_id': invoice.id, - 'name': 'something', - 'account_id': self.account_revenue.id, - }) - invoice.action_invoice_open() + invoice.post() return invoice def reconcile(self, liquidity_aml, amount=0.0, amount_currency=0.0, currency_id=None): @@ -94,21 +86,21 @@ class TestPayment(AccountingTestCase): 'journal_id': self.bank_journal_euro.id, 'payment_method_id': self.payment_method_manual_in.id, }) - register_payments.create_payments() - payment = self.payment_model.search([], order="id desc", limit=1) + payment = self.payment_model.browse(register_payments.create_payments()['res_id']) self.assertAlmostEquals(payment.amount, 300) self.assertEqual(payment.state, 'posted') self.assertEqual(payment.state, 'posted') - self.assertEqual(inv_1.state, 'paid') + self.assertEqual(inv_1.invoice_payment_state, 'paid') - self.assertRecordValues(payment.move_line_ids, [ + rec_line = payment.move_line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + self.assertRecordValues(payment.move_line_ids.sorted('credit'), [ {'account_id': self.account_eur.id, 'debit': 300.0, 'credit': 0.0, 'amount_currency': 0, 'currency_id': False}, - {'account_id': inv_1.account_id.id, 'debit': 0.0, 'credit': 300.0, 'amount_currency': 0, 'currency_id': False}, + {'account_id': rec_line.account_id.id, 'debit': 0.0, 'credit': 300.0, 'amount_currency': 0, 'currency_id': False}, ]) - self.assertTrue(payment.move_line_ids.filtered(lambda l: l.account_id == inv_1.account_id)[0].full_reconcile_id) + self.assertTrue(rec_line.full_reconcile_id.exists()) - liquidity_aml = payment.move_line_ids.filtered(lambda r: r.account_id == self.account_eur) + liquidity_aml = payment.move_line_ids - rec_line bank_statement = self.reconcile(liquidity_aml, 300, 0, False) self.assertEqual(liquidity_aml.statement_id, bank_statement) @@ -129,8 +121,8 @@ class TestPayment(AccountingTestCase): }) payment.post() self.assertRecordValues(payment.move_line_ids, [ - {'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'account_id': self.transfer_account.id, 'debit': 32.70, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, + {'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'account_id': self.transfer_account.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'account_id': self.account_eur.id, 'debit': 32.70, 'credit': 0.0, 'amount_currency': 0, 'currency_id': False}, ]) @@ -149,118 +141,49 @@ class TestPayment(AccountingTestCase): payment.post() self.assertRecordValues(payment.move_line_ids, [ - {'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 38.21, 'amount_currency': -58.42, 'currency_id': self.currency_usd_id}, {'account_id': self.partner_china_exp.property_account_payable_id.id, 'debit': 38.21, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_chf_id}, + {'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 38.21, 'amount_currency': -58.42, 'currency_id': self.currency_usd_id}, ]) - def test_multiple_payments_00(self): - """ Create test to pay several vendor bills/invoices at once """ - # One payment for inv_1 and inv_2 (same partner) - inv_1 = self.create_invoice(amount=100, partner=self.partner_agrolait.id) - inv_2 = self.create_invoice(amount=500, partner=self.partner_agrolait.id) - # One payment for inv_3 (different partner) - inv_3 = self.create_invoice(amount=200, partner=self.partner_china_exp.id) - # One payment for inv_4 (Vendor Bill) - inv_4 = self.create_invoice(amount=50, partner=self.partner_agrolait.id, type='in_invoice') - - ids_out = [inv_1.id, inv_2.id, inv_3.id] - ids_in = [inv_4.id] - for ids in [ids_out, ids_in]: - register_payments = self.register_payments_model.with_context(active_ids=ids).create({ - 'payment_date': time.strftime('%Y') + '-07-15', - 'journal_id': self.bank_journal_euro.id, - 'payment_method_id': self.payment_method_manual_in.id, - }) - register_payments.create_payments() - payment_ids = self.payment_model.search([('invoice_ids', 'in', ids_out + ids_in)], order="id desc") - - self.assertEqual(len(payment_ids), 4) - self.assertAlmostEquals(sum(payment_ids.filtered(lambda r: r.payment_type == 'inbound').mapped('amount')) - sum(payment_ids.filtered(lambda r: r.payment_type == 'outbound').mapped('amount')), 750) - - inv_1_2_pay = self.env['account.payment'] - inv_3_pay = None - inv_4_pay = None - for payment_id in payment_ids: - self.assertEqual('posted', payment_id.state) - if payment_id.partner_id == self.partner_agrolait: - if payment_id.partner_type == 'supplier': - self.assertEqual(payment_id.amount, 50) - inv_4_pay = payment_id - else: - self.assertTrue(payment_id.amount in (100, 500)) - inv_1_2_pay |= payment_id - else: - self.assertEqual(payment_id.amount, 200) - inv_3_pay = payment_id - - self.assertTrue(len(inv_1_2_pay) == 2) - self.assertEqual(inv_1.state, 'paid') - self.assertEqual(inv_2.state, 'paid') - - self.assertIsNotNone(inv_3_pay) - self.assertRecordValues(inv_3_pay.move_line_ids, [ - {'account_id': self.account_eur.id, 'debit': 200.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, - {'account_id': inv_1.account_id.id, 'debit': 0.0, 'credit': 200.0, 'amount_currency': 0.0, 'currency_id': False}, - ]) - self.assertEqual(inv_3.state, 'paid') - - self.assertIsNotNone(inv_4_pay) - self.assertRecordValues(inv_4_pay.move_line_ids, [ - {'account_id': self.account_eur.id, 'debit': 0.0, 'credit': 50.0, 'amount_currency': 0.0, 'currency_id': False}, - {'account_id': inv_1.account_id.id, 'debit': 50.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, - ]) - self.assertEqual(inv_4.state, 'paid') - def test_partial_payment(self): """ Create test to pay invoices (cust. inv + vendor bill) with partial payment """ # Test Customer Invoice inv_1 = self.create_invoice(amount=600) - ids = [inv_1.id] - payment_register = Form(self.env['account.payment'].with_context(active_model='account.invoice', active_ids=ids)) - with payment_register as pr: - pr.payment_date = time.strftime('%Y') + '-07-15' - pr.journal_id = self.bank_journal_euro - pr.payment_method_id = self.payment_method_manual_in + payment_register = Form(self.env['account.payment'].with_context(active_model='account.move', active_ids=inv_1.ids)) + payment_register.payment_date = time.strftime('%Y') + '-07-15' + payment_register.journal_id = self.bank_journal_euro + payment_register.payment_method_id = self.payment_method_manual_in - # Perform the partial payment by setting the amount at 550 instead of 600 - pr.amount = 550 + # Perform the partial payment by setting the amount at 550 instead of 600 + payment_register.amount = 550 - payment_ids = self.payment_model.search([('invoice_ids', 'in', ids)], order="id desc") + payment = payment_register.save() - self.assertEqual(len(payment_ids), 1) - - payment_id = payment_ids[0] - - self.assertEqual(payment_id.invoice_ids[0].id, inv_1.id) - self.assertAlmostEquals(payment_id.amount, 550) - self.assertEqual(payment_id.payment_type, 'inbound') - self.assertEqual(payment_id.partner_id, self.partner_agrolait) - self.assertEqual(payment_id.partner_type, 'customer') + self.assertEqual(len(payment), 1) + self.assertEqual(payment.invoice_ids[0].id, inv_1.id) + self.assertAlmostEquals(payment.amount, 550) + self.assertEqual(payment.payment_type, 'inbound') + self.assertEqual(payment.partner_id, self.partner_agrolait) + self.assertEqual(payment.partner_type, 'customer') # Test Vendor Bill inv_2 = self.create_invoice(amount=500, type='in_invoice', partner=self.partner_china_exp.id) - ids = [inv_2.id] - payment_register = Form(self.env['account.payment'].with_context(active_model='account.invoice', active_ids=ids)) - with payment_register as pr: - pr.payment_date = time.strftime('%Y') + '-07-15' - pr.journal_id = self.bank_journal_euro - pr.payment_method_id = self.payment_method_manual_in - - # Perform the partial payment by setting the amount at 300 instead of 500 - pr.amount = 300 - - payment_register.save() - payment_ids = self.payment_model.search([('invoice_ids', 'in', ids)], order="id desc") + payment_register = Form(self.env['account.payment'].with_context(active_model='account.move', active_ids=inv_2.ids)) + payment_register.payment_date = time.strftime('%Y') + '-07-15' + payment_register.journal_id = self.bank_journal_euro + payment_register.payment_method_id = self.payment_method_manual_in - self.assertEqual(len(payment_ids), 1) + # Perform the partial payment by setting the amount at 300 instead of 500 + payment_register.amount = 300 - payment_id = payment_ids[0] + payment = payment_register.save() - self.assertEqual(payment_id.invoice_ids[0].id, inv_2.id) - self.assertAlmostEquals(payment_id.amount, 300) - self.assertEqual(payment_id.payment_type, 'outbound') - self.assertEqual(payment_id.partner_id, self.partner_china_exp) - self.assertEqual(payment_id.partner_type, 'supplier') + self.assertEqual(len(payment), 1) + self.assertEqual(payment.invoice_ids[0].id, inv_2.id) + self.assertAlmostEquals(payment.amount, 300) + self.assertEqual(payment.payment_type, 'outbound') + self.assertEqual(payment.partner_id, self.partner_china_exp) + self.assertEqual(payment.partner_type, 'supplier') def test_payment_and_writeoff_in_other_currency_1(self): # Use case: @@ -268,6 +191,7 @@ class TestPayment(AccountingTestCase): # Mark invoice as fully paid with a write_off # Check that all the aml are correctly created. invoice = self.create_invoice(amount=25, type='out_invoice', currency_id=self.currency_eur_id, partner=self.partner_agrolait.id) + receivable_line = invoice.line_ids.filtered(lambda l: l.account_id.user_type_id.type == 'receivable') # register payment on invoice payment = self.payment_model.create({'payment_type': 'inbound', 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, @@ -283,18 +207,19 @@ class TestPayment(AccountingTestCase): }) payment.post() self.assertRecordValues(payment.move_line_ids, [ + {'account_id': receivable_line.account_id.id, 'debit': 0.0, 'credit': 25.0, 'amount_currency': -38.22, 'currency_id': self.currency_usd_id}, {'account_id': self.account_eur.id, 'debit': 16.35, 'credit': 0.0, 'amount_currency': 25.0, 'currency_id': self.currency_usd_id}, {'account_id': self.account_payable.id, 'debit': 8.65, 'credit': 0.0, 'amount_currency': 13.22, 'currency_id': self.currency_usd_id}, - {'account_id': self.account_receivable.id, 'debit': 0.0, 'credit': 25.0, 'amount_currency': -38.22, 'currency_id': self.currency_usd_id}, ]) - self.assertTrue(payment.move_line_ids.filtered(lambda l: l.account_id == invoice.account_id)[0].full_reconcile_id) - self.assertEqual(invoice.state, 'paid') + self.assertTrue(receivable_line.full_reconcile_id) + self.assertEqual(invoice.invoice_payment_state, 'paid') # Use case: # Company is in EUR, create a vendor bill for 25 EUR and register payment of 25 USD. # Mark invoice as fully paid with a write_off # Check that all the aml are correctly created. invoice = self.create_invoice(amount=25, type='in_invoice', currency_id=self.currency_eur_id, partner=self.partner_agrolait.id) + payable_line = invoice.line_ids.filtered(lambda l: l.account_id.user_type_id.type == 'payable') # register payment on invoice payment = self.payment_model.create({'payment_type': 'outbound', 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, @@ -304,18 +229,18 @@ class TestPayment(AccountingTestCase): 'currency_id': self.currency_usd_id, 'payment_date': time.strftime('%Y') + '-07-15', 'payment_difference_handling': 'reconcile', - 'writeoff_account_id': self.account_payable.id, + 'writeoff_account_id': self.account_receivable.id, 'journal_id': self.bank_journal_euro.id, 'invoice_ids': [(4, invoice.id, None)] }) payment.post() self.assertRecordValues(payment.move_line_ids, [ + {'account_id': payable_line.account_id.id, 'debit': 25.0, 'credit': 0.0, 'amount_currency': 38.22, 'currency_id': self.currency_usd_id}, {'account_id': self.account_eur.id, 'debit': 0.0, 'credit': 16.35, 'amount_currency': -25.0, 'currency_id': self.currency_usd_id}, - {'account_id': self.account_payable.id, 'debit': 0.0, 'credit': 8.65, 'amount_currency': -13.22, 'currency_id': self.currency_usd_id}, - {'account_id': self.account_receivable.id, 'debit': 25.0, 'credit': 0.0, 'amount_currency': 38.22, 'currency_id': self.currency_usd_id}, + {'account_id': self.account_receivable.id, 'debit': 0.0, 'credit': 8.65, 'amount_currency': -13.22, 'currency_id': self.currency_usd_id}, ]) - self.assertTrue(payment.move_line_ids.filtered(lambda l: l.account_id == invoice.account_id)[0].full_reconcile_id) - self.assertEqual(invoice.state, 'paid') + self.assertTrue(payable_line.full_reconcile_id) + self.assertEqual(invoice.invoice_payment_state, 'paid') def test_payment_and_writeoff_out_refund(self): # Use case: @@ -323,6 +248,7 @@ class TestPayment(AccountingTestCase): # Mark invoice as fully paid with a write_off # Check that all the aml are correctly created. invoice = self.create_invoice(amount=100, type='out_refund', currency_id=self.currency_eur_id, partner=self.partner_agrolait.id) + receivable_line = invoice.line_ids.filtered(lambda l: l.account_id.user_type_id.type == 'receivable') # register payment on invoice payment = self.payment_model.create({'payment_type': 'outbound', 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, @@ -337,11 +263,11 @@ class TestPayment(AccountingTestCase): }) payment.post() self.assertRecordValues(payment.move_line_ids, [ + {'account_id': receivable_line.account_id.id, 'debit': 100.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, {'account_id': self.account_eur.id, 'debit': 0.0, 'credit': 90.0, 'amount_currency': 0.0, 'currency_id': False}, {'account_id': self.account_payable.id, 'debit': 0.0, 'credit': 10.0, 'amount_currency': 0.0, 'currency_id': False}, - {'account_id': self.account_receivable.id, 'debit': 100.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, ]) - self.assertEqual(invoice.state, 'paid') + self.assertEqual(invoice.invoice_payment_state, 'paid') def test_payment_and_writeoff_in_other_currency_2(self): # Use case: @@ -360,10 +286,8 @@ class TestPayment(AccountingTestCase): 'name': time.strftime('%Y') + '-07-15'}) invoice = self.create_invoice(amount=5325.6, type='in_invoice', currency_id=self.currency_usd_id, partner=self.partner_agrolait.id) - self.assertRecordValues(invoice.move_id.line_ids, [ - {'account_id': self.account_receivable.id, 'debit': 0.0, 'credit': 5950.39, 'amount_currency': -5325.6, 'currency_id': self.currency_usd_id}, - {'account_id': self.account_revenue.id, 'debit': 5950.39, 'credit': 0.0, 'amount_currency': 5325.6, 'currency_id': self.currency_usd_id}, - ]) + payable_line = invoice.line_ids.filtered(lambda l: l.account_id.user_type_id.type == 'payable') + # register payment on invoice payment = self.payment_model.create({'payment_type': 'outbound', 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, @@ -379,19 +303,18 @@ class TestPayment(AccountingTestCase): }) payment.post() self.assertRecordValues(payment.move_line_ids, [ + {'debit': 6051.82, 'credit': 0.0, 'amount_currency': 5325.6, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 6051.14, 'amount_currency': -5325.0, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 0.68, 'amount_currency': -0.6, 'currency_id': self.currency_usd_id}, - {'debit': 6051.82, 'credit': 0.0, 'amount_currency': 5325.6, 'currency_id': self.currency_usd_id}, ]) - exchange_lines = payment.move_line_ids[-1].full_reconcile_id.exchange_move_id.line_ids + exchange_lines = payable_line.full_reconcile_id.exchange_move_id.line_ids self.assertRecordValues(exchange_lines, [ + {'debit': 0.0, 'credit': 101.43, 'account_id': payable_line.account_id.id}, {'debit': 101.43, 'credit': 0.0, 'account_id': self.diff_expense_account.id}, - {'debit': 0.0, 'credit': 101.43, 'account_id': self.account_receivable.id}, ]) #check the invoice status - self.assertEqual(invoice.state, 'paid') - + self.assertEqual(invoice.invoice_payment_state, 'paid') def test_payment_and_writeoff_in_other_currency_3(self): # Use case related in revision 20935462a0cabeb45480ce70114ff2f4e91eaf79 @@ -412,10 +335,8 @@ class TestPayment(AccountingTestCase): 'name': time.strftime('%Y') + '-06-26'}) invoice = self.create_invoice(amount=247590.4, type='out_invoice', currency_id=self.currency_eur_id, partner=self.partner_agrolait.id) - self.assertRecordValues(invoice.move_id.line_ids, [ - {'account_id': self.account_receivable.id, 'debit': 247590.4, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, - {'account_id': self.account_revenue.id, 'debit': 0.0, 'credit': 247590.4, 'amount_currency': 0.0, 'currency_id': False}, - ]) + receivable_line = invoice.line_ids.filtered(lambda l: l.account_id.user_type_id.type == 'receivable') + # register payment on invoice payment = self.payment_model.create({'payment_type': 'inbound', 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, @@ -432,19 +353,19 @@ class TestPayment(AccountingTestCase): }) payment.post() self.assertRecordValues(payment.move_line_ids, [ + {'account_id': receivable_line.account_id.id, 'debit': 0.0, 'credit': 247589.16, 'amount_currency': -261.17, 'currency_id': self.currency_usd_id}, {'account_id': self.account_eur.id, 'debit': 253116.0, 'credit': 0.0, 'amount_currency': 267.0, 'currency_id': self.currency_usd_id}, {'account_id': self.account_revenue.id, 'debit': 0.0, 'credit': 5526.84, 'amount_currency': -5.83, 'currency_id': self.currency_usd_id}, - {'account_id': self.account_receivable.id, 'debit': 0.0, 'credit': 247589.16, 'amount_currency': -261.17, 'currency_id': self.currency_usd_id}, ]) # Check the invoice status and the full reconciliation: the difference on the receivable account # should have been completed by an exchange rate difference entry - self.assertEqual(invoice.state, 'paid') - self.assertTrue(invoice.move_id.line_ids.filtered(lambda l: l.account_id == self.account_receivable)[0].full_reconcile_id) + self.assertEqual(invoice.invoice_payment_state, 'paid') + self.assertTrue(receivable_line.full_reconcile_id) def test_post_at_bank_reconciliation_payment(self): # Create two new payments in a journal requiring the journal entries to be posted at bank reconciliation - post_at_bank_rec_journal = bank_journal_euro = self.env['account.journal'].create({ + post_at_bank_rec_journal = self.env['account.journal'].create({ 'name': 'Bank', 'type': 'bank', 'code': 'COUCOU', @@ -481,10 +402,9 @@ class TestPayment(AccountingTestCase): # Reconcile the two payments with an invoice, whose full amount is equal to their sum invoice = self.create_invoice(amount=53, partner=self.partner_agrolait.id) - (payment_one.move_line_ids + payment_two.move_line_ids + invoice.move_id.line_ids).filtered(lambda x: x.account_id.user_type_id.type == 'receivable').reconcile() + (payment_one.move_line_ids + payment_two.move_line_ids + invoice.line_ids).filtered(lambda x: x.account_id.user_type_id.type == 'receivable').reconcile() - self.assertTrue(invoice.reconciled, "Invoice should have been reconciled with the payments") - self.assertEqual(invoice.state, 'in_payment', "Invoice should be in 'in payment' state") + self.assertEqual(invoice.invoice_payment_state, 'in_payment', "Invoice should be in 'in payment' state") # Match the first payment with a bank statement line bank_statement_one = self.reconcile(payment_one.move_line_ids.filtered(lambda x: x.account_id.user_type_id.type == 'liquidity'), 42) @@ -493,7 +413,7 @@ class TestPayment(AccountingTestCase): self.assertEqual(payment_one.mapped('move_line_ids.move_id.state'), ['posted'], "After bank reconciliation, payment one's account.move should be posted.") self.assertEqual(payment_one.mapped('move_line_ids.move_id.date'), stmt_line_date_one, "After bank reconciliation, payment one's account.move should share the same date as the bank statement.") self.assertEqual([payment_one.payment_date], stmt_line_date_one, "After bank reconciliation, payment one should share the same date as the bank statement.") - self.assertEqual(invoice.state, 'in_payment', "The invoice should still be 'in payment', not all its payments are reconciled with a statement") + self.assertEqual(invoice.invoice_payment_state, 'in_payment', "The invoice should still be 'in payment', not all its payments are reconciled with a statement") # Match the second payment with a bank statement line bank_statement_two = self.reconcile(payment_two.move_line_ids.filtered(lambda x: x.account_id.user_type_id.type == 'liquidity'), 42) @@ -504,4 +424,4 @@ class TestPayment(AccountingTestCase): self.assertEqual([payment_two.payment_date], stmt_line_date_two, "After bank reconciliation, payment two should share the same date as the bank statement.") # The invoice should now be paid - self.assertEqual(invoice.state, 'paid', "Invoice should be in 'paid' state after having reconciled the two payments with a bank statement") + self.assertEqual(invoice.invoice_payment_state, 'paid', "Invoice should be in 'paid' state after having reconciled the two payments with a bank statement") diff --git a/addons/account/tests/test_product_id_change.py b/addons/account/tests/test_product_id_change.py deleted file mode 100644 index 88fce1d846b..00000000000 --- a/addons/account/tests/test_product_id_change.py +++ /dev/null @@ -1,92 +0,0 @@ -from odoo.addons.account.tests.account_test_classes import AccountingTestCase -from odoo.tests import tagged -import time - - -@tagged('post_install', '-at_install') -class TestProductIdChange(AccountingTestCase): - """Test that when an included tax is mapped by a fiscal position, the included tax must be - subtracted to the price of the product. - """ - - def setUp(self): - super(TestProductIdChange, self).setUp() - self.invoice_model = self.env['account.invoice'] - self.fiscal_position_model = self.env['account.fiscal.position'] - self.fiscal_position_tax_model = self.env['account.fiscal.position.tax'] - self.tax_model = self.env['account.tax'] - self.pricelist_model = self.env['product.pricelist'] - self.res_partner_model = self.env['res.partner'] - self.product_tmpl_model = self.env['product.template'] - self.product_model = self.env['product.product'] - self.invoice_line_model = self.env['account.invoice.line'] - self.account_receivable = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - self.account_revenue = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1) - - def test_product_id_change(self): - partner = self.res_partner_model.create(dict(name="George")) - tax_include_sale = self.tax_model.create(dict(name="Include tax", - type_tax_use='sale', - amount='21.00', - price_include=True)) - tax_include_purchase = self.tax_model.create(dict(name="Include tax", - type_tax_use='purchase', - amount='21.00', - price_include=True)) - tax_exclude_sale = self.tax_model.create(dict(name="Exclude tax", - type_tax_use='sale', - amount='0.00')) - tax_exclude_purchase = self.tax_model.create(dict(name="Exclude tax", - type_tax_use='purchase', - amount='0.00')) - product_tmpl = self.product_tmpl_model.create(dict(name="Voiture", - list_price='121', - taxes_id=[(6, 0, [tax_include_sale.id])], - supplier_taxes_id=[(6, 0, [tax_include_purchase.id])])) - product = product_tmpl.product_variant_id - product.standard_price = '242' - fp = self.fiscal_position_model.create(dict(name="fiscal position", sequence=1)) - fp_tax_sale = self.fiscal_position_tax_model.create(dict(position_id=fp.id, - tax_src_id=tax_include_sale.id, - tax_dest_id=tax_exclude_sale.id)) - fp_tax_purchase = self.fiscal_position_tax_model.create(dict(position_id=fp.id, - tax_src_id=tax_include_purchase.id, - tax_dest_id=tax_exclude_purchase.id)) - - out_invoice = self.invoice_model.create({ - 'partner_id': partner.id, - 'name': 'invoice to client', - 'account_id': self.account_receivable.id, - 'type': 'out_invoice', - 'date_invoice': time.strftime('%Y') + '-06-26', - 'fiscal_position_id': fp.id, - }) - out_line = self.invoice_line_model.create({ - 'product_id': product.id, - 'quantity': 1, - 'price_unit': 121.0, - 'invoice_id': out_invoice.id, - 'name': 'something out', - 'account_id': self.account_revenue.id, - }) - - in_invoice = self.invoice_model.create({ - 'partner_id': partner.id, - 'name': 'invoice to supplier', - 'account_id': self.account_receivable.id, - 'type': 'in_invoice', - 'date_invoice': time.strftime('%Y') + '-06-26', - 'fiscal_position_id': fp.id, - }) - in_line = self.invoice_line_model.create({ - 'product_id': product.id, - 'quantity': 1, - 'price_unit': 242.0, - 'invoice_id': in_invoice.id, - 'name': 'something in', - 'account_id': self.account_revenue.id, - }) - out_line._onchange_product_id() - self.assertEquals(100, out_line.price_unit, "The included tax must be subtracted to the price") - in_line._onchange_product_id() - self.assertEquals(200, in_line.price_unit, "The included tax must be subtracted to the price") diff --git a/addons/account/tests/test_reconciliation.py b/addons/account/tests/test_reconciliation.py index 0a35310f8a7..641ff761fa8 100644 --- a/addons/account/tests/test_reconciliation.py +++ b/addons/account/tests/test_reconciliation.py @@ -1,7 +1,7 @@ from odoo import api, fields from odoo.addons.account.tests.account_test_classes import AccountingTestCase from odoo.exceptions import UserError -from odoo.tests import tagged +from odoo.tests import Form, tagged import time import unittest @@ -18,22 +18,20 @@ class TestReconciliation(AccountingTestCase): def setUp(self): super(TestReconciliation, self).setUp() - self.account_invoice_model = self.env['account.invoice'] - self.account_invoice_line_model = self.env['account.invoice.line'] self.acc_bank_stmt_model = self.env['account.bank.statement'] self.acc_bank_stmt_line_model = self.env['account.bank.statement.line'] self.res_currency_model = self.registry('res.currency') self.res_currency_rate_model = self.registry('res.currency.rate') - partner_agrolait = self.env.ref("base.res_partner_2") - self.partner_agrolait_id = partner_agrolait.id + self.partner_agrolait = self.env.ref("base.res_partner_2") + self.partner_agrolait_id = self.partner_agrolait.id self.currency_swiss_id = self.env.ref("base.CHF").id self.currency_usd_id = self.env.ref("base.USD").id self.currency_euro_id = self.env.ref("base.EUR").id company = self.env.ref('base.main_company') self.cr.execute("UPDATE res_company SET currency_id = %s WHERE id = %s", [self.currency_euro_id, company.id]) - self.account_rcv = partner_agrolait.property_account_receivable_id or self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - self.account_rsa = partner_agrolait.property_account_payable_id or self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_payable').id)], limit=1) + self.account_rcv = self.partner_agrolait.property_account_receivable_id or self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) + self.account_rsa = self.partner_agrolait.property_account_payable_id or self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_payable').id)], limit=1) self.product = self.env.ref("product.product_product_4") self.bank_journal_euro = self.env['account.journal'].create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'}) @@ -133,31 +131,29 @@ class TestReconciliation(AccountingTestCase): }) def create_invoice(self, type='out_invoice', invoice_amount=50, currency_id=None): - #we create an invoice in given currency - invoice = self.account_invoice_model.create({'partner_id': self.partner_agrolait_id, - 'currency_id': currency_id, - 'name': type == 'out_invoice' and 'invoice to client' or 'invoice to vendor', - 'account_id': self.account_rcv.id, + invoice_vals = { 'type': type, - 'date_invoice': time.strftime('%Y') + '-07-01', - }) - self.account_invoice_line_model.create({'product_id': self.product.id, - 'quantity': 1, - 'price_unit': invoice_amount, - 'invoice_id': invoice.id, - 'name': 'product that cost ' + str(invoice_amount), - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, - }) - - #validate invoice - invoice.action_invoice_open() + 'partner_id': self.partner_agrolait_id, + 'invoice_date': time.strftime('%Y') + '-07-01', + 'date': time.strftime('%Y') + '-07-01', + 'invoice_line_ids': [(0, 0, { + 'name': 'product that cost %s' % invoice_amount, + 'quantity': 1, + 'price_unit': invoice_amount, + 'tax_ids': [(6, 0, [])], + })] + } + if currency_id: + invoice_vals['currency_id'] = currency_id + invoice = self.env['account.move'].with_context(default_type=type).create(invoice_vals) + invoice.post() return invoice def make_payment(self, invoice_record, bank_journal, amount=0.0, amount_currency=0.0, currency_id=None): bank_stmt = self.acc_bank_stmt_model.create({ 'journal_id': bank_journal.id, 'date': time.strftime('%Y') + '-07-15', - 'name': 'payment' + invoice_record.number + 'name': 'payment' + invoice_record.name }) bank_stmt_line = self.acc_bank_stmt_line_model.create({'name': 'payment', @@ -166,13 +162,9 @@ class TestReconciliation(AccountingTestCase): 'amount': amount, 'amount_currency': amount_currency, 'currency_id': currency_id, - 'date': time.strftime('%Y') + '-07-15',}) - - #reconcile the payment with the invoice - for l in invoice_record.move_id.line_ids: - if l.account_id.id == self.account_rcv.id: - line_id = l - break + 'date': time.strftime('%Y') + '-07-15', + }) + line_id = invoice_record.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) amount_in_widget = currency_id and amount_currency or amount bank_stmt_line.process_reconciliation(counterpart_aml_dicts=[{ 'move_line': line_id, @@ -203,135 +195,146 @@ class TestReconciliationExec(TestReconciliation): def test_statement_usd_invoice_eur_transaction_eur(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_euro_id, 30, self.bank_journal_usd, 42, 30, self.currency_euro_id) self.assertRecordValues(customer_move_lines, [ - {'debit': 30.0, 'credit': 0.0, 'amount_currency': 42, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 30.0, 'amount_currency': -42, 'currency_id': self.currency_usd_id}, + {'debit': 30.0, 'credit': 0.0, 'amount_currency': 42, 'currency_id': self.currency_usd_id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 30.0, 'amount_currency': -42, 'currency_id': self.currency_usd_id}, {'debit': 30.0, 'credit': 0.0, 'amount_currency': 42, 'currency_id': self.currency_usd_id}, + {'debit': 0.0, 'credit': 30.0, 'amount_currency': -42, 'currency_id': self.currency_usd_id}, ]) def test_statement_usd_invoice_usd_transaction_usd(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_usd_id, 50, self.bank_journal_usd, 50, 0, False) self.assertRecordValues(customer_move_lines, [ - {'debit': 32.70, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, + {'debit': 32.70, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'debit': 32.70, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, + {'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, ]) def test_statement_usd_invoice_usd_transaction_eur(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_usd_id, 50, self.bank_journal_usd, 50, 40, self.currency_euro_id) self.assertRecordValues(customer_move_lines, [ - {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, + {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, ]) exchange_lines = customer_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ - {'debit': 0.0, 'credit': 7.30, 'account_id': self.diff_income_account.id}, {'debit': 7.30, 'credit': 0.0, 'account_id': self.account_rcv.id}, + {'debit': 0.0, 'credit': 7.30, 'account_id': self.diff_income_account.id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, + {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, ]) exchange_lines = supplier_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ + {'debit': 0.0, 'credit': 7.30, 'account_id': self.account_rsa.id}, {'debit': 7.30, 'credit': 0.0, 'account_id': self.diff_expense_account.id}, - {'debit': 0.0, 'credit': 7.30, 'account_id': self.account_rcv.id}, ]) def test_statement_usd_invoice_chf_transaction_chf(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_swiss_id, 50, self.bank_journal_usd, 42, 50, self.currency_swiss_id) self.assertRecordValues(customer_move_lines, [ - {'debit': 27.47, 'credit': 0.0, 'amount_currency': 42, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 27.47, 'amount_currency': -50, 'currency_id': self.currency_swiss_id}, + {'debit': 27.47, 'credit': 0.0, 'amount_currency': 42, 'currency_id': self.currency_usd_id}, ]) exchange_lines = customer_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ - {'debit': 10.74, 'credit': 0.0, 'account_id': self.diff_expense_account.id}, {'debit': 0.0, 'credit': 10.74, 'account_id': self.account_rcv.id}, + {'debit': 10.74, 'credit': 0.0, 'account_id': self.diff_expense_account.id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 27.47, 'amount_currency': -42, 'currency_id': self.currency_usd_id}, {'debit': 27.47, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_swiss_id}, + {'debit': 0.0, 'credit': 27.47, 'amount_currency': -42, 'currency_id': self.currency_usd_id}, ]) exchange_lines = supplier_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ + {'debit': 10.74, 'credit': 0.0, 'account_id': self.account_rsa.id}, {'debit': 0.0, 'credit': 10.74, 'account_id': self.diff_income_account.id}, - {'debit': 10.74, 'credit': 0.0, 'account_id': self.account_rcv.id}, ]) def test_statement_eur_invoice_usd_transaction_usd(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_usd_id, 50, self.bank_journal_euro, 40, 50, self.currency_usd_id) self.assertRecordValues(customer_move_lines, [ - {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, + {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, ]) exchange_lines = customer_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ - {'debit': 0.0, 'credit': 7.30, 'account_id': self.diff_income_account.id}, {'debit': 7.30, 'credit': 0.0, 'account_id': self.account_rcv.id}, + {'debit': 0.0, 'credit': 7.30, 'account_id': self.diff_income_account.id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, {'debit': 40.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id}, + {'debit': 0.0, 'credit': 40.0, 'amount_currency': -50, 'currency_id': self.currency_usd_id}, ]) exchange_lines = supplier_move_lines.mapped('full_reconcile_id.exchange_move_id.line_ids') self.assertRecordValues(exchange_lines, [ + {'debit': 0.0, 'credit': 7.30, 'account_id': self.account_rsa.id}, {'debit': 7.30, 'credit': 0.0, 'account_id': self.diff_expense_account.id}, - {'debit': 0.0, 'credit': 7.30, 'account_id': self.account_rcv.id}, ]) def test_statement_eur_invoice_usd_transaction_eur(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_usd_id, 50, self.bank_journal_euro, 40, 0.0, False) self.assertRecordValues(customer_move_lines, [ - {'debit': 40.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, {'debit': 0.0, 'credit': 40.0, 'amount_currency': 0.0, 'currency_id': False}, + {'debit': 40.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 40.0, 'amount_currency': 0.0, 'currency_id': False}, {'debit': 40.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, + {'debit': 0.0, 'credit': 40.0, 'amount_currency': 0.0, 'currency_id': False}, ]) def test_statement_euro_invoice_usd_transaction_chf(self): customer_move_lines, supplier_move_lines = self.make_customer_and_supplier_flows(self.currency_usd_id, 50, self.bank_journal_euro, 42, 50, self.currency_swiss_id) self.assertRecordValues(customer_move_lines, [ - {'debit': 42.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_swiss_id}, {'debit': 0.0, 'credit': 42.0, 'amount_currency': -50, 'currency_id': self.currency_swiss_id}, + {'debit': 42.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_swiss_id}, ]) self.assertRecordValues(supplier_move_lines, [ - {'debit': 0.0, 'credit': 42.0, 'amount_currency': -50, 'currency_id': self.currency_swiss_id}, {'debit': 42.0, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_swiss_id}, + {'debit': 0.0, 'credit': 42.0, 'amount_currency': -50, 'currency_id': self.currency_swiss_id}, ]) def test_statement_euro_invoice_usd_transaction_euro_full(self): - #we create an invoice in given invoice_currency - invoice_record = self.create_invoice(type='out_invoice', invoice_amount=50, currency_id=self.currency_usd_id) - #we encode a payment on it, on the given bank_journal with amount, amount_currency and transaction_currency given - bank_stmt = self.acc_bank_stmt_model.create({ - 'journal_id': self.bank_journal_euro.id, - 'date': time.strftime('%Y') + '-01-01', + # Create a customer invoice of 50 USD. + partner = self.env['res.partner'].create({'name': 'test'}) + move = self.env['account.move'].with_context(default_type='out_invoice').create({ + 'type': 'out_invoice', + 'partner_id': partner.id, + 'invoice_date': '%s-07-01' % time.strftime('%Y'), + 'date': '%s-07-01' % time.strftime('%Y'), + 'currency_id': self.currency_usd_id, + 'invoice_line_ids': [ + (0, 0, {'quantity': 1, 'price_unit': 50.0, 'name': 'test'}) + ], }) + move.post() - bank_stmt_line = self.acc_bank_stmt_line_model.create({'name': 'payment', - 'statement_id': bank_stmt.id, - 'partner_id': self.partner_agrolait_id, - 'amount': 40, - 'date': time.strftime('%Y') + '-01-01',}) + # Create a bank statement of 40 EURO. + bank_stmt = self.env['account.bank.statement'].create({ + 'journal_id': self.bank_journal_euro.id, + 'date': '%s-01-01' % time.strftime('%Y'), + 'line_ids': [ + (0, 0, { + 'name': 'test', + 'partner_id': partner.id, + 'amount': 40.0, + 'date': '%s-01-01' % time.strftime('%Y') + }) + ], + }) - #reconcile the payment with the invoice - for l in invoice_record.move_id.line_ids: - if l.account_id.id == self.account_rcv.id: - line_id = l - break - bank_stmt_line.process_reconciliation(counterpart_aml_dicts=[{ - 'move_line': line_id, + # Reconcile the bank statement with the invoice. + receivable_line = move.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + bank_stmt.line_ids[0].process_reconciliation(counterpart_aml_dicts=[{ + 'move_line': receivable_line, 'debit': 0.0, 'credit': 32.7, 'name': 'test_statement_euro_invoice_usd_transaction_euro_full', @@ -343,18 +346,17 @@ class TestReconciliationExec(TestReconciliation): }]) self.assertRecordValues(bank_stmt.move_line_ids, [ - {'debit': 40.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, - {'debit': 0.0, 'credit': 32.7, 'amount_currency': 0.0, 'currency_id': False}, {'debit': 0.0, 'credit': 7.3, 'amount_currency': 0.0, 'currency_id': False}, + {'debit': 0.0, 'credit': 32.7, 'amount_currency': 0.0, 'currency_id': False}, + {'debit': 40.0, 'credit': 0.0, 'amount_currency': 0.0, 'currency_id': False}, ]) # The invoice should be paid, as the payments totally cover its total - self.assertEquals(invoice_record.state, 'paid', 'The invoice should be paid by now') - invoice_rec_line = invoice_record.move_id.line_ids.filtered(lambda x: x.account_id.reconcile) - self.assertTrue(invoice_rec_line.reconciled, 'The invoice should be totally reconciled') - self.assertTrue(invoice_rec_line.full_reconcile_id, 'The invoice should have a full reconcile number') - self.assertEquals(invoice_rec_line.amount_residual, 0, 'The invoice should be totally reconciled') - self.assertEquals(invoice_rec_line.amount_residual_currency, 0, 'The invoice should be totally reconciled') + self.assertEquals(move.invoice_payment_state, 'paid', 'The invoice should be paid by now') + self.assertTrue(receivable_line.reconciled, 'The invoice should be totally reconciled') + self.assertTrue(receivable_line.full_reconcile_id, 'The invoice should have a full reconcile number') + self.assertEquals(receivable_line.amount_residual, 0, 'The invoice should be totally reconciled') + self.assertEquals(receivable_line.amount_residual_currency, 0, 'The invoice should be totally reconciled') @unittest.skip('adapt to new accounting') def test_balanced_exchanges_gain_loss(self): @@ -376,7 +378,8 @@ class TestReconciliationExec(TestReconciliation): 'name': 'Foreign invoice with exchange gain', 'account_id': self.account_rcv_id, 'type': 'out_invoice', - 'date_invoice': time.strftime('%Y-%m-%d'), + 'invoice_date': time.strftime('%Y-%m-%d'), + 'date': time.strftime('%Y-%m-%d'), 'journal_id': self.bank_journal_usd_id, 'invoice_line': [ (0, 0, { @@ -386,7 +389,7 @@ class TestReconciliationExec(TestReconciliation): }) ] }) - invoice.action_invoice_open() + invoice.post() # We create a bank statement with two lines of 1.00 USD each. statement = self.acc_bank_stmt_model.create({ 'journal_id': self.bank_journal_usd_id, @@ -409,7 +412,7 @@ class TestReconciliationExec(TestReconciliation): # We process the reconciliation of the invoice line with the two bank statement lines line_id = None - for l in invoice.move_id.line_id: + for l in invoice.line_id: if l.account_id.id == self.account_rcv_id: line_id = l break @@ -581,16 +584,10 @@ class TestReconciliationExec(TestReconciliation): 'currency_id': self.currency_usd_id, 'payment_date': time.strftime('%Y') + '-07-15', 'journal_id': self.bank_journal_usd.id, + 'invoice_ids': [(6, 0, invoice.ids)], }) payment.post() - payment_move_line = False - bank_move_line = False - for l in payment.move_line_ids: - if l.account_id.id == self.account_rcv.id: - payment_move_line = l - else: - bank_move_line = l - invoice.register_payment(payment_move_line) + bank_move_line = payment.move_line_ids.filtered(lambda line: line.account_id.internal_type == 'liquidity') # create bank statement bank_stmt = self.acc_bank_stmt_model.create({ @@ -659,7 +656,6 @@ class TestReconciliationExec(TestReconciliation): # Counterpart Credit goes in Exchange diff dest_journal_id = self.env['account.journal'].search([('type', '=', 'purchase'), ('company_id', '=', self.env.ref('base.main_company').id)], limit=1) - account_expenses = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1) self.bank_journal_euro.write({'default_debit_account_id': self.account_rsa.id, 'default_credit_account_id': self.account_rsa.id}) @@ -682,38 +678,27 @@ class TestReconciliationExec(TestReconciliation): 'company_id': self.env.ref('base.main_company').id}) # Preparing Invoices (from vendor) - invoice_a = self.account_invoice_model.create({'partner_id': self.partner_agrolait_id, - 'currency_id': self.currency_usd_id, - 'name': 'invoice to vendor', - 'account_id': self.account_rsa.id, + invoice_a = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': time.strftime('%Y') + '-' + '07' + '-01', - }) - self.account_invoice_line_model.create({'product_id': self.product.id, - 'quantity': 1, - 'price_unit': 50, - 'invoice_id': invoice_a.id, - 'name': 'product that cost ' + str(50), - 'account_id': account_expenses.id, - }) - - invoice_b = self.account_invoice_model.create({'partner_id': self.partner_agrolait_id, + 'partner_id': self.partner_agrolait_id, 'currency_id': self.currency_usd_id, - 'name': 'invoice to vendor', - 'account_id': self.account_rsa.id, + 'invoice_date': '%s-07-01' % time.strftime('%Y'), + 'date': '%s-07-01' % time.strftime('%Y'), + 'invoice_line_ids': [ + (0, 0, {'product_id': self.product.id, 'quantity': 1, 'price_unit': 50.0}) + ], + }) + invoice_b = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': time.strftime('%Y') + '-' + '08' + '-01', - }) - self.account_invoice_line_model.create({'product_id': self.product.id, - 'quantity': 1, - 'price_unit': 50, - 'invoice_id': invoice_b.id, - 'name': 'product that cost ' + str(50), - 'account_id': account_expenses.id, + 'partner_id': self.partner_agrolait_id, + 'currency_id': self.currency_usd_id, + 'invoice_date': '%s-08-01' % time.strftime('%Y'), + 'date': '%s-08-01' % time.strftime('%Y'), + 'invoice_line_ids': [ + (0, 0, {'product_id': self.product.id, 'quantity': 1, 'price_unit': 50.0}) + ], }) - - invoice_a.action_invoice_open() - invoice_b.action_invoice_open() + (invoice_a + invoice_b).post() # Preparing Payments # One partial for invoice_a (fully assigned to it) @@ -761,27 +746,27 @@ class TestReconciliationExec(TestReconciliation): debit_line_b = payment_b.move_line_ids.filtered(lambda l: l.debit and l.account_id == dest_journal_id.default_debit_account_id) debit_line_c = payment_c.move_line_ids.filtered(lambda l: l.debit and l.account_id == dest_journal_id.default_debit_account_id) - invoice_a.assign_outstanding_credit(debit_line_a.id) - invoice_a.assign_outstanding_credit(debit_line_b.id) - invoice_b.assign_outstanding_credit(debit_line_b.id) - invoice_b.assign_outstanding_credit(debit_line_c.id) + invoice_a.js_assign_outstanding_line(debit_line_a.id) + invoice_a.js_assign_outstanding_line(debit_line_b.id) + invoice_b.js_assign_outstanding_line(debit_line_b.id) + invoice_b.js_assign_outstanding_line(debit_line_c.id) # Asserting correctness (only in the payable account) full_reconcile = False - for inv in (invoice_a + invoice_b): - self.assertTrue(inv.reconciled) - for aml in (inv.payment_move_line_ids + inv.move_id.line_ids).filtered(lambda l: l.account_id == self.account_rsa): - self.assertEqual(aml.amount_residual, 0.0) - self.assertEqual(aml.amount_residual_currency, 0.0) - self.assertTrue(aml.reconciled) - if not full_reconcile: - full_reconcile = aml.full_reconcile_id - else: - self.assertTrue(aml.full_reconcile_id == full_reconcile) + reconciled_amls = (debit_line_a + debit_line_b + debit_line_c + (invoice_a + invoice_b).mapped('line_ids'))\ + .filtered(lambda l: l.account_id == self.account_rsa) + for aml in reconciled_amls: + self.assertEqual(aml.amount_residual, 0.0) + self.assertEqual(aml.amount_residual_currency, 0.0) + self.assertTrue(aml.reconciled) + if not full_reconcile: + full_reconcile = aml.full_reconcile_id + else: + self.assertTrue(aml.full_reconcile_id == full_reconcile) full_rec_move = full_reconcile.exchange_move_id # Globally check whether the amount is correct - self.assertEqual(full_rec_move.amount, 18.75) + self.assertEqual(sum(full_rec_move.mapped('line_ids.debit')), 18.75) # Checking if the direction of the move is correct full_rec_payable = full_rec_move.line_ids.filtered(lambda l: l.account_id == self.account_rsa) @@ -806,22 +791,19 @@ class TestReconciliationExec(TestReconciliation): credit_aml = payment.move_line_ids.filtered('credit') # Check residual before assignation - self.assertAlmostEquals(inv1.residual, 10) - self.assertAlmostEquals(inv2.residual, 20) + self.assertAlmostEquals(inv1.amount_residual, 10) + self.assertAlmostEquals(inv2.amount_residual, 20) # Assign credit and residual - inv1.assign_outstanding_credit(credit_aml.id) - inv2.assign_outstanding_credit(credit_aml.id) - self.assertAlmostEquals(inv1.residual, 0) - self.assertAlmostEquals(inv2.residual, 0) + inv1.js_assign_outstanding_line(credit_aml.id) + inv2.js_assign_outstanding_line(credit_aml.id) + self.assertAlmostEquals(inv1.amount_residual, 0) + self.assertAlmostEquals(inv2.amount_residual, 0) # Unreconcile one invoice at a time and check residual - credit_aml.with_context(invoice_id=inv1.id).remove_move_reconcile() - self.assertAlmostEquals(inv1.residual, 10) - self.assertAlmostEquals(inv2.residual, 0) - credit_aml.with_context(invoice_id=inv2.id).remove_move_reconcile() - self.assertAlmostEquals(inv1.residual, 10) - self.assertAlmostEquals(inv2.residual, 20) + credit_aml.remove_move_reconcile() + self.assertAlmostEquals(inv1.amount_residual, 10) + self.assertAlmostEquals(inv2.amount_residual, 20) def test_unreconcile_exchange(self): # Use case: @@ -860,16 +842,16 @@ class TestReconciliationExec(TestReconciliation): credit_aml = payment.move_line_ids.filtered('credit') # Check residual before assignation - self.assertAlmostEquals(inv.residual, 111) + self.assertAlmostEquals(inv.amount_residual, 111) # Assign credit, check exchange move and residual - inv.assign_outstanding_credit(credit_aml.id) + inv.js_assign_outstanding_line(credit_aml.id) self.assertEqual(len(payment.move_line_ids.mapped('full_reconcile_id').exchange_move_id), 1) - self.assertAlmostEquals(inv.residual, 0) + self.assertAlmostEquals(inv.amount_residual, 0) # Unreconcile invoice and check residual credit_aml.with_context(invoice_id=inv.id).remove_move_reconcile() - self.assertAlmostEquals(inv.residual, 111) + self.assertAlmostEquals(inv.amount_residual, 111) def test_revert_payment_and_reconcile(self): payment = self.env['account.payment'].create({ @@ -896,9 +878,8 @@ class TestReconciliationExec(TestReconciliation): move = bank_line.move_id # Reversing the payment's move - reversed_move_list = move.reverse_moves('2018-06-04') - self.assertEqual(len(reversed_move_list), 1) - reversed_move = self.env['account.move'].browse(reversed_move_list[0]) + reversed_move = move._reverse_moves([{'date': '2018-06-04'}]) + self.assertEqual(len(reversed_move), 1) self.assertEqual(len(reversed_move.line_ids), 2) @@ -914,26 +895,22 @@ class TestReconciliationExec(TestReconciliation): self.assertEqual(reversed_bank_line.full_reconcile_id.id, bank_line.full_reconcile_id.id) self.assertEqual(reversed_customer_line.full_reconcile_id.id, customer_line.full_reconcile_id.id) - def create_invoice_partner(self, type='out_invoice', invoice_amount=50, currency_id=None, partner_id=False): - #we create an invoice in given currency - invoice = self.account_invoice_model.create({'partner_id': partner_id, - 'currency_id': currency_id, - 'name': type == 'out_invoice' and 'invoice to client' or 'invoice to vendor', - 'account_id': self.account_rcv.id, + def create_invoice_partner(self, type='out_invoice', invoice_amount=50, currency_id=None, partner_id=False, payment_term_id=False): + move = self.env['account.move'].with_context(default_type=type).create({ 'type': type, - 'date_invoice': time.strftime('%Y') + '-07-01', - }) - self.account_invoice_line_model.create({'product_id': self.product.id, - 'quantity': 1, - 'price_unit': invoice_amount, - 'invoice_id': invoice.id, - 'name': 'product that cost ' + str(invoice_amount), - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, + 'partner_id': partner_id, + 'invoice_date': time.strftime('%Y') + '-07-01', + 'date': time.strftime('%Y') + '-07-01', + 'currency_id': currency_id, + 'invoice_payment_term_id': payment_term_id, + 'invoice_line_ids': [(0, 0, { + 'quantity': 1, + 'price_unit': invoice_amount, + 'name': 'product that cost ' + str(invoice_amount), + })], }) - - #validate invoice - invoice.action_invoice_open() - return invoice + move.post() + return move def test_aged_report(self): AgedReport = self.env['report.account.report_agedpartnerbalance'].with_context(include_nullified_amount=True) @@ -963,7 +940,7 @@ class TestReconciliationExec(TestReconciliation): # Case 2: The invoice and payment are not reconciled: we should have one line on the report # and 2 amls - invoice.move_id.line_ids.with_context(invoice_id=invoice.id).remove_move_reconcile() + invoice.line_ids.with_context(invoice_id=invoice.id).remove_move_reconcile() report_lines, total, amls = AgedReport._get_partner_move_lines(account_type, report_date_to, 'posted', 30) partner_lines = [line for line in report_lines if line['partner_id'] == partner.id] @@ -1028,17 +1005,17 @@ class TestReconciliationExec(TestReconciliation): payment.post() credit_aml = payment.move_line_ids.filtered('credit') - inv.assign_outstanding_credit(credit_aml.id) - self.assertTrue(inv.state == 'paid', 'The invoice should be paid') + inv.js_assign_outstanding_line(credit_aml.id) + self.assertTrue(inv.invoice_payment_state == 'paid', 'The invoice should be paid') exchange_reconcile = payment.move_line_ids.mapped('full_reconcile_id') exchange_move = exchange_reconcile.exchange_move_id payment_move = payment.move_line_ids[0].move_id - reverted_payment_move = self.env['account.move'].browse(payment_move.reverse_moves(time.strftime('%Y') + '-08-01')) + reverted_payment_move = payment_move._reverse_moves([{'date': time.strftime('%Y') + '-08-01'}], cancel=True) # After reversal of payment, the invoice should be open - self.assertTrue(inv.state == 'open', 'The invoice should be open again') + self.assertTrue(inv.state == 'posted', 'The invoice should be open again') self.assertFalse(exchange_reconcile.exists()) reverted_exchange_move = self.env['account.move'].search([('journal_id', '=', exchange_move.journal_id.id), ('ref', 'ilike', exchange_move.name)], limit=1) @@ -1061,12 +1038,12 @@ class TestReconciliationExec(TestReconciliation): # Also, in this case, there can be only 1 partial_reconcile statement_partial_id = statement.move_line_ids.mapped(lambda l: l.matched_credit_ids + l.matched_debit_ids) self.env.cr.execute('UPDATE account_partial_reconcile SET create_date = %(date)s WHERE id = %(partial_id)s', - {'date': invoice.date_invoice, + {'date': invoice.invoice_date, 'partial_id': statement_partial_id.id}) # Case 1: report date is invoice date # There should be an entry for the partner - report_date_to = invoice.date_invoice + report_date_to = invoice.invoice_date report_lines, total, amls = AgedReport._get_partner_move_lines(account_type, report_date_to, 'posted', 30) partner_lines = [line for line in report_lines if line['partner_id'] == partner.id] @@ -1129,9 +1106,6 @@ class TestReconciliationExec(TestReconciliation): # * Dr. 100 USD / 50 EUR - Accounts receivable # * Cr. 100 USD / 50 EUR - Revenue #### - account_revenue = self.env['account.account'].search( - [('user_type_id', '=', self.env.ref( - 'account.data_account_type_revenue').id)], limit=1) dest_journal_id = self.env['account.journal'].search( [('type', '=', 'purchase'), ('company_id', '=', self.env.ref('base.main_company').id)], @@ -1148,24 +1122,18 @@ class TestReconciliationExec(TestReconciliation): 'rate': 2, }) - invoice_cust_1 = self.account_invoice_model.create({ - 'partner_id': self.partner_agrolait_id, - 'account_id': self.account_rcv.id, + invoice_cust_1 = self.env['account.move'].with_context(default_type='out_invoice').create({ 'type': 'out_invoice', + 'partner_id': self.partner_agrolait_id, + 'invoice_date': '%s-01-01' % time.strftime('%Y'), + 'date': '%s-01-01' % time.strftime('%Y'), 'currency_id': self.currency_usd_id, - 'date_invoice': time.strftime('%Y') + '-01-01', - }) - self.account_invoice_line_model.create({ - 'quantity': 1.0, - 'price_unit': 100.0, - 'invoice_id': invoice_cust_1.id, - 'name': 'product that cost 100', - 'account_id': account_revenue.id, - }) - invoice_cust_1.action_invoice_open() - self.assertEqual(invoice_cust_1.residual_company_signed, 50.0) - aml = invoice_cust_1.move_id.mapped('line_ids').filtered( - lambda x: x.account_id == account_revenue) + 'invoice_line_ids': [ + (0, 0, {'quantity': 1, 'price_unit': 100.0, 'name': 'product that cost 100'}) + ], + }) + invoice_cust_1.post() + aml = invoice_cust_1.invoice_line_ids[0] self.assertEqual(aml.credit, 50.0) ##### # Day 2: Receive payment for half invoice Cust/1 (in USD) @@ -1193,17 +1161,12 @@ class TestReconciliationExec(TestReconciliation): 'currency_id': self.currency_usd_id, 'payment_date': time.strftime('%Y') + '-01-02', 'journal_id': dest_journal_id.id, + 'invoice_ids': [(6, 0, invoice_cust_1.ids)], }) payment.post() - payment_move_line = False - for l in payment.move_line_ids: - if l.account_id == invoice_cust_1.account_id: - payment_move_line = l - invoice_cust_1.register_payment(payment_move_line) # We expect at this point that the invoice should still be open, # because they owe us still 50 CC. - self.assertEqual(invoice_cust_1.state, 'open', - 'Invoice is in status %s' % invoice_cust_1.state) + self.assertEqual(invoice_cust_1.invoice_payment_state, 'not_paid', 'Invoice is in status %s' % invoice_cust_1.state) def test_multiple_term_reconciliation_opw_1906665(self): '''Test that when registering a payment to an invoice with multiple @@ -1228,25 +1191,11 @@ class TestReconciliationExec(TestReconciliation): }) # can't use self.create_invoice because it validates and we need to set payment_term_id - invoice = self.account_invoice_model.create({ - 'partner_id': self.partner_agrolait_id, - 'payment_term_id': payment_term.id, - 'currency_id': self.currency_usd_id, - 'name': 'Multiple payment terms', - 'account_id': self.account_rcv.id, - 'type': 'out_invoice', - 'date_invoice': time.strftime('%Y') + '-07-01', - }) - self.account_invoice_line_model.create({ - 'product_id': self.product.id, - 'quantity': 1, - 'price_unit': 50, - 'invoice_id': invoice.id, - 'name': self.product.display_name, - 'account_id': self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1).id, - }) - - invoice.action_invoice_open() + invoice = self.create_invoice_partner( + partner_id=self.partner_agrolait_id, + payment_term_id=payment_term.id, + currency_id=self.currency_usd_id, + ) payment = self.env['account.payment'].create({ 'payment_type': 'inbound', @@ -1259,10 +1208,10 @@ class TestReconciliationExec(TestReconciliation): }) payment.post() - invoice.assign_outstanding_credit(payment.move_line_ids.filtered('credit').id) + receivable_line = payment.move_line_ids.filtered('credit') + invoice.js_assign_outstanding_line(receivable_line.id) - receivable_lines = invoice.move_id.line_ids.filtered(lambda line: line.account_id == self.account_rcv).sorted('date_maturity')[0] - self.assertTrue(receivable_lines.matched_credit_ids) + self.assertTrue(receivable_line.matched_debit_ids) def test_reconciliation_cash_basis01(self): # Simulates an expense made up by 2 lines @@ -1272,61 +1221,31 @@ class TestReconciliationExec(TestReconciliation): company = self.env.ref('base.main_company') company.tax_cash_basis_journal_id = self.cash_basis_journal - AccountMoveLine = self.env['account.move.line'].with_context(check_move_validity=False) - - # Purchase purchase_move = self.env['account.move'].create({ - 'name': 'purchase', 'journal_id': self.purchase_journal.id, - }) - - purchase_payable_line0 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'credit': 100, - 'move_id': purchase_move.id, - }) - purchase_payable_line1 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'credit': 50, - 'move_id': purchase_move.id, - }) - AccountMoveLine.create({ - 'name': 'expensNoTax', - 'account_id': self.expense_account.id, - 'debit': 50, - 'move_id': purchase_move.id, - }) - AccountMoveLine.create({ - 'name': 'expenseTaxed', - 'account_id': self.expense_account.id, - 'debit': 83.33, - 'move_id': purchase_move.id, - 'tax_ids': [(4, self.tax_cash_basis.id, False)], - }) - tax_line = AccountMoveLine.create({ - 'name': 'TaxLine', - 'account_id': self.tax_waiting_account.id, - 'debit': 16.67, - 'move_id': purchase_move.id, - 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, - 'tax_base_amount': 83.33, + 'line_ids': [ + (0, 0, {'account_id': self.account_rsa.id, 'debit': 0.0, 'credit': 100.0}), + (0, 0, {'account_id': self.account_rsa.id, 'debit': 0.0, 'credit': 50.0}), + (0, 0, {'account_id': self.expense_account.id, 'debit': 50.0, 'credit': 0.0}), + (0, 0, {'account_id': self.expense_account.id, 'debit': 83.33, 'credit': 0.0, 'tax_ids': [(4, self.tax_cash_basis.id)], 'tax_exigible': False}), + (0, 0, { + 'account_id': self.tax_waiting_account.id, + 'debit': 16.67, + 'credit': 0.0, + 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, + 'tax_base_amount': 83.33, + 'tax_exigible': False + }), + ], }) purchase_move.post() - # Payment Move payment_move = self.env['account.move'].create({ - 'name': 'payment', 'journal_id': self.bank_journal_euro.id, - }) - payment_payable_line = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'debit': 150, - 'move_id': payment_move.id, - }) - AccountMoveLine.create({ - 'account_id': self.account_euro.id, - 'credit': 150, - 'move_id': payment_move.id, + 'line_ids': [ + (0, 0, {'account_id': self.account_rsa.id, 'debit': 150.0, 'credit': 0.0}), + (0, 0, {'account_id': self.account_euro.id, 'debit': 0.0, 'credit': 150.0}), + ], }) payment_move.post() @@ -1339,21 +1258,21 @@ class TestReconciliationExec(TestReconciliation): self.assertTrue(cash_basis_moves.exists()) # check reconciliation in Payable account - self.assertTrue(purchase_payable_line0.full_reconcile_id.exists()) - self.assertEqual(purchase_payable_line0.full_reconcile_id.reconciled_line_ids, - purchase_payable_line0 + purchase_payable_line1 + payment_payable_line) + self.assertTrue(purchase_move.line_ids[0].full_reconcile_id.exists()) + self.assertEqual(purchase_move.line_ids[0].full_reconcile_id.reconciled_line_ids, + purchase_move.line_ids[0] + purchase_move.line_ids[1] + payment_move.line_ids[0]) cash_basis_aml_ids = cash_basis_moves.mapped('line_ids') # check reconciliation in the tax waiting account - self.assertTrue(tax_line.full_reconcile_id.exists()) - self.assertEqual(tax_line.full_reconcile_id.reconciled_line_ids, - cash_basis_aml_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + tax_line) + self.assertTrue(purchase_move.line_ids[4].full_reconcile_id.exists()) + self.assertEqual(purchase_move.line_ids[4].full_reconcile_id.reconciled_line_ids, + cash_basis_aml_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + purchase_move.line_ids[4]) self.assertEqual(len(cash_basis_aml_ids), 8) # check amounts - cash_basis_move1 = cash_basis_moves.filtered(lambda m: m.amount == 33.34) - cash_basis_move2 = cash_basis_moves.filtered(lambda m: m.amount == 66.66) + cash_basis_move1 = cash_basis_moves.filtered(lambda m: m.amount_total == 33.34) + cash_basis_move2 = cash_basis_moves.filtered(lambda m: m.amount_total == 66.66) self.assertTrue(cash_basis_move1.exists()) self.assertTrue(cash_basis_move2.exists()) @@ -1396,88 +1315,50 @@ class TestReconciliationExec(TestReconciliation): 'code': 'TWAIT1', }) - - AccountMoveLine = self.env['account.move.line'].with_context(check_move_validity=False) - - # Purchase purchase_move = self.env['account.move'].create({ - 'name': 'invoice', 'journal_id': self.purchase_journal.id, - }) - - purchase_payable_line0 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'credit': 105, - 'move_id': purchase_move.id, - }) - purchase_payable_line1 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'credit': 50, - 'move_id': purchase_move.id, - }) - AccountMoveLine.create({ - 'name': 'expenseTaxed 10%', - 'account_id': self.expense_account.id, - 'debit': 50, - 'move_id': purchase_move.id, - 'tax_ids': [(4, tax_cash_basis10percent.id, False)], - }) - tax_line0 = AccountMoveLine.create({ - 'name': 'TaxLine0', - 'account_id': tax_waiting_account10.id, - 'debit': 5, - 'move_id': purchase_move.id, - 'tax_repartition_line_id': tax_cash_basis10percent.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, - 'tax_base_amount': 50, - }) - AccountMoveLine.create({ - 'name': 'expenseTaxed 20%', - 'account_id': self.expense_account.id, - 'debit': 83.33, - 'move_id': purchase_move.id, - 'tax_ids': [(4, self.tax_cash_basis.id, False)], - }) - tax_line1 = AccountMoveLine.create({ - 'name': 'TaxLine1', - 'account_id': self.tax_waiting_account.id, - 'debit': 16.67, - 'move_id': purchase_move.id, - 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, - 'tax_base_amount': 83.33, + 'line_ids': [ + (0, 0, {'account_id': self.account_rsa.id, 'debit': 0.0, 'credit': 50.0}), + (0, 0, {'account_id': self.account_rsa.id, 'debit': 0.0, 'credit': 105.0}), + (0, 0, {'name': 'expenseTaxed 10%', 'account_id': self.expense_account.id, 'debit': 50.0, 'credit': 0.0, 'tax_ids': [(4, tax_cash_basis10percent.id)], 'tax_exigible': False}), + (0, 0, { + 'name': 'TaxLine0', + 'account_id': tax_waiting_account10.id, + 'debit': 5.0, + 'credit': 0.0, + 'tax_repartition_line_id': tax_cash_basis10percent.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, + 'tax_exigible': False, + 'tax_base_amount': 50.00, + }), + (0, 0, {'name': 'expenseTaxed 20%', 'account_id': self.expense_account.id, 'debit': 83.33, 'credit': 0.0, 'tax_ids': [(4, self.tax_cash_basis.id)], 'tax_exigible': False}), + (0, 0, { + 'name': 'TaxLine1', + 'account_id': self.tax_waiting_account.id, + 'debit': 16.67, + 'credit': 0.0, + 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, + 'tax_exigible': False, + 'tax_base_amount': 83.33, + }), + ], }) purchase_move.post() - # Payment Move payment_move0 = self.env['account.move'].create({ - 'name': 'payment', 'journal_id': self.bank_journal_euro.id, - }) - payment_payable_line0 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'debit': 40, - 'move_id': payment_move0.id, - }) - AccountMoveLine.create({ - 'account_id': self.account_euro.id, - 'credit': 40, - 'move_id': payment_move0.id, + 'line_ids': [ + (0, 0, {'account_id': self.account_rsa.id, 'debit': 40.0, 'credit': 0.0}), + (0, 0, {'account_id': self.account_euro.id, 'debit': 0.0, 'credit': 40.0}), + ], }) payment_move0.post() - # Payment Move payment_move1 = self.env['account.move'].create({ - 'name': 'payment', 'journal_id': self.bank_journal_euro.id, - }) - payment_payable_line1 = AccountMoveLine.create({ - 'account_id': self.account_rsa.id, - 'debit': 115, - 'move_id': payment_move1.id, - }) - AccountMoveLine.create({ - 'account_id': self.account_euro.id, - 'credit': 115, - 'move_id': payment_move1.id, + 'line_ids': [ + (0, 0, {'account_id': self.account_rsa.id, 'debit': 115.0, 'credit': 0.0}), + (0, 0, {'account_id': self.account_euro.id, 'debit': 0.0, 'credit': 115.0}), + ], }) payment_move1.post() @@ -1490,32 +1371,32 @@ class TestReconciliationExec(TestReconciliation): self.assertTrue(cash_basis_moves.exists()) # check reconciliation in Payable account - self.assertTrue(purchase_payable_line0.full_reconcile_id.exists()) - self.assertEqual(purchase_payable_line0.full_reconcile_id.reconciled_line_ids, - purchase_payable_line0 + purchase_payable_line1 + payment_payable_line0 + payment_payable_line1) + self.assertTrue(purchase_move.line_ids[0].full_reconcile_id.exists()) + self.assertEqual(purchase_move.line_ids[0].full_reconcile_id.reconciled_line_ids, + (purchase_move + payment_move0 + payment_move1).mapped('line_ids').filtered(lambda l: l.account_id.internal_type == 'payable')) cash_basis_aml_ids = cash_basis_moves.mapped('line_ids') # check reconciliation in the tax waiting account - self.assertTrue(tax_line0.full_reconcile_id.exists()) - self.assertEqual(tax_line0.full_reconcile_id.reconciled_line_ids, - cash_basis_aml_ids.filtered(lambda l: l.account_id == tax_waiting_account10) + tax_line0) + self.assertTrue(purchase_move.line_ids[3].full_reconcile_id.exists()) + self.assertEqual(purchase_move.line_ids[3].full_reconcile_id.reconciled_line_ids, + cash_basis_aml_ids.filtered(lambda l: l.account_id == tax_waiting_account10) + purchase_move.line_ids[3]) - self.assertTrue(tax_line1.full_reconcile_id.exists()) - self.assertEqual(tax_line1.full_reconcile_id.reconciled_line_ids, - cash_basis_aml_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + tax_line1) + self.assertTrue(purchase_move.line_ids[5].full_reconcile_id.exists()) + self.assertEqual(purchase_move.line_ids[5].full_reconcile_id.reconciled_line_ids, + cash_basis_aml_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + purchase_move.line_ids[5]) self.assertEqual(len(cash_basis_aml_ids), 24) # check amounts expected_move_amounts = [ {'base_20': 56.45, 'tax_20': 11.29, 'base_10': 33.87, 'tax_10': 3.39}, - {'base_20': 21.50, 'tax_20': 4.30, 'base_10': 12.90, 'tax_10': 1.29}, {'base_20': 5.38, 'tax_20': 1.08, 'base_10': 3.23, 'tax_10': 0.32}, + {'base_20': 21.50, 'tax_20': 4.30, 'base_10': 12.90, 'tax_10': 1.29}, ] index = 0 - for cb_move in cash_basis_moves.sorted('amount', reverse=True): + for cb_move in cash_basis_moves: expected = expected_move_amounts[index] move_lines = cb_move.line_ids base_amount_tax_lines20per = move_lines.filtered(lambda l: l.account_id == self.tax_base_amount_account and '20%' in l.name) @@ -1564,9 +1445,9 @@ class TestReconciliationExec(TestReconciliation): previous_name = st_line.move_name with self.assertRaises(UserError): #you need edition mode to be able to change it - st_line.with_context(edition_mode=False).process_reconciliation( + st_line.with_context(suspense_moves_mode=False).process_reconciliation( counterpart_aml_dicts=[], - new_aml_dicts = [{ + new_aml_dicts=[{ 'debit': 0, 'credit': 50, 'name': 'exchange difference', @@ -1574,9 +1455,9 @@ class TestReconciliationExec(TestReconciliation): }], ) - st_line.with_context(edition_mode=True).process_reconciliation( + st_line.with_context(suspense_moves_mode=True).process_reconciliation( counterpart_aml_dicts=[], - new_aml_dicts = [{ + new_aml_dicts=[{ 'debit': 0, 'credit': 50, 'name': 'exchange difference', @@ -1628,83 +1509,70 @@ class TestReconciliationExec(TestReconciliation): company.country_id = self.ref('base.us') company.tax_cash_basis_journal_id = self.cash_basis_journal - aml_obj = self.env['account.move.line'].with_context( - check_move_validity=False) - # Purchase purchase_move = self.env['account.move'].create({ - 'name': 'purchase', 'journal_id': self.purchase_journal.id, - }) - - aml_obj.create({ - 'name': 'expenseTaxed', - 'account_id': self.expense_account.id, - 'debit': 106841.65, - 'move_id': purchase_move.id, - 'tax_ids': [(4, self.tax_cash_basis.id, False)], - 'currency_id': self.currency_usd_id, - 'amount_currency': 5301.00, - }) - aml_obj.create({ - 'name': 'TaxLine', - 'account_id': self.tax_waiting_account.id, - 'debit': 17094.66, - 'move_id': purchase_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 848.16, - 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, - 'tax_base_amount': 106841.65, - }) - purchase_payable_line0 = aml_obj.create({ - 'name': 'Payable', - 'account_id': self.account_rsa.id, - 'credit': 123936.31, - 'move_id': purchase_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': -6149.16, + 'line_ids': [ + (0, 0, { + 'name': 'expenseTaxed', + 'account_id': self.expense_account.id, + 'currency_id': self.currency_usd_id, + 'tax_ids': [(4, self.tax_cash_basis.id)], + 'tax_exigible': False, + 'debit': 106841.65, 'credit': 0.0, 'amount_currency': 5301.00, + }), + (0, 0, { + 'name': 'TaxLine', + 'account_id': self.tax_waiting_account.id, + 'currency_id': self.currency_usd_id, + 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, + 'tax_exigible': False, + 'tax_base_amount': 106841.65, + 'debit': 17094.66, 'credit': 0.0, 'amount_currency': 848.16, + }), + (0, 0, { + 'name': 'Payable', + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 123936.31, 'amount_currency': -6149.16, + }), + ], }) purchase_move.post() # FX 01 Move fx_move_01 = self.env['account.move'].create({ - 'name': 'FX 01', 'journal_id': self.fx_journal.id, - }) - fx_01_payable_line = aml_obj.create({ - 'account_id': self.account_rsa.id, - 'debit': 167.86, - 'move_id': fx_move_01.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, - }) - aml_obj.create({ - 'account_id': self.diff_income_account.id, - 'credit': 167.86, - 'move_id': fx_move_01.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, + 'line_ids': [ + (0, 0, { + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 167.86, 'credit': 0.0, 'amount_currency': 0.00, + }), + (0, 0, { + 'account_id': self.diff_income_account.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 167.86, 'amount_currency': 0.0, + }), + ], }) fx_move_01.post() # Payment Move payment_move = self.env['account.move'].create({ - 'name': 'payment', 'journal_id': self.bank_journal_usd.id, - }) - payment_payable_line = aml_obj.create({ - 'account_id': self.account_rsa.id, - 'debit': 123768.45, - 'move_id': payment_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 6149.16, - }) - aml_obj.create({ - 'account_id': self.account_usd.id, - 'credit': 123768.45, - 'move_id': payment_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': -6149.16, + 'line_ids': [ + (0, 0, { + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 123768.45, 'credit': 0.0, 'amount_currency': 6149.16, + }), + (0, 0, { + 'account_id': self.account_usd.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 123768.45, 'amount_currency': -6149.16, + }), + ], }) payment_move.post() @@ -1714,10 +1582,10 @@ class TestReconciliationExec(TestReconciliation): to_reconcile.reconcile() # check reconciliation in Payable account - self.assertTrue(purchase_payable_line0.full_reconcile_id.exists()) + self.assertTrue(purchase_move.line_ids[2].full_reconcile_id.exists()) self.assertEqual( - purchase_payable_line0.full_reconcile_id.reconciled_line_ids, - purchase_payable_line0 + fx_01_payable_line + payment_payable_line) + purchase_move.line_ids[2].full_reconcile_id.reconciled_line_ids, + purchase_move.line_ids[2] + fx_move_01.line_ids[0] + payment_move.line_ids[0]) # check cash basis cash_basis_moves = self.env['account.move'].search( @@ -1734,7 +1602,7 @@ class TestReconciliationExec(TestReconciliation): self.assertTrue(cash_basis_move1.exists()) # For first move - move_lines = cash_basis_move1.line_ids + move_lines = cash_basis_moves.line_ids base_amount_tax_lines = move_lines.filtered( lambda l: l.account_id == self.tax_base_amount_account) self.assertEqual(len(base_amount_tax_lines), 2) @@ -1801,104 +1669,88 @@ class TestReconciliationExec(TestReconciliation): company.country_id = self.ref('base.us') company.tax_cash_basis_journal_id = self.cash_basis_journal - aml_obj = self.env['account.move.line'].with_context( - check_move_validity=False) - # Purchase purchase_move = self.env['account.move'].create({ - 'name': 'purchase', 'journal_id': self.purchase_journal.id, - }) - - aml_obj.create({ - 'name': 'expenseTaxed', - 'account_id': self.expense_account.id, - 'debit': 106841.65, - 'move_id': purchase_move.id, - 'tax_ids': [(4, self.tax_cash_basis.id, False)], - 'currency_id': self.currency_usd_id, - 'amount_currency': 5301.00, - }) - aml_obj.create({ - 'name': 'TaxLine', - 'account_id': self.tax_waiting_account.id, - 'debit': 17094.66, - 'move_id': purchase_move.id, - 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, - 'tax_base_amount': 106841.65, - 'currency_id': self.currency_usd_id, - 'amount_currency': 848.16, - }) - purchase_payable_line0 = aml_obj.create({ - 'name': 'Payable', - 'account_id': self.account_rsa.id, - 'credit': 123936.31, - 'move_id': purchase_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': -6149.16, + 'line_ids': [ + (0, 0, { + 'name': 'expenseTaxed', + 'account_id': self.expense_account.id, + 'currency_id': self.currency_usd_id, + 'tax_ids': [(4, self.tax_cash_basis.id)], + 'tax_exigible': False, + 'debit': 106841.65, 'credit': 0.0, 'amount_currency': 5301.00, + }), + (0, 0, { + 'name': 'TaxLine', + 'account_id': self.tax_waiting_account.id, + 'currency_id': self.currency_usd_id, + 'tax_repartition_line_id': self.tax_cash_basis.invoice_repartition_line_ids.filtered(lambda x: x.repartition_type == 'tax').id, + 'tax_exigible': False, + 'tax_base_amount': 106841.65, + 'debit': 17094.66, 'credit': 0.0, 'amount_currency': 848.16, + }), + (0, 0, { + 'name': 'Payable', + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 123936.31, 'amount_currency': -6149.16, + }), + ], }) purchase_move.post() # FX 01 Move fx_move_01 = self.env['account.move'].create({ - 'name': 'FX 01', 'journal_id': self.fx_journal.id, - }) - fx_01_payable_line = aml_obj.create({ - 'account_id': self.account_rsa.id, - 'credit': 1572.96, - 'move_id': fx_move_01.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, - }) - aml_obj.create({ - 'account_id': self.diff_expense_account.id, - 'debit': 1572.96, - 'move_id': fx_move_01.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, + 'line_ids': [ + (0, 0, { + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 1572.96, 'amount_currency': 0.00, + }), + (0, 0, { + 'account_id': self.diff_expense_account.id, + 'currency_id': self.currency_usd_id, + 'debit': 1572.96, 'credit': 0.0, 'amount_currency': 0.0, + }), + ], }) fx_move_01.post() # FX 02 Move fx_move_02 = self.env['account.move'].create({ - 'name': 'FX 02', 'journal_id': self.fx_journal.id, - }) - fx_02_payable_line = aml_obj.create({ - 'account_id': self.account_rsa.id, - 'debit': 1740.82, - 'move_id': fx_move_02.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, - }) - aml_obj.create({ - 'account_id': self.diff_income_account.id, - 'credit': 1740.82, - 'move_id': fx_move_02.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 0.00, + 'line_ids': [ + (0, 0, { + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 1740.82, 'credit': 0.0, 'amount_currency': 0.00, + }), + (0, 0, { + 'account_id': self.diff_income_account.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 1740.82, 'amount_currency': 0.0, + }), + ], }) fx_move_02.post() # Payment Move payment_move = self.env['account.move'].create({ - 'name': 'payment', 'journal_id': self.bank_journal_usd.id, - }) - payment_payable_line = aml_obj.create({ - 'account_id': self.account_rsa.id, - 'debit': 123768.45, - 'move_id': payment_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': 6149.16, - }) - aml_obj.create({ - 'account_id': self.account_usd.id, - 'credit': 123768.45, - 'move_id': payment_move.id, - 'currency_id': self.currency_usd_id, - 'amount_currency': -6149.16, + 'line_ids': [ + (0, 0, { + 'account_id': self.account_rsa.id, + 'currency_id': self.currency_usd_id, + 'debit': 123768.45, 'credit': 0.0, 'amount_currency': 6149.16, + }), + (0, 0, { + 'account_id': self.account_usd.id, + 'currency_id': self.currency_usd_id, + 'debit': 0.0, 'credit': 123768.45, 'amount_currency': -6149.16, + }), + ], }) payment_move.post() @@ -1909,11 +1761,11 @@ class TestReconciliationExec(TestReconciliation): to_reconcile.reconcile() # check reconciliation in Payable account - self.assertTrue(purchase_payable_line0.full_reconcile_id.exists()) + self.assertTrue(purchase_move.line_ids[2].full_reconcile_id.exists()) self.assertEqual( - purchase_payable_line0.full_reconcile_id.reconciled_line_ids, - purchase_payable_line0 + fx_01_payable_line + fx_02_payable_line + - payment_payable_line) + purchase_move.line_ids[2].full_reconcile_id.reconciled_line_ids, + purchase_move.line_ids[2] + fx_move_01.line_ids[0] + fx_move_02.line_ids[0] + + payment_move.line_ids[0]) # check cash basis cash_basis_moves = self.env['account.move'].search( @@ -2004,7 +1856,7 @@ class TestReconciliationExec(TestReconciliation): }) purchase_move.post() - reverted = self.env['account.move'].browse(purchase_move.reverse_moves()) + reverted = purchase_move._reverse_moves(cancel=True) self.assertTrue(reverted.exists()) for inv_line in [purchase_payable_line0, tax_line0, tax_line1]: @@ -2026,24 +1878,30 @@ class TestReconciliationExec(TestReconciliation): 'currency_id': self.currency_usd_id, 'company_id': self.env.ref('base.main_company').id, }) - invoice = self.create_invoice( - type='out_invoice', invoice_amount=50, - currency_id=self.currency_usd_id) - invoice.journal_id.update_posted = True - invoice.action_cancel() - invoice.state = 'draft' - invoice.invoice_line_ids.write({ - 'invoice_line_tax_ids': [(6, 0, [self.tax_cash_basis.id])]}) - invoice.compute_taxes() - invoice.action_invoice_open() + + move_form = Form(self.env['account.move'].with_context(default_type='out_invoice')) + move_form.partner_id = self.partner_agrolait + move_form.currency_id = self.env.ref('base.USD') + move_form.invoice_date = time.strftime('%Y') + '-07-01' + with move_form.invoice_line_ids.new() as line_form: + line_form.name = 'test line' + line_form.price_unit = 50 + line_form.tax_ids.clear() + invoice = move_form.save() + move_form = Form(invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.tax_ids.add(self.tax_cash_basis) + invoice = move_form.save() + invoice.post() self.assertTrue(invoice.currency_id != self.env.user.company_id.currency_id) # First Payment - payment0 = self.make_payment(invoice, journal, invoice.amount_total - 0.01) - self.assertEqual(invoice.residual, 0.01) + payment0 = self.make_payment(invoice, journal, amount=59.99) + self.assertEqual(invoice.amount_residual, 0.01) - tax_waiting_line = invoice.move_id.line_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + tax_waiting_line = invoice.line_ids.filtered(lambda l: l.account_id == self.tax_waiting_account) + self.assertTrue(tax_waiting_line.exists()) self.assertFalse(tax_waiting_line.reconciled) move_caba0 = tax_waiting_line.matched_debit_ids.debit_move_id.move_id @@ -2056,8 +1914,8 @@ class TestReconciliationExec(TestReconciliation): # Second Payment payment1 = self.make_payment(invoice, journal, 0.01) - self.assertEqual(invoice.residual, 0) - self.assertEqual(invoice.state, 'paid') + self.assertEqual(invoice.amount_residual, 0) + self.assertEqual(invoice.invoice_payment_state, 'paid') self.assertTrue(tax_waiting_line.reconciled) move_caba1 = tax_waiting_line.matched_debit_ids.mapped('debit_move_id').mapped('move_id').filtered(lambda m: m != move_caba0) @@ -2211,4 +2069,4 @@ class TestReconciliationExec(TestReconciliation): }]) writeoff_line = self.env['account.move.line'].search([('name', '=', 'writeoff')]) - self.assertEquals(writeoff_line.credit, 15.0)
\ No newline at end of file + self.assertEquals(writeoff_line.credit, 15.0) diff --git a/addons/account/tests/test_reconciliation_matching_rules.py b/addons/account/tests/test_reconciliation_matching_rules.py index cb10bee162e..b9e9e7d465d 100644 --- a/addons/account/tests/test_reconciliation_matching_rules.py +++ b/addons/account/tests/test_reconciliation_matching_rules.py @@ -8,21 +8,17 @@ from odoo.tests import tagged class TestReconciliationMatchingRules(AccountingTestCase): def _create_invoice_line(self, amount, partner, type): ''' Create an invoice on the fly.''' - self_ctx = self.env['account.invoice'].with_context(type=type) - journal_id = self_ctx._default_journal().id - self_ctx = self_ctx.with_context(journal_id=journal_id) - view = type in ('in_invoice', 'in_refund') and 'account.invoice_supplier_form' or 'account.invoice_form' - with Form(self_ctx, view=view) as invoice_form: - invoice_form.partner_id = partner - with invoice_form.invoice_line_ids.new() as invoice_line_form: - invoice_line_form.name = 'xxxx' - invoice_line_form.quantity = 1 - invoice_line_form.price_unit = amount - invoice_line_form.invoice_line_tax_ids.clear() + invoice_form = Form(self.env['account.move'].with_context(default_type=type)) + invoice_form.partner_id = partner + with invoice_form.invoice_line_ids.new() as invoice_line_form: + invoice_line_form.name = 'xxxx' + invoice_line_form.quantity = 1 + invoice_line_form.price_unit = amount + invoice_line_form.tax_ids.clear() invoice = invoice_form.save() - invoice.action_invoice_open() - lines = invoice.move_id.line_ids - return lines.filtered(lambda l: l.account_id == invoice.account_id) + invoice.post() + lines = invoice.line_ids + return lines.filtered(lambda l: l.account_id.user_type_id.type in ('receivable', 'payable')) def _check_statement_matching(self, rules, expected_values, statements=None): if statements is None: @@ -293,15 +289,15 @@ class TestReconciliationMatchingRules(AccountingTestCase): # Check first line has been well reconciled. self.assertRecordValues(self.bank_line_1.journal_entry_ids, [ - {'partner_id': self.partner_1.id, 'debit': 105.0, 'credit': 0.0}, - {'partner_id': self.partner_1.id, 'debit': 0.0, 'credit': 100.0}, {'partner_id': self.partner_1.id, 'debit': 0.0, 'credit': 5.0}, + {'partner_id': self.partner_1.id, 'debit': 0.0, 'credit': 100.0}, + {'partner_id': self.partner_1.id, 'debit': 105.0, 'credit': 0.0}, ]) # Check second line has been well reconciled. self.assertRecordValues(self.cash_line_1.journal_entry_ids, [ - {'partner_id': self.partner_2.id, 'debit': 0.0, 'credit': 1000.0}, {'partner_id': self.partner_2.id, 'debit': 1000.0, 'credit': 0.0}, + {'partner_id': self.partner_2.id, 'debit': 0.0, 'credit': 1000.0}, ]) def test_reverted_move_matching(self): @@ -329,7 +325,7 @@ class TestReconciliationMatchingRules(AccountingTestCase): }) move.post() - move_reversed = AccountMove.browse(move.reverse_moves()) + move_reversed = move._reverse_moves() self.assertTrue(move_reversed.exists()) bank_st = self.env['account.bank.statement'].create({ diff --git a/addons/account/tests/test_reconciliation_widget.py b/addons/account/tests/test_reconciliation_widget.py index d0ebd37d37b..46dbaceca05 100644 --- a/addons/account/tests/test_reconciliation_widget.py +++ b/addons/account/tests/test_reconciliation_widget.py @@ -41,7 +41,7 @@ class TestReconciliationWidget(TestReconciliation): bank_stmt = self.acc_bank_stmt_model.create({ 'journal_id': self.bank_journal_usd.id, 'date': time.strftime('%Y-07-15'), - 'name': 'payment %s' % invoice.number, + 'name': 'payment %s' % invoice.name, }) bank_stmt_line = self.acc_bank_stmt_line_model.create({'name': 'payment', @@ -52,4 +52,4 @@ class TestReconciliationWidget(TestReconciliation): }) result = self.env['account.reconciliation.widget'].get_bank_statement_line_data(bank_stmt_line.ids) - self.assertEqual(result['lines'][0]['reconciliation_proposition'][0]['amount_str'], '$ 50.00')
\ No newline at end of file + self.assertEqual(result['lines'][0]['reconciliation_proposition'][0]['amount_str'], '$ 50.00') diff --git a/addons/account/views/account_invoice_view.xml b/addons/account/views/account_invoice_view.xml deleted file mode 100644 index 5bcaae0a09c..00000000000 --- a/addons/account/views/account_invoice_view.xml +++ /dev/null @@ -1,946 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <data> - - <!-- Invoices --> - <record id="view_invoice_line_calendar" model="ir.ui.view"> - <field name="name">account.invoice.calendar</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <calendar string="Invoices" date_start="date_invoice" color="journal_id"> - <field name="partner_id"/> - <field name="amount_total_signed"/> - </calendar> - </field> - </record> - - <record model="ir.ui.view" id="view_invoice_pivot"> - <field name="name">account.invoice.pivot</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <pivot string="Invoices" display_quantity="true"> - <field name="partner_id"/> - <field name="amount_total_company_signed" type="measure"/> - <field name="amount_total_signed" invisible="1"/> - <field name="amount_total" invisible="1"/> - <field name="residual_signed" invisible="1"/> - <field name="residual" invisible="1"/> - </pivot> - </field> - </record> - - <record model="ir.ui.view" id="view_invoice_graph"> - <field name="name">account.invoice.graph</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <graph string="Invoices"> - <field name="partner_id"/> - <field name="amount_total_signed" type="measure"/> - </graph> - </field> - </record> - - <record id="account_invoice_view_activity" model="ir.ui.view"> - <field name="name">account.invoice.activity</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <activity string="Invoices"> - <templates> - <div t-name="activity-box"> - <div> - <field name="reference" display="full"/> - <field name="partner_id" muted="1" display="full"/> - </div> - </div> - </templates> - </activity> - </field> - </record> - - <record id="view_invoice_line_tree" model="ir.ui.view"> - <field name="name">account.invoice.line.tree</field> - <field name="model">account.invoice.line</field> - <field name="arch" type="xml"> - <tree string="Invoice Line"> - <field name="name"/> - <field name="account_id" groups="account.group_account_user"/> - <field name="quantity"/> - <field name="uom_id" groups="uom.group_uom"/> - <field name="price_unit"/> - <field name="discount" groups="base.group_no_one"/> - <field name="price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/> - <field name="price_total" groups="account.group_show_line_subtotals_tax_included"/> - <field name="currency_id" invisible="1"/> - </tree> - </field> - </record> - - <!-- - TODO: This view uses "parent" and will not work standalone. - But for now we don't need it standalone. - - The view will only work if it's called as the default view to display a one2many - (showing invoice lines from inside the invoice form, where the invoice is the "parent"). - - If there is an action using this view directly (eg. showing all the invoice lines independently of their invoices) it will not work, - because there is the use of parent. inside the view, which will not exist in that case. - --> - <record id="view_invoice_line_form" model="ir.ui.view"> - <field name="name">account.invoice.line.form</field> - <field name="model">account.invoice.line</field> - <field name="arch" type="xml"> - <form> - <field name="display_type" invisible="1"/> - <!-- - We need the sequence field to be here for new lines to be added at the correct position. - TODO: at some point we want to fix this in the framework so that an invisible field is not required. - --> - <field name="sequence" invisible="1"/> - <group attrs="{'invisible': [('display_type', '!=', False)]}"> - <group> - <field name="partner_id" invisible="1"/> - <field name="invoice_type" invisible="1"/> - <field name="company_id" invisible="1"/> - <field name="product_id" - context="{'partner_id': partner_id}" - widget="many2one_barcode" - /> - <label for="quantity"/> - <div class="o_row"> - <field name="quantity"/> - <field name="uom_id" groups="uom.group_uom"/> - </div> - <field name="price_unit"/> - <field name="discount" groups="base.group_no_one"/> - <field name="invoice_line_tax_ids" context="{'type': invoice_type}" domain="[('type_tax_use','!=','none'),('company_id', '=', company_id)]" widget="many2many_tags" options="{'no_create': True}"/> - <field name="currency_id" invisible="1"/> - </group> - <group name="account_details"> - <field domain="[('company_id', '=', company_id)]" name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field domain="[('company_id', '=', company_id)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}"/> - <field name="company_id" groups="base.group_multi_company" readonly="1"/> - </group> - </group> - <label for="name" string="Description" attrs="{'invisible': [('display_type', '!=', False)]}"/> - <label for="name" string="Section" attrs="{'invisible': [('display_type', '!=', 'line_section')]}"/> - <label for="name" string="Note" attrs="{'invisible': [('display_type', '!=', 'line_note')]}"/> - <field name="name"/> - </form> - </field> - </record> - - <record id="view_invoice_tax_tree" model="ir.ui.view"> - <field name="name">account.invoice.tax.tree</field> - <field name="model">account.invoice.tax</field> - <field name="arch" type="xml"> - <tree string="Manual Invoice Taxes"> - <field name="sequence"/> - <field name="manual"/> - <field name="name"/> - <field name="account_id" groups="account.group_account_user"/> - <field name="base"/> - <field name="tax_ids"/> - <field name="amount_total" string="Amount"/> - <field name="currency_id" invisible="1"/> - </tree> - </field> - </record> - - <record id="view_invoice_tax_form" model="ir.ui.view"> - <field name="name">account.invoice.tax.form</field> - <field name="model">account.invoice.tax</field> - <field name="arch" type="xml"> - <form string="Manual Invoice Taxes"> - <group col="4"> - <field name="name"/> - <field name="sequence"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field name="account_analytic_id" domain="[('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="manual"/> - <field name="amount_total" string="Amount"/> - <field name="base"/> - <field name="tax_ids"/> - <field name="currency_id" invisible="1"/> - </group> - </form> - </field> - </record> - - <record id="invoice_tree" model="ir.ui.view"> - <field name="name">account.invoice.tree</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" string="Invoice" js_class="account_tree"> - <field name="partner_id" groups="base.group_user" string="Customer"/> - <field name="date_invoice"/> - <field name="number"/> - <field name="commercial_partner_id" invisible="1"/> - <field name="reference" invisible="1"/> - <field name="name" invisible="1"/> - <field name="journal_id" invisible="1"/> - <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/> - <field name="user_id"/> - <field name="date_due"/> - <field name="origin"/> - <field name="amount_untaxed_invoice_signed" string="Tax Excluded" sum="Total"/> - <field name="amount_tax_signed" string="Tax" sum="Total"/> - <field name="amount_total_signed" string="Total" sum="Total"/> - <field name="residual_signed" string="Amount Due" sum="Amount Due"/> - <field name="currency_id" invisible="1"/> - <field name="company_currency_id" invisible="1"/> - <field name="state"/> - <field name="type" invisible="context.get('type',True)"/> - </tree> - </field> - </record> - - <record id="invoice_tree_with_onboarding" model="ir.ui.view"> - <field name="name">account.invoice.tree.with.onboarding</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="invoice_tree"/> - <field name="mode">primary</field> - <field name="arch" type="xml"> - <xpath expr="//tree" position="attributes"> - <attribute name="banner_route">/account/account_invoice_onboarding</attribute> - </xpath> - </field> - </record> - - <record model="ir.ui.view" id="invoice_kanban"> - <field name="name">account.invoice.kanban</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <kanban class="o_kanban_mobile"> - <field name="number"/> - <field name="partner_id"/> - <field name="amount_total_signed"/> - <field name="date_invoice"/> - <field name="state"/> - <field name="currency_id"/> - <field name="activity_state"/> - <progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/> - <templates> - <t t-name="kanban-box"> - <div t-attf-class="oe_kanban_card oe_kanban_global_click"> - <div class="o_kanban_record_top"> - <div class="o_kanban_record_headings"> - <strong class="o_kanban_record_title"><span><t t-esc="record.partner_id.value"/></span></strong> - </div> - <strong><field name="amount_total_signed" widget="monetary"/></strong> - </div> - <div class="o_kanban_record_bottom"> - <div class="oe_kanban_bottom_left text-muted"> - <span><t t-esc="record.number.value"/> <t t-esc="record.date_invoice.value"/></span> - </div> - <div class="oe_kanban_bottom_right"> - <span class="float-right text-right"> - <field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'cancel': 'default', 'none': 'danger', 'open': 'warning', - 'paid': 'success'}}"/> - </span> - </div> - </div> - </div> - </t> - </templates> - </kanban> - </field> - </record> - - <record id="invoice_supplier_tree" model="ir.ui.view"> - <field name="name">account.invoice.supplier.tree</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" decoration-bf="not partner_id" string="Vendor Bill" js_class="account_tree"> - <field name="partner_id" invisible="1"/> - <field name="source_email" invisible="1"/> - <field name="invoice_icon" string=" "/> - <field name="vendor_display_name" groups="base.group_user" string="Vendor"/> - <field name="date_invoice" string="Bill Date"/> - <field name="number"/> - <field name="reference"/> - <field name="commercial_partner_id" invisible="1"/> - <field name="name" invisible="1"/> - <field name="journal_id" invisible="1"/> - <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/> - <field name="date_due"/> - <field name="origin"/> - <field name="amount_untaxed_invoice_signed" string="Tax Excluded" sum="Total"/> - <field name="amount_tax_signed" sum="Total"/> - <field name="amount_total_signed" string="Total" sum="Total"/> - <field name="residual_signed" string="To Pay" sum="To pay"/> - <field name="currency_id" invisible="1"/> - <field name="company_currency_id" invisible="1"/> - <field name="state"/> - <field name="type" invisible="context.get('type',True)"/> - </tree> - </field> - </record> - - <record id="invoice_supplier_form" model="ir.ui.view"> - <field name="name">account.invoice.supplier.form</field> - <field name="model">account.invoice</field> - <field name="priority">2</field> - <field name="arch" type="xml"> - <form string="Vendor Bill"> - <header> - <button name="action_invoice_open" type="object" states="draft" string="Validate" class="oe_highlight" groups="account.group_account_invoice"/> - <button name="action_register_payment" type="object" states="open" string="Register Payment" groups="account.group_account_invoice" class="oe_highlight"/> - <button name="%(action_account_invoice_refund)d" type='action' string='Ask for a Credit Note' groups="account.group_account_invoice" attrs="{'invisible': ['|',('type', 'in', ['in_refund','out_refund']),('state','not in',('open','in_payment','paid'))]}"/> - <button name="action_invoice_draft" states="cancel" string="Set to Draft" type="object" groups="account.group_account_invoice"/> - <field name="state" widget="statusbar" statusbar_visible="draft,open,paid" /> - </header> - <div groups="account.group_account_invoice" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': [('has_outstanding','=',False)]}"> - You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding debits</a></bold> for this supplier. You can allocate them to mark this bill as paid. - </div> - <div groups="account.group_account_invoice" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': [('edition_mode_available','=',False)]}"> - You have suspense account moves that match this invoice. <bold><button class="alert-link" type="object" name="action_reconcile_to_check" role="button" string="Check them" style="padding: 0;vertical-align: baseline;"/></bold> to mark this invoice as paid. - </div> - <field name="has_outstanding" invisible="1"/> - <field name="edition_mode_available" invisible="1"/> - <sheet string="Vendor Bill"> - <div> - <span class="o_form_label" attrs="{'invisible': ['|',('state','!=','draft'), ('type','!=','in_invoice')]}">Draft Bill</span> - <span class="o_form_label" attrs="{'invisible': [('sequence_number_next_prefix','=',False)]}">- First Number:</span> - <span class="o_form_label" attrs="{'invisible': ['|',('state','!=','draft'), ('type','!=','in_refund')]}">Draft Credit Note</span> - <span class="o_form_label" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_invoice')]}">Bill </span> - <span class="o_form_label" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_refund')]}">Credit Note </span> - <h1 class="mt0"> - <field name="number" class="oe_inline" attrs="{'invisible': [('state', '=', 'draft')]}"/> - <div attrs="{'invisible': [('sequence_number_next_prefix','=',False)]}"> - <field name="sequence_number_next_prefix" class="oe_inline"/> - <field name="sequence_number_next" class="oe_inline"/> - </div> - </h1> - </div> - <field name="type" invisible="1"/> - <group> - <group> - <field string="Vendor" name="partner_id" - widget="res_partner_many2one" - context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'default_is_company': True, 'show_vat': True}" - domain="[('supplier', '=', True)]"/> - <field name="reference" string="Vendor Reference"/> - <field name="vendor_bill_id" attrs="{'invisible': [('state','not in',['draft'])]}" - domain="[('partner_id','child_of', [partner_id]), ('state','in',('open','in_payment','paid')), ('type','=','in_invoice')]" - string="Auto-Complete" placeholder="Select an old vendor bill" - options="{'no_create': True}" context="{'show_total_amount': True}"/> - </group> - <group> - <field name="origin" attrs="{'invisible': [('origin', '=', False)]}"/> - <field name="source_email" widget="email" groups="base.group_no_one" attrs="{'invisible': [('source_email', '=', False)]}"/> - <field name="date_invoice" string="Bill Date" options="{'datepicker': {'warn_future': true}}"/> - <field name="date_due" attrs="{'readonly': ['|',('payment_term_id','!=',False), ('state', 'in', ['open', 'in_payment', 'paid'])]}" force_save="1"/> - <field name="move_name" invisible="1"/> - <field name="currency_id" options="{'no_create': True, 'no_open': True}" groups="base.group_multi_currency"/> - <field name="company_currency_id" invisible="1"/> - <field name="commercial_partner_id" invisible="1"/> - <field domain="[('partner_id', '=', commercial_partner_id)]" name="partner_bank_id" string="Bank Account" context="{'default_partner_id': commercial_partner_id}" attrs="{'invisible': [('type', '!=', 'in_invoice')]}"/> - </group> - </group> - <notebook> - <page string="Bill"> - <field context="{'type': type, 'journal_id': journal_id}" name="invoice_line_ids"> - <tree string="Bill lines" editable="bottom"> - <field name="sequence" widget="handle" /> - <field name="product_id" - context="{'partner_id': parent.partner_id}" domain="[('purchase_ok','=',True)]" - optional="show"/> - <field name="name"/> - <field name="company_id" invisible="1"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user" - domain="[('company_id', '=', parent.company_id), ('internal_type', '=', 'other'), ('deprecated', '=', False)]"/> - <field name="account_analytic_id" groups="analytic.group_analytic_accounting" - domain="[('company_id', '=', parent.company_id)]" - context="{'default_partner_id': parent.partner_id}" - optional="show"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}" optional="show"/> - <field name="quantity"/> - <field name="uom_id" string="UoM" groups="uom.group_uom" optional="show"/> - <field name="price_unit"/> - <field name="discount" string="Disc.%" optional="hide"/> - <field name="invoice_line_tax_ids" widget="many2many_tags" options="{'no_create': True}" context="{'type':parent.type, 'tree_view_ref': 'account.account_tax_view_tree', 'search_view_ref': 'account.account_tax_view_search'}" - domain="[('type_tax_use','=','purchase'),('company_id', '=', parent.company_id)]"/> - <field name="price_subtotal" string="Amount"/> - <field name="currency_id" invisible="1"/> - </tree> - </field> - <group> - <group> - <div class="oe_inline"> - <field name="tax_line_ids"> - <tree editable="bottom" string="Taxes" create="0" delete="0"> - <field name="name"/> - <!--Need invisible fields for on_change to create all necessary info --> - <field name="tax_id" invisible="1"/> - <field name="tax_ids" invisible="1"/> - <field name="sequence" invisible="1"/> - <field name="manual" invisible="1"/> - <field name="account_id" groups="account.group_account_user"/> - <field name="account_analytic_id" domain="[('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}"/> - <field name="amount"/> - <field name="amount_rounding" invisible="1"/> - <field name="amount_total" invisible="1"/> - <field name="currency_id" invisible="1" force_save="1"/> - <field name="tax_repartition_line_id" invisible="1"/> <!--Needed in order for the onchange computing the taxes to keep the repartition lines--> - <field name="tag_ids" invisible="1"/> <!--Needed in order for the onchange computing the taxes to keep the tags--> - <field name="base" invisible="1"/> - </tree> - </field> - </div> - </group> - <group class="oe_subtotal_footer oe_right"> - <field name="amount_untaxed"/> - <field name="amount_tax"/> - <field name="amount_total" class="oe_subtotal_footer_separator"/> - <field name="payments_widget" colspan="2" nolabel="1" widget="payment"/> - <field name="residual" class="oe_subtotal_footer_separator" attrs="{'invisible': [('state', '=', 'draft')]}"/> - <field name="reconciled" invisible="1"/> - <field name="outstanding_credits_debits_widget" colspan="2" nolabel="1" widget="payment" attrs="{'invisible': [('state', 'not in', 'open')]}"/> - </group> - </group> - <div> - <field name="comment" placeholder="Additional notes..."/> - </div> - </page> - <page string="Other Info" name="other_info"> - <group> - <group> - <field name="user_id" string="Purchase Representative"/> - <field name="journal_id" groups="account.group_account_user" options="{'no_create': True}" - attrs="{'readonly':[('move_name','!=',False)]}"/> - <field domain="[('company_id', '=', company_id), ('internal_type', '=', 'payable'), ('deprecated', '=', False)]" - name="account_id" groups="account.group_account_user"/> - <field name="date" groups="account.group_account_user"/> - <field name="name"/> - </group> - <group> - <field name="incoterm_id" options="{'no_create': True}"/> - <field name="fiscal_position_id" options="{'no_create': True}" placeholder="Auto-detect"/> - <field name="payment_term_id" options="{'no_create': True}"/> - <field name="move_id" groups="account.group_account_user" attrs="{'invisible': [('move_id', '=', False)]}"/> - <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - </group> - </group> - </page> - </notebook> - </sheet> - <div class="o_attachment_preview"/> - <div class="oe_chatter"> - <field name="message_follower_ids" widget="mail_followers"/> - <field name="activity_ids" widget="mail_activity"/> - <field name="message_ids" widget="mail_thread"/> - </div> - </form> - </field> - </record> - - <record id="invoice_form" model="ir.ui.view"> - <field name="name">account.invoice.form</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <form string="Invoice" class="o_invoice_form"> - <header> - <button name="action_invoice_sent" string="Send & Print" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', 'not in', ('open','in_payment','paid'))]}" class="oe_highlight" groups="base.group_user"/> - <button name="action_invoice_sent" string="Send & Print" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', 'not in', ('open','in_payment','paid'))]}" groups="base.group_user"/> - <button name="action_register_payment" id="account_invoice_payment_btn" type="object" - attrs="{'invisible': [('state', '!=', 'open')]}" - string="Register Payment" groups="account.group_account_invoice" class="oe_highlight"/> - <button name="action_invoice_open" type="object" states="draft" string="Validate" class="oe_highlight o_invoice_validate" groups="account.group_account_invoice"/> - <button name="%(action_account_invoice_refund)d" type='action' string='Add Credit Note' groups="account.group_account_invoice" attrs="{'invisible': ['|',('type', '=', 'out_refund'), ('state', 'not in', ('open','in_payment','paid'))]}"/> - <button name="preview_invoice" type="object" string="Preview"/> - <button name="action_invoice_draft" states="cancel" string="Reset to Draft" type="object" groups="account.group_account_invoice"/> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid"/> - </header> - <div groups="account.group_account_invoice" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': [('has_outstanding','=',False)]}"> - You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding payments</a></bold> for this customer. You can allocate them to mark this invoice as paid. - </div> - <div groups="account.group_account_invoice" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': [('edition_mode_available','=',False)]}"> - You have suspense account moves that match this invoice. <bold><button class="alert-link" type="object" name="action_reconcile_to_check" role="button" string="Check them" style="padding: 0;vertical-align: baseline;"/></bold> to mark this invoice as paid. - </div> - <field name="has_outstanding" invisible="1"/> - <field name="edition_mode_available" invisible="1"/> - <sheet string="Invoice"> - <div class="oe_button_box" name="button_box"> - </div> - <span class="o_form_label" attrs="{'invisible': ['|',('state','=','draft'), ('type','!=','out_refund')]}">Credit Note</span> - <h1 class="mt0"> - <div attrs="{'invisible': [('sequence_number_next_prefix','!=',False)]}"> - <label for="number" string="Draft Invoice" attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','!=','out_invoice')]}"/> - <label for="number" string="Draft Credit Note" attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','!=','out_refund')]}"/> - <field name="number" readonly="1" class="oe_inline" attrs="{'invisible': [('state','in',('draft',))]}"/> - </div> - <div attrs="{'invisible': [('sequence_number_next_prefix','=',False)]}"> - <label for="sequence_number_next_prefix" string="Invoice Number:"/><br/> - <field name="sequence_number_next_prefix" class="oe_inline"/> - <field name="sequence_number_next" class="oe_inline"/> - </div> - </h1> - <field name="type" invisible="1"/> - <group> - <group> - <field string="Customer" name="partner_id" - widget="res_partner_many2one" - context="{'search_default_customer':1, 'show_address': 1, 'default_is_company': True, 'show_vat': True}" - options='{"always_reload": True, "no_quick_create": True}' - domain="[('customer', '=', True)]"/> - <field name="payment_term_id"/> - <field name="cash_rounding_id" groups="account.group_cash_rounding"/> - </group> - <group> - <field name="date_invoice" options="{'datepicker': {'warn_future': true}}"/> - <field name="date_due" attrs="{'readonly': ['|',('payment_term_id','!=',False), ('state', 'in', ['open', 'in_payment', 'paid'])]}" force_save="1"/> - <field name="move_name" invisible="1"/> - <label for="currency_id" groups="base.group_multi_currency"/> - <div groups="base.group_multi_currency"> - <field name="currency_id" options="{'no_create': True, 'no_open': True}" class="oe_inline"/> - <field name="company_currency_id" invisible="1"/> - </div> - </group> - </group> - <field name="sent" invisible="1"/> - <notebook colspan="4"> - <page string="Invoice Lines"> - <field - name="invoice_line_ids" - nolabel="1" - widget="section_and_note_one2many" - mode="tree,kanban" - context="{'type': type, 'journal_id': journal_id, 'default_invoice_id': id}" - > - <tree string="Invoice Lines" editable="bottom"> - <control> - <create name="add_line_control" string="Add a line"/> - <create name="add_section_control" string="Add a section" context="{'default_display_type': 'line_section'}"/> - <create name="add_note_control" string="Add a note" context="{'default_display_type': 'line_note'}"/> - </control> - - <field name="sequence" widget="handle"/> - <field name="product_id" domain="[('sale_ok','=',True)]" optional="show"/> - <field name="origin" invisible="1"/> - <field name="is_rounding_line" invisible="1"/> - <field name="name" widget="section_and_note_text"/> - <field name="display_type" invisible="1"/> - <field name="company_id" invisible="1"/> - <field - name="account_id" - options="{'no_create': True}" - groups="account.group_account_user" - domain="[('company_id', '=', parent.company_id), ('internal_type', '=', 'other'), ('deprecated', '=', False)]" - attrs="{'required': [('display_type', '=', False)]}" - /> - <field name="account_analytic_id" groups="analytic.group_analytic_accounting" - domain="[('company_id', '=', parent.company_id)]" - context="{'default_partner_id': parent.partner_id}" - optional="show"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}" - optional="show"/> - <field name="quantity"/> - <field name="uom_id" string="UoM" groups="uom.group_uom" optional="show"/> - <field name="price_unit" string="Price"/> - <field name="discount" string="Disc.%" optional="hide"/> - <field name="invoice_line_tax_ids" widget="many2many_tags" options="{'no_create': True}" context="{'type':parent.type, 'tree_view_ref': 'account.account_tax_view_tree', 'search_view_ref': 'account.account_tax_view_search'}" - domain="[('type_tax_use','=','sale'),('company_id', '=', parent.company_id)]"/> - <field name="price_subtotal" string="Subtotal" groups="account.group_show_line_subtotals_tax_excluded"/> - <field name="price_total" string="Total" groups="account.group_show_line_subtotals_tax_included"/> - <field name="currency_id" invisible="1"/> - </tree> - <kanban class="o_kanban_mobile"> - <field name="name"/> - <field name="product_id"/> - <field name="price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/> - <field name="price_total" groups="account.group_show_line_subtotals_tax_included"/> - <field name="quantity"/> - <field name="uom_id" groups="uom.group_uom"/> - <field name="price_unit"/> - <field name="display_type"/> - <templates> - <t t-name="kanban-box"> - <div t-attf-class="oe_kanban_card oe_kanban_global_click {{ record.display_type.raw_value ? 'o_is_' + record.display_type.raw_value : '' }}"> - <t t-if="!record.display_type.raw_value"> - <div class="row"> - <div class="col-8"> - <strong> - <span> - <t t-esc="record.product_id.value"/> - </span> - </strong> - </div> - <div class="col-4"> - <strong> - <span class="float-right text-right"> - <t t-esc="record.price_subtotal.value" groups="account.group_show_line_subtotals_tax_excluded"/> - <t t-esc="record.price_total.value" groups="account.group_show_line_subtotals_tax_included"/> - </span> - </strong> - </div> - </div> - <div class="row"> - <div class="col-12 text-muted"> - <span> - Quantity: - <t t-esc="record.quantity.value"/> - <t t-esc="record.uom_id.value"/> - </span> - </div> - </div> - <div class="row"> - <div class="col-12 text-muted"> - <span> - Unit Price: - <t t-esc="record.price_unit.value"/> - </span> - </div> - </div> - </t> - <t t-if="record.display_type.raw_value === 'line_section' || record.display_type.raw_value === 'line_note'"> - <div class="row"> - <div class="col-12"> - <span> - <t t-esc="record.name.value"/> - </span> - </div> - </div> - </t> - </div> - </t> - </templates> - </kanban> - </field> - <group class="oe_subtotal_footer oe_right"> - <field name="amount_untaxed"/> - <field name="amount_tax"/> - <field name="amount_total" class="oe_subtotal_footer_separator"/> - <field name="payments_widget" colspan="2" nolabel="1" widget="payment"/> - <field name="residual" class="oe_subtotal_footer_separator" attrs="{'invisible': [('state', '=', 'draft')]}"/> - <field name="reconciled" invisible="1"/> - <field name="outstanding_credits_debits_widget" colspan="2" nolabel="1" widget="payment" attrs="{'invisible': [('state', 'not in', 'open')]}"/> - </group> - <field name="comment" placeholder="Terms and conditions..."/> - </page> - <page string="Other Info" name="other_info"> - <group> - <group> - <field name="user_id"/> - <field name="journal_id" groups="account.group_account_user" - options="{'no_create': True}" attrs="{'readonly':[('move_name','!=',False)]}"/> - <field domain="[('company_id', '=', company_id),('internal_type','=', 'receivable'), ('deprecated', '=', False)]" - name="account_id" groups="account.group_account_user"/> - <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - <field name="move_id" groups="account.group_account_user" attrs="{'invisible': [('move_id', '=', False)]}"/> - </group> - <group> - <field name="incoterm_id" options="{'no_create': True}"/> - <field name="fiscal_position_id" options="{'no_create': True}" /> - <field name="name"/> - <field name="origin" groups="base.group_user" attrs="{'invisible': [('origin', '=', False)]}"/> - <field name="reference" attrs="{'readonly':[('state','!=','draft')]}"/> - <!-- Since the same form view is used for customer invoices and credit notes, - we can't set a domain or a default value context on partner_bank_id. We must - rely on the onchange --> - <field name="partner_bank_id"/> - </group> - </group> - <field name="tax_line_ids"> - <tree editable="bottom" string="Taxes" create="0"> - <field name="name"/> - <!--Need invisible fields for on_change to create all necessary info --> - <field name="tax_id" invisible="1"/> - <field name="tax_ids" invisible="1"/> - <field name="sequence" invisible="1"/> - <field name="manual" invisible="1"/> - <field name="account_id" groups="account.group_account_user"/> - <field name="amount" invisible="1"/> - <field name="account_analytic_id" domain="[('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}"/> - <field name="amount_rounding" invisible="1"/> - <field name="amount_total"/> - <field name="currency_id" invisible="1" force_save="1"/> - <field name="tax_repartition_line_id" invisible="1"/> <!--Needed in order for the onchange computing the taxes to keep the repartition lines--> - <field name="tag_ids" invisible="1"/> <!--Needed in order for the onchange computing the taxes to keep the tags--> - <field name="base" invisible="1"/> - </tree> - </field> - </page> - </notebook> - </sheet> - <div class="o_attachment_preview"/> - <div class="oe_chatter"> - <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/> - <field name="activity_ids" widget="mail_activity"/> - <field name="message_ids" widget="mail_thread"/> - </div> - </form> - </field> - </record> - - <!-- Custom reports (aka filters) --> - <record id="filter_invoice_salespersons" model="ir.filters"> - <field name="name">By Salespersons</field> - <field name="model_id">account.invoice</field> - <field name="user_id" eval="False"/> - <field name="context">{'group_by': ['date_invoice:month', 'user_id']}</field> - </record> - - <record id="view_account_invoice_filter" model="ir.ui.view"> - <field name="name">account.invoice.select</field> - <field name="model">account.invoice</field> - <field name="arch" type="xml"> - <search string="Search Invoice"> - <field name="number" string="Invoice" filter_domain="['|','|','|', ('number','ilike',self), ('origin','ilike',self), ('reference', 'ilike', self), ('partner_id', 'child_of', self)]"/> - <filter domain="[('user_id','=',uid)]" name="myinvoices" help="My Invoices"/> - <field name="journal_id"/> - <separator/> - <filter name="draft" string="Draft" domain="[('state','=','draft')]"/> - <filter name="unpaid" string="Open" domain="[('state', '=', 'open')]"/> - <filter name="in_payment" string="In Payment" domain="[('state', '=', 'in_payment')]"/> - <filter name="paid" string="Paid" domain="[('state', '=', 'paid')]"/> - <filter name="late" string="Overdue" domain="['&', ('date_due', '<', time.strftime('%%Y-%%m-%%d')), ('state', '=', 'open')]" help="Overdue invoices, maturity date passed"/> - <separator/> - <field name="partner_id" operator="child_of"/> - <field name="user_id" string="Salesperson" domain="[('share','=', False)]"/> - <field name="date" string="Period"/> - <separator/> - <filter string="My Activities" name="activities_my" - domain="[('activity_ids.user_id', '=', uid)]"/> - <separator/> - <filter string="Late Activities" name="activities_overdue" - domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" - help="Show all records which has next action date is before today"/> - <filter string="Today Activities" name="activities_today" - domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> - <filter string="Future Activities" name="activities_upcoming_all" - domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d')) - ]"/> - <group expand="0" string="Group By"> - <filter name="group_by_partner_id" string="Partner" context="{'group_by':'commercial_partner_id'}"/> - <filter string="Salesperson" name="salesperson" context="{'group_by':'user_id'}"/> - <filter name="status" string="Status" context="{'group_by':'state'}"/> - <separator/> - <filter string="Invoice Date" name="invoicedate" context="{'group_by':'date_invoice'}"/> - <filter string="Due Date" name="duedate" context="{'group_by':'date_due'}"/> - </group> - </search> - </field> - </record> - - <record id="action_invoice_tree" model="ir.actions.act_window"> - <field name="name">Invoices</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,form,calendar,graph</field> - <field name="view_id" ref="invoice_tree"/> - <field name="context">{'type':'out_invoice'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - </record> - - <record id="action_invoice_refund_out_tree" model="ir.actions.act_window"> - <field name="name">Invoices</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,form,kanban,calendar,graph,pivot</field> - <field name="view_id" ref="invoice_tree"/> - <field name="domain">[('type','in', ['out_invoice', 'out_refund']), ('state', 'not in', ['draft', 'cancel'])]</field> - <field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - </record> - - <record id="action_invoice_refund_out_tree_tree" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="invoice_tree"/> - <field name="act_window_id" ref="action_invoice_refund_out_tree"/> - </record> - - <record id="action_invoice_refund_out_tree_form" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_form"/> - <field name="act_window_id" ref="action_invoice_refund_out_tree"/> - </record> - - <record id="action_invoice_tree_pending_invoice" model="ir.actions.act_window"> - <field name="name">Pending Invoices</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,form,calendar,graph</field> - <field name="view_id" ref="invoice_tree"/> - <field name="context">{'type':'out_invoice'}</field> - <field name="domain">[('state','=','draft')]</field> - <!-- <field name="search_view_id" ref="view_account_invoice_filter"/>--> - </record> - - <record id="action_invoice_tree_view1" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="act_window_id" ref="action_invoice_tree"/> - </record> - - <record id="action_invoice_tree_view2" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_form"/> - <field name="act_window_id" ref="action_invoice_tree"/> - </record> - - <record id="action_invoice_tree1" model="ir.actions.act_window"> - <field name="name">Invoices</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','=','out_invoice')]</field> - <field name="context">{'type':'out_invoice', 'journal_type': 'sale'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Create a customer invoice - </p><p> - Create invoices, register payments and keep track of the discussions with your customers. - </p> - </field> - </record> - - <record id="action_invoice_tree1_view1" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="invoice_tree_with_onboarding"/> - <field name="act_window_id" ref="action_invoice_tree1"/> - </record> - - <record id="action_invoice_tree1_view2" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_form"/> - <field name="act_window_id" ref="action_invoice_tree1"/> - </record> - - <menuitem action="action_invoice_tree1" id="menu_action_invoice_tree1" parent="account.menu_finance_receivables" sequence="1"/> - - <record id="action_invoice_out_refund" model="ir.actions.act_window"> - <field name="name">Credit Notes</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','=','out_refund')]</field> - <field name="context">{'default_type': 'out_refund', 'type': 'out_refund', 'journal_type': 'sale'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Create a credit note - </p><p> - Note that the easiest way to create a credit note is to do it directly - from the customer invoice. - </p> - </field> - </record> - - <record id="action_invoice_out_refund_tree" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="invoice_tree"/> - <field name="act_window_id" ref="action_invoice_out_refund"/> - </record> - - <record id="action_invoice_out_refund_form" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_form"/> - <field name="act_window_id" ref="action_invoice_out_refund"/> - </record> - - <menuitem action="action_invoice_out_refund" - id="menu_action_invoice_out_refund" - parent="account.menu_finance_receivables" - sequence="1"/> - - <record id="action_vendor_bill_template" model="ir.actions.act_window"> - <field name="name">Vendor Bills</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','=','in_invoice')]</field> - <field name="context">{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Record a new vendor bill - </p> - </field> - </record> - <!-- - server action opening the vendor bills and returning the right help tooltip - --> - <record id="action_invoice_tree2" model="ir.actions.server"> - <field name="name">Bills</field> - <field name="model_id" ref="model_account_invoice"/> - <field name="state">code</field> - <field name="code"> -action_values = env.ref('account.action_vendor_bill_template').read()[0] -new_help = model.complete_empty_list_help() -action_values.update({'help': action_values.get('help', '') + new_help}) -action = action_values - </field> - </record> - - <record id="action_invoice_supplier_tree1_view1" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="invoice_supplier_tree"/> - <field name="act_window_id" ref="action_vendor_bill_template"/> - </record> - - <record id="action_invoice__supplier_tree1_view2" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_supplier_form"/> - <field name="act_window_id" ref="action_vendor_bill_template"/> - </record> - - <menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="account.menu_finance_payables" sequence="1"/> - - - <record id="action_invoice_in_refund" model="ir.actions.act_window"> - <field name="name">Refund</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','=','in_refund')]</field> - <field name="context">{'default_type': 'in_refund', 'type': 'in_refund', 'journal_type': 'purchase'}</field> - <field name="search_view_id" ref="view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Create a vendor credit note - </p><p> - Note that the easiest way to create a vendor credit note it to do it directly from the vendor bill. - </p> - </field> - </record> - - <record id="action_invoice_in_refund_tree" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="invoice_supplier_tree"/> - <field name="act_window_id" ref="action_invoice_in_refund"/> - </record> - - <record id="action_invoice_in_refund_form" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="invoice_supplier_form"/> - <field name="act_window_id" ref="action_invoice_in_refund"/> - </record> - - <menuitem action="action_invoice_in_refund" - id="menu_action_invoice_in_refund" - parent="account.menu_finance_payables" - sequence="5"/> - - <act_window - id="act_account_journal_2_account_invoice_opened" - name="Unpaid Invoices" - context="{'search_default_journal_id': [active_id], 'search_default_unpaid':1, 'default_journal_id': active_id}" - domain="[('journal_id','=', active_id)]" - res_model="account.invoice" - binding_model="account.journal" - binding_views="form"/> - - </data> -</odoo> diff --git a/addons/account/views/account_journal_dashboard_view.xml b/addons/account/views/account_journal_dashboard_view.xml index 68965b3ca9f..27776d09637 100644 --- a/addons/account/views/account_journal_dashboard_view.xml +++ b/addons/account/views/account_journal_dashboard_view.xml @@ -124,12 +124,12 @@ <span>View</span> </div> <div> - <a t-if="journal_type == 'sale'" type="object" name="open_action" context="{'use_domain': [('type', '=', 'out_invoice')]}">Invoices</a> - <a t-if="journal_type == 'purchase'" type="object" name="open_action" context="{'use_domain': [('type', '=', 'in_invoice')]}">Bills</a> + <a t-if="journal_type == 'sale'" type="object" name="open_action" context="{'action_name': 'action_move_out_invoice_type'}">Invoices</a> + <a t-if="journal_type == 'purchase'" type="object" name="open_action" context="{'action_name': 'action_move_in_invoice_type'}">Bills</a> </div> <div> - <a t-if="journal_type == 'sale'" type="object" name="open_action" context="{'use_domain': [('type', '=', 'out_refund')], 'invoice_type': 'refund'}">Credit Notes</a> - <a t-if="journal_type == 'purchase'" type="object" name="open_action" context="{'use_domain': [('type', '=', 'in_refund')], 'invoice_type': 'refund'}">Credit Notes</a> + <a t-if="journal_type == 'sale'" type="object" name="open_action" context="{'action_name': 'action_move_out_refund_type'}">Credit Notes</a> + <a t-if="journal_type == 'purchase'" type="object" name="open_action" context="{'action_name': 'action_move_in_refund_type'}">Credit Notes</a> </div> <div> <a type="object" name="action_open_reconcile">Payments Matching</a> @@ -175,10 +175,10 @@ <span>View</span> </div> <div> - <a type="object" name="open_action" context="{'action_name': 'action_move_journal_line', 'view_no_maturity': 1}">Journal Entries</a> + <a type="object" name="open_action" context="{'action_name': 'action_move_journal_line'}">Journal Entries</a> </div> <div> - <a type="object" name="open_action" context="{'action_name': 'action_move_journal_line', 'search_default_unposted': 1, 'view_no_maturity': 1}">Entries to Review</a> + <a type="object" name="open_action" context="{'action_name': 'action_move_journal_line', 'search_default_unposted': 1}">Entries to Review</a> </div> <div> <a type="object" name="open_action" context="{'action_name': 'action_account_moves_all_a'}" groups="base.group_no_one">Journal Items</a> diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 7e8cc182357..ea41fa75e38 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -5,7 +5,6 @@ <!-- VIEWS --> <!-- account.move.line (Journal items) --> - <record id="view_move_line_form" model="ir.ui.view"> <field name="name">account.move.line.form</field> <field name="model">account.move.line</field> @@ -33,10 +32,9 @@ <group string="Accounting Documents"> <field name="move_id" attrs="{'readonly':[('parent_state','=','posted')]}"/> <field name="statement_id" readonly="True" attrs="{'invisible': [('statement_id','=',False)]}"/> - <field name="invoice_id" attrs="{'invisible': [('invoice_id','=',False)]}"/> </group> <group string="Dates"> - <field name="date"/> + <field name="date" groups="account.group_account_user"/> <field name="date_maturity"/> </group> @@ -71,7 +69,6 @@ <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags"/> </group> </group> - <field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/> </page> <page string="Analytic Lines" groups="analytic.group_analytic_accounting"> <field name="date" invisible="1"/> @@ -153,8 +150,8 @@ <field name="currency_id" readonly="True" invisible="1" /> <field name="date_maturity"/> <field name="company_currency_id" invisible="1"/> - <field name="parent_state" invisible="1"/> - </tree> + <field name="company_id" invisible="1"/> + <field name="parent_state" invisible="1"/></tree> </field> </record> @@ -337,20 +334,48 @@ <field name="name">account.move.tree</field> <field name="model">account.move</field> <field name="arch" type="xml"> - <tree decoration-info="state == 'draft'" string="Journal Entries"> + <tree decoration-info="state == 'draft'" string="Journal Entries" decoration-muted="state == 'cancel'"> <field name="date"/> <field name="name"/> <field name="partner_id"/> <field name="ref"/> <field name="journal_id"/> <field name="company_id" groups="base.group_multi_company"/> - <field name="amount" sum="Total Amount"/> + <field name="amount_total_signed" sum="Total Amount"/> <field name="state"/> <field name="currency_id" invisible="1"/> </tree> </field> </record> + <record id="view_invoice_tree" model="ir.ui.view"> + <field name="name">account.invoice.tree</field> + <field name="model">account.move</field> + <field name="arch" type="xml"> + <tree decoration-info="state == 'draft'" string="Invoices" decoration-muted="state == 'cancel'" js_class="account_tree"> + <field name="partner_id" invisible="1"/> + <field name="invoice_source_email" invisible="1"/> + <field name="invoice_vendor_icon" string=" "/> + <field name="invoice_vendor_display_name" groups="base.group_user" string="Vendor"/> + <field name="invoice_date"/> + <field name="name"/> + <field name="invoice_payment_ref"/> + <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/> + <field name="invoice_date_due"/> + <field name="invoice_origin"/> + <field name="amount_untaxed_signed" string="Tax Excluded" sum="Total"/> + <field name="amount_tax_signed" string="Tax" sum="Total"/> + <field name="amount_total_signed" string="Total" sum="Total"/> + <field name="amount_residual_signed" string="Amount Due" sum="Amount Due"/> + <field name="currency_id" invisible="1"/> + <field name="company_currency_id" invisible="1"/> + <field name="state"/> + <field name="invoice_payment_state"/> + <field name="type" invisible="context.get('default_type', True)"/> + </tree> + </field> + </record> + <record id="view_account_move_kanban" model="ir.ui.view"> <field name="name">account.move.kanban</field> <field name="model">account.move</field> @@ -364,7 +389,7 @@ <t t-name="kanban-box"> <div t-attf-class="oe_kanban_global_click"> <div class="row mb4"> - <div class="col-6"> + <div class="col-6 o_kanban_record_headings"> <strong><span><field name="journal_id"/></span></strong> </div> <div class="col-6 text-right"> @@ -378,7 +403,7 @@ </div> <div class="row"> <div class="col-6"> - <span><field name="amount" widget='monetary'/></span> + <span><field name="amount_total" widget='monetary'/></span> <span><field name="currency_id" invisible="1"/></span> </div> <div class="col-6"> @@ -398,89 +423,396 @@ <field name="name">account.move.form</field> <field name="model">account.move</field> <field name="arch" type="xml"> - <form string="Account Entry" duplicate="false"> + <form string="Account Entry"> <header> - <button name="action_post" states="draft" string="Post" type="object" class="oe_highlight" groups="account.group_account_invoice"/> - <button name="%(action_view_account_move_reversal)d" states="posted" string="Reverse Entry" type="action" groups="account.group_account_invoice"/> - <button name="action_duplicate" string="Duplicate" type="object" groups="account.group_account_invoice"/> - <field name="state" widget="statusbar"/> + <!-- Post --> + <button name="action_post" string="Post" class="oe_highlight" + type="object" groups="account.group_account_invoice" + attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + <button name="action_post" string="Validate" class="oe_highlight" + type="object" groups="account.group_account_invoice" + attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + <!-- Send (only invoices) --> + <button name="action_invoice_sent" + type="object" + string="Send & Print" + attrs="{'invisible':['|', '|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', True), ('invoice_payment_state', '!=', 'not_paid'), ('type', 'not in', ('out_invoice', 'out_refund'))]}" + class="oe_highlight" + groups="base.group_user"/> + <button name="action_invoice_sent" + type="object" + string="Send & Print" + attrs="{'invisible':['|', '|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', False), ('invoice_payment_state', '!=', 'not_paid'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}" + groups="base.group_user"/> + <!-- Register Payment (only invoices / receipts) --> + <button name="action_invoice_register_payment" id="account_invoice_payment_btn" + type="object" class="oe_highlight" + attrs="{'invisible': ['|', '|', ('state', '!=', 'posted'), ('invoice_payment_state', '!=', 'not_paid'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}" + string="Register Payment" + groups="account.group_account_invoice"/> + <!-- Preview (only invoices) --> + <button name="preview_invoice" type="object" string="Preview" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"/> + <!-- Reverse --> + <button name="%(action_view_account_move_reversal)d" string="Reverse Entry" + type="action" groups="account.group_account_invoice" + attrs="{'invisible': ['|', ('type', '!=', 'entry'), ('state', '!=', 'posted')]}"/> + <button name="action_reverse" string='Add Credit Note' + type='object' groups="account.group_account_invoice" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'in_invoice')), ('state', '!=', 'posted')]}"/> + <!-- Duplicate --> + <button name="action_duplicate" string="Duplicate" type="object" groups="account.group_account_invoice" + attrs="{'invisible': [('type', '!=', 'entry')]}"/> + <!-- Cancel --> + <field name="state" widget="statusbar" statusbar_visible="draft,posted"/> </header> + <!-- Invoice outstanding credits --> + <div groups="account.group_account_invoice" + class="alert alert-info" role="alert" style="margin-bottom:0px;" + attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund')), ('invoice_has_outstanding', '=', False), ('invoice_payment_state', '!=', 'not_paid')]}"> + You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding payments</a></bold> for this customer. You can allocate them to mark this invoice as paid. + </div> + <div groups="account.group_account_invoice" + class="alert alert-info" role="alert" style="margin-bottom:0px;" + attrs="{'invisible': ['|', '|', ('type', 'not in', ('in_invoice', 'in_refund')), ('invoice_has_outstanding', '=', False), ('invoice_payment_state', '!=', 'not_paid')]}"> + You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding debits</a></bold> for this supplier. You can allocate them to mark this bill as paid. + </div> + <!-- Invoice suspense accounts --> + <div groups="account.group_account_invoice" class="alert alert-info" role="alert" style="margin-bottom:0px;" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')), ('invoice_has_matching_supsense_amount','=',False)]}"> + You have suspense account moves that match this invoice. <bold><button class="alert-link" type="object" name="action_open_matching_suspense_moves" role="button" string="Check them" style="padding: 0;vertical-align: baseline;"/></bold> to mark this invoice as paid. + </div> <sheet> - <field name="tax_type_domain" invisible="1"/> - <field name="id" invisible="1"/> - <div class="oe_button_box"> - <button name="action_view_reverse_entry" - type="object" - class="oe_stat_button" - icon="fa-refresh" - attrs="{'invisible': [('reverse_entry_id', '=', False)]}" - string="Reversed entry"> - </button> + <div name="button_box" class="oe_button_box"> <button name="open_reconcile_view" - class="oe_stat_button" - icon="fa-bars" - type="object" - string="Reconciled entries"> + class="oe_stat_button" + icon="fa-bars" + type="object" + attrs="{'invisible': ['|', ('type', '!=', 'entry'), ('id', '=', False)]}" + string="Reconciled entries"> </button> </div> - <h1> - <field name="name" readonly="True" attrs="{'invisible':[('name','=','/')]}"/> - </h1> - <group> - <group> - <field name="date"/> - <field name="ref" attrs="{'required': [('id', '==', False)]}"/> - </group> + + <!-- Payment status for invoices / receipts --> + <div> + <span class="pull-right badge badge-success" + attrs="{'invisible': ['|', ('invoice_payment_state', '!=', 'paid'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}">Paid</span> + <span class="pull-right badge badge-success" + attrs="{'invisible': ['|', ('invoice_payment_state', '!=', 'in_payment'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}">In Payment</span> + </div> + + <!-- Invisible fields --> + <field name="id" invisible="1"/> + <field name="type" invisible="1"/> + <field name="invoice_payment_state" invisible="1" force_save="1"/> + <field name="invoice_filter_type_domain" invisible="1"/> + <field name="company_currency_id" invisible="1"/> + <field name="commercial_partner_id" invisible="1"/> + <field name="bank_partner_id" invisible="1"/> + + <field name="invoice_has_outstanding" invisible="1"/> + <field name="invoice_sent" invisible="1"/> + <field name="invoice_sequence_number_next_prefix" invisible="1"/> + <field name="invoice_sequence_number_next" invisible="1"/> + <field name="invoice_has_matching_supsense_amount" invisible="1"/> + + <div> + <!-- Invoice draft header --> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'out_invoice'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Invoice</span> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'out_refund'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Credit Note</span> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'in_invoice'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Bill</span> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'in_refund'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Refund</span> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'out_receipt'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Sales Receipt</span> + <span class="o_form_label" attrs="{'invisible': ['|', '|', ('type', '!=', 'in_receipt'), ('state', '!=', 'draft'), ('name', '!=', '/')]}">Draft Purchase Receipt</span> + + <!-- Select next number header (only invoices) --> + <span class="o_form_label" attrs="{'invisible': [('invoice_sequence_number_next_prefix', '=', False)]}">- First Number:</span> + + <!-- Number --> + <h1 class="mt0"> + <field name="name" readonly="True" attrs="{'invisible':[('name', '=', '/')]}"/> + + <!-- Select next number header (only invoices) --> + <div attrs="{'invisible': [('invoice_sequence_number_next_prefix', '=', False)]}"> + <field name="invoice_sequence_number_next_prefix" class="oe_inline"/> + <field name="invoice_sequence_number_next" class="oe_inline"/> + </div> + </h1> + </div> <group> - <field name="journal_id" options="{'no_open': True, 'no_create': True}"/> - <field name="company_id" required="1" groups="base.group_multi_company"/> - <field name="amount" invisible="1" readonly="1"/> - <field name="currency_id" invisible="1"/> - </group> - </group> - <notebook> - <page string="Journal Items"> - <field name="line_ids" widget="one2many" - context="{'line_ids': line_ids, 'journal_id': journal_id }"> - <tree editable="bottom" string="Journal Items"> - <field name="tax_line_id" invisible="1"/> - <field name="account_id" options="{'no_create': True}" domain="[('company_id', '=', parent.company_id), ('deprecated', '=', False)]"/> - <field name="partner_id" - domain="['|', ('parent_id', '=', False), ('is_company', '=', True)]"/> - <field name="name"/> - <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags"/> - <field name="amount_currency" groups="base.group_multi_currency"/> - <field name="company_currency_id" invisible="1"/> - <field name="company_id" invisible="1"/> - <field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/> - <field name="debit" sum="Total Debit"/> - <field name="credit" sum="Total Credit"/> - <field name="tax_ids" string="Taxes Applied" widget="many2many_tags" - domain="[('type_tax_use', '=?', parent.tax_type_domain)]" - context="{'append_type_to_tax_name': not parent.tax_type_domain}" - options="{'no_create': True}"/> - <field name="date_maturity" required="0" invisible="context.get('view_no_maturity', False)"/> - <field name="recompute_tax_line" invisible="1" readonly="1"/> - <field name="tax_line_grouping_key" invisible="1" readonly="1"/> - <field name="tax_repartition_line_id" invisible="1"/> <!--Not to be removed, we need it so that the call to new() takes it into account when autocompleting the lines of a tax--> - <field name="tax_base_amount" invisible="1"/> <!--Not to be removed, we need it so that the call to new() takes it into account when autocompleting the lines of a tax--> - <field name="tag_ids" invisible="1"/> - </tree> - </field> - <field name="narration" colspan="4" placeholder="Add an internal note..." nolabel="1" height="50"/> - </page> - <page string="Other Info"> - <group> - <field name="auto_post" attrs="{'readonly':[('reverse_entry_id', '!=', False)]}"/> - <field name="reverse_entry_id" attrs="{'invisible':True}"/> - <field name="to_check"/> + <group id="header_left_group"> + <div class="o_td_label"> + <label for="partner_id" string="Customer" style="font-weight:bold;" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'out_receipt'))]}"/> + <label for="partner_id" string="Vendor" style="font-weight:bold;" + attrs="{'invisible': [('type', 'not in', ('in_invoice', 'in_refund', 'in_receipt'))]}"/> + </div> + <field name="partner_id" widget="res_partner_many2one" nolabel="1" + context="{ + 'search_default_customer': context.get('type', 'entry') in ('out_invoice', 'out_refund', 'out_receipt'), + 'search_default_supplier': context.get('type', 'entry') in ('in_invoice', 'in_refund', 'in_receipt'), + 'default_customer': context.get('type', 'entry') in ('out_invoice', 'out_refund', 'out_receipt'), + 'default_supplier': context.get('type', 'entry') in ('in_invoice', 'in_refund', 'in_receipt'), + 'show_address': 1, 'default_is_company': True, 'show_vat': True}" + options='{"always_reload": True, "no_quick_create": True}' + attrs="{ + 'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))] + }"/> + + <!-- Invoice payment terms (only invoices) + due date (only invoices / receipts) --> + <label for="invoice_payment_term_id" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + <div attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"> + <field name="invoice_payment_term_id" + class="oe_inline" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + <span class="o_form_label oe_edit_only" + attrs="{'invisible': ['|', ('invoice_payment_term_id', '!=', False), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"> or </span> + <field name="invoice_date_due" force_save="1" + class="oe_inline" + attrs="{'invisible': ['|', ('invoice_payment_term_id', '!=', False), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + </div> + + <field name="ref" + attrs="{'invisible': [('type', '=', 'out_invoice')]}"/> + <field name="invoice_vendor_bill_id" + attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('type', '!=', 'in_invoice')]}" + domain="[('company_id', '=', company_id), ('partner_id','child_of', [partner_id]), ('type','=','in_invoice')]" + string="Auto-Complete" placeholder="Select an old vendor bill" + options="{'no_create': True}" context="{'show_total_amount': True}"/> + </group> + <group id="header_right_group"> + <field name="journal_id" + invisible="context.get('default_journal_id') and context.get('type', 'entry') != 'entry'" + groups="account.group_account_user" + options="{'no_create': True}" + domain="[('type', '=?', invoice_filter_type_domain)]"/> + <field name="date" string="Accounting Date" + attrs="{'invisible': [('type', 'in', ('out_invoice', 'out_refund', 'out_receipt')), ('state', '=', 'draft')]}"/> + + <!-- Invoice date (only invoices / receipts) --> + <div class="o_td_label"> + <label for="invoice_date" string="Invoice Date" style="font-weight:bold;" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'out_receipt'))]}"/> + <label for="invoice_date" string="Bill Date" style="font-weight:bold;" + attrs="{'invisible': [('type', 'not in', ('in_invoice', 'in_refund', 'in_receipt'))]}"/> + </div> + <field name="invoice_date" nolabel="1" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/> + + <field name="currency_id" + groups="base.group_multi_currency" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"/> </group> - </page> - </notebook> + </group> + <notebook> + <page id="invoice_tab" + string="Invoice Lines" + attrs="{'invisible': [('type', '=', 'entry')]}"> + <field name="invoice_line_ids" + widget="section_and_note_one2many" + mode="tree,kanban" + context="{'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id != company_currency_id and currency_id or False}"> + <tree editable="bottom" string="Journal Items"> + <control> + <create name="add_line_control" string="Add a line"/> + <create name="add_section_control" string="Add a section" context="{'default_display_type': 'line_section'}"/> + <create name="add_note_control" string="Add a note" context="{'default_display_type': 'line_note'}"/> + </control> + + <!-- Displayed fields --> + <field name="sequence" widget="handle"/> + <field name="product_id"/> + <field name="name" widget="section_and_note_text"/> + <field name="account_id" + groups="account.group_account_user" + domain="[('deprecated', '=', False), ('user_type_id.type', 'not in', ('receivable', 'payable'))]" + attrs="{'required': [('display_type', '=', False)]}"/> + <field name="analytic_account_id" + groups="analytic.group_analytic_accounting"/> + <field name="analytic_tag_ids" + groups="analytic.group_analytic_tags" + widget="many2many_tags"/> + <field name="quantity"/> + <field name="product_uom_id" string="UoM" groups="uom.group_uom"/> + <field name="price_unit" string="Price"/> + <field name="discount" string="Disc.%" groups="base.group_no_one"/> + <field name="tax_ids" widget="many2many_tags" + domain="[('type_tax_use', '=?', parent.invoice_filter_type_domain)]" + context="{'append_type_to_tax_name': not parent.invoice_filter_type_domain}" + options="{'no_create': True}"/> + <field name="price_subtotal" + string="Subtotal" + groups="account.group_show_line_subtotals_tax_excluded"/> + <field name="price_total" + string="Total" + groups="account.group_show_line_subtotals_tax_included"/> + + <!-- Others fields --> + <field name="partner_id" invisible="1"/> + <field name="amount_currency" invisible="1"/> + <field name="currency_id" invisible="1"/> + <field name="debit" invisible="1"/> + <field name="credit" invisible="1"/> + <field name="date_maturity" invisible="1"/> + + <field name="tax_line_id" invisible="1"/> + <field name="tax_repartition_line_id" invisible="1"/> + <field name="tag_ids" invisible="1"/> + <field name="tax_base_amount" invisible="1"/> + <field name="tax_exigible" invisible="1"/> + <field name="company_id" invisible="1"/> + <field name="company_currency_id" invisible="1"/> + <field name="recompute_tax_line" invisible="1" force_save="1"/> + <field name="display_type" force_save="1" invisible="1"/> + <field name="is_rounding_line" invisible="1"/> + <field name="exclude_from_invoice_tab" invisible="1"/> + <field name="account_internal_type" invisible="1"/> + </tree> + </field> + + <!-- Totals (only invoices / receipts) --> + <group class="oe_subtotal_footer oe_right" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"> + <field name="amount_untaxed"/> + <field name="amount_tax"/> + <field name="amount_total" class="oe_subtotal_footer_separator"/> + <field name="invoice_payments_widget" colspan="2" nolabel="1" widget="payment"/> + <field name="amount_residual" class="oe_subtotal_footer_separator" + attrs="{'invisible': [('state', '=', 'draft')]}"/> + <field name="invoice_outstanding_credits_debits_widget" + colspan="2" nolabel="1" widget="payment" + attrs="{'invisible': ['|', ('state', '!=', 'posted'), ('type', 'in', ('out_receipt', 'in_receipt'))]}"/> + </group> + + <!-- Internal note --> + <field name="narration" placeholder="Add an internal note..." nolabel="1" height="50"/> + </page> + <page id="aml_tab" string="Journal Items" groups="account.group_account_user"> + <field name="line_ids" widget="one2many_list" + context="{'line_ids': line_ids, 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id != company_currency_id and currency_id or False}"> + <tree editable="bottom" string="Journal Items" decoration-muted="display_type in ('line_section', 'line_note')"> + <!-- Displayed fields --> + <field name="account_id" + attrs="{ + 'required': [('display_type', 'not in', ('line_section', 'line_note'))], + 'invisible': [('display_type', 'in', ('line_section', 'line_note'))], + }"/> + <field name="partner_id" + domain="['|', ('parent_id', '=', False), ('is_company', '=', True)]" + attrs="{'column_invisible': [('parent.type', '!=', 'entry')]}"/> + <field name="name" widget="section_and_note_text"/> + <field name="analytic_account_id" + groups="analytic.group_analytic_accounting" + attrs="{'invisible': [('display_type', 'in', ('line_section', 'line_note'))]}"/> + <field name="analytic_tag_ids" + groups="analytic.group_analytic_tags" + widget="many2many_tags" + attrs="{'invisible': [('display_type', 'in', ('line_section', 'line_note'))]}"/> + <field name="amount_currency" + groups="base.group_multi_currency"/> + <field name="currency_id" options="{'no_create': True}" + groups="base.group_multi_currency" + attrs="{'column_invisible': [('parent.type', '!=', 'entry')]}"/> + <field name="debit" + sum="Total Debit" + attrs="{'invisible': [('display_type', 'in', ('line_section', 'line_note'))]}"/> + <field name="credit" + sum="Total Credit" + attrs="{'invisible': [('display_type', 'in', ('line_section', 'line_note'))]}"/> + <field name="tax_ids" string="Taxes Applied" widget="many2many_tags" + domain="[('type_tax_use', '=?', parent.invoice_filter_type_domain)]" + context="{'append_type_to_tax_name': not parent.invoice_filter_type_domain}" + options="{'no_create': True}" + force_save="1" + attrs="{'readonly': [ + '|', '|', + ('display_type', 'in', ('line_section', 'line_note')), + ('tax_line_id', '!=', False), + '&', + ('parent.type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')), + ('account_internal_type', 'in', ('receivable', 'payable')), + ]}"/> + <field name="date_maturity" + invisible="context.get('view_no_maturity')" + attrs="{'invisible': [('display_type', 'in', ('line_section', 'line_note'))]}"/> + + <!-- Others fields --> + <field name="payment_id" invisible="1"/> + + <field name="product_id" invisible="1"/> + <field name="quantity" invisible="1"/> + <field name="product_uom_id" invisible="1"/> + <field name="price_unit" invisible="1"/> + <field name="discount" invisible="1"/> + <field name="price_subtotal" invisible="1"/> + <field name="price_total" invisible="1"/> + + <field name="sequence" invisible="1"/> + <field name="tax_line_id" invisible="1"/> + <field name="tax_repartition_line_id" invisible="1"/> + <field name="tag_ids" invisible="1"/> + <field name="tax_base_amount" invisible="1"/> + <field name="tax_exigible" invisible="1"/> + <field name="company_id" invisible="1"/> + <field name="company_currency_id" invisible="1"/> + <field name="recompute_tax_line" invisible="1" force_save="1"/> + <field name="display_type" force_save="1" invisible="1"/> + <field name="is_rounding_line" invisible="1"/> + <field name="exclude_from_invoice_tab" invisible="1"/> + <field name="account_internal_type" invisible="1"/> + </tree> + </field> + </page> + <page id="other_tab" string="Other Info" name="other_info" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"> + <group id="other_tab_group"> + <group string="Sales Information" + name="sale_info_group" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund'))]}"> + <field name="company_id" groups="base.group_multi_company"/> + <field name="invoice_user_id"/> + </group> + <group string="Accounting Information" + name="accounting_info_group" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"> + <field name="invoice_incoterm_id"/> + <field name="fiscal_position_id"/> + <field name="invoice_cash_rounding_id" groups="account.group_cash_rounding"/> + <field name="invoice_source_email" + widget="email" + attrs="{'invisible': ['|', ('type', 'not in', ('in_invoice', 'in_refund')), ('invoice_source_email', '=', False)]}"/> + </group> + <group string="Payments Information" + name="payments_info_group" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"> + <field name="invoice_payment_ref"/> + <field name="invoice_partner_bank_id" + domain="[('partner_id', '=', bank_partner_id)]"/> + </group> + </group> + </page> + <page id="other_tab_entry" string="Other Info" name="other_info" + attrs="{'invisible': [('type', '!=', 'entry')]}"> + <group id="other_tab_entry_group"> + <group name="misc_group"> + <field name="auto_post" + attrs="{'invisible': [('type', '!=', 'entry')], 'readonly': [('reversed_entry_id', '!=', False)]}"/> + <field name="reversed_entry_id" + attrs="{'invisible': [('type', '!=', 'entry')]}"/> + </group> + </group> + </page> + </notebook> </sheet> + <!-- Attachment preview --> + <div class="o_attachment_preview" + attrs="{'invisible': ['|', '|', + ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), + ('state', '!=', 'draft')]}" /> + <!-- Chatter --> <div class="oe_chatter"> - <field name="message_follower_ids" widget="mail_followers"/> + <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/> <field name="activity_ids" widget="mail_activity"/> <field name="message_ids" widget="mail_thread"/> </div> @@ -507,8 +839,6 @@ <separator/> <field name="partner_id"/> <field name="journal_id"/> - <field name="dummy_account_id"/> - <field name="reconcile_model_id"/> <group expand="0" string="Group By"> <filter string="Partner" name="partner" domain="[]" context="{'group_by':'partner_id'}"/> <filter string="Journal" name="journal" domain="[]" context="{'group_by':'journal_id'}"/> @@ -519,6 +849,49 @@ </field> </record> + <record id="view_account_invoice_filter" model="ir.ui.view"> + <field name="name">account.invoice.select</field> + <field name="model">account.move</field> + <field name="arch" type="xml"> + <search string="Search Invoice"> + <field name="name" string="Invoice" + filter_domain="['|','|','|', '|', ('name','ilike',self), ('invoice_origin','ilike',self), ('ref', 'ilike', self), ('invoice_payment_ref', 'ilike', self), ('partner_id', 'child_of', self)]"/> + <filter domain="[('invoice_user_id','=',uid)]" name="myinvoices" help="My Invoices"/> + <field name="journal_id"/> + <separator/> + <filter name="draft" string="Draft" domain="[('state','=','draft')]"/> + <filter name="unpaid" string="Open" domain="[('state', '=', 'posted'), ('invoice_payment_state', '=', 'not_paid')]"/> + <filter name="in_payment" string="In Payment" domain="[('invoice_payment_state', '=', 'in_payment')]"/> + <filter name="paid" string="Paid" domain="[('invoice_payment_state', '=', 'paid')]"/> + <filter name="late" string="Overdue" domain="['&', ('invoice_date_due', '<', time.strftime('%%Y-%%m-%%d')), ('state', '=', 'posted'), ('invoice_payment_state', '=', 'not_paid')]" help="Overdue invoices, maturity date passed"/> + <separator/> + <field name="partner_id" operator="child_of"/> + <field name="invoice_user_id" string="Salesperson" domain="[('share','=', False)]"/> + <field name="date" string="Period"/> + <separator/> + <filter string="My Activities" name="activities_my" + domain="[('activity_ids.user_id', '=', uid)]"/> + <separator/> + <filter string="Late Activities" name="activities_overdue" + domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" + help="Show all records which has next action date is before today"/> + <filter string="Today Activities" name="activities_today" + domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> + <filter string="Future Activities" name="activities_upcoming_all" + domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d')) + ]"/> + <group expand="0" string="Group By"> + <filter name="group_by_partner_id" string="Partner" context="{'group_by':'commercial_partner_id'}"/> + <filter string="Salesperson" name="salesperson" context="{'group_by':'invoice_user_id'}"/> + <filter name="status" string="Status" context="{'group_by':'state'}"/> + <separator/> + <filter string="Invoice Date" name="invoicedate" context="{'group_by':'invoice_date'}"/> + <filter string="Due Date" name="duedate" context="{'group_by':'invoice_date_due'}"/> + </group> + </search> + </field> + </record> + <!-- ACTIONS --> <!-- account.move.line (Journal Items) --> @@ -558,9 +931,9 @@ view_id="account.view_move_line_tax_audit_tree"/> <record id="action_account_moves_all_a" model="ir.actions.act_window"> - <field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_sales':1, 'name_groupby':1}</field> - <field name="name">Journal Items</field> + <field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_sales':1, 'name_groupby':1}</field> <field name="name">Journal Items</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -569,6 +942,7 @@ <field name="context">{'journal_type':'sales', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_sales':1, 'name_groupby':1}</field> <field name="name">Sales</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_sales_purchases"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -577,6 +951,7 @@ <field name="context">{'journal_type':'purchase', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_purchases':1, 'name_groupby':1}</field> <field name="name">Purchase</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_sales_purchases"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -585,6 +960,7 @@ <field name="context">{'journal_type':'bank', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_bank':1, 'search_default_cash':1, 'name_groupby':1}</field> <field name="name">Bank and Cash</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_bank_cash"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -593,6 +969,7 @@ <field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_misc_filter':1, 'name_groupby':1}</field> <field name="name">Miscellaneous</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_misc"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -601,6 +978,7 @@ <field name="context">{'journal_type':'general', 'search_default_group_by_account': 1, 'group_by':'account_id', 'search_default_posted':1}</field> <field name="name">General Ledger</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_general"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -609,13 +987,50 @@ <field name="context">{'journal_type':'general', 'search_default_group_by_partner': 1, 'group_by':'partner_id', 'search_default_posted':1, 'search_default_payable':1, 'search_default_receivable':1, 'search_default_unreconciled':1}</field> <field name="name">Partner Ledger</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree_grouped_partner"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> + <record id="action_account_moves_journal_bank_cash" model="ir.actions.act_window"> + <field name="context">{'journal_type':'bank', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_bank':1, 'search_default_cash':1, 'name_groupby':1}</field> + <field name="name">Bank and Cash</field> + <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> + <field name="view_id" ref="view_move_line_tree_grouped_bank_cash"/> + <field name="view_mode">tree,pivot,graph,form,kanban</field> + </record> + + <record id="action_account_moves_journal_misc" model="ir.actions.act_window"> + <field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_misc_filter':1, 'name_groupby':1}</field> + <field name="name">Miscellaneous</field> + <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> + <field name="view_id" ref="view_move_line_tree_grouped_misc"/> + <field name="view_mode">tree,pivot,graph,form,kanban</field> + </record> + + <record id="action_account_moves_ledger_general" model="ir.actions.act_window"> + <field name="context">{'journal_type':'general', 'search_default_group_by_account': 1, 'group_by':'account_id', 'search_default_posted':1}</field> + <field name="name">General Ledger</field> + <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> + <field name="view_id" ref="view_move_line_tree_grouped_general"/> + <field name="view_mode">tree,pivot,graph,form,kanban</field> + </record> + + <record id="action_account_moves_ledger_partner" model="ir.actions.act_window"> + <field name="context">{'journal_type':'general', 'search_default_group_by_partner': 1, 'group_by':'partner_id', 'search_default_posted':1, 'search_default_payable':1, 'search_default_receivable':1, 'search_default_unreconciled':1}</field> + <field name="name">Partner Ledger</field> + <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> + <field name="view_id" ref="view_move_line_tree_grouped_partner"/> + </record> + <record id="action_account_moves_all_tree" model="ir.actions.act_window"> <field name="name">Journal Items</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="context">{'search_default_partner_id': [active_id], 'default_partner_id': active_id, 'search_default_posted':1}</field> <field name="view_id" ref="view_move_line_tree"/> </record> @@ -624,6 +1039,7 @@ <field name="context">{'journal_type':'general', 'search_default_posted':1}</field> <field name="name">Journal Items</field> <field name="res_model">account.move.line</field> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="view_id" ref="view_move_line_tree"/> <field name="view_mode">tree,pivot,graph,form,kanban</field> </record> @@ -632,6 +1048,7 @@ <field name="name">Journal Items</field> <field name="view_mode">graph,pivot</field> <field name="view_id" ref="account_move_line_graph_date"/> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="context">{'search_default_account_id': [active_id]}</field> <field name="res_model">account.move.line</field> </record> @@ -640,6 +1057,7 @@ <field name="name">Journal Items</field> <field name="view_mode">graph,pivot</field> <field name="view_id" ref="account_move_line_graph_date"/> + <field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field> <field name="context">{'search_default_account_id': [active_id], 'search_default_posted': 1}</field> <field name="res_model">account.move.line</field> </record> @@ -652,7 +1070,7 @@ <field name="view_mode">tree,kanban,form</field> <field name="view_id" ref="view_move_tree"/> <field name="search_view_id" ref="view_account_move_filter"/> - <field name="context">{'type': 'misc', 'search_default_misc_filter':1, 'view_no_maturity': True}</field> + <field name="context">{'default_type': 'entry', 'search_default_misc_filter':1, 'view_no_maturity': True}</field> <field name="help" type="html"> <p class="o_view_nocontent_smiling_face"> Create a journal entry @@ -663,6 +1081,111 @@ </field> </record> + <record id="action_move_out_invoice_type" model="ir.actions.act_window"> + <field name="name">Invoices</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'out_invoice')]</field> + <field name="context">{'default_type': 'out_invoice'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Create a customer invoice + </p><p> + Create invoices, register payments and keep track of the discussions with your customers. + </p> + </field> + </record> + + <record id="action_move_out_refund_type" model="ir.actions.act_window"> + <field name="name">Credit Notes</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'out_refund')]</field> + <field name="context">{'default_type': 'out_refund'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Create a credit note + </p><p> + Note that the easiest way to create a credit note is to do it directly + from the customer invoice. + </p> + </field> + </record> + + <record id="action_move_in_invoice_type" model="ir.actions.act_window"> + <field name="name">Bills</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'in_invoice')]</field> + <field name="context">{'default_type': 'in_invoice'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Create a vendor bill + </p><p> + Create invoices, register payments and keep track of the discussions with your vendors. + </p> + </field> + </record> + + <record id="action_move_in_refund_type" model="ir.actions.act_window"> + <field name="name">Refund</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'in_refund')]</field> + <field name="context">{'default_type': 'in_refund'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Create a vendor credit note + </p><p> + Note that the easiest way to create a vendor credit note it to do it directly from the vendor bill. + </p> + </field> + </record> + + <record id="action_move_out_receipt_type" model="ir.actions.act_window"> + <field name="name">Receipts</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'out_receipt')]</field> + <field name="context">{'default_type': 'out_receipt'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Create a new sales receipt + </p><p> + When the sale receipt is confirmed, you can record the customer + payment related to this sales receipt. + </p> + </field> + </record> + + <record id="action_move_in_receipt_type" model="ir.actions.act_window"> + <field name="name">Receipts</field> + <field name="res_model">account.move</field> + <field name="view_mode">tree,kanban,form</field> + <field name="view_id" ref="view_invoice_tree"/> + <field name="search_view_id" ref="view_account_invoice_filter"/> + <field name="domain">[('type', '=', 'in_receipt')]</field> + <field name="context">{'default_type': 'in_receipt'}</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Register a new purchase receipt + </p><p> + When the purchase receipt is confirmed, you can record the + vendor payment related to this purchase receipt. + </p> + </field> + </record> + <record id="action_move_line_form" model="ir.actions.act_window"> <field name="name">Entries</field> <field name="type">ir.actions.act_window</field> @@ -682,6 +1205,42 @@ <!-- MENUS --> <menuitem + id="menu_action_move_out_invoice_type" + action="action_move_out_invoice_type" + parent="account.menu_finance_receivables" + sequence="1"/> + + <menuitem + id="menu_action_move_out_refund_type" + action="action_move_out_refund_type" + parent="account.menu_finance_receivables" + sequence="1"/> + + <menuitem + id="menu_action_move_out_receipt_type" + action="action_move_out_receipt_type" + parent="account.menu_finance_receivables" + sequence="1"/> + + <menuitem + id="menu_action_move_in_invoice_type" + action="action_move_in_invoice_type" + parent="account.menu_finance_payables" + sequence="1"/> + + <menuitem + id="menu_action_move_in_refund_type" + action="action_move_in_refund_type" + parent="account.menu_finance_payables" + sequence="1"/> + + <menuitem + id="menu_action_move_in_receipt_type" + action="action_move_in_receipt_type" + parent="account.menu_finance_payables" + sequence="1"/> + + <menuitem id="menu_action_account_moves_all" action="action_account_moves_all" parent="account.menu_finance_entries_accounting_miscellaneous" diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml index 97d3b13dc48..4f8fd7116ed 100644 --- a/addons/account/views/account_payment_view.xml +++ b/addons/account/views/account_payment_view.xml @@ -135,6 +135,7 @@ attrs="{'invisible':[('has_invoices','=',False)]}" icon="fa-bars"/> <button class="oe_stat_button" name="open_payment_matching_screen" string="Payment Matching" type="object" + groups="account.group_account_user" attrs="{'invisible':[('move_reconciled','=',True)]}" icon="fa-university"/> <field name="has_invoices" invisible="1"/> <field name="move_reconciled" invisible="1"/> @@ -145,7 +146,7 @@ </div> <group> <field name="invoice_ids" invisible="1"/> - <group name="partner_group" invisible="context.get('active_model') == 'account.invoice'"> + <group name="partner_group" invisible="context.get('active_model') == 'account.move'"> <field name="payment_type" widget="radio"/> <field name="partner_type" widget="selection" attrs="{'required': [('state', '=', 'draft'), ('payment_type', 'in', ('inbound', 'outbound'))], 'invisible': [('payment_type', 'not in', ('inbound', 'outbound'))]}"/> <field name="partner_id" attrs="{'required': [('state', '=', 'draft'), ('payment_type', 'in', ('inbound', 'outbound'))], 'invisible': [('payment_type', 'not in', ('inbound', 'outbound'))]}" context="{'default_is_company': True, 'default_supplier': payment_type == 'outbound', 'default_customer': payment_type == 'inbound'}"/> @@ -298,7 +299,7 @@ <record id="action_account_invoice_from_list" model="ir.actions.server"> <field name="name">Register Payment</field> <field name="model_id" ref="account.model_account_payment"/> - <field name="binding_model_id" ref="account.model_account_invoice"/> + <field name="binding_model_id" ref="account.model_account_move"/> <field name="state">code</field> <field name="code"> action = model.action_register_payment() diff --git a/addons/account/views/account_portal_templates.xml b/addons/account/views/account_portal_templates.xml index f3c77879803..ace31556b58 100644 --- a/addons/account/views/account_portal_templates.xml +++ b/addons/account/views/account_portal_templates.xml @@ -6,7 +6,7 @@ <t t-else="">Invoices & Bills</t> </li> <li t-if="invoice" class="breadcrumb-item active"> - <t t-esc="invoice.number" t-if="invoice.number"/> + <t t-esc="invoice.name" t-if="invoice.name"/> <t t-else=""><em>Draft Invoice</em></t> </li> </xpath> @@ -46,13 +46,13 @@ <t t-foreach="invoices" t-as="invoice"> <tr> <td> - <a t-att-href="invoice.get_portal_url()" t-att-title="invoice.number"> - <t t-esc="invoice.number" t-if="invoice.number"/> + <a t-att-href="invoice.get_portal_url()" t-att-title="invoice.name"> + <t t-esc="invoice.name" t-if="invoice.name"/> <em t-else="">Draft Invoice</em> </a> </td> - <td><span t-field="invoice.date_invoice"/></td> - <td class='d-none d-md-table-cell'><span t-field="invoice.date_due"/></td> + <td><span t-field="invoice.invoice_date"/></td> + <td class='d-none d-md-table-cell'><span t-field="invoice.invoice_date_due"/></td> <td class="tx_status"> <t t-if="invoice.state == 'open'"> <span class="badge badge-pill badge-info"><i class="fa fa-fw fa-clock-o" aria-label="Opened" title="Opened" role="img"></i><span class="d-none d-md-inline"> Waiting for Payment</span></span> @@ -64,7 +64,7 @@ <span class="badge badge-pill badge-warning"><i class="fa fa-fw fa-remove" aria-label="Cancelled" title="Cancelled" role="img"></i><span class="d-none d-md-inline"> Cancelled</span></span> </t> </td> - <td class="text-right"><span t-esc="-invoice.residual if invoice.type == 'out_refund' else invoice.residual" t-options='{"widget": "monetary", "display_currency": invoice.currency_id}'/></td> + <td class="text-right"><span t-esc="-invoice.amount_residual if invoice.type == 'out_refund' else invoice.amount_residual" t-options='{"widget": "monetary", "display_currency": invoice.currency_id}'/></td> </tr> </t> </tbody> @@ -76,7 +76,7 @@ <xpath expr="//div[hasclass('o_portal_sidebar')]" position="inside"> <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman"> <t t-call="portal.portal_back_in_edit_mode"> - <t t-set="backend_url" t-value="'/web#return_label=Website&model=%s&id=%s&action=%s&view_type=form' % (invoice._name, invoice.id, invoice.env.ref('account.action_invoice_tree1').id)"/> + <t t-set="backend_url" t-value="'/web#return_label=Website&model=%s&id=%s&action=%s&view_type=form' % (invoice._name, invoice.id, invoice.env.ref('account.action_move_out_invoice_type').id)"/> </t> </t> @@ -86,10 +86,10 @@ <t t-set="classes" t-value="'col-lg-auto d-print-none'"/> <t t-set="title"> <h2 class="mb-0"> - <b t-if="invoice.residual > 0" t-field="invoice.residual"/> + <b t-if="invoice.amount_residual > 0" t-field="invoice.amount_residual"/> <b t-else="1" t-field="invoice.amount_total"/> </h2> - <div class="small" t-if="invoice.state != 'paid' and invoice.type == 'out_invoice'"><i class="fa fa-clock-o"/><span class="o_portal_sidebar_timeago ml4" t-att-datetime="invoice.date_due"/></div> + <div class="small" t-if="invoice.state != 'paid' and invoice.type == 'out_invoice'"><i class="fa fa-clock-o"/><span class="o_portal_sidebar_timeago ml4" t-att-datetime="invoice.invoice_date_due"/></div> </t> <t t-set="entries"> @@ -104,15 +104,15 @@ </div> </div> </li> - <li t-if="invoice.user_id" class="list-group-item flex-grow-1"> + <li t-if="invoice.invoice_user_id" class="list-group-item flex-grow-1"> <div class="small mb-1"><strong class="text-muted">Salesperson</strong></div> <div class="row"> <div class="col flex-grow-0 pr-2"> - <img t-if="invoice.user_id.image" class="rounded-circle mt-1 o_portal_contact_img" t-att-src="image_data_uri(invoice.user_id.image)" alt="Contact"/> + <img t-if="invoice.invoice_user_id.image" class="rounded-circle mt-1 o_portal_contact_img" t-att-src="image_data_uri(invoice.invoice_user_id.image)" alt="Contact"/> <img t-else="" class="rounded-circle mt-1 o_portal_contact_img" src="/web/static/src/img/user_menu_avatar.png" alt="Contact"/> </div> <div class="col pl-0"> - <span t-field="invoice.user_id" t-options='{"widget": "contact", "fields": ["name", "phone"], "no_marker": True}'/> + <span t-field="invoice.invoice_user_id" t-options='{"widget": "contact", "fields": ["name", "phone"], "no_marker": True}'/> <a data-toggle="modal" href="#" data-target="#invoice_chatter" class="small"><i class="fa fa-fw fa-comments"/><b>Send message</b></a> </div> </div> diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml index 17341cccc0e..9a8dc5c5c2a 100644 --- a/addons/account/views/account_report.xml +++ b/addons/account/views/account_report.xml @@ -4,24 +4,24 @@ <!-- QWeb Reports --> <report id="account_invoices" - model="account.invoice" + model="account.move" string="Invoices" report_type="qweb-pdf" name="account.report_invoice_with_payments" file="account.report_invoice_with_payments" - attachment="(object.state in ('open','in_payment','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')" + attachment="(object.state == 'posted') and ('INV'+(object.name or '').replace('/','')+'.pdf')" print_report_name="(object._get_report_base_filename())" groups="account.group_account_invoice" /> <report id="account_invoices_without_payment" - model="account.invoice" + model="account.move" string="Invoices without Payment" report_type="qweb-pdf" name="account.report_invoice" file="account.report_invoice" - attachment="(object.state in ('open','in_payment','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')" + attachment="(object.state == 'posted') and ('INV'+(object.name or '').replace('/','')+'.pdf')" print_report_name="(object._get_report_base_filename())" /> diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml index 367a1788dd8..da8f55092b6 100644 --- a/addons/account/views/account_view.xml +++ b/addons/account/views/account_view.xml @@ -1,10 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <data> - - - <!-- Accounts --> - <record id="view_account_form" model="ir.ui.view"> <field name="name">account.account.form</field> <field name="model">account.account</field> @@ -34,6 +30,7 @@ </form> </field> </record> + <record id="view_account_list" model="ir.ui.view"> <field name="name">account.account.list</field> <field name="model">account.account</field> @@ -97,6 +94,7 @@ </search> </field> </record> + <record id="action_account_form" model="ir.actions.act_window"> <field name="name">Chart of Accounts</field> <field name="res_model">account.account</field> @@ -225,7 +223,6 @@ </group> <group> <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - <field name="company_partner_id" invisible="1"/> </group> </group> <notebook> @@ -287,7 +284,6 @@ <group string="Accounting App Options" attrs="{'invisible': [('type', 'not in', ['bank', 'cash', 'sale', 'purchase'])]}"> <field name="profit_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/> <field name="loss_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/> - <field name="group_invoice_lines" attrs="{'invisible': [('type', 'not in', ['sale', 'purchase'])]}"/> <field name="post_at_bank_rec" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"/> </group> <group name="group_alias" string="Email your Invoices/Bills" attrs="{'invisible': [('type', 'not in', ('sale' ,'purchase'))]}"> diff --git a/addons/account/views/report_invoice.xml b/addons/account/views/report_invoice.xml index 0f83dee7c39..4a31cff037c 100644 --- a/addons/account/views/report_invoice.xml +++ b/addons/account/views/report_invoice.xml @@ -10,13 +10,13 @@ </t> <div class="page"> <h2> - <span t-if="o.type == 'out_invoice' and o.state in ('open', 'in_payment', 'paid')">Invoice</span> + <span t-if="o.type == 'out_invoice' and o.state == 'posted'">Invoice</span> <span t-if="o.type == 'out_invoice' and o.state == 'draft'">Draft Invoice</span> <span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Cancelled Invoice</span> <span t-if="o.type == 'out_refund'">Credit Note</span> <span t-if="o.type == 'in_refund'">Vendor Credit Note</span> <span t-if="o.type == 'in_invoice'">Vendor Bill</span> - <span t-field="o.number"/> + <span t-field="o.name"/> </h2> <div id="informations" class="row mt32 mb32"> @@ -24,17 +24,17 @@ <strong>Description:</strong> <p class="m-0" t-field="o.name"/> </div> - <div class="col-auto mw-100 mb-2" t-if="o.date_invoice" name="invoice_date"> + <div class="col-auto mw-100 mb-2" t-if="o.invoice_date" name="invoice_date"> <strong>Invoice Date:</strong> - <p class="m-0" t-field="o.date_invoice"/> + <p class="m-0" t-field="o.invoice_date"/> </div> - <div class="col-auto mw-100 mb-2" t-if="o.date_due and o.type == 'out_invoice' and o.state in ('open', 'in_payment', 'paid')" name="due_date"> + <div class="col-auto mw-100 mb-2" t-if="o.invoice_date_due and o.type == 'out_invoice' and o.state in ('open', 'in_payment', 'paid')" name="due_date"> <strong>Due Date:</strong> - <p class="m-0" t-field="o.date_due"/> + <p class="m-0" t-field="o.invoice_date_due"/> </div> - <div class="col-auto mw-100 mb-2" t-if="o.origin" name="origin"> + <div class="col-auto mw-100 mb-2" t-if="o.invoice_origin" name="origin"> <strong>Source:</strong> - <p class="m-0" t-field="o.origin"/> + <p class="m-0" t-field="o.invoice_origin"/> </div> <div class="col-auto mw-100 mb-2" t-if="o.partner_id.ref" name="customer_code"> <strong>Customer Code:</strong> @@ -76,10 +76,9 @@ <tr t-att-class="'bg-200 font-weight-bold o_line_section' if line.display_type == 'line_section' else 'font-italic o_line_note' if line.display_type == 'line_note' else ''"> <t t-if="not line.display_type" name="account_invoice_line_accountable"> <td name="account_invoice_line_name"><span t-field="line.name"/></td> - <td class="d-none"><span t-field="line.origin"/></td> <td class="text-right"> <span t-field="line.quantity"/> - <span t-field="line.uom_id" groups="uom.group_uom"/> + <span t-field="line.product_uom_id" groups="uom.group_uom"/> </td> <td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> <span t-field="line.price_unit"/> @@ -88,7 +87,7 @@ <span t-field="line.discount"/> </td> <td t-attf-class="text-left {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> - <span t-esc="', '.join(map(lambda x: (x.description or x.name), line.invoice_line_tax_ids))"/> + <span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))"/> </td> <td class="text-right o_price_total"> <span t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/> @@ -136,7 +135,7 @@ </tr> <t t-foreach="o.amount_by_group" t-as="amount_by_group"> <tr style=""> - <t t-if="len(o.tax_line_ids) == 1 and o.amount_untaxed == amount_by_group[2]"> + <t t-if="len(o.line_ids.filtered(lambda line: line.tax_line_id)) == 1 and o.amount_untaxed == amount_by_group[2]"> <td><span t-esc="amount_by_group[0]"/></td> <td class="text-right o_price_total"> <span t-esc="amount_by_group[3]" /> @@ -165,24 +164,24 @@ </div> </div> </div> - <p t-if="o.reference"> - Please use the following communication for your payment : <b><span t-field="o.reference"/></b> + <p> + Please use the following communication for your payment : <b><span t-field="o.invoice_payment_ref"/></b> </p> - <p t-if="o.comment" name="comment"> - <span t-field="o.comment"/> + <p t-if="o.narration" name="comment"> + <span t-field="o.narration"/> </p> - <p t-if="o.payment_term_id" name="payment_term"> - <span t-field="o.payment_term_id.note"/> + <p t-if="o.invoice_payment_term_id" name="payment_term"> + <span t-field="o.invoice_payment_term_id.note"/> </p> <p t-if="o.fiscal_position_id.note" name="note"> <span t-field="o.fiscal_position_id.note"/> </p> - <div id="qrcode" t-if="(o.partner_id.country_id.code in ['BE', 'AT', 'DE', 'FI', 'NL']) and (o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.partner_bank_id.acc_number != False)"> - <p t-if="(o.partner_bank_id.qr_code_valid)"> + <div id="qrcode" t-if="(o.partner_id.country_id.code in ['BE', 'AT', 'DE', 'FI', 'NL']) and (o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> + <p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> <strong class="text-center">Scan me with your banking app.</strong><br /><br /> - <img class="border border-dark rounded" t-att-src="o.partner_bank_id.build_qr_code_url(o.residual,(o.reference) if (o.reference) else o.number)"/> + <img class="border border-dark rounded" t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual,(o.ref) if (o.ref) else o.name)"/> </p> - <p t-if="(o.partner_bank_id.qr_code_valid == False)"> + <p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> <strong class="text-center">The SEPA QR Code informations are not set correctly.</strong><br /> </p> </div> @@ -192,7 +191,7 @@ <template id="report_invoice_document_with_payments" inherit_id="account.report_invoice_document" primary="True"> <xpath expr="//div[@id='total']/div/table" position="inside"> - <t t-set="payments_vals" t-value="o._get_payments_vals()"/> + <t t-set="payments_vals" t-value="o._get_reconciled_info_JSON_values()"/> <t t-foreach="payments_vals" t-as="payment_vals"> <tr> <td> @@ -207,7 +206,7 @@ <tr class="border-black"> <td><strong>Amount Due</strong></td> <td class="text-right"> - <span t-field="o.residual"/> + <span t-field="o.amount_residual"/> </td> </tr> </t> @@ -217,7 +216,7 @@ <template id="report_invoice"> <t t-call="web.html_container"> <t t-foreach="docs" t-as="o"> - <t t-set="lang" t-value="o.user_id.lang if o.type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> + <t t-set="lang" t-value="o.invoice_user_id.lang if o.type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> <t t-call="account.report_invoice_document" t-lang="lang"/> </t> </t> @@ -226,7 +225,7 @@ <template id="report_invoice_with_payments"> <t t-call="web.html_container"> <t t-foreach="docs" t-as="o"> - <t t-set="lang" t-value="o.user_id.lang if o.type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> + <t t-set="lang" t-value="o.invoice_user_id.lang if o.type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> <t t-call="account.report_invoice_document_with_payments" t-lang="lang"/> </t> </t> diff --git a/addons/account/views/report_payment_receipt_templates.xml b/addons/account/views/report_payment_receipt_templates.xml index c0e11a2ef7f..156b88be0ec 100644 --- a/addons/account/views/report_payment_receipt_templates.xml +++ b/addons/account/views/report_payment_receipt_templates.xml @@ -43,7 +43,7 @@ </thead> <tbody> <tr t-foreach="o.reconciled_invoice_ids" t-as="inv"> - <td><span t-field="inv.date_invoice"/></td> + <td><span t-field="inv.invoice_date"/></td> <td><span t-field="inv.number"/></td> <td class="text-right"><span t-field="inv.amount_total"/></td> <td class="text-right"><span t-esc="o._get_invoice_payment_amount(inv)" t-options="{'widget': 'monetary', 'display_currency': inv.currency_id}"/></td> diff --git a/addons/account/wizard/__init__.py b/addons/account/wizard/__init__.py index 23355c658db..f61453de267 100644 --- a/addons/account/wizard/__init__.py +++ b/addons/account/wizard/__init__.py @@ -4,8 +4,6 @@ from . import account_unreconcile from . import account_invoice_import -from . import account_invoice_refund -from . import account_invoice_state from . import account_validate_account_move from . import pos_box from . import account_move_reversal diff --git a/addons/account/wizard/account_invoice_import.py b/addons/account/wizard/account_invoice_import.py index 5aea7967e2f..ed67308a1bf 100644 --- a/addons/account/wizard/account_invoice_import.py +++ b/addons/account/wizard/account_invoice_import.py @@ -8,18 +8,12 @@ class ImportInvoiceImportWizard(models.TransientModel): _name = 'account.invoice.import.wizard' _description = 'Import Your Vendor Bills from Files.' - def _get_default_journal_id(self): - return self.env['account.journal'].search([('type', '=', self.env.context.get('journal_type'))], limit=1) - attachment_ids = fields.Many2many('ir.attachment', string='Files') - journal_id = fields.Many2one(string="Journal", comodel_name="account.journal", required=True, domain="[('type', 'in', ('sale', 'purchase'))]", default=_get_default_journal_id, help="Journal where to generate the bills") @api.multi def _create_invoice_from_file(self, attachment): - self = self.with_context(default_journal_id=self.journal_id.id) - invoice_form = Form(self.env['account.invoice'], view='account.invoice_supplier_form') - invoice = invoice_form.save() - attachment.write({'res_model': 'account.invoice', 'res_id': invoice.id}) + invoice = self.env['account.move'].create({}) + attachment.write({'res_model': 'account.move', 'res_id': invoice.id}) invoice.message_post(attachment_ids=[attachment.id]) return invoice @@ -35,18 +29,18 @@ class ImportInvoiceImportWizard(models.TransientModel): if not self.attachment_ids: raise UserError(_("No attachment was provided")) - invoices = self.env['account.invoice'] + invoices = self.env['account.move'] for attachment in self.attachment_ids: invoices += self._create_invoice(attachment) - form_view = self.env.context.get('journal_type') == 'purchase' and self.env.ref('account.invoice_supplier_form').id or self.env.ref('account.invoice_form').id - tree_view = self.env.context.get('journal_type') == 'purchase' and self.env.ref('account.invoice_supplier_tree').id or self.env.ref('account.invoice_tree').id action_vals = { 'name': _('Generated Documents'), 'domain': [('id', 'in', invoices.ids)], - 'res_model': 'account.invoice', - 'views': [[tree_view, "tree"], [form_view, "form"]], + 'view_type': 'form', + 'res_model': 'account.move', + 'views': [[False, "tree"], [False, "form"]], 'type': 'ir.actions.act_window', + 'context': self.env.context, } if len(invoices) == 1: action_vals.update({'res_id': invoices[0].id, 'view_mode': 'form'}) diff --git a/addons/account/wizard/account_invoice_import_view.xml b/addons/account/wizard/account_invoice_import_view.xml index b60dd290f31..9e9a2cd3b69 100644 --- a/addons/account/wizard/account_invoice_import_view.xml +++ b/addons/account/wizard/account_invoice_import_view.xml @@ -23,7 +23,7 @@ <field name="res_model">account.invoice.import.wizard</field> <field name="view_mode">form</field> <field name="target">new</field> - <field name="context">{'type': 'in_invoice', 'default_journal_id': active_id}</field> + <field name="context">{'default_type': 'in_invoice', 'default_journal_id': active_id}</field> </record> </data> </odoo> diff --git a/addons/account/wizard/account_invoice_refund.py b/addons/account/wizard/account_invoice_refund.py deleted file mode 100644 index 7f3ab878404..00000000000 --- a/addons/account/wizard/account_invoice_refund.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- - -from odoo import models, fields, api, _ -from odoo.tools.safe_eval import safe_eval -from odoo.exceptions import UserError - - -class AccountInvoiceRefund(models.TransientModel): - """Credit Notes""" - - _name = "account.invoice.refund" - _description = "Credit Note" - - @api.model - def _get_reason(self): - context = dict(self._context or {}) - active_id = context.get('active_id', False) - if active_id: - inv = self.env['account.invoice'].browse(active_id) - return inv.name - return '' - - date_invoice = fields.Date(string='Credit Note Date', default=fields.Date.context_today, required=True) - date = fields.Date(string='Accounting Date') - description = fields.Char(string='Reason', required=True, default=lambda self: self._get_reason()) - refund_only = fields.Boolean(string='Technical field to hide filter_refund in case invoice is partially paid', compute='_get_refund_only') - filter_refund = fields.Selection([('refund', 'Create a draft credit note (partial refunding)'), ('cancel', 'Cancel: create credit note and reconcile (full refunding)'), ('modify', 'Modify: create credit note, reconcile and create a new draft invoice')], - default='refund', string='Credit Method', required=True, help='Choose how you want to credit this invoice. You cannot Modify and Cancel if the invoice is already reconciled') - - @api.depends('date_invoice') - @api.one - def _get_refund_only(self): - invoice_id = self.env['account.invoice'].browse(self._context.get('active_id',False)) - if len(invoice_id.payment_move_line_ids) != 0 and invoice_id.state != 'paid': - self.refund_only = True - else: - self.refund_only = False - - - @api.multi - def compute_refund(self, mode='refund'): - inv_obj = self.env['account.invoice'] - inv_tax_obj = self.env['account.invoice.tax'] - inv_line_obj = self.env['account.invoice.line'] - context = dict(self._context or {}) - xml_id = False - - for form in self: - created_inv = [] - date = False - description = False - for inv in inv_obj.browse(context.get('active_ids')): - if inv.state in ['draft', 'cancel']: - raise UserError(_('Cannot create credit note for the draft/cancelled invoice.')) - if inv.reconciled and mode in ('cancel', 'modify'): - raise UserError(_('The invoice is already paid or reconciled with a credit note so you cannot reconcile it with a new credit note. You should rather unreconcile the current invoice or create a draft credit note.')) - - date = form.date or False - description = form.description or inv.name - refund = inv.refund(form.date_invoice, date, description, inv.journal_id.id) - - created_inv.append(refund.id) - if mode in ('cancel', 'modify'): - movelines = inv.move_id.line_ids - to_reconcile_ids = {} - to_reconcile_lines = self.env['account.move.line'] - for line in movelines: - if line.account_id.id == inv.account_id.id: - to_reconcile_lines += line - to_reconcile_ids.setdefault(line.account_id.id, []).append(line.id) - if line.reconciled: - line.remove_move_reconcile() - refund.action_invoice_open() - for tmpline in refund.move_id.line_ids: - if tmpline.account_id.id == inv.account_id.id: - to_reconcile_lines += tmpline - to_reconcile_lines.filtered(lambda l: l.reconciled == False).reconcile() - if mode == 'modify': - invoice = inv.read(inv_obj._get_refund_modify_read_fields()) - invoice = invoice[0] - del invoice['id'] - invoice_lines = inv_line_obj.browse(invoice['invoice_line_ids']) - invoice_lines = inv_obj._refund_cleanup_lines(invoice_lines) - tax_lines = inv_tax_obj.browse(invoice['tax_line_ids']) - tax_lines = inv_obj._refund_cleanup_lines(tax_lines) - invoice.update({ - 'type': inv.type, - 'date_invoice': form.date_invoice, - 'state': 'draft', - 'number': False, - 'invoice_line_ids': invoice_lines, - 'tax_line_ids': tax_lines, - 'date': date, - 'origin': inv.origin, - 'fiscal_position_id': inv.fiscal_position_id.id, - }) - for field in inv_obj._get_refund_common_fields(): - if inv_obj._fields[field].type == 'many2one': - invoice[field] = invoice[field] and invoice[field][0] - else: - invoice[field] = invoice[field] or False - inv_refund = inv_obj.create(invoice) - body = _('Correction of <a href=# data-oe-model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s') % (inv.id, inv.number, description) - inv_refund.message_post(body=body) - if inv_refund.payment_term_id.id: - inv_refund._onchange_payment_term_date_invoice() - created_inv.append(inv_refund.id) - xml_id = inv.type == 'out_invoice' and 'action_invoice_out_refund' or \ - inv.type == 'out_refund' and 'action_invoice_tree1' or \ - inv.type == 'in_invoice' and 'action_invoice_in_refund' or \ - inv.type == 'in_refund' and 'action_invoice_tree2' - if xml_id: - result = self.env.ref('account.%s' % (xml_id)).read()[0] - if mode == 'modify': - # When refund method is `modify` then it will directly open the new draft bill/invoice in form view - if inv_refund.type == 'in_invoice': - view_ref = self.env.ref('account.invoice_supplier_form') - else: - view_ref = self.env.ref('account.invoice_form') - result['views'] = [(view_ref.id, 'form')] - result['res_id'] = inv_refund.id - else: - invoice_domain = safe_eval(result['domain']) - invoice_domain.append(('id', 'in', created_inv)) - result['domain'] = invoice_domain - return result - return True - - @api.multi - def invoice_refund(self): - data_refund = self.read(['filter_refund'])[0]['filter_refund'] - return self.compute_refund(data_refund) diff --git a/addons/account/wizard/account_invoice_refund_view.xml b/addons/account/wizard/account_invoice_refund_view.xml deleted file mode 100644 index e8727203d28..00000000000 --- a/addons/account/wizard/account_invoice_refund_view.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <data> - - <record id="view_account_invoice_refund" model="ir.ui.view"> - <field name="name">account.invoice.refund.form</field> - <field name="model">account.invoice.refund</field> - <field name="arch" type="xml"> - <form string="Credit Note"> - <group> - <group> - <field name="refund_only" invisible="1"/> - <field name="filter_refund" attrs="{'invisible': [('refund_only','=',True)]}" widget="radio"/> - </group> - <group> - <div attrs="{'invisible':['|',('refund_only','=',True),('filter_refund','!=','refund')]}" class="oe_grey" colspan="4"> - You will be able to edit and validate this - credit note directly or keep it draft, - waiting for the document to be issued by - your supplier/customer. - </div> - <div attrs="{'invisible':['|',('refund_only','=',True),('filter_refund','!=','cancel')]}" class="oe_grey" colspan="4"> - Use this option if you want to cancel an invoice you should not - have issued. The credit note will be created, validated and reconciled - with the invoice. You will not be able to modify the credit note. - </div> - <div attrs="{'invisible':['|',('refund_only','=',True),('filter_refund','!=','modify')]}" class="oe_grey" colspan="4"> - Use this option if you want to cancel an invoice and create a new - one. The credit note will be created, validated and reconciled - with the current invoice. A new draft invoice will be created - so that you can edit it. - </div> - </group> - <group> - <field name="description"/> - </group> - <group> - <field name="date_invoice"/> - <field name="date" groups="base.group_no_one"/> - </group> - </group> - <footer> - <button string='Add Credit Note' name="invoice_refund" type="object" class="btn-primary"/> - <button string="Cancel" class="btn-secondary" special="cancel"/> - </footer> - </form> - </field> - </record> - - <record id="action_account_invoice_refund" model="ir.actions.act_window"> - <field name="name">Credit Note</field> - <field name="res_model">account.invoice.refund</field> - <field name="view_mode">tree,form</field> - <field name="view_id" ref="view_account_invoice_refund"/> - <field name="target">new</field> - </record> - - - </data> -</odoo> diff --git a/addons/account/wizard/account_invoice_send.py b/addons/account/wizard/account_invoice_send.py index da564fa97b8..812ed0ec297 100644 --- a/addons/account/wizard/account_invoice_send.py +++ b/addons/account/wizard/account_invoice_send.py @@ -3,6 +3,7 @@ from odoo import api, fields, models, _ from odoo.addons.mail.wizard.mail_compose_message import _reopen +from odoo.exceptions import UserError class AccountInvoiceSend(models.TransientModel): @@ -14,17 +15,22 @@ class AccountInvoiceSend(models.TransientModel): invoice_without_email = fields.Text(compute='_compute_invoice_without_email', string='invoice(s) that will not be sent') is_print = fields.Boolean('Print', default=lambda self: self.env.company.invoice_is_print) printed = fields.Boolean('Is Printed', default=False) - invoice_ids = fields.Many2many('account.invoice', 'account_invoice_account_invoice_send_rel', string='Invoices') + invoice_ids = fields.Many2many('account.move', 'account_move_account_invoice_send_rel', string='Invoices') composer_id = fields.Many2one('mail.compose.message', string='Composer', required=True, ondelete='cascade') template_id = fields.Many2one( 'mail.template', 'Use template', index=True, - domain="[('model', '=', 'account.invoice')]" + domain="[('model', '=', 'account.move')]" ) @api.model def default_get(self, fields): res = super(AccountInvoiceSend, self).default_get(fields) res_ids = self._context.get('active_ids') + + invoices = self.env['account.move'].browse(res_ids).filtered(lambda move: move.is_invoice(include_receipts=True)) + if not invoices: + raise UserError(_("You can only send invoices.")) + composer = self.env['mail.compose.message'].create({ 'composition_mode': 'comment' if len(res_ids) == 1 else 'mass_mail', }) @@ -38,7 +44,7 @@ class AccountInvoiceSend(models.TransientModel): @api.onchange('invoice_ids') def _compute_composition_mode(self): for wizard in self: - wizard.composition_mode = 'comment' if len(wizard.invoice_ids) == 1 else 'mass_mail' + wizard.composition_mode = 'comment' if len(wizard.invoice_ids) == 1 else 'mass_mail' @api.onchange('template_id') def onchange_template_id(self): @@ -50,7 +56,7 @@ class AccountInvoiceSend(models.TransientModel): def _compute_invoice_without_email(self): for wizard in self: if wizard.is_email and len(wizard.invoice_ids) > 1: - invoices = self.env['account.invoice'].search([ + invoices = self.env['account.move'].search([ ('id', 'in', self.env.context.get('active_ids')), ('partner_id.email', '=', False) ]) @@ -67,13 +73,13 @@ class AccountInvoiceSend(models.TransientModel): if self.is_email: self.composer_id.send_mail() if self.env.context.get('mark_invoice_as_sent'): - self.mapped('invoice_ids').write({'sent': True}) + self.mapped('invoice_ids').write({'invoice_sent': True}) @api.multi def _print_document(self): """ to override for each type of models that will use this composer.""" self.ensure_one() - action = self.invoice_ids.invoice_print() + action = self.invoice_ids.action_invoice_print() action.update({'close_on_report_download': True}) return action diff --git a/addons/account/wizard/account_invoice_send_views.xml b/addons/account/wizard/account_invoice_send_views.xml index 08d00755a8b..8c9ce09b02a 100644 --- a/addons/account/wizard/account_invoice_send_views.xml +++ b/addons/account/wizard/account_invoice_send_views.xml @@ -2,7 +2,7 @@ <odoo> <data> - <record model="ir.ui.view" id="account_invoice_send_wizard_form"> + <record id="account_invoice_send_wizard_form" model="ir.ui.view"> <field name="name">account.invoice.send.form</field> <field name="model">account.invoice.send</field> <field name="groups_id" eval="[(4,ref('base.group_user'))]"/> @@ -51,7 +51,7 @@ </group> <group> <field name="template_id" options="{'no_create': True, 'no_edit': True}" - context="{'default_model': 'account.invoice'}"/> + context="{'default_model': 'account.move'}"/> </group> </group> </div> @@ -79,7 +79,7 @@ name="Send" id="invoice_send" res_model="account.invoice.send" - binding_model="account.invoice" + binding_model="account.move" binding_views="list" view_mode="form" target="new" diff --git a/addons/account/wizard/account_invoice_state.py b/addons/account/wizard/account_invoice_state.py deleted file mode 100644 index 1b5aa387a66..00000000000 --- a/addons/account/wizard/account_invoice_state.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import models, api, _ -from odoo.exceptions import UserError - - -class AccountInvoiceConfirm(models.TransientModel): - """ - This wizard will confirm the all the selected draft invoices - """ - - _name = "account.invoice.confirm" - _description = "Confirm the selected invoices" - - @api.multi - def invoice_confirm(self): - context = dict(self._context or {}) - active_ids = context.get('active_ids', []) or [] - - for record in self.env['account.invoice'].browse(active_ids): - if record.state != 'draft': - raise UserError(_("Selected invoice(s) cannot be confirmed as they are not in 'Draft' state.")) - record.action_invoice_open() - return {'type': 'ir.actions.act_window_close'} diff --git a/addons/account/wizard/account_invoice_state_view.xml b/addons/account/wizard/account_invoice_state_view.xml deleted file mode 100644 index cd446a60c62..00000000000 --- a/addons/account/wizard/account_invoice_state_view.xml +++ /dev/null @@ -1,30 +0,0 @@ -<odoo> - <data> - - <record id="account_invoice_confirm_view" model="ir.ui.view"> - <field name="name">account.invoice.confirm.form</field> - <field name="model">account.invoice.confirm</field> - <field name="arch" type="xml"> - <form string="Confirm Draft Invoices"> - <p class="oe_grey"> - Once draft invoices are confirmed, you will not be able - to modify them. The invoices will receive a unique - number and journal items will be created in your chart - of accounts. - </p> - <footer> - <button string="Confirm Invoices" name="invoice_confirm" type="object" default_focus="1" class="btn-primary"/> - <button string="Cancel" class="btn-secondary" special="cancel"/> - </footer> - </form> - </field> - </record> - - <act_window id="action_account_invoice_confirm" - name="Confirm Draft Invoices" - res_model="account.invoice.confirm" - binding_model="account.invoice" binding_views="list" - view_mode="form" target="new"/> - - </data> -</odoo> diff --git a/addons/account/wizard/account_move_reversal.py b/addons/account/wizard/account_move_reversal.py index 0933f7d75b9..a6888c8b2a4 100644 --- a/addons/account/wizard/account_move_reversal.py +++ b/addons/account/wizard/account_move_reversal.py @@ -1,6 +1,9 @@ +# -*- coding: utf-8 -*- from odoo import models, fields, api +from odoo.exceptions import UserError from odoo.tools.translate import _ + class AccountMoveReversal(models.TransientModel): """ Account move reversal wizard, it cancel an account move by reversing it. @@ -8,19 +11,84 @@ class AccountMoveReversal(models.TransientModel): _name = 'account.move.reversal' _description = 'Account Move Reversal' + @api.model + def _get_default_move(self): + if self._context.get('active_id'): + move = self.env['account.move'].browse(self._context['active_id']) + if move.state != 'posted' or move.type in ('out_refund', 'in_refund'): + raise UserError(_('Only posted journal entries being not already a refund can be reversed.')) + return move + return self.env['account.move'] + + @api.model + def _get_default_reason(self): + move = self._get_default_move() + return move and move.invoice_payment_ref or False + + move_id = fields.Many2one('account.move', string='Journal Entry', + default=_get_default_move, + domain=[('state', '=', 'posted'), ('type', 'not in', ('out_refund', 'in_refund'))]) date = fields.Date(string='Reversal date', default=fields.Date.context_today, required=True) + reason = fields.Char(string='Reason', default=_get_default_reason) + refund_method = fields.Selection(selection=[ + ('refund', 'Create a draft credit note (partial refunding)'), + ('cancel', 'Cancel: create credit note and reconcile (full refunding)'), + ('modify', 'Create credit note, reconcile and create a new draft invoice (cancel)') + ], default='refund', string='Credit Method', required=True, + help='Choose how you want to credit this invoice. You cannot "modify" nor "cancel" if the invoice is already reconciled.') journal_id = fields.Many2one('account.journal', string='Use Specific Journal', help='If empty, uses the journal of the journal entry to be reversed.') + # related fields + residual = fields.Monetary(related='move_id.amount_residual') + currency_id = fields.Many2one(related='move_id.currency_id') + move_type = fields.Selection(related='move_id.type') + @api.multi def reverse_moves(self): - ac_move_ids = self._context.get('active_ids', False) - res = self.env['account.move'].browse(ac_move_ids).reverse_moves(self.date, self.journal_id or False) - if res: - return { - 'name': _('Reverse Moves'), - 'type': 'ir.actions.act_window', + moves = self.move_id or self.env['account.move'].browse(self._context['active_ids']) + + # Create default values. + default_values_list = [] + for move in moves: + default_values_list.append({ + 'ref': _('Reversal of: %s') % move.name, + 'invoice_payment_ref': self.reason, + 'date': self.date or move.date, + 'invoice_date': move.is_invoice(include_receipts=True) and (self.date or move.date) or False, + 'journal_id': self.journal_id and self.journal_id.id or move.journal_id.id, + }) + + # Handle reverse method. + if self.refund_method == 'cancel' or (moves and moves[0].type == 'entry'): + new_moves = moves._reverse_moves(default_values_list, cancel=True) + elif self.refund_method == 'modify': + new_moves = moves._reverse_moves(default_values_list, cancel=True) + moves_vals_list = [] + for move in moves.with_context(include_business_fields=True): + moves_vals_list.append(move.copy_data({ + 'invoice_payment_ref': move.name, + 'date': self.date or move.date, + })[0]) + new_moves = moves.create(moves_vals_list) + elif self.refund_method == 'refund': + new_moves = moves._reverse_moves(default_values_list) + else: + return + + # Create action. + action = { + 'name': _('Reverse Moves'), + 'type': 'ir.actions.act_window', + 'res_model': 'account.move', + } + if len(new_moves) == 1: + action.update({ + 'view_mode': 'form', + 'res_id': new_moves.id, + }) + else: + action.update({ 'view_mode': 'tree,form', - 'res_model': 'account.move', - 'domain': [('id', 'in', res)], - } - return {'type': 'ir.actions.act_window_close'} + 'domain': [('id', 'in', new_moves.ids)], + }) + return action diff --git a/addons/account/wizard/account_move_reversal_view.xml b/addons/account/wizard/account_move_reversal_view.xml index 9bfbb3ed791..229c8391717 100644 --- a/addons/account/wizard/account_move_reversal_view.xml +++ b/addons/account/wizard/account_move_reversal_view.xml @@ -1,18 +1,48 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <data> - <record id="view_account_move_reversal" model="ir.ui.view"> <field name="name">account.move.reversal.form</field> <field name="model">account.move.reversal</field> <field name="arch" type="xml"> - <form string="Account Move Reversal"> - <group col="4"> - <field name="date"/> - <field name="journal_id"/> + <form string="Reverse Journal Entry"> + <field name="residual" invisible="1"/> + <field name="move_type" invisible="1"/> + <group> + <group attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'in_invoice'))]}"> + <field name="refund_method" widget="radio" attrs="{'readonly': [('residual', '=', 0)]}"/> + </group> + <group attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'in_invoice'))]}"> + <div attrs="{'invisible':[('refund_method', '!=', 'refund')]}" class="oe_grey" colspan="4"> + You will be able to edit and validate this + credit note directly or keep it draft, + waiting for the document to be issued by + your supplier/customer. + </div> + <div attrs="{'invisible':[('refund_method', '!=', 'cancel')]}" class="oe_grey" colspan="4"> + Use this option if you want to cancel an invoice you should not + have issued. The credit note will be created, validated and reconciled + with the invoice. You will not be able to modify the credit note. + </div> + <div attrs="{'invisible':[('refund_method', '!=', 'modify')]}" class="oe_grey" colspan="4"> + Use this option if you want to cancel an invoice and create a new + one. The credit note will be created, validated and reconciled + with the current invoice. A new draft invoice will be created + so that you can edit it. + </div> + </group> + <group> + <field name="move_id" readonly="context.get('active_id')" invisible="context.get('active_id')" /> + <field name="reason" attrs="{'invisible': [('move_type', '==', 'entry')], 'reason': [('move_type', '==', 'entry')]}"/> + <field name="date" string="Refund Date" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'in_invoice'))]}"/> + <field name="date" attrs="{'invisible': [('move_type', 'in', ('out_invoice', 'in_invoice'))]}"/> + </group> + <group> + <field name="journal_id" attrs="{'invisible': [('move_type', 'not in', ('entry'))]}" /> + </group> </group> <footer> - <button string="Reverse Moves" name="reverse_moves" type="object" class="btn-primary"/> + <button string='Reverse' name="reverse_moves" type="object" class="btn-primary"/> <button string="Cancel" class="btn-secondary" special="cancel"/> </footer> </form> diff --git a/addons/account_analytic_default/models/account_analytic_default.py b/addons/account_analytic_default/models/account_analytic_default.py index 208be7e3ab8..2cae7acb19b 100644 --- a/addons/account_analytic_default/models/account_analytic_default.py +++ b/addons/account_analytic_default/models/account_analytic_default.py @@ -65,45 +65,18 @@ class AccountAnalyticDefault(models.Model): return res -class AccountInvoiceLine(models.Model): - _inherit = "account.invoice.line" +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' @api.onchange('product_id', 'account_id') def _onchange_product_id_account_id(self): rec = self.env['account.analytic.default'].account_get( product_id=self.product_id.id, - partner_id=self.invoice_id.commercial_partner_id.id, + partner_id=self.partner_id.id, account_id=self.account_id.id, - user_id=self.invoice_id.user_id.id or self.env.uid, - date=self.invoice_id.date_due, - company_id=self.invoice_id.company_id.id, + user_id=self.env.uid, + date=self.date_maturity, + company_id=self.move_id.company_id.id ) - self.account_analytic_id = rec.analytic_id.id - self.analytic_tag_ids = rec.analytic_tag_ids.ids - - def _set_additional_fields(self): - if not self.account_analytic_id or not self.analytic_tag_ids: - rec = self.env['account.analytic.default'].account_get( - product_id=self.product_id.id, - partner_id=self.invoice_id.commercial_partner_id.id, - account_id=self.account_id.id, - user_id=self.invoice_id.user_id.id or self.env.uid, - date=self.invoice_id.date_due, - company_id=self.invoice_id.company_id.id, - ) - if rec: - if not self.account_analytic_id: - self.account_analytic_id = rec.analytic_id.id - if not self.analytic_tag_ids: - self.analytic_tag_ids = rec.analytic_tag_ids.ids - super(AccountInvoiceLine, self)._set_additional_fields() - - -class AccountMoveLine(models.Model): - _inherit = "account.move.line" - - @api.onchange('account_id', 'partner_id', 'product_id') - def _onchange_product_id_account_id_partner_id(self): - rec = self.env['account.analytic.default'].account_get(product_id=self.product_id.id, partner_id=self.partner_id.id, account_id=self.account_id.id, user_id=self.env.uid, date=self.move_id.date, company_id=self.company_id.id) self.analytic_account_id = rec.analytic_id.id self.analytic_tag_ids = rec.analytic_tag_ids.ids diff --git a/addons/account_cancel/views/account_views.xml b/addons/account_cancel/views/account_views.xml index 18f308bd9c5..7d8591f1146 100644 --- a/addons/account_cancel/views/account_views.xml +++ b/addons/account_cancel/views/account_views.xml @@ -5,34 +5,12 @@ <field name="model">account.journal</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> - <field name="group_invoice_lines" position="after"> + <field name="loss_account_id" position="after"> <field name="update_posted" groups="base.group_no_one"/> </field> </field> </record> - <record id="invoice_form_cancel_inherit" model="ir.ui.view"> - <field name="name">invoice.form.cancel.inherit</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> - <field name="arch" type="xml"> - <xpath expr="//button[@name='action_invoice_draft']" position="before"> - <button name="action_invoice_cancel" type="object" states="draft,open,in_payment,paid" string="Cancel" groups="account.group_account_invoice"/> - </xpath> - </field> - </record> - - <record id="invoice_supplier_cancel_form_inherit" model="ir.ui.view"> - <field name="name">invoice.supplier.cancel.form.inherit</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <xpath expr="//button[@name='action_invoice_draft']" position="before"> - <button name="action_invoice_cancel" type="object" states="draft,open,in_payment,paid" string="Cancel" groups="account.group_account_invoice"/> - </xpath> - </field> - </record> - <record id="bank_statement_draft_form_inherit" model="ir.ui.view"> <field name="name">bank.statement.draft.form.inherit</field> <field name="model">account.bank.statement</field> @@ -77,6 +55,7 @@ <field name="arch" type="xml"> <field name="state" position="before"> <button name="button_cancel" states="posted" string="Cancel Entry" type="object" groups="account.group_account_invoice"/> + <button name="button_draft" states="cancel" string="Reset to Draft" type="object" groups="account.group_account_invoice"/> </field> </field> </record> diff --git a/addons/account_check_printing/models/account_payment.py b/addons/account_check_printing/models/account_payment.py index c8fad216e59..3ba1be801f5 100644 --- a/addons/account_check_printing/models/account_payment.py +++ b/addons/account_check_printing/models/account_payment.py @@ -144,7 +144,7 @@ class AccountPayment(models.Model): multi_stub = self.company_id.account_check_printing_multi_stub - invoices = self.reconciled_invoice_ids.sorted(key=lambda r: r.date_due) + invoices = self.reconciled_invoice_ids.sorted(key=lambda r: r.invoice_date_due) debits = invoices.filtered(lambda r: r.type == 'in_invoice') credits = invoices.filtered(lambda r: r.type == 'in_refund') @@ -182,21 +182,21 @@ class AccountPayment(models.Model): # Find the account.partial.reconcile which are common to the invoice and the payment if invoice.type in ['in_invoice', 'out_refund']: invoice_sign = 1 - invoice_payment_reconcile = invoice.move_id.line_ids.mapped('matched_debit_ids').filtered(lambda r: r.debit_move_id in self.move_line_ids) + invoice_payment_reconcile = invoice.line_ids.mapped('matched_debit_ids').filtered(lambda r: r.debit_move_id in self.move_line_ids) else: invoice_sign = -1 - invoice_payment_reconcile = invoice.move_id.line_ids.mapped('matched_credit_ids').filtered(lambda r: r.credit_move_id in self.move_line_ids) + invoice_payment_reconcile = invoice.line_ids.mapped('matched_credit_ids').filtered(lambda r: r.credit_move_id in self.move_line_ids) if self.currency_id != self.journal_id.company_id.currency_id: amount_paid = abs(sum(invoice_payment_reconcile.mapped('amount_currency'))) else: amount_paid = abs(sum(invoice_payment_reconcile.mapped('amount'))) - amount_residual = invoice_sign * invoice.residual + amount_residual = invoice_sign * invoice.amount_residual return { - 'due_date': format_date(self.env, invoice.date_due), - 'number': invoice.reference and invoice.number + ' - ' + invoice.reference or invoice.number, + 'due_date': format_date(self.env, invoice.invoice_date_due), + 'number': invoice.ref and invoice.name + ' - ' + invoice.ref or invoice.name, 'amount_total': formatLang(self.env, invoice_sign * invoice.amount_total, currency_obj=invoice.currency_id), 'amount_residual': formatLang(self.env, amount_residual, currency_obj=invoice.currency_id) if amount_residual * 10**4 != 0 else '-', 'amount_paid': formatLang(self.env, invoice_sign * amount_paid, currency_obj=invoice.currency_id), diff --git a/addons/account_check_printing/tests/test_print_check.py b/addons/account_check_printing/tests/test_print_check.py index d3b62608171..7eecaaa8c42 100644 --- a/addons/account_check_printing/tests/test_print_check.py +++ b/addons/account_check_printing/tests/test_print_check.py @@ -16,8 +16,8 @@ class TestPrintCheck(AccountingTestCase): def setUp(self): super(TestPrintCheck, self).setUp() - self.invoice_model = self.env['account.invoice'] - self.invoice_line_model = self.env['account.invoice.line'] + self.invoice_model = self.env['account.move'] + self.invoice_line_model = self.env['account.move.line'] self.payment_model = self.env['account.payment'] self.partner_axelor = self.env.ref("base.res_partner_2") @@ -31,26 +31,23 @@ class TestPrintCheck(AccountingTestCase): self.bank_journal.check_manual_sequencing = True def create_invoice(self, amount=100, is_refund=False): - invoice = self.invoice_model.create({ + invoice = self.env['account.move'].with_context(default_type=is_refund and 'out_refund' or 'in_invoice').create({ 'partner_id': self.partner_axelor.id, - 'name': is_refund and "Supplier Refund" or "Supplier Invoice", - 'type': is_refund and "out_refund" or "in_invoice", - 'account_id': self.account_payable.id, - 'date_invoice': time.strftime('%Y') + '-06-26', + 'invoice_date': time.strftime('%Y') + '-06-26', + 'date': time.strftime('%Y') + '-06-26', + 'invoice_line_ids': [ + (0, 0, { + 'product_id': self.product.id, + 'quantity': 1, + 'price_unit': is_refund and amount / 4 or amount, + }) + ] }) - self.invoice_line_model.create({ - 'product_id': self.product.id, - 'quantity': 1, - 'price_unit': is_refund and amount / 4 or amount, - 'invoice_id': invoice.id, - 'name': 'something', - 'account_id': self.account_expenses.id, - }) - invoice.action_invoice_open() + invoice.post() return invoice def create_payment(self, invoices): - payment_register = Form(self.env['account.payment'].with_context(active_model='account.invoice', active_ids=invoices.ids)) + payment_register = Form(self.env['account.payment'].with_context(active_model='account.move', active_ids=invoices.ids)) payment_register.payment_date = time.strftime('%Y') + '-07-15' payment_register.journal_id = self.bank_journal payment_register.payment_method_id = self.payment_method_check @@ -60,8 +57,8 @@ class TestPrintCheck(AccountingTestCase): def test_print_check(self): # Make a payment for 10 invoices and 5 credit notes - invoices = self.env['account.invoice'] - for i in range(0, 42): + invoices = self.env['account.move'] + for i in range(0, 15): invoices |= self.create_invoice(is_refund=(i % 3 == 0)) payment = self.create_payment(invoices) self.assertEqual(all(payment.mapped('check_amount_in_words')), True, 'The amount in words is not set on all the payments') @@ -76,7 +73,7 @@ class TestPrintCheck(AccountingTestCase): self.assertEqual(len(report_pages), 1) def test_from_register(self): - invoices = self.env['account.invoice'] + invoices = self.env['account.move'] for i in range(0, 3): invoices |= self.create_invoice(is_refund=(i % 3 == 0)) payment = self.create_payment(invoices) diff --git a/addons/account_facturx/data/facturx_templates.xml b/addons/account_facturx/data/facturx_templates.xml index 063984a43e0..672cd106d4e 100644 --- a/addons/account_facturx/data/facturx_templates.xml +++ b/addons/account_facturx/data/facturx_templates.xml @@ -26,13 +26,13 @@ <!-- Amounts. --> <ram:SpecifiedLineTradeAgreement> <t t-set="taxes" - t-value="line.invoice_line_tax_ids.compute_all( + t-value="line.tax_ids.compute_all( line.price_unit, currency=line.currency_id, quantity=line.quantity, product=line.product_id, partner=record.partner_id, - is_refund=line.invoice_id.type in ('in_refund', 'out_refund'))"/> + is_refund=line.move_id.type in ('in_refund', 'out_refund'))"/> <ram:GrossPriceProductTradePrice> <ram:ChargeAmount t-att-currencyID="currency.name" @@ -55,7 +55,7 @@ </ram:SpecifiedLineTradeDelivery> <ram:SpecifiedLineTradeSettlement> - <t t-foreach="line.invoice_line_tax_ids" t-as="tax"> + <t t-foreach="line.tax_ids" t-as="tax"> <ram:ApplicableTradeTax t-if="tax.amount_type == 'percent'"> <ram:RateApplicablePercent t-esc="tax.amount"/> </ram:ApplicableTradeTax> @@ -118,13 +118,13 @@ <!-- Document Headers. --> <rsm:ExchangedDocument> - <ram:ID t-esc="record.reference"/> + <ram:ID t-esc="record.ref"/> <ram:TypeCode t-esc="'381' if 'refund' in record.type else '380'"/> <ram:IssueDateTime> - <udt:DateTimeString format="102" t-esc="format_date(record.date_invoice)"/> + <udt:DateTimeString format="102" t-esc="format_date(record.invoice_date)"/> </ram:IssueDateTime> - <ram:IncludedNote t-if="record.comment"> - <ram:Content t-esc="record.comment"/> + <ram:IncludedNote t-if="record.narration"> + <ram:Content t-esc="record.narration"/> </ram:IncludedNote> </rsm:ExchangedDocument> @@ -166,7 +166,7 @@ <!-- Reference. --> <ram:BuyerOrderReferencedDocument> - <ram:IssuerAssignedID t-esc="'%s: %s' % (record.number, record.name) if record.name else record.number"/> + <ram:IssuerAssignedID t-esc="'%s: %s' % (record.name, record.invoice_payment_ref) if record.invoice_payment_ref else record.name"/> </ram:BuyerOrderReferencedDocument> </ram:ApplicableHeaderTradeAgreement> @@ -184,32 +184,32 @@ <ram:ApplicableHeaderTradeSettlement> <!-- Bank account. --> - <ram:SpecifiedTradeSettlementPaymentMeans t-if="record.partner_bank_id.acc_type == 'iban'"> + <ram:SpecifiedTradeSettlementPaymentMeans t-if="record.invoice_partner_bank_id.acc_type == 'iban'"> <ram:PayeePartyCreditorFinancialAccount> - <ram:IBANID t-esc="record.partner_bank_id.sanitized_acc_number"/> + <ram:IBANID t-esc="record.invoice_partner_bank_id.sanitized_acc_number"/> </ram:PayeePartyCreditorFinancialAccount> </ram:SpecifiedTradeSettlementPaymentMeans> <!-- Tax Summary. --> - <t t-foreach="record.tax_line_ids" t-as="tax_line"> + <t t-foreach="record.line_ids.filtered(lambda line: line.tax_line_id)" t-as="tax_line"> <ram:ApplicableTradeTax> <ram:CalculatedAmount t-att-currencyID="currency.name" - t-esc="format_monetary(tax_line.amount, currency)"/> + t-esc="format_monetary(tax_line.price_unit, currency)"/> <ram:BasisAmount t-att-currencyID="currency.name" - t-esc="format_monetary(tax_line.base, currency)"/> + t-esc="format_monetary(tax_line.tax_base_amount, currency)"/> <ram:RateApplicablePercent - t-if="tax_line.tax_id.amount_type == 'percent'" - t-esc="tax_line.tax_id.amount"/> + t-if="tax_line.tax_line_id.amount_type == 'percent'" + t-esc="tax_line.tax_line_id.amount"/> </ram:ApplicableTradeTax> </t> <!-- Payment Term. --> <ram:SpecifiedTradePaymentTerms> - <ram:Description t-if="record.payment_term_id" t-esc="record.payment_term_id.name"/> - <ram:DueDateDateTime t-if="record.date_due"> - <udt:DateTimeString t-esc="format_date(record.date_due)"/> + <ram:Description t-if="record.invoice_payment_term_id" t-esc="record.invoice_payment_term_id.name"/> + <ram:DueDateDateTime t-if="record.invoice_date_due"> + <udt:DateTimeString t-esc="format_date(record.invoice_date_due)"/> </ram:DueDateDateTime> </ram:SpecifiedTradePaymentTerms> @@ -220,7 +220,7 @@ t-esc="format_monetary(record.amount_untaxed, currency)"/> <ram:TaxBasisTotalAmount t-att-currencyID="currency.name" - t-esc="format_monetary(sum(record.tax_line_ids.mapped('base')), currency)"/> + t-esc="format_monetary(sum(record.line_ids.filtered(lambda line: line.tax_line_id).mapped('price_unit')), currency)"/> <ram:TaxTotalAmount t-att-currencyID="currency.name" t-esc="format_monetary(record.amount_tax, currency)"/> @@ -229,10 +229,10 @@ t-esc="format_monetary(record.amount_total, currency)"/> <ram:TotalPrepaidAmount t-att-currencyID="currency.name" - t-esc="format_monetary(record.amount_total - record.residual, currency)"/> + t-esc="format_monetary(record.amount_total - record.amount_residual, currency)"/> <ram:DuePayableAmount t-att-currencyID="currency.name" - t-esc="format_monetary(record.residual, currency)"/> + t-esc="format_monetary(record.amount_residual, currency)"/> </ram:SpecifiedTradeSettlementHeaderMonetarySummation> </ram:ApplicableHeaderTradeSettlement> </rsm:SupplyChainTradeTransaction> diff --git a/addons/account_facturx/models/__init__.py b/addons/account_facturx/models/__init__.py index 3e3506a5453..d1070b6c5f1 100644 --- a/addons/account_facturx/models/__init__.py +++ b/addons/account_facturx/models/__init__.py @@ -1,4 +1,4 @@ # -*- encoding: utf-8 -*- -from . import account_invoice +from . import account_move from . import ir_actions_report diff --git a/addons/account_facturx/models/account_invoice.py b/addons/account_facturx/models/account_move.py index b46cb3b6975..10be55f919a 100644 --- a/addons/account_facturx/models/account_invoice.py +++ b/addons/account_facturx/models/account_move.py @@ -3,12 +3,11 @@ from odoo import api, models, fields, tools, _ from odoo.tools import DEFAULT_SERVER_DATE_FORMAT, float_repr from odoo.tests.common import Form -from odoo.exceptions import UserError +from odoo.exceptions import UserError, except_orm from datetime import datetime from lxml import etree from PyPDF2 import PdfFileReader -from collections import namedtuple import io import base64 @@ -20,9 +19,8 @@ _logger = logging.getLogger(__name__) DEFAULT_FACTURX_DATE_FORMAT = '%Y%m%d' -class AccountInvoice(models.Model): - _inherit = 'account.invoice' - _name = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' @api.multi def _export_as_facturx_xml(self): @@ -58,17 +56,42 @@ class AccountInvoice(models.Model): ''' amount_total_import = None - # type must be present in the context to get the right behavior of the _default_journal method (account.invoice). - # journal_id must be present in the context to get the right behavior of the _default_account method (account.invoice.line). - journal_id = self._default_journal() - self_ctx = self.with_context(journal_id=journal_id.id) + if self._context.get('default_journal_id'): + journal = self.env['account.journal'].browse(self.env.context['default_journal_id']) + default_type = 'out_invoice' if journal.type == 'sale' else 'in_invoice' + elif self._context.get('default_type'): + default_type = self._context['default_type'] + else: + raise UserError(_("No information about the journal or the type of invoice is passed")) + + # Total amount. + elements = tree.xpath('//ram:GrandTotalAmount', namespaces=tree.nsmap) + total_amount = elements and float(elements[0].text) or 0.0 + + # Refund type. + # There is two modes to handle refund in Factur-X: + # a) type_code == 380 for invoice, type_code == 381 for refund, all positive amounts. + # b) type_code == 380, negative amounts in case of refund. + # To handle both, we consider the 'a' mode and switch to 'b' if a negative amount is encountered. + elements = tree.xpath('//rsm:ExchangedDocument/ram:TypeCode', namespaces=tree.nsmap) + type_code = elements[0].text + + if type_code == '381': + default_type = 'out_refund' if default_type == 'out_invoice' else 'in_refund' + refund_sign = -1 + else: + # Handle 'b' refund mode. + if total_amount < 0: + default_type = 'out_refund' if default_type == 'out_invoice' else 'in_refund' + refund_sign = -1 if 'refund' in default_type else 1 + + # Write the type as the journal entry is already created. + self.type = default_type # self could be a single record (editing) or be empty (new). - view = journal_id.type == 'purchase' and 'account.invoice_supplier_form' or 'account.invoice_form' - with Form(self_ctx, view=view) as invoice_form: - + with Form(self.with_context(default_type=default_type)) as invoice_form: # Partner (first step to avoid warning 'Warning! You must first select a partner.'). - partner_type = journal_id.type == 'purchase' and 'SellerTradeParty' or 'BuyerTradeParty' + partner_type = invoice_form.journal_id.type == 'purchase' and 'SellerTradeParty' or 'BuyerTradeParty' elements = tree.xpath('//ram:'+partner_type+'/ram:SpecifiedTaxRegistration/ram:ID', namespaces=tree.nsmap) partner = elements and self.env['res.partner'].search([('vat', '=', elements[0].text)], limit=1) if not partner: @@ -84,35 +107,21 @@ class AccountInvoice(models.Model): # Reference. elements = tree.xpath('//rsm:ExchangedDocument/ram:ID', namespaces=tree.nsmap) if elements: - invoice_form.reference = elements[0].text + invoice_form.ref = elements[0].text # Name. elements = tree.xpath('//ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID', namespaces=tree.nsmap) if elements: - invoice_form.name = elements[0].text + invoice_form.invoice_payment_ref = elements[0].text # Comment. elements = tree.xpath('//ram:IncludedNote/ram:Content', namespaces=tree.nsmap) if elements: - invoice_form.comment = elements[0].text - - # Refund type. - # There is two modes to handle refund in Factur-X: - # a) type_code == 380 for invoice, type_code == 381 for refund, all positive amounts. - # b) type_code == 380, negative amounts in case of refund. - # To handle both, we consider the 'a' mode and switch to 'b' if a negative amount is encountered. - elements = tree.xpath('//rsm:ExchangedDocument/ram:TypeCode', namespaces=tree.nsmap) - type_code = elements[0].text - refund_sign = type_code == '380' and 1 or -1 + invoice_form.narration = elements[0].text # Total amount. elements = tree.xpath('//ram:GrandTotalAmount', namespaces=tree.nsmap) if elements: - total_amount = float(elements[0].text) - - # Handle 'b' refund mode. - if total_amount < 0 and type_code == '380': - refund_sign = -1 # Currency. if elements[0].attrib.get('currencyID'): @@ -129,16 +138,14 @@ class AccountInvoice(models.Model): if elements: date_str = elements[0].text date_obj = datetime.strptime(date_str, DEFAULT_FACTURX_DATE_FORMAT) - invoice_form.date_invoice = date_obj.strftime(DEFAULT_SERVER_DATE_FORMAT) + invoice_form.invoice_date = date_obj.strftime(DEFAULT_SERVER_DATE_FORMAT) # Due date. elements = tree.xpath('//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString', namespaces=tree.nsmap) if elements: date_str = elements[0].text date_obj = datetime.strptime(date_str, DEFAULT_FACTURX_DATE_FORMAT) - # Set to empty record set to avoid readonly on date_due, can not set to False or None in a Form - invoice_form.payment_term_id = self.env['account.payment.term'] - invoice_form.date_due = date_obj.strftime(DEFAULT_SERVER_DATE_FORMAT) + invoice_form.invoice_date_due = date_obj.strftime(DEFAULT_SERVER_DATE_FORMAT) # Invoice lines. elements = tree.xpath('//ram:IncludedSupplyChainTradeLineItem', namespaces=tree.nsmap) @@ -188,19 +195,19 @@ class AccountInvoice(models.Model): # Taxes line_elements = element.xpath('.//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:RateApplicablePercent', namespaces=tree.nsmap) - invoice_line_form.invoice_line_tax_ids.clear() + invoice_line_form.tax_ids.clear() for tax_element in line_elements: percentage = float(tax_element.text) tax = self.env['account.tax'].search([ ('company_id', '=', invoice_form.company_id.id), ('amount_type', '=', 'percent'), - ('type_tax_use', '=', journal_id.type), + ('type_tax_use', '=', invoice_form.journal_id.type), ('amount', '=', percentage), ], limit=1) if tax: - invoice_line_form.invoice_line_tax_ids.add(tax) + invoice_line_form.tax_ids.add(tax) elif amount_total_import: # No lines in BASICWL. with invoice_form.invoice_line_ids.new() as invoice_line_form: @@ -208,12 +215,6 @@ class AccountInvoice(models.Model): invoice_line_form.quantity = 1 invoice_line_form.price_unit = amount_total_import - # Refund. - if self_ctx.env.context['journal_type'] == 'purchase': - invoice_form.type = 'in_refund' if refund_sign == -1 else 'in_invoice' - else: - invoice_form.type = 'out_refund' if refund_sign == -1 else 'out_invoice' - return invoice_form.save() @api.multi @@ -221,7 +222,7 @@ class AccountInvoice(models.Model): def message_post(self, **kwargs): # OVERRIDE # /!\ 'default_res_id' in self._context is used to don't process attachment when using a form view. - res = super(AccountInvoice, self).message_post(**kwargs) + res = super(AccountMove, self).message_post(**kwargs) if 'no_new_invoice' not in self.env.context and len(self) == 1 and self.state == 'draft': # Get attachments. @@ -280,7 +281,8 @@ class AccountInvoice(models.Model): self._import_facturx_invoice(tree) buffer.close() - + except except_orm as e: + raise e except Exception as e: # Malformed pdf _logger.exception(e) diff --git a/addons/account_facturx/models/ir_actions_report.py b/addons/account_facturx/models/ir_actions_report.py index 46028f40244..fbea5820266 100644 --- a/addons/account_facturx/models/ir_actions_report.py +++ b/addons/account_facturx/models/ir_actions_report.py @@ -13,9 +13,9 @@ class IrActionsReport(models.Model): @api.multi def _post_pdf(self, save_in_attachment, pdf_content=None, res_ids=None): # OVERRIDE - if self.model == 'account.invoice' and res_ids and len(res_ids) == 1: - invoice = self.env['account.invoice'].browse(res_ids) - if invoice.type in ('out_invoice', 'out_refund') and invoice.state != 'draft': + if self.model == 'account.move' and res_ids and len(res_ids) == 1: + invoice = self.env['account.move'].browse(res_ids) + if invoice.is_sale_document() and invoice.state != 'draft': xml_content = invoice._export_as_facturx_xml() # Add attachment. diff --git a/addons/account_payment/controllers/payment.py b/addons/account_payment/controllers/payment.py index c3922258c6f..84b90b72c68 100644 --- a/addons/account_payment/controllers/payment.py +++ b/addons/account_payment/controllers/payment.py @@ -19,7 +19,7 @@ class PaymentPortal(http.Controller): :return html: form containing all values related to the acquirer to redirect customers to the acquirer website """ - invoice_sudo = request.env['account.invoice'].sudo().browse(invoice_id) + invoice_sudo = request.env['account.move'].sudo().browse(invoice_id) if not invoice_sudo: return False @@ -63,7 +63,7 @@ class PaymentPortal(http.Controller): if access_token: params['access_token'] = access_token - invoice_sudo = request.env['account.invoice'].sudo().browse(invoice_id).exists() + invoice_sudo = request.env['account.move'].sudo().browse(invoice_id).exists() if not invoice_sudo: params['error'] = 'pay_invoice_invalid_doc' return request.redirect(_build_url_w_params(error_url, params)) diff --git a/addons/account_tax_python/models/account_tax.py b/addons/account_tax_python/models/account_tax.py index 883944271ae..0b559fb8360 100644 --- a/addons/account_tax_python/models/account_tax.py +++ b/addons/account_tax_python/models/account_tax.py @@ -36,7 +36,7 @@ class AccountTaxPython(models.Model): return super(AccountTaxPython, self)._compute_amount(base_amount, price_unit, quantity, product, partner) @api.multi - def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False): + def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True): taxes = self.filtered(lambda r: r.amount_type != 'code') company = self.env.company for tax in self.filtered(lambda r: r.amount_type == 'code'): @@ -45,7 +45,7 @@ class AccountTaxPython(models.Model): safe_eval(tax.python_applicable, localdict, mode="exec", nocopy=True) if localdict.get('result', False): taxes += tax - return super(AccountTaxPython, taxes).compute_all(price_unit, currency, quantity, product, partner, is_refund=is_refund) + return super(AccountTaxPython, taxes).compute_all(price_unit, currency, quantity, product, partner, is_refund=is_refund, handle_price_include=handle_price_include) class AccountTaxTemplatePython(models.Model): diff --git a/addons/account_test/report/report_account_test.py b/addons/account_test/report/report_account_test.py index cc4ee6bbe01..546c58208c5 100644 --- a/addons/account_test/report/report_account_test.py +++ b/addons/account_test/report/report_account_test.py @@ -19,7 +19,7 @@ class ReportAssertAccount(models.AbstractModel): """ returns the list of invoices that are set as reconciled = True """ - return self.env['account.invoice'].search([('reconciled', '=', True)]).ids + return self.env['account.move'].search([('reconciled', '=', True)]).ids def order_columns(item, cols=None): """ diff --git a/addons/account_voucher/README.md b/addons/account_voucher/README.md deleted file mode 100644 index 65a2e761f67..00000000000 --- a/addons/account_voucher/README.md +++ /dev/null @@ -1,41 +0,0 @@ -Odoo Invoicing --------------- - -Send professional invoices & get paid online with the Odoo -<a href="https://www.odoo.com/page/billing">billing software</a>. - -Create and send professional looking invoices & get paid online. It -automatically integrates with other apps to bill automatically based on your -activities. - -Send Invoices With No Effort ----------------------------- - -Send invoices directly to your clients in just a click. The invoice is -automatically attached to the email as a PDF file. - -Get Paid Faster with Electronic invoicing ------------------------------------------ - -Get paid online with paypal or other payment processing service. Get rid of the -stress of having to constantly remind your debtors. Simply set-up and automate -follow-ups to get paid quickly. - -Connect Your Bank Accounts --------------------------- - -Import your bank statements and reconcile them in just a few clicks. Prepare -payment orders based on your supplier invoices and payment terms. - -Analyse Your Sales & Costs --------------------------- - -Get direct access to key information with dynamic and customizable dashboards. -Analyse your invoicing by product, customer, salesperson, etc. - -Integration With Other Apps ---------------------------- - -Bill automatically based on sales orders, delivery orders, contracts or on time -and material. Define recurrencies to produce recurring invoice automatically. - diff --git a/addons/account_voucher/__init__.py b/addons/account_voucher/__init__.py deleted file mode 100644 index dc5e6b693d1..00000000000 --- a/addons/account_voucher/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from . import models diff --git a/addons/account_voucher/__manifest__.py b/addons/account_voucher/__manifest__.py deleted file mode 100644 index cd227a6d67a..00000000000 --- a/addons/account_voucher/__manifest__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -{ - 'name' : 'Sales & Purchases Receipts', - 'version' : '1.0', - 'summary': 'Manage your debts and credits thanks to simple sale/purchase receipts', - 'description': """ -This module allows you recording sales and purchases receipts. Receipts are useful when the payment is done directly. Thanks to the receipts, no need to encode an invoice and a payment, the receipt is enough. - """, - 'category': 'Accounting', - 'sequence': 20, - 'depends' : ['account'], - 'demo' : [], - 'data' : [ - 'security/ir.model.access.csv', - 'views/account_voucher_views.xml', - 'security/account_voucher_security.xml', - 'data/account_voucher_data.xml', - ], - 'auto_install': False, - 'installable': True, -} diff --git a/addons/account_voucher/data/account_voucher_data.xml b/addons/account_voucher/data/account_voucher_data.xml deleted file mode 100644 index e2407e8c22a..00000000000 --- a/addons/account_voucher/data/account_voucher_data.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<odoo> - <data noupdate="1"> - - <!-- Voucher-related subtypes for messaging / Chatter --> - <record id="mt_voucher_state_change" model="mail.message.subtype"> - <field name="name">Status Change</field> - <field name="res_model">account.voucher</field> - <field name="default" eval="False"/> - <field name="description">Status changed</field> - </record> - - </data> -</odoo> diff --git a/addons/account_voucher/i18n/account_voucher.pot b/addons/account_voucher/i18n/account_voucher.pot deleted file mode 100644 index 3bd1631d5e3..00000000000 --- a/addons/account_voucher/i18n/account_voucher.pot +++ /dev/null @@ -1,676 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" - diff --git a/addons/account_voucher/i18n/af.po b/addons/account_voucher/i18n/af.po deleted file mode 100644 index f31143145da..00000000000 --- a/addons/account_voucher/i18n/af.po +++ /dev/null @@ -1,556 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -# Andre de Kock <adekock11@gmail.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Andre de Kock <adekock11@gmail.com>, 2017\n" -"Language-Team: Afrikaans (https://www.transifex.com/odoo/teams/41243/af/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: af\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Bedrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Kanselleer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Gekanselleer" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Maatskappy" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Geskep deur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Geskep op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Geldeenheid" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klient" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Beskrywing" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Vertoningsnaam" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Groepeer deur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Laas Gewysig op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Laas Opgedateer deur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Laas Opgedateer op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Vennoot" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produk" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Hoeveelheid" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Volgorde" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Stand" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Totaal" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Soort" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Bevestig" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/am.po b/addons/account_voucher/i18n/am.po deleted file mode 100644 index f9a900ad9d9..00000000000 --- a/addons/account_voucher/i18n/am.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Amharic (https://www.transifex.com/odoo/teams/41243/am/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: am\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "መሰረዝ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "ተሰርዟል" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "ድርጅት" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "ገንዘብ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "ተባባሪ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "ማብራርያ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "በመደብ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "ተባባሪ" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "እቃ" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "ብዛት" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "ቅደም ተከተል" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "ሁኔታው" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "የአንዱ ዋጋ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/ar.po b/addons/account_voucher/i18n/ar.po deleted file mode 100644 index 3edd2d2c24f..00000000000 --- a/addons/account_voucher/i18n/ar.po +++ /dev/null @@ -1,708 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Mustafa Rawi <mustafa@cubexco.com>, 2018 -# Mustafa J. Kadhem <safi2266@gmail.com>, 2018 -# Sadig Adam <sadig41@gmail.com>, 2018 -# amrnegm <amrnegm.01@gmail.com>, 2018 -# Martin Trigaux, 2018 -# hoxhe Aits <hoxhe0@gmail.com>, 2018 -# hamza tayseer atieh <hamza.atieh@minervadata.com>, 2018 -# Osoul <baruni@osoul.ly>, 2018 -# Mohammed Albasha <m.albasha.ma@gmail.com>, 2018 -# Mohammed Ibrahim <m.ibrahim@mussder.com>, 2018 -# Ghaith Gammar <g.gammar@saharaifs.net>, 2018 -# Osama Ahmaro <osamaahmaro@gmail.com>, 2018 -# amal ahmed <amalalhashemy88@hotmail.com>, 2018 -# Abd El-Rahman Ali <abdelrahman.ali.242@gmail.com>, 2018 -# Shaima Safar <shaima.safar@open-inside.com>, 2018 -# Ahmed Yousif <ahmed.yousif@outlook.com>, 2018 -# Husam Migdadi <samwatson18@gmail.com>, 2018 -# Mostafa Hanafy <mostafa.s.hanafy@gmail.com>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: Mostafa Hanafy <mostafa.s.hanafy@gmail.com>, 2018\n" -"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* تستخدم الحالة `مسودة` عندما يشفر المستخدم قسيمة جديدة.\n" -"* تستخدم الحالة Pro-forma عندما لاتحوي القسيمة رقما\n" -"* تستخدم الحالة `مرسل` عند انشاء المستخدم لقسيمة، ويولد رقم للقسيمة ويتم انشاء مدخلات القسيمة في حساب\n" -"* تستخدم الحالة `ملغاة عندما يلغي المستخدم القسيمة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "الحساب" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "تاريخ القيد" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "تاريخ المحاسبة" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "السند المحاسبي" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "الإجراء المطلوب" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "القيمة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "الحساب التحليلي" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "الوسوم التحليلية" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "هل ترغب حقاً في إلغاء هذا الإيصال؟" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "عدد المرفقات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "تاريخ الفاتورة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "بيانات الوثيقة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "مرجع الفاتورة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "إلغاء" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "إلغاء الإيصال" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "ملغي" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "لا يمكن حذف قسيمة (s) التي تم فتحها بالفعل أو المدفوعة." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "المؤسسة" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "الشركات المرتبطة بهذه اليومية" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "أنشئ بواسطة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "أنشئ في" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "العملة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "العميل" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "التاريخ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "الوصف" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "اسم العرض" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "مسودة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "القسائم الإفتراضية" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "تاريخ الاستحقاق" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "تاريخ فعال للمدخلات المحاسبية" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "المتابعون" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "المتابعون (القنوات)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "المتابعون (الشركاء)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "يعطي تسلسل لهذا السطر عندما يتم عرض الايصال" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "تجميع حسب" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "المعرف" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "إذا حددته، سيتم إخطارك بالرسائل الجديدة." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "إذا حددته، سيتم إخطارك بالرسائل الجديدة." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "إذا تم تحديده ، فإن بعض الرسائل بها خطأ في التسليم." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "في حالة وجود مشكلة بالتقريب للضريبة استخدم هذا الحقل لتصحيحه" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "ملاحظات داخلية" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "متابع" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "دفتر اليومية" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "قيد يومية" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "عناصر اليومية" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "آخر تحديث بواسطة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "آخر تحديث في" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "المرفق الرئيسي" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "خطأ في تسليم الرسائل" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "الرسائل" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "ملاحظات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "الرقم" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "عدد الإجراءات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "عدد الاخطاء" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "عدد الرسائل التي تتطلب اجراء" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "عدد الرسائل مع خطأ في التسليم" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "عدد الرسائل الجديدة" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "السعر لا يشمل الضريبة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "مدفوع" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "الشريك" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "الدفع مباشرة" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "الدفع لاحقاً" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "دفع" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "طرق السداد" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "الرجاء تفعيل التسلسل لليومية المختارة!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "من فضلك حدد تسلسل في دفتر اليومية." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "تم" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "نشر القسيمة" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "أولى" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "المنتج" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "الشراء" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "ايصال الشراء" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "قسائم الشراء" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "الكمية" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "الإيصالات" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "المبيعات" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "بيانات المبيعات" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "استلام المبيعات" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "بحث الإيصالات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "التسلسل" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "تعيين كمسودة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "الحالة" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "تغيير الحالة" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "الحالة تغيرت" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "الضريبة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "قيمة الضريبة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "تصحيح الضريبة" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "لقد تم دفع القسيمة بالكامل" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "حساب الايراد أو حساب المصروف مرتبط بالمنتج المُختار." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "مرجع الشريك لهذا المستند" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "للمراجعة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "الإجمالي" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "إجمالي المبلغ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "النوع" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "سعر الوحدة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "الرسائل الجديدة" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "عدد الرسائل الجديدة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "اعتماد" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "المورّد" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "ايصال المجهز" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "قيد" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "قيود الإيصال" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "خطوط القسيمة" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "احصائيات القسيمة" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "قيود الإيصالات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "رسائل الموقع" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "سجل تواصل الموقع" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"عند تاكييد وصل الشراء يمكنك تسجيل\n" -"دفعة المجهز المتعلقة بوصل الشراء هذا." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"عند تأكييد وصل البيع يمكنك تسجيل دفعة العميل \n" -"المتعلقة بوصل البيع هذا." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/az.po b/addons/account_voucher/i18n/az.po deleted file mode 100644 index 4b90f83a638..00000000000 --- a/addons/account_voucher/i18n/az.po +++ /dev/null @@ -1,679 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Language-Team: Azerbaijani (https://www.transifex.com/odoo/teams/41243/az/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: az\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/bg.po b/addons/account_voucher/i18n/bg.po deleted file mode 100644 index 27253dd668f..00000000000 --- a/addons/account_voucher/i18n/bg.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Bulgarian (https://www.transifex.com/odoo/teams/41243/bg/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: bg\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Аналитична сметка" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Откажи" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Отказанa" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Фирма" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Създадено от" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Създадено на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Валута" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Клиент" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Описание" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Име за показване" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Групиране по" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Последно променено на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Последно обновено от" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Последно обновено на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Партньор" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Продукт" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Количество" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Последователност" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Състояние" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Общо" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Единична цена" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/bs.po b/addons/account_voucher/i18n/bs.po deleted file mode 100644 index 3a189f35a32..00000000000 --- a/addons/account_voucher/i18n/bs.po +++ /dev/null @@ -1,684 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Boško Stojaković <bluesoft83@gmail.com>, 2018 -# Bole <bole@dajmi5.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Bole <bole@dajmi5.com>, 2018\n" -"Language-Team: Bosnian (https://www.transifex.com/odoo/teams/41243/bs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: bs\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Datum knjiženja" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Račun knjigovodstva" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Potrebna akcija" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analitički konto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analitičke oznake" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Jeste li sigurni da želite otkazati ovu potvrdu?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Broj zakački" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Datum računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informacije računa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referenca računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Otkaži" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Otkaži račun" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Otkazan" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Otvorene ili plaćene račune nije moguće izbrisati." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Kompanija" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Kompanija za koju se vodi ovaj dnevnik" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Kreirao" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Kreirano" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kupac" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Opis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Prikazani naziv" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "U pripremi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Računi u pripremi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Datum dospijeća" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Efektivni datum za računovodstvene zapise" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Pratioci" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Pratioci (Kanali)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Pratioci (Partneri)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupiši po" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Ako je označeno nove poruke će zahtjevati vašu pažnju." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Ako je zakačeno, nove poruke će zahtjevati vašu pažnju" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne zabilješke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Je pratilac" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Dnevnik knjiženja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Dnevnički zapis" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Stavke dnevnika" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Zadnje mijenjano" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Zadnji ažurirao" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Zadnje ažurirano" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Glavna zakačka" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Poruke" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Zabilješke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Broj" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Broj akcija" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Broj poruka koje zahtjevaju neku akciju" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Broj nepročitanih poruka" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Samo za porez koji nije u cijeni" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Plaćeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Plati direktno" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Plaćanje" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Metoda plaćanja" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Molimo aktivirajte sekvencu odabrnog dnevnika!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Molimo definišite sekvencu na dnevniku." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Proknjižen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Knjiženi računi" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Proizvod" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Nabava" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Računi nabavke" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Račun nabavke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Količina" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Prijemi" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Prodaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informacije o prodaji" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Račun prodaje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Pretraži račune" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sekvenca" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Postavi u pripremu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Promjena statusa" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Promijenjen status" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Porez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Iznos poreza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Račun je plaćen u potpunosti." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Račun prihoda ili troškova vezan za odabrani proizvod." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Za provjeru" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Ukupno" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Ukupan iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tip" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Jedinična cijena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Nepročitane poruke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Brojač nepročitanih poruka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Odobri" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Dobavljač" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Račun" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Stavke računa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Stavke računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistika računa" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Zapisi računa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Poruke sa website-a" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ca.po b/addons/account_voucher/i18n/ca.po deleted file mode 100644 index 96173b7ecbe..00000000000 --- a/addons/account_voucher/i18n/ca.po +++ /dev/null @@ -1,699 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Manel Fernandez <manelfera@outlook.com>, 2019 -# Martin Trigaux, 2019 -# Marc Tormo i Bochaca <mtbochaca@gmail.com>, 2019 -# RGB Consulting <odoo@rgbconsulting.com>, 2019 -# Quim - eccit <quim@eccit.com>, 2019 -# Sandra Franch <sandra.franch@upc.edu>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Sandra Franch <sandra.franch@upc.edu>, 2019\n" -"Language-Team: Catalan (https://www.transifex.com/odoo/teams/41243/ca/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ca\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* L'estat 'Esborrany' s'utilitza quan un usuari està introduint un nou i no confirmat comprovant.\n" -"* 'Proforma' s'estableix quan el comprovant està en estat proforma. El comprovant encara no té un número de comprovant.\n" -"* L'estat 'Assegut' s'utilitza quan l'usuari confirma el comprovant, assignant un número de comprovant i creant-li els assentaments comptables.\n" -"* L'estat 'Cancel·lat' s'utilitza quan l'usuari cancel·la el comprovant." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Compte" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Data del compte" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Data comptable" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Comprovants comptables" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Cal fer alguna acció" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Import" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Compte analític" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Etiquetes analítiques" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Està segur que desitja cancel·lar aquest rebut?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Nombre d'adjunts" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data de factura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informació de la factura" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referència de factura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancel·la" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Cancel·lar rebut" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancel·lat" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "No es pot esborrar comprovants que ja estan oberts o pagats." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Companyia" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Empresa relacionada amb aquest diari" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Creat per" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Creat el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Client" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descripció" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Mostrar Nom" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Esborrany" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Comprovant esborrany" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Data de venciment" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Data efectiva per entrades comptables." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Seguidors" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Seguidors (Canals)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seguidors (Clients)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Dona la seqüència d'aquesta línia quan es visualitza al comprovant." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar per" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Si està marcat, els nous missatges requereixen la vostra atenció" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Si està marcat, els nous missatges requereixen la vostra atenció" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Si està marcat, alguns missatges tenen un error d'entrega." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"En cas de tenir un problema d'arrodoniment a l'impost, utilitzi aquest camp " -"per corregir-lo." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Notes internes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "És seguidor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Diari" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Assentament comptable" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Apunts comptables" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Última modificació el " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Última actualització per" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Última actualització el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Adjunt principal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Error d'entrega del missatge" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Missatges" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Número" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Nombre d'accions" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Nombre d'errors" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Nombre de missatges que requereixen una acció" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Nombre de missatges amb error d'entrega" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Nombre de missatges no llegits" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Només per impostos exclosos del preu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Pagat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Paga directament" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Paga més tard" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Pagament" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Mètode de pagament" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Activi, si us plau, la seqüència del diari seleccionat!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Defineixi si us plau una seqüència al diari." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Fixat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Comprovant assentats" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Producte" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Rebut de compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Comprovant de compra" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Quantitat" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Recepcions" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Venda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informació de vendes" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Rebut de vendes" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Cerca comprovants" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Seqüència" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Canvia a esborrany" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estat" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Canvi d'estat" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Estat canviat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Impost" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Import de l'impost" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Correcció de l'impost" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "El comprovant ha estat totalment pagat" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" -"El compte d'ingressos o despeses relacionada amb el producte seleccionat." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "La referència externa d'aquest document." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Per revisa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Import total" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tipus" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Preu un." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Missatges pendents de llegir" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Comptador de missatges no llegits" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Proveïdor " - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Comprovant del venedor" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Comprovant" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Comprovants" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Línies de comprovant" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Estadístiques de comprovants" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Comprovants" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Missatges de la pàgina web" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Historial de comunicacions del lloc web" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Quan un rebut de compra està confirmat, vostè pot registrar el pagament al " -"proveïdor relacionat amb aquest rebut de compra" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Quan el rebut de venda és confirmat, vostè pot registrar el pagament del " -"client relacionat amb aquest rebut de venda." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/cs.po b/addons/account_voucher/i18n/cs.po deleted file mode 100644 index c08372d578f..00000000000 --- a/addons/account_voucher/i18n/cs.po +++ /dev/null @@ -1,694 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Jaroslav Helemik Nemec <nemec@helemik.cz>, 2018 -# Jakub Lohnisky <jakub@lepremier.cz>, 2018 -# Ladislav Tomm <tomm@helemik.cz>, 2018 -# Jan Horzinka <jan.horzinka@centrum.cz>, 2018 -# Michal Veselý <michal@veselyberanek.net>, 2018 -# milda dvorak <milda.dvorak@optimal4.cz>, 2018 -# trendspotter <j.podhorecky@volny.cz>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: trendspotter <j.podhorecky@volny.cz>, 2018\n" -"Language-Team: Czech (https://www.transifex.com/odoo/teams/41243/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: cs\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * Stav 'Koncept' se používá, když uživatel zadá nový a nepotvrzený poukaz\n" -" * 'Proforma' je použita, pokud poukaz nemá vygenerováno číslo poukázky.\n" -" * Stav 'Odeslané' se používá, když uživatel vytvoří poukaz, vygeneruje se číslo poukázky a na účtu jsou vytvořeny položky poukazu.\n" -" * Stav 'Zrušeno' se používá, když uživatel zruší poukaz." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Účet" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Datum účtu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Datum účtování" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Vyžaduje akci" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Částka" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analytický účet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analytické značky" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Opravdu chcete zrušit tuto účtenku?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Počet příloh" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Datum dokladu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Údaje dokladu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Zrušit" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Zrušit účtenku" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Zrušeno" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Nelze smazat poukázku(y), které již byly otevřeny nebo zaplaceny." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Firma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Společnost vztažená k této knize" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Vytvořil(a)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Vytvořeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Měna" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Zákazník" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Popis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Zobrazovaný název" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Návrh" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Koncepty účtenek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Termín splnění" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Sledující" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Seskupit podle" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Pokud je zaškrtnuto, nové zprávy vyžadují vaši pozornost." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Pokud je zaškrtnuto, nové zprávy vyžadují vaši pozornost." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Pokud je zaškrtnuto, některé zprávy mají chybu při doručení." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interní poznámky" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Deník" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Položka deníku" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Položky deníku" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Naposled změněno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Naposledy upraveno od" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Naposled upraveno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Hlavní příloha" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Chyba při doručování zpráv" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Zprávy" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "Chybějící společnost" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Poznámky" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Číslo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Počet akcí" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Počet chyb" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Počet zpráv, které vyžadují akci" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Počet zpráv s chybou při doručení" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Počet nepřečtených zpráv" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Uhrazeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Kontakt" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Uhrazeno přímo" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Platba" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Způsob platby" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Prosím aktivujte posloupnost zvoleného deníku!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Prosím určete posloupnost deníku." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Vloženo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Výrobek" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Nákup" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Nákupní účtenka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Množství" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Účtenky" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Prodej" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Údaje prodeje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Účtenka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Číselná řada" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Uložit jako koncept" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Stav" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Změna stavu" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Stav změněn" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Daň" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Výše daně" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Příjmový a výdajový účet vztažený k vybranému výrobku." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Ke kontrole" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Celkem" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Celková částka" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Typ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Jednotková cena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Nepřečtené zprávy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Počítadlo nepřečtených zpráv" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Schválit" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Dodavatel" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Zprávy Webové stránky" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Historie komunikace Webové stránky" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Nejprve musíte vybrat partnera." diff --git a/addons/account_voucher/i18n/da.po b/addons/account_voucher/i18n/da.po deleted file mode 100644 index f3b219db7cf..00000000000 --- a/addons/account_voucher/i18n/da.po +++ /dev/null @@ -1,699 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# peso <peer.sommerlund@gmail.com>, 2018 -# Martin Trigaux, 2018 -# Hans Henrik Gabelgaard <hhg@gabelgaard.org>, 2018 -# Morten Schou <ms@msteknik.dk>, 2018 -# Jesper Carstensen <jc@danodoo.dk>, 2018 -# Jesper Carstensen <info@danodoo.dk>, 2018 -# Ronni Poulsen <rp@flexonet.dk>, 2018 -# Pernille Kristensen <pernillekristensen1994@gmail.com>, 2018 -# Sanne Kristensen <sanne@vkdata.dk>, 2018 -# Ejner Sønniksen <ejner@vkdata.dk>, 2018 -# lhmflexerp <lhm@flexerp.dk>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: lhmflexerp <lhm@flexerp.dk>, 2018\n" -"Language-Team: Danish (https://www.transifex.com/odoo/teams/41243/da/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: da\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Konto dato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Bogføringsdato" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Bogføringsbilag" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Handling påkrævet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Beløb" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analyse konto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analytiske tags" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Er du sikker på du vil annullere dette bilag?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Antal vedhæftninger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Bilagsdato" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Bilagsinformation" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Bilagsreference" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annuller" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Annuller bilag" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Annulleret" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Kan ikke slette bilag der er åbne eller betalt." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Virksomhed" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Virksomhed knyttet til denne konto" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Oprettet af" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Oprettet den" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kunde" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Beskrivelse" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Vis navn" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Udkast" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Kladdebilag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Forfaldsdato" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Bogføringsdato for regnskabs transaktioner" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Følgere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Følgere (kanaler)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Følgere (partnere)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Sortér efter" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Hvis afmærket, kræver nye beskeder din opmærksomhed" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Hvis afmærket, kræver nye beskeder din opmærksomhed " - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Hvis afkrydset har nogle beskeder en leveringsfejl" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Hvis der er et afrundingsproblem med momsen, brug dette felt for at rette " -"det" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne noter" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Er følger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Journal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Postering" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Journalposter" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Sidst ændret den" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Sidst opdateret af" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Sidst opdateret den" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Primær vedhæftning" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Besked leveringsfejl" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Beskeder" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Noter" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Nummer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Antal handlinger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Antal fejl" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Antal meddelser der kræver handling" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Antal beskeder med leveringsfejl" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Antal ulæste beskeder" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Betalt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Kontakt" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Betal direkte" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Betal senere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Betaling" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Betalingsmetode" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Vælg en bilagsserie på journalen" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Bogført" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Bogførte bilag" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Indkøb" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Indkøbskvittering" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Købsbilag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Antal" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Varemodtagelse" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Salg" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Salgsinformation" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Salgs kvittering" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Søg bilag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sekvens" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Sæt til kladde" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Status ændring" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status ændret" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Moms" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Momsbeløb" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Momskorrektion" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Bilaget er betalt fuldt ud." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Indtægts- eller udgiftskontoen relateret til det valgte produkt." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Partner referencen for dette dokument." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Til gennemgang" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "I alt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Beløb i alt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Type" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Enhedspris" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Ulæste beskeder" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Ulæste besked tæller" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validér" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Leverandør" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Leverandørbilag" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Bilag" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Bilagsposteringer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Bilagslinjer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Bilagsstatistik" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Bilagsposteringer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Website beskeder" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Website kommunikations historik" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Når indkøbet er bekræftet, kan du indtaste\n" -" leverandørbetalingen relateret til dette indkøb." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Når salget er bekræftet, kan du indtaste\n" -" kundebetalingen relateret til dette salg." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/de.po b/addons/account_voucher/i18n/de.po deleted file mode 100644 index 1ae8a8345b0..00000000000 --- a/addons/account_voucher/i18n/de.po +++ /dev/null @@ -1,695 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Johannes Croe <jcr@odoo.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Johannes Croe <jcr@odoo.com>, 2018\n" -"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * Ein Zahlungsbeleg befindet sich nach der Erstellung zunächst im \"Entwurf\".\n" -"* Durch Änderung auf den Status \"Pro-Forma\", wird der Status geändert, aber keine Belegnummer vergeben.\n" -"* Der Status \"Gebucht\" wird angewendet, wenn ein Benutzer einen Zahlungsbeleg mitsamt Belegnummer vollständig gebucht hat.\n" -"* Der Zustand \"Abgebrochen\" kennzeichnet den Abbruch eines Zahlungsbelegs." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Buchungsdatum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Buchungsdatum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Buchung Zahlungsbelege" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Aktion notwendig" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Betrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analysekonto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Kostenstellen Tags" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Sind Sie sicher, dass Sie diesen Beleg löschen wollen ?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "# Anhänge" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Rechnungsdatum" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Rechnungsinformationen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Belegreferenz" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Abbrechen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Zahlungseinzug abbrechen" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Abgebrochen" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Offene oder bezahlte Belege können nicht storniert werden" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Unternehmen" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Unternehmen für dieses Journal" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Erstellt von" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Erstellt am" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Währung" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kunde" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Beschreibung" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Anzeigename" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Entwurf" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Belegentwurf" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Fälligkeit" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Tatsächliches Buchungsdatum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Abonnenten" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Abonnenten (Kanäle)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Abonnenten (Partner)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Liefert die Reihenfolge dieser Position bei Anzeige des Belegs." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Gruppieren nach" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Falls markiert, benötigen neue Nachrichten Ihre Kenntnisnahme." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Falls markiert, benötigen neue Nachrichten Ihre Kenntnisnahme." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" -"Das Senden mancher Nachrichten ist fehlgeschlagen wenn dieses Fenster " -"angekreuzt ist." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Nutzen Sie dieses Feld zur Korrektur von Rundungsdifferenzen bei der " -"Steuerermittelung" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne Notizen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Ist ein Abonnent" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Journal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Buchungssatz" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Buchungszeilen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Zuletzt geändert am" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Zuletzt aktualisiert durch" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Zuletzt aktualisiert am" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Hauptanhänge" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Error beim senden der Nachricht" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Nachrichten" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notizen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Nummer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Anzahl der Aktionen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Fehlernummer" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Anzahl der Nachrichten, die eine Aktion erfordern" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Anzahl der Nachrichten mit einem Fehler beim Senden." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Anzahl ungelesener Nachrichten" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Nur für Steuern ohne Preis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Bezahlt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Einzahlung sofort buchen" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Später zahlen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Zahlung" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Zahlungsmethode" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Bitte aktivieren Sie die Nummernfolge für das gewählte Journal !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Definieren Sie eine Nummernfolge für das Journal." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Gebucht" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Verbuchte Belege" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Einkauf" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Einkauf Bestätigung" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Einkaufsbelege" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Menge" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Anlieferungen" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Verkauf" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Information Umsatz" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Buchen von Einnahmen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Zahlungsbelege suchen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Reihenfolge" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Auf Entwurf setzen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Statusänderung" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status geändert" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Steuer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Steuerbetrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Steuerkorrektur" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Der Beleg wurde vollständig bezahlt" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Aufwand- und Erlöskonto des gewählten Produktes" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Referenz des Partners zu diesem Dokument." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Zu Prüfen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Gesamtbetrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Typ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Preis pro ME" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Ungelesene Nachrichten" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Zähler der ungelesenen Nachrichten" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Bestätigen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Lieferant" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Lieferantenbelege" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Zahlungsbeleg" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Zahlungsbeleg Buchungen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Zahlungspositionen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistik Zahlungsbelege" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Zahlungsbuchungen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Website-Nachrichten" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Website-Kommunikationshistorie" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Wenn der Einkaufsbeleg bestätigt wird, können Sie den Zahlungsausgang zu " -"diesem Beleg erfassen." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Wenn der Verkaufsbeleg bestätigt wird, können Sie den Zahlungseingang zu " -"diesem Beleg erfassen." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/el.po b/addons/account_voucher/i18n/el.po deleted file mode 100644 index 27ba0cf970e..00000000000 --- a/addons/account_voucher/i18n/el.po +++ /dev/null @@ -1,691 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Kostas Goutoudis <goutoudis@gmail.com>, 2018 -# Stefanos Nikou <stefanos.nikou@gmail.com>, 2018 -# George Tarasidis <george_tarasidis@yahoo.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: George Tarasidis <george_tarasidis@yahoo.com>, 2018\n" -"Language-Team: Greek (https://www.transifex.com/odoo/teams/41243/el/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: el\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Λογαριασμός" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Λογαριασμού Ημερομηνία " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Ημερ. Λογιστικής" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Παραστατικό Λογιστικής" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Απαιτείται ενέργεια" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Ποσό" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Αναλυτικός Λογαριασμός" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Ετικέτες Αναλυτικής" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Σίγουρα θέλετε να καταργήσετε αυτή την απόδειξη;" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Ημερ. Χρέωσης" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Πληροφορίες Λογαριασμού" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Αναφορά Χρέωσης" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Ακύρωση" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Ακύρωση Απόδειξης" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Ακυρώθηκε" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" -"Δεν είναι δυνατή η διαγραφή των παραστατικών που είναι ήδη ανοιχτά ή " -"εξοφλημένα." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Εταιρία" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Η εταιρία που σχετίζεται με το ημερολόγιο" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Δημιουργήθηκε από" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Δημιουργήθηκε στις" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Νόμισμα" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Πελάτης" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Ημερομηνία" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Περιγραφή" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Εμφάνιση Ονόματος" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Προσχέδιο" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Πρόχειρα Παραστατικά" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Ημερ. Λήξης" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Ημερομηνία έναρξης ισχύος για λογιστικές εγγραφές" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Ακόλουθοι" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Ακόλουθοι (Κανάλια)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Ακόλουθοι (Συνεργάτες)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Ομαδοποίηση κατά" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Κωδικός" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Εάν επιλεγεί τα νέα μηνύματα χρειάζονται την προσοχή σας" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Εάν επιλεγεί τα νέα μηνύματα χρειάζονται την προσοχή σας." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Εσωτερικά Σημειώματα" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Είναι Ακόλουθος" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Ημερολόγιο" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Εγγραφή Ημερολογίου" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Εγγραφές Ημερολογίων" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Τελευταία τροποποίηση στις" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Τελευταία Ενημέρωση από" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Τελευταία Ενημέρωση στις" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Μηνύματα" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Σημειώσεις" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Αριθμός" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Πλήθος ενεργειών" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Πλήθος μηνυμάτων που απαιτούν ενέργεια" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Πλήθος μη αναγνωσμένων μηνυμάτων" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Μόνο για φόρους εξαιρούμενους από την τιμή" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Εξοφλημένη" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Συναλλασόμενος" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Απευθείας Πληρωμή" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Πληρωμή" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Μέθοδος Πληρωμής" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Παρακαλώ ενεργοποιήστε την ακολουθία του επιλεγμένου ημερολογίου !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Παρακαλώ ορίστε μια αλληλουχία στο ημερολόγιο." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Καταχωρημένη" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Καταχωρημένα Παραστατικά" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Προτιμολόγιο" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Είδος" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Αγορά" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Απόδειξη Αγοράς" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Παραστατικό Αγοράς" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Ποσότητα" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Παραλαβή" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Πώληση" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Πληροφορίες Πώλησης" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Απόδειξη Πώλησης" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Αναζήτηση Παραστατικών" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Ακολουθία" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Ορισμός σε Πρόχειρη" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Κατάσταση" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Αλλαγή Κατάστασης" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Αλλαγή κατάστασης" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Φόρος" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Ποσό Φόρου" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Το Παραστατικό έχει πλήρως εξοφληθεί. " - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Ο λογαριασμός εσόδων ή εξόδων που σχετίζεται με το επιλεγμένο είδος." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Για Επισκόπηση" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Σύνολο" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Σύνολο" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Τύπος" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Τιμή Μονάδας" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Μη αναγνωσμένα μηνύματα" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Μετρητής μη αναγνωσμένων μηνυμάτων" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Επικύρωση" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Προμηθευτής" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Παραστατικό" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Εγγραφές Παραστατικών" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Γραμμές Παραστατικού" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Στατιστικά Παραστατικού" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Καταχωρήσεις Παραστατικού" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Μηνύματα Ιστότοπου" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Ιστορικό επικοινωνίας ιστότοπου" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Όταν επιβεβαιωθεί η απόδειξη αγοράς, μπορείτε να καταγράψετε την\n" -" πληρωμή προμηθευτή σχετικά με αυτήν την απόδειξη αγοράς." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Όταν επιβεβαιωθεί η απόδειξη πώλησης, μπορείτε να καταγράψετε την πληρωμή πελατών\n" -" που σχετίζεται με αυτήν την απόδειξη πώλησης." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/en_AU.po b/addons/account_voucher/i18n/en_AU.po deleted file mode 100644 index 5e46203db14..00000000000 --- a/addons/account_voucher/i18n/en_AU.po +++ /dev/null @@ -1,553 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2015-09-19 08:18+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: English (Australia) (http://www.transifex.com/odoo/odoo-9/" -"language/en_AU/)\n" -"Language: en_AU\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Import" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancel" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Created by" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Created on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "Date" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Description" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Display Name" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Last Modified on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Last Updated by" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Last Updated on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "You must first select a partner!" diff --git a/addons/account_voucher/i18n/en_GB.po b/addons/account_voucher/i18n/en_GB.po deleted file mode 100644 index fba8a11f36d..00000000000 --- a/addons/account_voucher/i18n/en_GB.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: English (United Kingdom) (https://www.transifex.com/odoo/teams/41243/en_GB/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: en_GB\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Analytic Account" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancel" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelled" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Company" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Created by" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Created on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Currency" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Customer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Description" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Display Name" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Group By" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Last Modified on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Last Updated by" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Last Updated on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Product" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Quantity" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Sequence" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Unit Price" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es.po b/addons/account_voucher/i18n/es.po deleted file mode 100644 index c94151ae53d..00000000000 --- a/addons/account_voucher/i18n/es.po +++ /dev/null @@ -1,713 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Leonardo Chianea <noamixcontenidos@gmail.com>, 2016 -# David Perez <david@closemarketing.es>, 2016 -# Luis M. Triana <luis.triana@jarsa.com.mx>, 2016 -# Carles Antoli <carlesantoli@hotmail.com>, 2016 -# Antonio Trueba, 2016 -# Ivan Nieto <ivan.n.s@tuta.io>, 2016 -# Mateo Tibaquirá Palacios <nestormateo@gmail.com>, 2016 -# Luis M. Ontalba <luis.martinez@tecnativa.com>, 2016 -# Christopher Ormaza <chris.ormaza@gmail.com>, 2017 -# Pedro M. Baeza <pedro.baeza@gmail.com>, 2018 -# Ana Juaristi <ajuaristio@gmail.com>, 2018 -# oihane <oihanecruce@gmail.com>, 2018 -# Javier Ramirez <elbomba887@gmail.com>, 2018 -# José Vicente <txusev@gmail.com>, 2018 -# RGB Consulting <odoo@rgbconsulting.com>, 2018 -# Nicolás Broggi <rnbroggi@gmail.com>, 2018 -# Miquel Torner <miq@odoo.com>, 2018 -# Martin Trigaux, 2019 -# Cristopher Cravioto <ccr@odoo.com>, 2019 -# Luis Marin <marin.guadarrama@gmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Luis Marin <marin.guadarrama@gmail.com>, 2019\n" -"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* El estado 'Borrador' se usa cuando un usuario está introduciendo un nuevo y no confirmado comprobante. \n" -"* 'Pro-forma' se establece cuando el comprobante está en estado pro-forma. El comprobante aún no tiene un número de comprobante. \n" -"* El estado 'Asentado' se usa cuando el usuario confirma el comprobante, asignándole un número de comprobante y creándose los asientos contables. \n" -"* El estado 'Cancelado' se usa cuando el usuario cancela el comprobante." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Cuenta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Fecha contable" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Fecha contable" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Comprobantes contables" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Acción requerida" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Importe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Etiquetas analíticas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "¿Está seguro de que desea cancelar este recibo?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Conteo de archivos adjuntos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Fecha factura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Información factura" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referencia Factura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Cancelar recibo" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "No se pueden borrar comprobantes que ya están abiertos o pagados." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Compañía relacionada con este diario" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Fecha" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nombre a mostrar" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Borrador" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Comprobantes borrador" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Fecha vencimiento" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Fecha efectiva para entradas contables." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Seguidores" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Seguidores (Canales)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seguidores (Empresas)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Da la secuencia de esta línea cuando se visualiza en el comprobante." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Si está marcado, hay nuevos mensajes que requieren su atención" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Si está marcado hay nuevos mensajes que requieren su atención." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Si se encuentra marcado, algunos mensajes tienen error de envío." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"En caso de tener un problema de redondeo en el impuesto, use este campo para" -" corregirlo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Notas internas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Es un seguidor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Diario" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Apuntes contables" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Adjuntos principales" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Error de Envío de Mensaje" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Mensajes" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Número" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Número de acciones" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Número de error" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Número de mensajes que requieren una acción" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Número de mensajes con error de envío" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Número de mensajes no leidos" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Sólo para impuestos excluídos del precio" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Pagado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Pagar directamente" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Pagar más tarde" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Pagos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Método de pago" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "¡Active por favor la secuencia del diario seleccionado!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Por favor, defina una secuencia para el diario." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Publicado" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Comprobantes asentados" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Recibo de compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Comprobante de compra" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Recepciones" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Venta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Recibo de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Buscar comprobantes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Cambiar a borrador" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Cambio de estado" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Estado cambiado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Impuesto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Importe impuesto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Corrección del impuesto" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "El comprobante ha sido totalmente pagado" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" -"La cuenta de ingresos o gastos relacionada con el producto seleccionado." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "La referencia externa de este documento." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "A revisar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Importe total" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tipo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Precio unitario" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Mensajes sin leer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Contador de mensajes sin leer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Proveedor" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Comprobante del vendedor" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Comprobante" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Comprobantes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Líneas de comprobante" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Estadísticas de comprobantes" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Comprobantes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Mensajes del sitio web" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Historial de comunicaciones del sitio web" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Cuando una recibo de compra es confirmada, usted puede registrar\n" -"el pago al proveedor relacionado con este recibo de compra" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Cuando el recibo de venta es confirmado, usted puede registrar el pago\n" -"del cliente relacionado con este recibo de venta." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Primero debe seleccionar un Contacto" diff --git a/addons/account_voucher/i18n/es_AR.po b/addons/account_voucher/i18n/es_AR.po deleted file mode 100644 index 1187536ab9f..00000000000 --- a/addons/account_voucher/i18n/es_AR.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Argentina) (https://www.transifex.com/odoo/teams/41243/es_AR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_AR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta Analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelada" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Mostrar Nombre" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización realizada por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unitario" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_BO.po b/addons/account_voucher/i18n/es_BO.po deleted file mode 100644 index 5700a51c541..00000000000 --- a/addons/account_voucher/i18n/es_BO.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Bolivia) (https://www.transifex.com/odoo/teams/41243/es_BO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_BO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Divisa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unidad" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_CL.po b/addons/account_voucher/i18n/es_CL.po deleted file mode 100644 index e9c07ec1566..00000000000 --- a/addons/account_voucher/i18n/es_CL.po +++ /dev/null @@ -1,556 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -# Daniel Santibáñez Polanco <dansanti@gmail.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Daniel Santibáñez Polanco <dansanti@gmail.com>, 2017\n" -"Language-Team: Spanish (Chile) (https://www.transifex.com/odoo/teams/41243/es_CL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_CL\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID (identificación)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Venta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio un." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_CO.po b/addons/account_voucher/i18n/es_CO.po deleted file mode 100644 index c2a52ffdde4..00000000000 --- a/addons/account_voucher/i18n/es_CO.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Colombia) (https://www.transifex.com/odoo/teams/41243/es_CO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_CO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta Analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado(a)" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nombre Público" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Última Modificación el" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Actualizado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Actualizado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Asociado" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de Ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio Unitario" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_CR.po b/addons/account_voucher/i18n/es_CR.po deleted file mode 100644 index 974219c48f3..00000000000 --- a/addons/account_voucher/i18n/es_CR.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Costa Rica) (https://www.transifex.com/odoo/teams/41243/es_CR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_CR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelada" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unidad" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_DO.po b/addons/account_voucher/i18n/es_DO.po deleted file mode 100644 index e904a521cf6..00000000000 --- a/addons/account_voucher/i18n/es_DO.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/odoo/teams/41243/es_DO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_DO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelada" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID (identificación)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unidad" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_EC.po b/addons/account_voucher/i18n/es_EC.po deleted file mode 100644 index 92e983df9a1..00000000000 --- a/addons/account_voucher/i18n/es_EC.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Ecuador) (https://www.transifex.com/odoo/teams/41243/es_EC/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_EC\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por:" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nombre a Mostrar" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Fecha de modificación" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Ultima Actualización por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Actualizado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de Ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unitario" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_PA.po b/addons/account_voucher/i18n/es_PA.po deleted file mode 100644 index d02aa14f61e..00000000000 --- a/addons/account_voucher/i18n/es_PA.po +++ /dev/null @@ -1,553 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2015-09-19 08:18+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: Spanish (Panama) (http://www.transifex.com/odoo/odoo-9/" -"language/es_PA/)\n" -"Language: es_PA\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "Pago" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Tipo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_PE.po b/addons/account_voucher/i18n/es_PE.po deleted file mode 100644 index 750771fb6ed..00000000000 --- a/addons/account_voucher/i18n/es_PE.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Peru) (https://www.transifex.com/odoo/teams/41243/es_PE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_PE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta Analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañia" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nombre a Mostrar" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Ultima Modificación en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Actualizado última vez por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Ultima Actualización" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Socio" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unitario" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_PY.po b/addons/account_voucher/i18n/es_PY.po deleted file mode 100644 index 57518a8a732..00000000000 --- a/addons/account_voucher/i18n/es_PY.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Paraguay) (https://www.transifex.com/odoo/teams/41243/es_PY/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_PY\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta Analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Ultima actualización por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Ultima actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio Unitario" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/es_VE.po b/addons/account_voucher/i18n/es_VE.po deleted file mode 100644 index 9de3b556c8d..00000000000 --- a/addons/account_voucher/i18n/es_VE.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Spanish (Venezuela) (https://www.transifex.com/odoo/teams/41243/es_VE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: es_VE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Cuenta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelada" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descripción" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Mostrar nombre" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Modificada por última vez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización realizada por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Ultima actualizacion en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Producto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de ventas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Precio unidad" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/et.po b/addons/account_voucher/i18n/et.po deleted file mode 100644 index c32603636a1..00000000000 --- a/addons/account_voucher/i18n/et.po +++ /dev/null @@ -1,701 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Rivo Zängov <eraser@eraser.ee>, 2018 -# Martin Trigaux, 2018 -# Wanradt Koell <wanradt@gmail.com>, 2018 -# Arma Gedonsky <armagedonsky@hot.ee>, 2018 -# Egon Raamat <egon@avalah.ee>, 2018 -# Eneli Õigus <enelioigus@gmail.com>, 2018 -# Marek Pontus, 2018 -# Martin Aavastik <martin@avalah.ee>, 2018 -# Helen Sulaoja <helen@avalah.ee>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: Helen Sulaoja <helen@avalah.ee>, 2018\n" -"Language-Team: Estonian (https://www.transifex.com/odoo/teams/41243/et/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: et\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * \"Mustand\" staatus on kasutusel kui kasutaja loob uue kinnitamata vautšeri.\n" -" * \"Esialgne\" staatus on kasutusel kui kasutaja loob vautšeri, millel ei ole vautšeri numbrit.\n" -" * \"Postitatud\" staatus on kasutusel kui kasutaja loob vautšeri ja genereeritakse vautšeri number. Kontol luuakse vautšeri kanded.\n" -" * \"Tühistatud\" staatus määratakse siis, kui kasutaja loobub vautšerist." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Kande kuupäev" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Raamatupidamiskande kuupäev" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Raamatupidamise vautšer" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Vajalik toiming" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Summa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analüütiline konto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analüütilised sildid" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Kas oled kindel, et soovid selle kviitungi tühistada?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Arve kuupäev" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Ostuarve informatsioon" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Ostuarve viide" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Tühista" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Tühista kviitung" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Tühistatud" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Avatud või makstud vautšereid ei saa kustutada." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Ettevõte" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Andmikuga seotud ettevõte" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Loonud" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Loomise kuupäev" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klient" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Kuupäev" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Kirjeldus" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Näidatav nimi" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Mustand" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Mustandvautšerid" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Tähtaeg" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Raamatupidamiskannete jõustumise kuupäev" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Jälgijad" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Jälgijad (kanalid)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Jälgijad (partnerid)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Annab vautšeri kuvamisel ridade järjekorra." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Rühmitamine" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Kui kontrollitud, siis uued sõnumid nõuavad Su tähelepanu." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Kui kontrollitud, siis uued sõnumid nõuavad Su tähelepanu." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Juhul kui maksudega tekib ümardamisprobleeme, kasuta seda välja " -"parandamiseks" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Ettevõttesisesed märkmed" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Jälgija" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Andmik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Andmiku kanne" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Andmike kanderead" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Viimati muudetud (millal)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Viimati uuendatud (kelle poolt)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Viimati uuendatud (millal)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Sõnumid" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Märkused" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Number" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Toimingute arv" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Tegutsemist nõudvate sõnumite arv" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Lugemata sõnumite arv" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Ainult maks, mis ei sisaldu hinnas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Makstud" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Maksa otse" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Maksa hiljem" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Makse" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Maksemeetod" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Palun aktiveerige valitud andmiku järjestus !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Palun määra jada arveraamatus." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Postitatud" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Postitatud vautšerid" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Toode" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Ost" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Ostutšekk" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Ostuvautšer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Kogus" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Kaup lattu" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Müük" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Müügiinfo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Müügitšekk" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Otsi vautšereid" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Järjestus" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Määra mustandiks" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Staatus" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Oleku muutus" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Staatus on muutunud" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Tulumaks" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Maksu summa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Maksude korrigeerimine" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Vautšer on makstud täielikult." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Tulude või kulude konto seotud valitud tootega. " - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Partneri viide sellele dokumendile." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Ülevaatamiseks" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Kokku" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Kogu summa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tüüp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Ühiku hind" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Lugemata sõnumid" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Lugemata sõnumite loendur" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Kinnita" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Tarnija" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Tarnija vautšer" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Tähik" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Tähiku kirjed" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Tähiku read" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Vautšerite statistika" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Vautšeri kanded" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Veebilehe sõnumid" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Veebilehe suhtluse ajalugu" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Kui ostuarve on kinnitatud, siis on võimalik\n" -" salvestada makse tarnijale, mis on seotud selle ostuarvega." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Kui müügiarve on kinnitatud, siis on võimalik\n" -" salvestada kliendi makse, mis on seotud selle müügiarvega." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/eu.po b/addons/account_voucher/i18n/eu.po deleted file mode 100644 index 2a0c6135621..00000000000 --- a/addons/account_voucher/i18n/eu.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Basque (https://www.transifex.com/odoo/teams/41243/eu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: eu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Kontu analitikoa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Ezeztatu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Ezeztatua" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Enpresa" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Nork sortua" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Created on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moneta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kidea" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Deskribapena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Izena erakutsi" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Group By" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Last Updated by" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Last Updated on" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Kidea" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produktua" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Kopurua" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Sekuentzia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Egoera" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Unitateko prezioa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/fa.po b/addons/account_voucher/i18n/fa.po deleted file mode 100644 index 7c2e8ed8e1e..00000000000 --- a/addons/account_voucher/i18n/fa.po +++ /dev/null @@ -1,690 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Zahed Alfak <tamass4116@gmail.com>, 2018 -# Martin Trigaux, 2018 -# Morovat Guivi <tarjomac@gmail.com>, 2018 -# Hamid Darabi, 2018 -# Sahar Daraye <sahar.daraye.1369@gmail.com>, 2018 -# Hamed Mohammadi <hamed@dehongi.com>, 2018 -# Sepehr Khoshnood <sepehr.kho@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Sepehr Khoshnood <sepehr.kho@gmail.com>, 2018\n" -"Language-Team: Persian (https://www.transifex.com/odoo/teams/41243/fa/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: fa\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "حساب" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "تاریخ حساب" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "تاریخ حسابداری" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "اقدام مورد نیاز است" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "مقدار" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "حساب تحلیلی" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "برچسبهای تحلیلی" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "تازیخ صورتحساب" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "لغو" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "لغو رسید" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "لغو شد" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "شرکت" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "شرکت مربوط به این روزنامه" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "ایجاد شده توسط" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "ایجاد شده در" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "ارز" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "مشتری" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "تاریخ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "توصیف" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "نام نمایشی" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "پیشنویس" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "تاریخ سررسید" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "دنبالکنندگان" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "پیروان (کانال ها)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "پیروان (شرکاء)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "گروهبندی برمبنای" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "شناسه" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" -"اگر این گزینه را انتخاب کنید، پیامهای جدید به توجه شما نیاز خواهند داشت." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" -"اگر این گزینه را انتخاب کنید، پیامهای جدید به توجه شما نیاز خواهند داشت." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "یادداشتهای داخلی" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "دنبال می کند" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "روزنامه" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "داده روزنامه" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "آیتم های روزنامه" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "آخرین تغییر در" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "آخرین تغییر توسط" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "آخرین به روز رسانی در" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "پیامها" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "یادداشتها" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "شماره" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "تعداد اقدامات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "تعداد پیام ها که نیاز به عمل" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "تعداد پیامهای خوانده نشده" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "پرداخت شد" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "همکار" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "پرداخت مستقیم" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "پرداخت" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "روش پرداخت" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "ارسال شد" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "محصول" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "خرید" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "رسید خرید" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "تعداد" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "رسیدها" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "فروش" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "اطلاعات فروش" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "رسید فروش" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "دنباله" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "تبدیل به پیشنویس" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "وضعیت" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "تغییر وضعیت" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "وضعیت تغییر کرد" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "مالیات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "مبلغ مالیات" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "برای بازبینی" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "جمع کل:" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "مبلغ کل" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "نوع" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "قیمت واحد" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "پیام های ناخوانده" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "شمارنده پیامهای خواندهنشده" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "تایید اعتبار" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "تامین کننده" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "پیامهای وبسایت" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "تاریخچه ارتباط با وبسایت" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/fi.po b/addons/account_voucher/i18n/fi.po deleted file mode 100644 index 919c8c958da..00000000000 --- a/addons/account_voucher/i18n/fi.po +++ /dev/null @@ -1,695 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Eino Mäkitalo <eino.makitalo@netitbe.fi>, 2018 -# Tommi Rintala <tommi.rintala@gmail.com>, 2018 -# Martin Trigaux, 2018 -# Kari Lindgren <kari.lindgren@emsystems.fi>, 2018 -# Jussi Lehto <jussi@gulfeo.com>, 2018 -# Mikko Salmela <salmemik@gmail.com>, 2018 -# Svante Suominen <svante.suominen@web-veistamo.fi>, 2018 -# Kari Lindgren <karisatu@gmail.com>, 2018 -# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2018 -# Tuomo Aura <tuomo.aura@web-veistamo.fi>, 2018 -# Marko Happonen <marko.happonen@sprintit.fi>, 2018 -# Veikko Väätäjä <veikko.vaataja@gmail.com>, 2018 -# Timo Koukkari <ti.ko@netikka.fi>, 2018 -# Pekko Tuomisto <pekko.tuomisto@web-veistamo.fi>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Pekko Tuomisto <pekko.tuomisto@web-veistamo.fi>, 2018\n" -"Language-Team: Finnish (https://www.transifex.com/odoo/teams/41243/fi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: fi\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Tili" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Kirjauspäivä" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Kirjanpitotosite" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Vaatii toimenpiteitä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Määrä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analyyttinen tili" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analyyttiset tunnisteet" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Oletko varma että haluat peruuttaa tämän kuitin?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Laskupäivä" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Laskun tiedot" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Laskun viite" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Peruuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Peruuta kuitti" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Peruttu" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Avattua tai maksettua tositetta ei voi poistaa!" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Yritys" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Päiväkirjaan liittyvä yritys" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Luonut" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Luotu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuutta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Asiakas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Päivämäärä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Kuvaus" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Näyttönimi" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Luonnos" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Tositeluonnokset" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Eräpäivä" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Kirjanpitovientien arvopäivä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Seuraajat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Seuraajat (kanavat)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seuraajat (kumppanit)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Ryhmittely" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Tunniste (ID)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Jos valittu, uudet viestit vaativat huomiotasi." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Jos valittu, uudet viestit vaativat huomiotasi." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Sisäiset kommentit" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "On seuraaja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Päiväkirja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Päiväkirjan kirjaus" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Päiväkirjan tapahtumat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Viimeksi muokattu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Viimeksi päivittänyt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Viimeksi päivitetty" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Viestit" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Muistiinpanot" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Numero" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Toimenpiteiden määrä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Toimenpiteitä vaativien viestien määrä" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Lukemattomia viestejä" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Maksettu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Kumppani" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Maksa suoraan" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Maksu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Maksutapa" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Määrittele päiväkirjaan järjestys." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Kirjattu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Kirjatut tositteet" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Tuote" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Hankinnat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Ostokuitti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Ostotosite" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Määrä" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Vastaanotot" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Myynti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Myyntitiedot" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Myyntikuitti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Hae tositteet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Järjestys" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Aseta luonnokseksi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Tila" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Tilan muuttuminen" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Tila muutettu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Vero" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Verotili" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Tosite on kokonaan maksettu" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Tulo -tai Kustannustili koskien tätä tuotetta." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Tarkastettavaksi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Yhteensä" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Yhteensä" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tyyppi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Yksikköhinta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Lukemattomat viestit" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Lukemattomien viestien laskuri" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Vahvista" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Toimittaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Tosite" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Tositteen viennit" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Tositerivit" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Tositetilastot" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Tositteiden viennit" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Verkkosivun ilmoitukset" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Verkkosivun viestihistoria" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/fo.po b/addons/account_voucher/i18n/fo.po deleted file mode 100644 index 87b633e9a91..00000000000 --- a/addons/account_voucher/i18n/fo.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Faroese (https://www.transifex.com/odoo/teams/41243/fo/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: fo\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Analytiskt bókhald" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Strika" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Fyritøka" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Byrjað av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Byrjað tann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kundi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Frágreiðing" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Vís navn" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Bólka eftir" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Seinast rættað tann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Seinast dagført av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Seinast dagført tann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Vøra" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Nøgd" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Íalt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Eindarprísur" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/fr.po b/addons/account_voucher/i18n/fr.po deleted file mode 100644 index 441597a8b56..00000000000 --- a/addons/account_voucher/i18n/fr.po +++ /dev/null @@ -1,711 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Xavier Belmere <Info@cartmeleon.com>, 2016 -# Miguel Vidali <mvidali129@gmail.com>, 2016 -# Melanie Bernard <mbe@odoo.com>, 2016 -# Leo Schmitt <inactive+lschmitt@transifex.com>, 2016 -# Sébastien LANGE (SYLEAM) <sebastien.lange@syleam.fr>, 2016 -# lucasdeliege <deliegelucas@gmail.com>, 2016 -# Xavier Symons <xsy@openerp.com>, 2016 -# Adriana Ierfino <adriana.ierfino@savoirfairelinux.com>, 2016 -# Lucas Deliege <lud@odoo.com>, 2016 -# Fabien Pinckaers <fp@openerp.com>, 2016 -# e2f <projects@e2f.com>, 2018 -# Florian Hatat, 2018 -# Olivier Dony <odo@odoo.com>, 2018 -# Maxime Chambreuil <mchambreuil@ursainfosystems.com>, 2018 -# Olivier Lenoir <olivier.lenoir@free.fr>, 2018 -# Nancy Bolognesi <nb@microcom.ca>, 2018 -# Micky Jault <micky037@hotmail.fr>, 2018 -# Eloïse Stilmant <est@odoo.com>, 2018 -# Martin Trigaux, 2019 -# Laura Piraux <lap@odoo.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Laura Piraux <lap@odoo.com>, 2019\n" -"Language-Team: French (https://www.transifex.com/odoo/teams/41243/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* L'état 'Brouillon' est utilisé quand un utilisateur saisit un nouveau bon non confirmé.\n" -"* L'état 'Pro-forma' est utilisé lorsque le bon n'a pas de numéro de bon.\n" -"* L'état 'Comptabilisé' est utilisé lorsque l'utilisateur crée un bon, un numéro de bon est généré et des entrées de bon sont créés dans le compte.\n" -"* L'état 'Annulé' est utilisé lorsque l'utilisateur annule le bon." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Compte" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Date du compte" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Date comptable" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Justificatif comptable" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Nécessite une action" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Montant" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Compte analytique" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Étiquettes analytiques" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Voulez-vous supprimer ce règlement ?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Compte des pièces jointes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Date de facturation" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Information de facturation" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Référence de la facture" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annuler" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Annuler le reçu." - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Annulé" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Impossible de supprimer des règlements à l'état ouvert ou payé" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Société" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Société associée à ce journal" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "Créer un nouveau reçu de vente" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Créé par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Créé le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Devise" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Client" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Date " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Description" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nom affiché" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Brouillon" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Reçus brouillons" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Date d'échéance" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Date effective pour les pièces comptables" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Abonnés" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Abonnés (Canaux)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Abonnés (Partenaires)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Donne la séquence de cette ligne lors de l'affichage du bon." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Regrouper par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Si coché, de nouveaux messages demandent votre attention." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Si coché, de nouveaux messages demandent votre attention." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Si actif, certains messages ont une erreur de livraison." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"En cas de problème d'arrondi de la taxe, utiliser ce champ pour corriger" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Notes internes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Est un abonné" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Journal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Pièce comptable" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Écritures comptables" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Dernière Modification le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Dernière mise à jour par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Dernière mise à jour le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Pièce jointe principale" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Erreur d'envoi du message" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Messages" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "Devise Manquante" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Numéro" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Nombre d'actions" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Nombre d'erreurs" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Nombre de messages exigeant une action" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Nombre de messages avec des erreurs d'envoi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Nombre de messages non lus" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Uniquement pour les taxes non comprises dans le prix" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Payé" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partenaire" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Régler directement" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Régler plus tard" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Paiement" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "Mémo du paiement" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Mode de règlement" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Veuillez activer la sequence du journal sélectionné" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Veuillez définir une séquence sur le journal." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Comptabilisé" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Reçus validés" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Article" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Achats" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Reçu d'achat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Règlement fournisseur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Quantité" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Réceptions" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Vente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Information sur les ventes" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Reçu de ventes" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Chercher les justificatifs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Séquence" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Marquer comme brouillon" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Statut" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Changement de statut" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Etat modifié" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Taxe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Montant de la taxe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Correction de la taxe" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Le reçu a été entièrement réglé." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Le compte de revenu ou de dépense associé à l'article sélectionné." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "La référence utilisée par le partenaire pour ce document." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "À vérifier" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Montant total" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Type" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Prix unitaire" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Messages non lus" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Compteur de messages non lus" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Valider" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Fournisseur" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Paiement fournisseur" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Justificatif" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Saisie de justificatifs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Lignes de justificatif" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistiques des justificatifs comptables" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Saisies de justificatifs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Messages du site web" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Historique de communication du site web" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Lorsque la quittance d'achat est confirmée, on peut enregistrer le\n" -"paiement du fournisseur lié à cette réception d'achat." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Lorsque le reçu de vente est confirmé, on peut enregistrer le\n" -"paiement du client lié à ce reçu de vente." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Vous devez d'abord sélectionner un partenaire." diff --git a/addons/account_voucher/i18n/fr_BE.po b/addons/account_voucher/i18n/fr_BE.po deleted file mode 100644 index 3b56289ba3a..00000000000 --- a/addons/account_voucher/i18n/fr_BE.po +++ /dev/null @@ -1,574 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2015-11-18 13:41+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: French (Belgium) (http://www.transifex.com/odoo/odoo-9/" -"language/fr_BE/)\n" -"Language: fr_BE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Montant" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Société" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Créé par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Créé le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "Date" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Description" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grouper par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Dernière modification le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Derniere fois mis à jour par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Dernière mis à jour le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "Notes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partenaire" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produit" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Séquence" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Statut" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Type" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" - -#~ msgid "Date of the last message posted on the record." -#~ msgstr "Date du dernier message posté sur l'enregistrement." - -#~ msgid "Followers" -#~ msgstr "Abonnés" - -#~ msgid "If checked new messages require your attention." -#~ msgstr "Si coché, les nouveaux messages requierent votre attention. " - -#~ msgid "Last Message Date" -#~ msgstr "Date du dernier message" - -#~ msgid "Messages" -#~ msgstr "Messages" - -#~ msgid "Messages and communication history" -#~ msgstr "Messages et historique des communications" - -#~ msgid "Unread Messages" -#~ msgstr "Messages non lus" diff --git a/addons/account_voucher/i18n/fr_CA.po b/addons/account_voucher/i18n/fr_CA.po deleted file mode 100644 index dc7aa5f83f5..00000000000 --- a/addons/account_voucher/i18n/fr_CA.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: French (Canada) (https://www.transifex.com/odoo/teams/41243/fr_CA/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: fr_CA\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annuler" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Annulé" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Créé par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Créé le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Devise" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Client" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Description" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nom affiché" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grouper par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "Identifiant" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Dernière modification le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Dernière mise à jour par" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Dernière mise à jour le" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partenaire" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produit" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Séquence" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Statut" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/gl.po b/addons/account_voucher/i18n/gl.po deleted file mode 100644 index 480f3c5f9b5..00000000000 --- a/addons/account_voucher/i18n/gl.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Galician (https://www.transifex.com/odoo/teams/41243/gl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: gl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Conta analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Compañía" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Creado o" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Moeda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Descrición" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Última actualización de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Última actualización en" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Empresa" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Cantidade" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Información de vendas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Prezo unidade" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/gu.po b/addons/account_voucher/i18n/gu.po deleted file mode 100644 index 767880d2251..00000000000 --- a/addons/account_voucher/i18n/gu.po +++ /dev/null @@ -1,686 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Turkesh Patel <turkesh4friends@gmail.com>, 2018 -# Dharmraj Jhala <dja@openerp.com>, 2018 -# Divya Pandya <dia@odoo.com>, 2018 -# Spellbound Soft Solutions <jeel.spellbound@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Spellbound Soft Solutions <jeel.spellbound@gmail.com>, 2018\n" -"Language-Team: Gujarati (https://www.transifex.com/odoo/teams/41243/gu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: gu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "ખાતું" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "કિંમત" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "વિશ્લેષણાત્મક ખાતું" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "રદ કરો" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "રદ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "કંપની" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "બનાવનાર" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "ચલણ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "ભાગીદાર" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "તારીખ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "વર્ણન" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "પ્રદર્શન નામ" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "ડ્રાફ્ટ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "અનુયાયીઓ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ઓળખ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "જો ચેક કરેલા નવા સંદેશા માટે તમારું ધ્યાન આવશ્યક છે" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "જો ચેક કરેલું હોય, તો નવા સંદેશા માટે તમારું ધ્યાન આવશ્યક છે." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "જો ચેક કરેલું હોય, તો કેટલાક મેસેજીસમાં ડિલિવરીની ભૂલ છે." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "રોજનામું" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "સંદેશાઓ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "નોંધ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "ક્રમ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "ભૂલની સંખ્યા" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "સંદેશાઓની સંખ્યા જે ક્રિયા માટે જરૂરી છે" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "વિતરણ ભૂલ સાથે સંદેશાઓની સંખ્યા" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "ન વાંચેલા સંદેશાની સંખ્યા" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "ભાગીદાર" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "ઉત્પાદન" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "જથ્થો" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "ક્રમ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "સ્થિતિ" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "જકાતી રકમ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "કુલ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "કુલ રકમ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "પ્રકાર" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/he.po b/addons/account_voucher/i18n/he.po deleted file mode 100644 index e692805dd5b..00000000000 --- a/addons/account_voucher/i18n/he.po +++ /dev/null @@ -1,686 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Fishfur A Banter <fishfurbanter@gmail.com>, 2018 -# ExcaliberX <excaliberx@gmail.com>, 2018 -# Yihya Hugirat <hugirat@gmail.com>, 2018 -# שהאב חוסיין <shhab89@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: שהאב חוסיין <shhab89@gmail.com>, 2018\n" -"Language-Team: Hebrew (https://www.transifex.com/odoo/teams/41243/he/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: he\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "חשבון" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "תאריך החשבון" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "נדרשת פעולה" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "סכום" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "חשבון אנליטי" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "תגיות אנילטיות" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "תאריך חוב" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "בטל" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "בוטלה" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "חברה" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "חברה הקשורה ליומן זה" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "נוצר על ידי" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "נוצר ב-" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "מטבע" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "לקוח" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "תאריך" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "תיאור" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "השם המוצג" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "טיוטה" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "עוקבים" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "קבץ לפי" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "מזהה" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "אם מסומן אז הודעה חדשה דורשת התייחסותכם." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "הערות פנימיות" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "יומנים" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "רשומה ביומן" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "תאריך שינוי אחרון" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "עודכן לאחרונה על ידי" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "תאריך עדכון אחרון" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "הודעות" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "הערות" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "מספר" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "מספר הפעולות" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "מספר ההודעות שדורשות פעולה" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "מספר ההודעות שלא נקראו" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "שולם" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "שותף" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "תשלום" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "פורסם" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "פריט" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "רכש" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "כמות" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "מכירה" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "מידע על מכירות" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "רצף" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "הגדר כברירת מחדל" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "סטטוס" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "מע\"מ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "סכום המע\"מ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "סה\"כ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "סה\"כ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "סוג" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "מחיר ליחידה" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "הודעות שלא נקראו" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "אשר" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "ספק" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "הודעות מהאתר אינטרנט" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "היסטוריית תקשורת מהאתר" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/hi.po b/addons/account_voucher/i18n/hi.po deleted file mode 100644 index 2b37e5a19bd..00000000000 --- a/addons/account_voucher/i18n/hi.po +++ /dev/null @@ -1,567 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2016-06-03 04:50+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: Hindi (http://www.transifex.com/odoo/odoo-9/language/hi/)\n" -"Language: hi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "रद्द" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "निरस्त" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "संस्था" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "साथी" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "तिथि" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "विवरण" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "मसौदा" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "अन्तिम तिथि" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "पत्रिका" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "टिप्पणियाँ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "साथी" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "उत्पाद" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "मात्रा" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "अनुक्रम" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "ड्राफ्ट के लिए सेट करें" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "स्थिति" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "प्रकार" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" - -#~ msgid "Followers" -#~ msgstr "फ़ॉलोअर्स" - -#~ msgid "If checked new messages require your attention." -#~ msgstr "sale" - -#~ msgid "Messages" -#~ msgstr "संदेश" - -#~ msgid "Messages and communication history" -#~ msgstr "संदेश और संचार इतिहास" - -#~ msgid "Unread Messages" -#~ msgstr "अपठित संदेश" diff --git a/addons/account_voucher/i18n/hr.po b/addons/account_voucher/i18n/hr.po deleted file mode 100644 index 572a547b621..00000000000 --- a/addons/account_voucher/i18n/hr.po +++ /dev/null @@ -1,694 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Filip Cuk <filipcuk2@gmail.com>, 2017 -# Ivica Dimjašević <ivica.dimjasevic@storm.hr>, 2017 -# Karolina Tonković <karolina.tonkovic@storm.hr>, 2017 -# Martin Trigaux, 2018 -# Vladimir Olujić <olujic.vladimir@storm.hr>, 2018 -# Đurđica Žarković <durdica.zarkovic@storm.hr>, 2018 -# Tina Milas, 2018 -# Bole <bole@dajmi5.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Bole <bole@dajmi5.com>, 2019\n" -"Language-Team: Croatian (https://www.transifex.com/odoo/teams/41243/hr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* 'Nacrt' status se koristi kad korisnik unosi novi i nepotvrđeni vaucher.\n" -"* 'Pro-forma' se koristi kada vaucher još nema svoj broj.\n" -"* 'Knjiženo' je status u kojem su kreirane stavke, vaucher ima svoj broj, i stavke su proknjižene.\n" -"' Otkazano' je status otkazanog dokumenta." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Račun" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Datum konta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Računovodstveni datum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Knjigovodstveni vaučer" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Potrebna dodatna radnja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analitički konto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Oznake analitike" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Jeste li sigurni da želite otkazati ovu potvrdu?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Datum računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Podaci o plaćanju" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Vezna oznaka računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Odustani" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Otkaži potvrdu" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Otkazano" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Otvorene ili plaćene vaučere nije moguće pobrisati." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Tvrtka" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Organizacija za koju se vodi ovaj dnevnik" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Kreirao" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Datum kreiranja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kupac" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Opis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Naziv za prikaz" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Nacrt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Vaučeri u nacrtu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Datum dospijeća" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Efektivni datum za knjigovodstvene stavke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Pratitelji" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Pratitelji (Kanali)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Pratitelji (Partneri)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupiraj po" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Ako je odabrano, nove poruke zahtijevaju Vašu pažnju." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Ako je označeno, nove poruke zahtijevaju Vašu pažnju." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne bilješke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Je pratitelj" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Dnevnik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Temeljnica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Stavke dnevnika" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Zadnja promjena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Promijenio" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Vrijeme promjene" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Poruke" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Bilješke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Broj" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Broj akcija" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Broj poruka koje zahtijevaju aktivnost" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Broj nepročitanih poruka" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Samo za porez koji nije u cijeni" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Plaćeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Plati direktno" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Plati kasnije" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Plaćanje" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Način plaćanja" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Molimo aktivirajte sekvencu odabrnog dnevnika!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Molimo definirajte brojevni krug na dnevniku." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Proknjiženo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Potvrđeni vaučeri" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Proizvod" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Nabava" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Vaučer nabave" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Vaučer nabave" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Količina" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Primke" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Prodaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informacije o prodaji" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Vaučer prodaje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Traži vaučere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sekvenca" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Postavi na nacrt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Promjena statusa" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Promijenjen status" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Porez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Iznos poreza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Vaučer je plaćen u potpunosti" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Konto prihoda ili troškova vezan za odabrani proizvod." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Za provjeru" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Ukupno" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Ukupni iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Vrsta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Jedinična cijena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Nepročitane poruke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Brojač nepročitanih poruka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Ovjeri" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Dobavljač" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Vaučer" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Stavke vaučera" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linije vaučera" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistike vaučera" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Stavke vaučera" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Poruke webstranica" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Povijest komunikacije Web stranice" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/hu.po b/addons/account_voucher/i18n/hu.po deleted file mode 100644 index c0bd11afb65..00000000000 --- a/addons/account_voucher/i18n/hu.po +++ /dev/null @@ -1,702 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Kovács Tibor <kovika@gmail.com>, 2016 -# krnkris, 2018 -# gezza <geza.nagy@oregional.hu>, 2018 -# Martin Trigaux, 2019 -# Tibor Kőnig <konig.tibor@evitalit.hu>, 2019 -# Ákos Nagy <akos.nagy@oregional.hu>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Ákos Nagy <akos.nagy@oregional.hu>, 2019\n" -"Language-Team: Hungarian (https://www.transifex.com/odoo/teams/41243/hu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: hu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * A 'Tervezet' állapotot használja amint egy felhasználó létrehoz egy új és még le nem igazolt nyugtát. \n" -"* 'Pro-forma' állapotú lesz, ha a nyugtának még nincs nyugta száma. \n" -"* 'Könyvelt' állapotú, ha egy felhasználó létrehozta a nyugtát, egy nyugta számot generált hozzá, és a könyvelésben egy nyugta bevitel létre lett hozva \n" -"* A 'Érvénytelenítve' állapot lesz, ha egy felhasználó érvénytelenítette a nyugtát." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Főkönyvi számla" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Könyvelés dátuma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Könyvelés dátuma" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Könyvelési bizonylat" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Művelet szükséges" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Összeg" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analitikus/elemző könyvelés" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analitikus címkék" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Biztos, hogy vissza akarja vonni ezt a bevételi bizonylatot?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Mellékletek száma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Számla kelte" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Számla információ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Számla hivatkozás" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Mégse" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Bevételi bizonylat visszavonása" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Visszavont" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" -"Nem lehet olyan nyugtá(ka)t törölni, melyek meg lettek nyitva vagy ki lettek" -" fozetve." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Vállalat" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "A naplóhoz kapcsolt vállalat" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Készítette" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Létrehozás dátuma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Pénznem" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Vásárló" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dátum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Leírás" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Megjelenített név" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Tervezet" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Nyugta tervezetek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Fizetési határidő" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Könyvelési tételek teljesítési dátuma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Követők" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Követők (Csatornák)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Követők (Partnerek)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" -"Ennek a tételsornak a sorszámát adja, amikor a nyugta kijelzésre kerül." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Csoportosítás" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Azonosító ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" -"Ha be van jelölve, akkor néhány üzenetnél kézbesítési hiba lépett fel." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Ha kerekítési problémánk van az adóknál, javításra használja ezt a mezőt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Belső jegyzetek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Ő egy követő" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Napló" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Könyvelési tétel" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Könyvelési napló tételsorok" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Utoljára frissítve ekkor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Utoljára frissítette" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Utoljára frissítve " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Fő melléklet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Üzenetkézbesítési hiba" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Üzenetek" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Megjegyzések" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Szám" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Műveletek száma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Hiba száma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Üzenetek száma, melyek akciót igényelnek" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Kézbesítési hibával rendelkező üzenetek száma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Olvasatlan üzenetek száma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Csak az árakból kihagyott adók" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Kifizetve" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Azonnali kifizetés" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Fizessen később" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Kifizetés" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Fizetési módszer" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Kérem a sorozat aktiválását a kiválasztott naplóra !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Kérem egy sorrend meghatározását a naplón." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Könyvelt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Elküldött nyugták" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma, díjbekérő" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Termék" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Beszerzés" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Beszerzés bevételi bizonylata" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Beszerzési nyugta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Mennyiség" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Nyugták" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Értékesítés" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Értékesítési információ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Értékesítési bevételi bizonylat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Nyugták keresése" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sorszám" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Beállítás tervezetnek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Állapot" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Állapotváltozás" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Állapot megváltoztatva" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Adó" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "ÁFA összege" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "A nyugta teljesen ki lett egyenlítve" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" -"A kiválasztott termékre vonatkozó árbevétel vagy beszerzés főkönyvi számla." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Ennek a dokumentumnak a partner hivatkozása." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Ellenőrizendő" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Összesen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Végösszeg" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Típus" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Egységár" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Olvasatlan üzenetek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Olvasatlan üzenetek számlálója" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Jóváhagyás" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Beszállító" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Kereskedői nyugta" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Nyugta" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Nyugta tételek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Nyugtasorok" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Nyugta statisztika" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Nyugta tételek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Weboldal üzenetek" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Weboldal kommunikáció történet" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Ha egy beszerzési bizonylat leigazolt, akkor adatbázis bejegyzést rögzíthető" -" a kereskedő kifizetéséről, mely összefügg ezzel a beszerzési bizonylattal." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Ha az értékesítési bizonylat leigazolt, akkor adatbázis bejegyzést rögzíthet" -" a vásárlói fizetésekről az ide vonatkozó értékesítési bizonylathoz." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/id.po b/addons/account_voucher/i18n/id.po deleted file mode 100644 index dacfd5cd9fa..00000000000 --- a/addons/account_voucher/i18n/id.po +++ /dev/null @@ -1,564 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Bonny Useful <bonny.useful@gmail.com>, 2017 -# Wahyu Setiawan <wahyusetiaaa@gmail.com>, 2017 -# Martin Trigaux <mat@odoo.com>, 2017 -# Lorenz Damara <lorenzrenz@gmail.com>, 2017 -# William Surya Permana <zarambie_game@yahoo.com>, 2017 -# Febrasari Almania <febrasari.almania@gmail.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Febrasari Almania <febrasari.almania@gmail.com>, 2017\n" -"Language-Team: Indonesian (https://www.transifex.com/odoo/teams/41243/id/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: id\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* Status 'Konsep' digunakan ketika pengguna meng-encode Voucher baru dan belum dikonfirmasi.\n" -"* Status 'Pro-forma' digunakan ketika voucher tidak memiliki nomer voucher.\n" -"* Status 'Posted' digunakan ketika pengguna membuat voucher, kemudian menghasilkan nomor voucher dan pencatatan voucher terbuat di akun.\n" -"* Status 'Dibatalkan' digunakan ketika pengguna membatalkan voucher." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "Akun" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Tanggal Akun" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "Tanggal akuntansi" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Accounting Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Jumlah" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Akun Analitik" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Apakah Anda yakin mau membatalkan penerimaan ini?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Tanggal Tagihan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informasi tagihan" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Batal" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Membatalkan penerimaan" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Dibatalkan" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Tidak dapat menghapus voucher(s) yang sudah dibuka atau dibayar." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Perusahaan" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "Perusahaan terkait jurnal ini" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Dibuat oleh" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Dibuat pada" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Mata Uang" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Pelanggan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Tanggal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Deskripsi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Nama Tampilan" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Draft" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Rancangan voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "Tanggal Jatuh Tempo" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "Efektif tanggal untuk entri akuntansi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Dikelompokkan berdasarkan" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Catatan Internal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Jurnal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "Journal Entry" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Item Jurnal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Terakhir diubah pada" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Terakhir diperbarui oleh" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Terakhir diperbarui pada" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "Catatan" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "Nomor" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "Hanya untuk pajak dikecualikan dari harga" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "Dibayar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Rekanan" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Membayar Order" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "Pembayaran" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "Referensi pembayaran" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Silakan aktifkan urutan Journal dipilih!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Harap define urutan dalam hal jurnal." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Posted" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Posted" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produk" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Bayar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Kuitansi pembelian" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "Pembelian penerimaan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Pembelian Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Jumlah" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Promo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informasi penjualan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Struk" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "Tanda terima penjualan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Cari voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Urutan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Set ke Draft" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Perubahan status" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status berubah" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "Pajak" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "Jumlah pajak" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "Voucher telah benar-benar dibayar." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "Pendapatan atau Akun pengeluaran terkait dengan produk dipilih." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Untuk meninjau" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Biaya Total:" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Tipe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Harga Satuan" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validasi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Pemasok" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Status" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Voucher entri" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Voucher baris" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "# baris Voucher" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Transaksi" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "Anda harus memilih dulu mitra!" diff --git a/addons/account_voucher/i18n/is.po b/addons/account_voucher/i18n/is.po deleted file mode 100644 index cedba80fce2..00000000000 --- a/addons/account_voucher/i18n/is.po +++ /dev/null @@ -1,685 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Birgir Steinarsson <biggboss83@gmail.com>, 2018 -# Bjorn Ingvarsson <boi@exigo.is>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: Bjorn Ingvarsson <boi@exigo.is>, 2018\n" -"Language-Team: Icelandic (https://www.transifex.com/odoo/teams/41243/is/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: is\n" -"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Bókhaldslykill" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Bókhaldsdagsetning" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Þarfnast aðgerðar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Upphæð" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Kostnaðarreikningur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analytic Tags" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Dags. reiknings" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Hætta við" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Afpöntuð" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Fyrirtæki" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Company related to this journal" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Búið til af" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Stofnað þann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Gjaldmiðill" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Viðskiptavinur" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dags." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Lýsing" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nafn" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Tillaga" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Gjalddagi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Fylgjendur" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Followers (Channels)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Fylgjendur (viðskiptafélagar)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Hópa eftir" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Auðkenni" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Ef merkt við þá eru ný skilaboð" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "If checked, new messages require your attention." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Innri minnismiðar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Is Follower" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Færslubók" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Færsla" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Fylgiskjöl" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Síðast breytt þann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Síðast uppfært af" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Síðast uppfært þann" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Skilaboð" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Athugasemdir" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Númer reiknings" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Fjöldi aðgerða" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Fjöldi skilaboð sem bíða afgreiðslu" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Number of unread messages" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Greitt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Viðskipta aðili" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Greiðsla" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Payment Method" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Please define a sequence on the journal." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Bókað" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Vara" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Innkaup" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Magn" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Sala" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Söluupplýsingar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Runa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Breyta í tillögu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Staða" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "VSK" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Tax Amount" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "The income or expense account related to the selected product." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Samtals" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Samtals" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Gerð" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Einingarverð" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Ólesin skilaboð" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Teljari fyrir ólesin skilaboð" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Staðfesta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Birgir" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Skilaboð frá vef" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Website communication history" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/it.po b/addons/account_voucher/i18n/it.po deleted file mode 100644 index 8f7083f46a9..00000000000 --- a/addons/account_voucher/i18n/it.po +++ /dev/null @@ -1,705 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Sergio Zanchetta <primes2h@gmail.com>, 2018 -# Francesco Garganese <francesco.garganese@aeromnia.aero>, 2018 -# Martin Trigaux, 2018 -# Luigi Di Naro <gigidn@gmail.com>, 2018 -# Simone Bernini <simone@aperturelabs.it>, 2018 -# Giacomo Grasso <giacomo.grasso.82@gmail.com>, 2018 -# Sebastiano Pistore <SebastianoPistore.info@protonmail.ch>, 2018 -# Christian <chris@effeci.info>, 2018 -# Massimo Bianchi <bianchi.massimo@gmail.com>, 2018 -# Paolo Valier, 2018 -# Alessandro Camilli <alessandrocamilli@openforce.it>, 2018 -# Paolo Caruccio <paolo.caruccio66@gmail.com>, 2018 -# David Minneci <david@numeko.it>, 2018 -# Léonie Bouchat <lbo@odoo.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Léonie Bouchat <lbo@odoo.com>, 2018\n" -"Language-Team: Italian (https://www.transifex.com/odoo/teams/41243/it/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: it\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * Lo stato 'Bozza' è usato quando un utente sta inserendo un Voucher nuovo e non confermato. \n" -"* Lo stato 'Proforma' quando il voucher è in stato proforma, il voucher non ha un numero assegnato. \n" -"* Lo stato 'Pubblicato' è usato quanto l'utente crea un voucher, un numero di voucher è generato e la registrazione contabile è creata \n" -"* Lo stato 'Annullato' è usato quando l'utente annulla il voucher." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Conto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Data contabile" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Data Registrazione" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Voucher contabile" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Azione Necessaria" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Importo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Conto analitico" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Tag Analitici" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Sei sicuro di annullare questa ricevuta?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Numero di allegati" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data di fatturazione" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informazioni importo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Numero di Fattura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annulla" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Annulla Ricevuta" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Annullato" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Non è possibile eliminare voucher(s) che sono già aperti o pagati." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Azienda" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Società collegata a questo giornale" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Creato da" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Creato il" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descrizione" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Bozza" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Voucher bozza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Data Scadenza" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Data effettiva per le registrazioni contabili" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Followers" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Followers (Canali)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Followers (Partner)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Assegna la sequenza di questa linea quando visualizzi il voucher." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Raggruppa per" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Se selezionato, nuovi messaggi richiedono la tua attenzione" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Se selezionato, nuovi messaggi richiedono la tua attenzione" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Se attivo, alcuni messaggi presentano un errore di consegna. " - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Nel caso abbiamo un problema di arrotondamento sulle tasse, usa questo campo" -" per correggerlo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Note interne" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "È Follower" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Registro" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Registrazione sezionale" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Voci sezionale" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Data di ultima modifica" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Ultima modifica di" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Ultima modifica il" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Allegato principale" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Errore nell'invio del messaggio" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Messaggi" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Note" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Numero" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Numero di Azioni" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Numero di errori" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Numero di messaggi che richiedono un'azione" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Numero di messaggio con errori di invio" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Numero di messaggi non letti" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Solo per imposte escluse dal prezzo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Pagato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Paga direttamente" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Paga successivamente" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Pagamento" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Metodo di pagamento" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Si prega di attivare la sequenza del sezionale selezionato!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "È necessario definire una sequenza per il sezionale." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Registrato" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Vouchers Pubblicati" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Prodotto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Acquisti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Ricevuta d'Acquisto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Voucher acquisto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Quantità" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Spedizioni in Entrata" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Vendita" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informazioni vendite" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Ricevuta di Vendita" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Cerca Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sequenza" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Imposta a Bozza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Stato" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Cambio di stato" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Stato cambiato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Imposta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Importo imposta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Correzione imposta" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Il voucher è stato pagato interamente" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Il conto di ricavo o di costo riguardante il prodotto selezionato." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Il riferimento del partner per questo documento." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Da rivedere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Totale" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Totale importo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tipo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Prezzo unitario" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Messaggi Non Letti" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Contatore di messaggi non letti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Valida" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Fornitore" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Fornitore Voucher" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Voucher" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Registrazioni Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Righe voucher" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistiche Voucher" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Registrazioni Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Messaggi sito web" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Storico comunicazione sito" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Quando il destinatario della vendita è confermato, puoi registrare il " -"pagamento relativo a questo destinatario." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Quando un destinatario della vendita è confermato, puoi registrare il " -"pagamento relativo alla vendita." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Devi prima selezionare un partner." diff --git a/addons/account_voucher/i18n/ja.po b/addons/account_voucher/i18n/ja.po deleted file mode 100644 index 2cfa3c33a78..00000000000 --- a/addons/account_voucher/i18n/ja.po +++ /dev/null @@ -1,688 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# SHIMIZU Taku <shimizu.taku@gmail.com>, 2018 -# Martin Trigaux, 2018 -# Yoshi Tashiro <tashiro@roomsfor.hk>, 2018 -# Manami Hashi <manami@roomsfor.hk>, 2018 -# 高木正勝 <masakatsu.takagi@pro-spire.co.jp>, 2018 -# kent_ocean <ke.tanabe@gmail.com>, 2018 -# Norimichi Sugimoto <norimichi.sugimoto@tls-ltd.co.jp>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Norimichi Sugimoto <norimichi.sugimoto@tls-ltd.co.jp>, 2018\n" -"Language-Team: Japanese (https://www.transifex.com/odoo/teams/41243/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "勘定科目" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "会計日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "会計日" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "会計バウチャー" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "要アクション" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "金額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "分析勘定" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "分析タグ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "請求日" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "請求書情報" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "請求参照" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "取消" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "入金取消" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "取消済" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "会社" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "この仕訳帳と関係する会社" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "作成者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "作成日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "通貨" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "顧客" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "日付" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "説明" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "表示名" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "ドラフト" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "ドラフトバウチャー" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "期日" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "会計仕訳の有効日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "フォロワー" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "フォロワー (チャネル)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "フォロワー (取引先)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "グループ化" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "チェックされている場合は、新しいメッセージに注意が必要です。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "チェックされている場合は、新しいメッセージに注意が必要です。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "内部注記" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "フォロー中 " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "仕訳帳" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "仕訳" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "仕訳明細" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "最終更新日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "最終更新者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "最終更新日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "メッセージ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "ノート" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "番号" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "アクションの数" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "アクションを必要とするメッセージの数" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "未読メッセージ件数" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "価格から税金だけを除外" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "支払済" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "取引先" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "直接支払" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "支払" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "支払方法" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "記帳済" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "記帳済バウチャー" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "プロフォーマ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "プロダクト" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "購買" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "購買記録" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "数量" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "入荷" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "販売" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "販売情報" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "販売記録" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "バウチャー検索" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "付番" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "ドラフトに設定" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "ステータス" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "ステータス変化" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "ステータスが変更されました。" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "税" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "税額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "バウチャーは全て支払済です。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "選択した製品に関連する収益勘定あるいは費用勘定です。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "レビュー" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "合計" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "合計金額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "タイプ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "単価" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "未読メッセージ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "未読メッセージカウンター" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "検証" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "仕入先" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "バウチャー" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "バウチャーエントリー" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "バウチャー行" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "バウチャー統計" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "バウチャーエントリー" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "ウェブサイトメッセージ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "ウェブサイトコミュニケーション履歴" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "購買記録では経費計上とともに仕入先支払を記録することが可能です。" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "販売記録では売上計上とともに顧客支払を記録することが可能です。" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ka.po b/addons/account_voucher/i18n/ka.po deleted file mode 100644 index b75ecd07e1c..00000000000 --- a/addons/account_voucher/i18n/ka.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Georgian (https://www.transifex.com/odoo/teams/41243/ka/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ka\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "შეწყვეტა" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "გაუქმებულია" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "კომპანია" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "შემქმნელი" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "შექმნის თარიღი" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "ვალუტა" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "კლიენტი" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "აღწერილობა" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "სახელი" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "დაჯგუფება" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "იდენტიფიკატორი" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "ბოლოს განახლებულია" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "ბოლოს განაახლა" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "ბოლოს განახლებულია" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "პარტნიორი" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "პროდუქტი" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "რაოდენობა" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "მიმდევრობა" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "სტატუსი" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/kab.po b/addons/account_voucher/i18n/kab.po deleted file mode 100644 index b2ec99cf71e..00000000000 --- a/addons/account_voucher/i18n/kab.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Kabyle (https://www.transifex.com/odoo/teams/41243/kab/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: kab\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Amiḍan n tusliṭ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Sefsex" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Ifsax" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Takebbwanit" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Yerna-t" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Yerna di" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Tanfalit" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Amsaɣ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Aglam" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Sdukel s" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "Asulay" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Aleqqem aneggaru di" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Aleqqem aneggaru sɣuṛ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Aleqqem aneggaru di" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Amendid" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Afaris" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Tanecta" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Talɣut n uznuzu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Agzum" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Addad" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Asemday" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "ssuma n yiwen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/kk.po b/addons/account_voucher/i18n/kk.po deleted file mode 100644 index c7672605529..00000000000 --- a/addons/account_voucher/i18n/kk.po +++ /dev/null @@ -1,552 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2015-09-19 08:18+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: Kazakh (http://www.transifex.com/odoo/odoo-9/language/kk/)\n" -"Language: kk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "Тіркелгі" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Бас тарту" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Компания" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Ақша" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Сатып алу" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "Күні" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Сипаттамасы" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Күнделік" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "Жазбалар" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Тізбек" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "Салық" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Түрі" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/km.po b/addons/account_voucher/i18n/km.po deleted file mode 100644 index 19b0b9e2e23..00000000000 --- a/addons/account_voucher/i18n/km.po +++ /dev/null @@ -1,685 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Sengtha Chay <sengtha@gmail.com>, 2018 -# Chan Nath <channath@gmail.com>, 2018 -# Samkhann Seang <seangsamkhann@gmail.com>, 2018 -# AN Souphorn <ansouphorn@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: AN Souphorn <ansouphorn@gmail.com>, 2018\n" -"Language-Team: Khmer (https://www.transifex.com/odoo/teams/41243/km/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: km\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "គណនី" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "ចំនួន" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "លុបចោល" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "បានលុបចោល" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "ក្រុមហ៊ុន" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "បង្កើតដោយ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "បង្កើតនៅ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "រូបិយវត្ថុ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "អតិថិជន" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "កាលបរិច្ឆេត" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "ការពិពណ៌នា" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "ឈ្មោះសំរាប់បង្ហាញ" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "ព្រៀង" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "ជាក្រុមតាម" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "កាលបរិច្ឆេតកែប្រែចុងក្រោយ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "ផ្លាស់ប្តូរចុងក្រោយ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "ផ្លាស់ប្តូរចុងក្រោយ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "សារ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "កំណត់សម្គាល់" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "ដៃគូ" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "ផលិតផល" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "ចំនួន" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "លំដាប់" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "សរុប" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "ប្រភេទ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "សារមិនទាន់អាន" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "សារវែបសាយ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "ប្រវត្តិទំនាក់ទំនងវែបសាយ" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ko.po b/addons/account_voucher/i18n/ko.po deleted file mode 100644 index 296fe0c5d05..00000000000 --- a/addons/account_voucher/i18n/ko.po +++ /dev/null @@ -1,696 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# 최재호 <hwangtog@gmail.com>, 2018 -# Linda Stockelova <stockeloval@btlnet.com>, 2018 -# Link Up링크업 <linkup.way@gmail.com>, 2018 -# Linkup <link-up@naver.com>, 2018 -# Seongseok Shin <shinss61@hotmail.com>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: Seongseok Shin <shinss61@hotmail.com>, 2018\n" -"Language-Team: Korean (https://www.transifex.com/odoo/teams/41243/ko/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ko\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * '초안' 상태는 사용자가 새로운 미확인 전표를 기록할 때 사용합니다.\n" -" * '견적' 상태는 전표에 전표 번호가 지정되지 않았을 때 사용합니다.\n" -" * '전기됨' 상태는 사용자가 전표를 생성하고 전표 번호가 생성되고 계정에서 전표 항목이 생성되었을 때 사용합니다.\n" -" * '취소됨' 상태는 사용자가 전표를 취소할 때 사용합니다." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "계정" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "계정 날짜" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "회계 날짜" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "회계 전표" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "필요한 조치" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "금액" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "분석 계정" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "분석 태그" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "정말 이 영수증을 취소하시겠습니까?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "청구 날짜" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "청구 정보" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "청구 참조" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "취소" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "영수증 취소" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "취소 됨" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "이미 개시되거나 지급된 전표는 삭제할 수 없습니다." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "회사" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "이 분개장과 관련된 회사" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "작성자" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "작성일" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "환율" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "고객" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "날짜" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "내용" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "이름 표시" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "임시" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "초안 전표" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "만기일 " - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "회계분개의 유효 날짜" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "팔로워" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "팔로워 (채널)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "팔로워 (파트너)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "전표를 표시할 때 이 라인의 순서를 제공합니다." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "그룹별" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "만약 선택하였으면, 새 메시지에 주의를 기울여야 합니다." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "만약 선택하였으면, 새 메시지에 주의를 기울여야 합니다." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "세금에 올림 문제가 있을 경우, 이 필드를 사용하여 정정하십시오." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "내부 메모" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "팔로워입니다" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "분개장" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "분개" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "분개 항목" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "최근 수정" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "최근 갱신한 사람" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "최근 갱신 날짜" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "메시지" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "메모" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "번호" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "조치가 필요한 메시지 수" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "읽지 않은 메시지 수" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "가격에서 제외된 세금 전용" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "지불됨" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "협력사" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "직접 지불" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "나중에 지불" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "지급" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "지급 방법" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "선택한 분개의 순서를 활성화해주십시오!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "분개에서 순서를 정의해 주십시오." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "전기됨" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "전기된 전표" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "견적" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "상품" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "매입" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "구매 영수증" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "구매 전표" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "수량" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "입고" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "매출" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "매출 정보" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "판매 영수증" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "전표 검색" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "순차적" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "초안으로 설정" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "상태" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "상태 변경" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "상태 변경됨" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "세금" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "세액" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "세금 수정" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "전표가 전액 지급되었습니다." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "선택된 제품과 관련된 수입 또는 경비 계정입니다." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "해당 문서 협력사 참조" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "검토" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "합계" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "합계 금액" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "유형" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "단가" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "읽지 않은 메세지" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "읽지 않은 메세지 수" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "유효성 검사" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "공급업체" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "공급업체 전표" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "전표" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "전표 항목" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "전표 라인" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "전표 통계" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "전표 항목" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "웹사이트 메시지" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "웹사이트 대화 이력" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"구매 영수증이 확인되면 이 구매 영수증과 관련된\n" -" 공급업체 결제를 기록할 수 있습니다." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"판매 영수증이 확인되면 이 판매 영수증과 관련된\n" -" 고객 결제를 기록할 수 있습니다." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/lo.po b/addons/account_voucher/i18n/lo.po deleted file mode 100644 index 688e8a3fea7..00000000000 --- a/addons/account_voucher/i18n/lo.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Lao (https://www.transifex.com/odoo/teams/41243/lo/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: lo\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "ຍົກເລີອກ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "ຍົກເລີກ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "ບໍລິສັດ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "ເງິນຕາ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "ຄຸ່ຄ້າ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "ຄຳອະທິບາຍ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "ຄຸ່ຄ້າ" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "ສິນຄ້າ" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "ຈຳນວນ" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "ຂໍ້ມູນການຂາຍ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "ສະພາບ" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "ລວມທັງໝົດ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "ລາຄາຫົວໜວຍ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/lt.po b/addons/account_voucher/i18n/lt.po deleted file mode 100644 index ab159b83a68..00000000000 --- a/addons/account_voucher/i18n/lt.po +++ /dev/null @@ -1,560 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -# digitouch UAB <digitouchagencyeur@gmail.com>, 2017 -# UAB "Draugiški sprendimai" <transifex@draugiskisprendimai.lt>, 2017 -# Audrius Palenskis <audrius.palenskis@gmail.com>, 2017 -# Arminas Grigonis <arminas@versada.lt>, 2017 -# Rolandas <info@paninfo.lt>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Rolandas <info@paninfo.lt>, 2017\n" -"Language-Team: Lithuanian (https://www.transifex.com/odoo/teams/41243/lt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: lt\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "Sąskaita" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Sąskaitos data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "Apskaitos data " - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Apskaitos kvitai" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Suma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Analitinė sąskaita" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Ar tikrai norite atšaukti šį kvitą?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Kvito data" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Kvito duomenys" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "Unikalus sąskaitos numeris" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Atšaukti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Atšaukti kvitą" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Atšauktas" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Negalite ištrinti kvito(-ų), kuris yra atidarytas arba apmokėtas." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "Paspauskite, norėdami sukurti pardavimo kvitą." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "Paspauskite, norėdami užregistruoti pirkimo kvitą" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Įmonė" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "Įmonė susieta su šiuo žurnalu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Sukūrė" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Sukurta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Valiuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Pirkėjas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Aprašymas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Vaizduojamas pavadinimas" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Juodraštis" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Dokumento juodraštis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "Mokėjimo terminas" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "DK įrašų įsigaliojimo data" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupuoti pagal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Vidinės pastabos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Žurnalas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "Žurnalo įrašas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "DK įrašai" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Paskutinį kartą keista" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Paskutinį kartą atnaujino" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Paskutinį kartą atnaujinta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "Pastabos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "Skaičius" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "Tik tie mokesčiai, kurie neįtraukti į kainą" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "Apmokėta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partneris" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Mokėti iškart" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Sumokėti vėliau" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "Mokėjimas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "Mokėjimo numeris" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Prašome aktyvuoti pasirinkto žurnalo eiliškumą!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Prašome nustatyti žurnalo eiliškumą" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Paskelbtas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Užregistruotas dokumentas" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Išankstinė sąskaita" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produktas" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Pirkimai" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Pirkimo kvitai" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "Pirkimo kvitai" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Pirkimo kvitas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Kiekis" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Pardavimas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Pardavimo informacija" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Pardavimo kvitas" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "Pardavimo kvitai" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Ieškoti kvito" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Seka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Atstatyti į juodraštį" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Būsena" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Būsenos keitimas" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Būsena pakeista" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "Mokestis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "Mokesčių suma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "Kvitas buvo visiškai apmokėtas." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "Pajamų ar sąnaudų sąskaitos susijusios su pasirinktu produktu." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "Unikalus partnerio numeris šiam dokumentui." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Peržiūrėti" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Viso" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Iš viso" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Tipas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Kaina" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Patikrinti" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Pardavėjas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Tiekėjo kvitas" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Kvitas" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Kvito eilutės" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Kvito eilutės" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Kvito statistika" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Kvitų įrašai" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "Jūs turite pasirinkti partnerį!" diff --git a/addons/account_voucher/i18n/lv.po b/addons/account_voucher/i18n/lv.po deleted file mode 100644 index 6c9a922a1d4..00000000000 --- a/addons/account_voucher/i18n/lv.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Latvian (https://www.transifex.com/odoo/teams/41243/lv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: lv\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Analītiskais Konts" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Atcelt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Atcelts" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Uzņēmums" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Izveidoja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Izveidots" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Valūta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klients" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Apraksts" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupēt pēc" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Pēdējo reizi atjaunoja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Pēdējās izmaiņas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partneris" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produkts" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Daudzums" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Sērija" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Statuss" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Summa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Vienības Cena" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/mk.po b/addons/account_voucher/i18n/mk.po deleted file mode 100644 index a7f213841b0..00000000000 --- a/addons/account_voucher/i18n/mk.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Macedonian (https://www.transifex.com/odoo/teams/41243/mk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: mk\n" -"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Аналитичка сметка" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Откажи" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Откажано" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Компанија" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Креирано од" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Креирано на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Валута" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Купувач" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Опис" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Прикажи име" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Групирај по" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Последна промена на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Последно ажурирање од" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Последно ажурирање на" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Партнер" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Производ" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Количина" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Информација за продажба" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Секвенца" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Статус" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Вкупно" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Единечна цена" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/mn.po b/addons/account_voucher/i18n/mn.po deleted file mode 100644 index 1b5467015bc..00000000000 --- a/addons/account_voucher/i18n/mn.po +++ /dev/null @@ -1,699 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Bayarkhuu Bataa, 2018 -# Martin Trigaux, 2018 -# Otgonbayar.A <gobi.mn@gmail.com>, 2018 -# Khishigbat Ganbold <khishigbat@asterisk-tech.mn>, 2018 -# Onii Onii <onii0223@yahoo.com>, 2018 -# nasaaskii <nasaaskii@gmail.com>, 2019 -# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2019\n" -"Language-Team: Mongolian (https://www.transifex.com/odoo/teams/41243/mn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: mn\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * 'Ноорог' төлөв нь магадлагдаагүй шинэ ваучерийг оруулсан дараа хэрэглэгдэнэ.\n" -"* 'Урьдчилсан' төлөв нь ваучерт дугаар байхгүй үед хэрэглэгдэнэ.\n" -"* 'Илгээгдсэн' төлөв нь ваучерийг үүсгэж илгээхэд хэрэглэгдэх бөгөөд ваучерийн дугаар олгогдож санхүүгийн бичилт хийгдэнэ\n" -"* 'Цуцлагдсан' төлөв нь ваучерийг цуцласан тохиолдолд хэрэглэгдэнэ." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Данс" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Санхүүгийн огноо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Санхүүгийн огноо" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Санхүүгийн ваучер" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Үйлдэл Шаардлагатай" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Дүн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Шинжилгээний данс" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Шинжилгээний Пайзууд" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Та энэ баримтыг цуцлахдаа итгэлтэй байна уу?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Тооцоо бодсон огноо" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Тооцооний мэдээлэл" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Тооцооны код" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Цуцлах" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Баримтыг Цуцлах" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Цуцлагдсан" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Нэгэнт нээчихсэн эсвэл төлөгдчихсөн ваучер устгагдах боломжгүй." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Компани" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Энэ журналын холбогдох компани" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Үүсгэгч" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Үүсгэсэн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Валют" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Захиалагч" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Огноо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Тодорхойлолт" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Дэлгэцийн Нэр" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Ноорог" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Ноорог Ваучер" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Эцсийн огноо" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Санхүүгийн бичилт хийхэд зохистой огноо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Дагагчид" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Дагагчид (Сувагууд)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Дагагчид (Харилцагчид)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Ваучерыг харуулах үед энэ мөрийн дарааллыг өгдөг." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Бүлэглэх" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" -"Хэрэв тэмдэглэгдсэн бол таныг шинэ зурвасуудад анхаарал хандуулахыг " -"шаардана." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Хэрэв сонгосон бол, шинэ зурвасуудад анхаарал хандуулахыг шаардана." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Үүнийг сонговол алдаа үүсэх үед зурвасууд ирнэ." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "Татварт дүнг мухарлах асуудал гарвал энэ талбарыг ашиглан засаарай" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Дотоод тэмдэглэл" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Дагагч эсэх" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Журнал" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Журналийн бичилт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Журналын мөрүүд" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Сүүлийн засвар хийсэн огноо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Сүүлийн засвар хийсэн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Сүүлийн засвар хийсэн огноо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Үндсэн хавсралт" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Зурвасууд" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Тэмдэглэл" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Дугаар" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Үйлдлийн тоо" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Алдааны тоо" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Үйлдэл шаардлагатай зурвасын тоо" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Алдааны мэдэгдэл бүхий зурвасын тоо" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Уншаагүй зурвасын тоо" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Зөвхөн үнээс ялгагдсан татваруудын хувьд" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Төлөгдсөн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Харилцагч" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Шууд төлөх" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Дараа төлөх" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Төлбөр" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Төлбөрийн хэлбэр" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Сонгосон журналын дарааллыг идэвхжүүлнэ үү!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Энэ журналд дараалaл тодорхойлно уу." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Батлагдсан" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Илгээгдсэн Ваучерууд" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Урьдчилсан" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Бараа" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Худалдан авалт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Худалдан авалтын баримт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Худалдан Авалтын Ваучер" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Тоо" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Хүлээн авах баримтууд" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Борлуулалт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Борлуулалтын Мэдээлэл" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Борлуулалтын баримт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Ваучераар хайх" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Дараалал" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Ноорог Болгох" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Төлөв" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Төлөв Өөрчлөх" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Төлөв өөрчлөгдсөн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Татвар" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Татварын дүн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Ваучер бүрэн төлөгдлөө." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Сонгосон барааны орлогын эсвэл зарлагын данс." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Энэ баримтын түншийн код." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Үзлэг хийх" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Нийт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Нийт дүн" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Төрөл" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Нэгж Үнэ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Уншаагүй Зурвасууд" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Уншаагүй зурвасын тоолуур" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Батлах" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Нийлүүлэгч" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Нийлүүлэгчийн ваучер" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Ваучер" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Ваучерийн бичилт" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Ваучерийн мөр" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Ваучерийн статистик" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Ваучерийн бичилтүүд" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Вебсайтын зурвасууд" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Вебсайтын харилцааны түүх" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Худалдан авалтын баримтыг батласны дараа холбоотой\n" -" нийлүүлэгчийн төлбөрийг бүртгэх боломжтой." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Борлуулалтын баримтыг батласны дараа холбоотой захиалагчийн \n" -"төлбөрийг бүртгэх боломжтой." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Та эхлээд харилцагч сонгох ёстой." diff --git a/addons/account_voucher/i18n/nb.po b/addons/account_voucher/i18n/nb.po deleted file mode 100644 index d28cb5d3e1e..00000000000 --- a/addons/account_voucher/i18n/nb.po +++ /dev/null @@ -1,683 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Jorunn D. Newth, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Jorunn D. Newth, 2018\n" -"Language-Team: Norwegian Bokmål (https://www.transifex.com/odoo/teams/41243/nb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: nb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Kontodato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Regnskapsmessig kupong." - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Handling påkrevd" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Beløp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analytisk konto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Er du sikker på at du vil avbryte denne kvitteringen?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Antall vedlegg" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Regning dato." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Regning informasjon." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Kanseller" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Kanseller kvittering" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Kansellert" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Kan ikke slette kupong(er) som allerede er åpnet eller betalt for." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Firma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Firma denne journalen angår" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Opprettet av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Opprettet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kunde" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dato" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Beskrivelse" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Visningsnavn" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Utkast" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Kupongutkast" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Utløpsdato" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Effektiv dato for regnskapsføring." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Følgere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Følgere (kanaler)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Følgere (partnere)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupper etter" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "IDID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Hvis det er merket nye meldinger så krever dette din oppmerksomhet." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne notater" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Er følger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Journal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Journalregistrering" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Journal Elementer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Sist endret" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Sist oppdatert av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Sist oppdatert" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Meldinger" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notater" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Nummer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Antall handlinger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Antall meldinger som krever handling" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Antall uleste meldinger" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Bare for skatt ekskludert fra pris" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Betalt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Betal direkte" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Betal senere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Betaling" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Betalingsmetode" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Vennligst aktiver sekvensen av den utvalgte journal!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Vennligst definere en sekvens på tidsskriftet." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Lagt inn." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Lagt ut kuponger." - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Innkjøp" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Kjøps kvitteringen." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Betal kupong." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Antall" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Salg" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Salgsinformasjon" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Salgs kvittering." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Søk kuponger." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sekvens" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Sett som utkast" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Statusendring" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status endret" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Skatt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Avgiftsbeløp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Kupongen har blitt fullstendig betalt." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Inntekt- eller utgiftskonto for valgt produkt" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Til vurdering" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Totalbeløp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Type" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Enhetspris" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Uleste meldinger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Teller for uleste meldinger" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Valider" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Leverandør" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Kupong." - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Kupong oppføringer." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Kupong linjer." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Kupong statistikker." - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Kuponger oppføringer." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Nettstedmeldinger" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Kommunikasjonshistorikk på nettstedet" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ne.po b/addons/account_voucher/i18n/ne.po deleted file mode 100644 index 89d375a46db..00000000000 --- a/addons/account_voucher/i18n/ne.po +++ /dev/null @@ -1,552 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Language-Team: Nepali (https://www.transifex.com/odoo/teams/41243/ne/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ne\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/nl.po b/addons/account_voucher/i18n/nl.po deleted file mode 100644 index 6d37779bf01..00000000000 --- a/addons/account_voucher/i18n/nl.po +++ /dev/null @@ -1,700 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Stephan Van Dyck <stephan.vandyck@vanroey.be>, 2016 -# Martin Trigaux, 2018 -# Eric Geens <ericgeens@yahoo.com>, 2018 -# Yenthe Van Ginneken <yenthespam@gmail.com>, 2018 -# Erwin van der Ploeg <erwin@odooexperts.nl>, 2019 -# Gunther Clauwaert <gclauwae@hotmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Gunther Clauwaert <gclauwae@hotmail.com>, 2019\n" -"Language-Team: Dutch (https://www.transifex.com/odoo/teams/41243/nl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: nl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * De status 'Concept' wordt gebruikt wanneer een gebruiker een nieuw en onbevestigd betaalbewijs ingeeft.\n" -"* De status 'Pro-forma' wordt gebruikt wanneer het betaalbewijs nog geen nummer heeft.\n" -"* De status 'Geboekt' wordt gebruikt wanneer de gebruiker het betaalbewijs aanmaakt, het nummer wordt gegenereerd en de betaalbewijsregel wordt gemaakt in de boekhouding\n" -"* De status 'Geannuleerd' wordt gebruikt wanneer de gebruiker het betaalbewijs annuleert." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Rekening" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Rekeningdatum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Boekhouddatum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Boekhouding betaalbewijzen" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "Betaalbewijsregel" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Vereist actie" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Bedrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Kostenplaats" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Labels kostenplaats" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Weet u zeker dat u deze bon wilt annuleren?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Aantal bijlagen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Factuurdatum" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Rekening informatie" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Rekening kenmerk" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annuleer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Betaalbewijs annuleren" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Geannuleerd" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" -"Het is niet mogelijk om betaalbewijzen te verwijderen welke al geopend of " -"betaald zijn." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Bedijf" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Bedrijf gerelateerd aan dit dagboek" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "Maak een nieuw betaalbewijs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klant" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Omschrijving" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Concept" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Concept betaalbewijzen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Vervaldatum" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Boek datum voor financiële boekingen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Volgers" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Volgers (Kanalen)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Volgers (Relaties)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Geeft de volgorde van deze regel aan bij het tonen van het bewijs." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Groepeer op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Indien aangevinkt vragen nieuwe berichten uw aandacht." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Indien aangevinkt vragen nieuwe berichten uw aandacht." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "indien aangevinkt hebben sommige leveringen een fout." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Indien er een afrondingsfout is in de btw, kan u dit veld gebruiken om het " -"te herstellen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne notities" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Is een volger" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Kasboek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Boeking" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Boekingsregels" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Laatst gewijzigd op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Hoofd bijlage" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Bericht aflever fout" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Berichten" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "Bedrijf ontbreekt" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "Valuta ontbreekt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Opmerkingen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Nummer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Aantal acties" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Aantal foutmeldingen" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Aantal berichten die actie vereisen" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Aantal berichten met leveringsfout" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Aantal ongelezen berichten" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Alleen voor prijzen exclusief belastingen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Betaald" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Relatie" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Betaal direct" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Betaal later" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Betaling" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "Betalingsmemo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Betaalmethode" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Activeer de reeks van het geselecteerde dagboek!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Definieer een reeks voor dit dagboek." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Geboekt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Geboekte betaalbewijzen" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Product" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Inkopen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Inkoopbewijs" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Inkoopbewijs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Hoeveelheid" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Betaalbewijs" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "Registreer een nieuw inkoopbewijs" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Verkoop" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Verkoop informatie" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Betaalbewijs" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Zoek betaalbewijzen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Reeks" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Zet op concept" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Statuswijziging" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Staus veranderd" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Belasting" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "BTW bedrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "BTW correctie" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Het betaalbewijs is geheel betaald." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "De opbrengsten of kostenrekening gerelateerd aan het gekozen product." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Het relatiekenmerk van dit document." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Na te kijken" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Totaal" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Totaalbedrag" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Soort" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Prijs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Ongelezen berichten" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Aantal ongelezen berichten" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Valideer" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Leverancier" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Inkoopbewijs" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Betaalbewijs" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Betaalbewijs regels" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Betaalbewijs regels" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Betaalbewijs statistieken" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Betaalbewijs regels" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Website berichten" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Website communicatie geschiedenis" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Wanneer het inkoopbewijs bevestigd is, kan u de betaling\n" -"aan de leverancier koppelen aan dit inkoopbewijs." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Wanneer het verkoopbewijs bevestigd is, kan u de betaling van\n" -"de klant koppelen aan dit verkoopbewijs." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "U moet eerst een relatie selecteren." diff --git a/addons/account_voucher/i18n/nl_BE.po b/addons/account_voucher/i18n/nl_BE.po deleted file mode 100644 index 592aeaed3fc..00000000000 --- a/addons/account_voucher/i18n/nl_BE.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Dutch (Belgium) (https://www.transifex.com/odoo/teams/41243/nl_BE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: nl_BE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Kostenplaatsen" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Annuleren" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Geannuleerd" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Bedrijf" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klant" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Omschrijving" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Groeperen op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Laatst gewijzigd op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Relatie" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Product" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Hoeveelheid" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Verkoop informatie" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Reeks" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Totaal" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Eenheidsprijs" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/pl.po b/addons/account_voucher/i18n/pl.po deleted file mode 100644 index b2410aefeef..00000000000 --- a/addons/account_voucher/i18n/pl.po +++ /dev/null @@ -1,705 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Maksym <ms@myodoo.pl>, 2018 -# Piotr Cierkosz <piotr.w.cierkosz@gmail.com>, 2019 -# Martin Trigaux, 2019 -# zbik2607 <darek@krokus.com.pl>, 2019 -# Grzegorz Grzelak <grzegorz.grzelak@openglobe.pl>, 2019 -# Judyta Kaźmierczak <judyta.kazmierczak@openglobe.pl>, 2019 -# Mikołaj Dziurzyński <mikolaj.dziurzynski@openglobe.pl>, 2019 -# Tomasz Leppich <t.leppich@gmail.com>, 2019 -# Jakobus Buntownikus <buntownix@gmail.com>, 2019 -# Zdzisław Krajewski <zdzichucb@gmail.com>, 2019 -# Piotr Szlązak <szlazakpiotr@gmail.com>, 2019 -# Marcin Młynarczyk <mlynarczyk@gmail.com>, 2019 -# Andrzej Donczew <a.donczew@hadron.eu.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Andrzej Donczew <a.donczew@hadron.eu.com>, 2019\n" -"Language-Team: Polish (https://www.transifex.com/odoo/teams/41243/pl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: pl\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * Status \"Wersja robocza\" jest używany, gdy użytkownik koduje nowy i niepotwierdzony kupon.\n" -" * Status \"Pro-forma\" jest używany, gdy kupon nie ma numeru kuponu.\n" -" * Status \"Opublikowany\" jest używany, gdy użytkownik tworzy kupon, wygenerowany jest numer kuponu, a na koncie tworzone są pozycje kuponów.\n" -" * Status \"Anulowano\" jest używany, gdy użytkownik anuluje kupon." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Data zaksięgowania" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Data wpływu" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Polecenie księgowania" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Wymagana akcja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Kwota" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Konto analityczne" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Znaczniki analityczne" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Jestes pewien, że chcesz anulować ten rachunek ?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Ilość Załączników" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data faktury" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Inofrmacja o rachunku" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Odnośnik rachunku" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Anuluj" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Anuluj paragon" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Anulowano" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Nie mozna usuwać racunków/płatności, które są otwarte lub zapłacone." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Firma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Firma związana z tym dziennikiem" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Utworzona przez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Data utworzenia" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Waluta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Klient" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Opis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nazwa wyświetlana" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Projekt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Projekty rachunków" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Termin aktywności" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Efektywna data zapisów" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Obserwatorzy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Obserwatorzy (kanały)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Obserwatorzy (partnerzy)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Daje sekwencję tej pozycji podczas wyświetlania kuponu." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupuj wg" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Jeśli zaznaczone, to wiadomość wymaga twojej uwagi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Jeśli zaznaczone, to nowa wiadomość wymaga twojej uwagi." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" -"Jesli zaznaczone, część wiadomości napotkało na błąd przy próbie doręczenia." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Jeśli mamy problem z zaokrągleniem podatku, użyj tego pola, aby je poprawić" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Uwagi wewnętrzne" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Jest obserwatorem" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Dziennik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Zapis dziennika" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Pozycje zapisów" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Data ostatniej modyfikacji" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Ostatnio aktualizowane przez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Data ostatniej aktualizacji" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Główny Załącznik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Błąd Doręczenia wiadomosci" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Wiadomości" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notatki" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Numer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Liczba akcji" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Numer błedu" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Liczba wiadomości wymagających akcji" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Ilośc wiadomości z błedami przy doręczeniu" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Liczba nieprzeczytanych wiadomości" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Tylko dla podatków wyłączonych z ceny" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Zapłacona" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Kontrahent" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Zapłać od razu" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Zapłać później" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Płatność" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Metoda płatności" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Aktywuj numerację wybranego dziennika !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Zdefiniuj numerację dla dziennika." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Zaksięgowano" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Zaksięgowane rachunki" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Zakup" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Rachunek zakupu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Rachunek zakupu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Ilość" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Przyjęcia" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Sprzedaż" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informacja o sprzedaży" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Rachunek uproszczony" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Szukanie poleceń" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Numeracja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Ustaw jako projekt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Zmiana statusu" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Zmieniony stan" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Podatek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Kwota Podatku" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Korekta podatkowa" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Rachunek został zapłacony" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Konto przychodów i wydatków związane z wybranym produktem." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Odnośnik partnera dla tego dokumentu." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Do sprawdzenia" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Suma" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Łączna kwota" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Typ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Cena jednostkowa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Nieprzeczytane wiadomości" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Licznik nieprzeczytanych wiadomości" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Zatwierdź" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Dostawca" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Rachunek zakupu" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Polecenie księgowania" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Zapisy rachunku" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Pozycje polecenia" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statystyka poleceń" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Zapisy rachunku" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Wiadomości" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Historia komunikacji" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Gdy pokwitowanie zakupu zostanie potwierdzone, możesz zarejestrować\n" -" płatność dostawcy związaną z tym pokwitowaniem." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Po potwierdzeniu dowodu zakupu możesz zarejestrować płatność\n" -" klienta związaną z tym paragonem." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/pt.po b/addons/account_voucher/i18n/pt.po deleted file mode 100644 index 170e5bebaaa..00000000000 --- a/addons/account_voucher/i18n/pt.po +++ /dev/null @@ -1,698 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Manuela Silva <inactive+h_manuela_rodsilva@transifex.com>, 2018 -# Ricardo Martins <ricardo.nbs.martins@gmail.com>, 2018 -# MS <manuelarodsilva@gmail.com>, 2018 -# Nuno Silva <nuno.silva@arxi.pt>, 2018 -# Diogo Fonseca <dsf@thinkopensolutions.pt>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: Diogo Fonseca <dsf@thinkopensolutions.pt>, 2018\n" -"Language-Team: Portuguese (https://www.transifex.com/odoo/teams/41243/pt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* O estado 'Rascunho' é utilizado quando um utilizador está a processar um pagamento novo e não confirmado. \n" -"* O estado 'Pró-forma' é utilizado quando o pagamento não tem um número de pagamento.\n" -"* O estado 'Lançado' é utilizado quando o utilizador cria um pagamento, é gerado um número de pagamento e os movimentos de pagamento são criados na conta.\n" -"* O estado \"Cancelado\" é utilizado quando o utilizador cancela o pagamento." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Conta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Data da Conta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Data Contabilística" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Contabilidade Voucher" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "Linha de Contabilidade Voucher" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Ação Necessária" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Valor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Conta Analítica" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Etiquetas de Analítica" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Tem a certeza que pretende cancelar este recibo?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Conta Anexada" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data da Fatura de Fornecedor" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informação da conta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referência da Fatura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Cancelar Recibo" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelada" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Não é possível apagar pagamentos que já estão validados ou pagos." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Empresa" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Empresa relativa a este diário" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr " Criar um recibo da venda." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Criado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Criada em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Moeda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descrição" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nome a Exibir" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Rascunho" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Vouchers rascunho" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Data de Vencimento" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Data efetiva para movimentos contabilísticos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Seguidores" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Seguidores (Canais)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seguidores (Parceiros)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Dá a sequência desta linha quando mostra o recibo." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar Por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Id." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Se selecionado, as novas mensagens requerem a sua atenção." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Se selecionado, as novas mensagens requerem a sua atenção." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Se selecionado, algumas mensagens tem um erro de entrega." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Caso existe um problema de arredondamento no imposto, use este campo para o " -"corrigir." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Notas Internas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "É um Seguidor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Diário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Entrada no Diário" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Itens do Diário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Última Modificação em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Última Atualização por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Última Atualização em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Anexos Principais" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Gerir erro de entrega" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Mensagens" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "Empresa em falta" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "Moeda em falta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Número" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Número de Ações" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Número de erro" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Número de mensagens que requerem uma ação" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Numero de mensagens com um Erro de entrega." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Número de mensagens não lidas" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Apenas para o imposto excluído do preço" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Pago" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Parceiro" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Pago directamente" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Pagar Mais Tarde" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Pagamento" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Método de Pagamento" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Por favor, active a sequência do diário selecionado!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Defina uma sequência no diário." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Lançado" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Vouchers publicados" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pró-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Artigo" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Recibo de Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Pagamento de Compras" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Quantidade" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Receções" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "Registar novo recibo de compra" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Venda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informação de Vendas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Recibo de Vendas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Pesquisar vouchers" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sequência" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Marcado como Rascunho" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Estado" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Alteração de estado" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Estado Alterado" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Imposto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Montante do Imposto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Correção de Imposto" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "O voucher foi pago na totalidade" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "A conta de rendimentos ou despesas relativa ao artigo selecionado." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "A referência do parceiro deste documento." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Para rever" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Valor Total" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tipo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Preço Unitário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Mensagens Por Ler" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Contador de Mensagens Não Lidas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Fornecedor" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Recibo de Fornecedor" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Voucher" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Movimentos de Pagamento" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linhas Voucher" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Estatísticas do voucher" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Movimentos de Pagamento" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Mensagens do Website" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Histórico de Comunicação do Website" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Quando o recibo de compra é confirmado, pode registar\n" -"o pagamento de fornecedor relacionado com o recibo." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Quando o recibo de venda é confirmado, pode registar\n" -"o pagamento de cliente relacionado com o recibo." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Primeiro deve selecionar um parceiro" diff --git a/addons/account_voucher/i18n/pt_BR.po b/addons/account_voucher/i18n/pt_BR.po deleted file mode 100644 index 9e96c290eea..00000000000 --- a/addons/account_voucher/i18n/pt_BR.po +++ /dev/null @@ -1,698 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Mateus Lopes <mateus1@gmail.com>, 2018 -# Adriel Kotviski <kotviski@gmail.com>, 2018 -# falexandresilva <falexandresilva@gmail.com>, 2018 -# grazziano <gra.negocia@gmail.com>, 2019 -# Silmar <pinheirosilmar@gmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Silmar <pinheirosilmar@gmail.com>, 2019\n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/odoo/teams/41243/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* O status 'Rascunho' é usado quando um usuário está codificando uma nova Comprovante.\n" -"* O status 'Pro-forma' é usada quando o comprovante não tem um número de comprovante.\n" -"* O status 'Postado' é usado quando o usuário cria um comprovante, um número de comprovante é gerado e comprovantes são criados na conta.\n" -"* O status 'Cancelado' é usado quando o usuário cancela o comprovante." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Conta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Data da Conta" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Data da Conta" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Comprovante Contábil" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Ação Necessária" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Montante" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Conta Analítica" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Etiquetas Analíticas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Você tem certeza de que quer cancelar este recebimento?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Contagem de Anexos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data de Cobrança" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informação de Cobrança" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Conta de Referência" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Cancelar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Cancelar Recebimento" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Cancelado" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Não é possivel excluir comprovante(s) que já foi aberto ou pago." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Empresa" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Empresa relacionada a este diário" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Criado por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Criado em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Moeda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Cliente" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Data" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descrição" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nome para Exibição" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Provisório" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Comprovantes Provisórios" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Data de Vencimento" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Data efetiva dos Lançamentos Contábeis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Seguidores" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Seguidores (Canais)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seguidores (Parceiros)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Fornece a sequência dessa linha quando exibir a fatura" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Agrupar Por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Se marcado, novas mensagens solicitarão sua atenção." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Se marcado novas mensagens solicitarão sua atenção." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Se marcado, algumas mensagens tem erro de entrega." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"No caso, temos um problema de arredondamento do imposto, utilize este campo " -"para corrigi-lo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Anotações Internas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "É um seguidor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Diário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Lançamento de Diário" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Itens do Diário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Última Modificação em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Última atualização por" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Última atualização em" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Anexo Principal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Erro de entrega de Mensagem" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Mensagens" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Observações" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Número" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Número de ações" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Número do erro" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Número de mensagens que requer uma ação" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Número de mensagens com erro de entrega" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Quantidade de mensagens não lidas." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Apenas para impostos excluídos do preço" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Pago" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Parceiro" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Pagar Diretamente" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Pagar Depois" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Pagamento" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Método de Pagamento" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Por favor ative a sequência no diário selecionado!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Por favor defina a sequência no diário." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Lançado" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Comprovantes Lançados" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produto" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Recebimento de Compra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Comprovante de Compra" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Quantidade" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Recebimentos" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Venda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informação de Vendas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Receita de Vendas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Procurar Comprovantes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Seqüência" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Definir como Provisório" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Situação" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Alteração de Situação" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Situação alterada" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Imposto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Valor do Imposto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "O comprovante foi totalmente pago" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "A conta de receita ou despesa relacionada ao produto selecionado." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "A referência do parceiro deste documento." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Para Revisar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Valor Total" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tipo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Preço Unitário" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Mensagens não lidas" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Contador de Mensagens Não Lidas" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validar" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Fornecedor" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Comprovante do Fornecedor" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Comprovante" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Lançamento de Comprovantes" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linhas do Comprovante" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Estatísticas de Comprovantes" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Lançamentos dos Recibos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Mensagens do Site" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Histórico de Comunicação do Site" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Quando o recibo de compra for confirmado, você pode gravar o\n" -"pagamento de fornecedores relacionados a este recibo de compra." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Quando o recibo de venda é confirmado, você pode gravar o pagamento\n" -"relacionado do cliente a este recibo de venda." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ro.po b/addons/account_voucher/i18n/ro.po deleted file mode 100644 index 4a05ab3a2af..00000000000 --- a/addons/account_voucher/i18n/ro.po +++ /dev/null @@ -1,687 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Dorin Hongu <dhongu@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Dorin Hongu <dhongu@gmail.com>, 2018\n" -"Language-Team: Romanian (https://www.transifex.com/odoo/teams/41243/ro/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* Starea 'Ciornă' este utilizata atunci când un utilizator înregistrează o Chitanță nouă și neconfirmată.\n" -"* 'Pro-forma' este atunci când chitanța este în starea Pro-forma, iar chitanța nu are număr.\n" -"* Starea 'Postat' este atunci când utilizatorul creează chitanța, este generat un număr pentru chitanță și sunt create notele contabilitate\n" -"* Starea 'Anulat' este atunci când utilizatorul anulează chitanța." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Cont" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Dată contabilă" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Dată contabilă" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Contabilitate Chitanță" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Intervenție necesară" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Valoare" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Cont analitic" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Etichetă analitic" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Sunteți sigur că doriți să anulați această chitanță?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Data facturii" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informații factură" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referință factură" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Anulează" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Anulați Chitanța" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Anulat(ă)" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Nu pot fi sterse voucherele care sunt deja deschise sau platite." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Companie" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Compania asociată acestui jurnal" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Creat de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Creat în" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Client" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dată" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Descriere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Nume afișat" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Ciornă" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Chitanțe ciornă" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Data scadenței" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Dată efectivă pentru înregistrarile contabile" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Persoane interesate" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupează după" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Dacă este selectat, mesajele noi necesită atenția dumneavoastră." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Dacă este selectat, mesajele noi necesită atenția dumneavoastră." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Note Interne" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Este urmăritor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Jurnal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Notă contabilă" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Note contabile" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Ultima modificare la" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Ultima actualizare făcută de" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Ultima actualizare pe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Mesaje" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Note" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Număr" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Număr de acțiuni" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Număr de mesaje ce necesită intervenție" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Număr de mesaje necitite" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Numai pentru taxele excluse din preț" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Plătit" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partener" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Plată imediată" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Plată ulterioară" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Plată" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Metoda de plată" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Vă rugăm sa activați secvența jurnalului selectat !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Vă rugăm sa definiți o secvență in jurnal." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Postat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Chitanțe postate" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produs" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Achiziție" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Chitanță cumpărături" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Voucher de Cumparaturi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Cantitate" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Recepții" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Vânzare" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informații vânzări" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Chitanță vânzări" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Cautati vouchere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Secvență" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Setează ca ciornă" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Stare" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Schimbarea Stării" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status modificat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Taxă" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Valoare taxă" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Chitanța fost plătită în totalitate." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Contul de venituri sau de cheltuieli asociat produsului selectat." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "De verificat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Total" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Valoare totală" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tip" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Preț unitar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Mesaje necitite" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Contor mesaje necitite" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Validează" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Furnizor" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Chitanță furnizor" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Chitanță" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Înregistrări chitanțe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linii chitanță" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistici chitanțe" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Înregistrări chitanțe" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Mesaje Website" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Istoric comunicare website" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ru.po b/addons/account_voucher/i18n/ru.po deleted file mode 100644 index 0d44f6a6ba3..00000000000 --- a/addons/account_voucher/i18n/ru.po +++ /dev/null @@ -1,693 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Gennady Marchenko <gennadym@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Gennady Marchenko <gennadym@gmail.com>, 2018\n" -"Language-Team: Russian (https://www.transifex.com/odoo/teams/41243/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* Статус 'Черновик' используется, когда пользователь, создает новый и неподтвержденный Ваучер. \n" -"* Статус 'Проформа'используется, когда ваучер не имеет номера ваучера. \n" -"* Статус 'Проведено' используется, когда пользователю создает ваучер, генерируется номер ваучера и записи ваучера создаются в бухгалтерском учете. \n" -"* Статус 'Отменено' используется, когда пользователь отменяет ваучер." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Счёт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Отчетная дата" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Дата сдачи отчётности" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Бухгалтерский учет Ваучера" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Требует внимания" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Сумма" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Аналитический счёт" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Теги аналитики" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Вы уверены, что хотите отменить это получение?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Дата выставления счёта" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Информация счёта" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Описание счёта" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Отменить" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Отменить Получение" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Отменено" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Не удается удалить ваучер(ы), которые уже открыты или оплачены." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Компания" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Организация, связанная с этим журналом" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Создано" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Создан" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Валюта" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Заказчик" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Дата" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Описание" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Отображаемое Имя" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Черновик" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Черновики Ваучеров" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Срок оплаты" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Дата вступления в силу бухгалтерских проводок" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Подписчики" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Подписчики (Каналы)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Подписчики (Партнеры)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Дает последовательность этой линии при отображении ваучера." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Группировать" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "Номер" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Если отмечено, новые сообщения будут требовать вашего внимания." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Если отмечено - новые сообщения требуют Вашего внимания." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"В случае, если мы имеем проблему округления в налоге, используйте это поле, " -"чтобы исправить это" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Внутренние заметки" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Подписчик" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Журнал" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Запись журнала" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Элементы журнала" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Последнее изменение" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Последний раз обновил" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Последнее обновление" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Сообщения" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Заметки" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Номер" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Количество действий" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Количество сообщений, требующих внимания" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Количество непрочитанных сообщений" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Только для налога исключенного из цены" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Оплачено" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Партнёр" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Прямой платеж" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Оплатить позже" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Платеж" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Метод Оплаты" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Пожалуйста, включите нумерацию выбранного журнала!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Пожалуйста, определите нумерацию журнала." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Проведено" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Проведенные Ваучеры" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Проформа" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Продукт" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Закупка" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Квитанция Покупки" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Заказ на закупку" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Количество" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Приходы" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Продажа" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Информация о продажах" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Квитанция продаж" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Искать ваучеры" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Нумерация" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Сделать черновиком" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Статус" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Изменение Статуса" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Статус изменился" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Налог" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Сумма налога" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Ваучер был полностью оплачен." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Счет доходов или расходов, связанный с выбранным продуктом." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Ссылка партнера этого документа." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Для проверки" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Всего" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Итоговая сумма" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Тип" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Цена за ед." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Непрочитанные Сообщения" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Счетчик непрочитанных сообщений" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Проверить" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Поставщик" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Ваучер Поставщика" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Товарный чек" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Проводки ваучера" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Позиции ваучера" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Статистика Ваучера" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Проводки ваучеров" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Сообщения с сайта" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "История общения с сайта" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Когда квитанция покупки подтверждена, Вы можете сделать запись оплаты " -"продавца, связанной с этой квитанцией покупки." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Когда квитанция продаж подтверждена, Вы можете сделать запись оплаты " -"покупателя, связанной с этой квитанцией продаж." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/sk.po b/addons/account_voucher/i18n/sk.po deleted file mode 100644 index b918bc9275c..00000000000 --- a/addons/account_voucher/i18n/sk.po +++ /dev/null @@ -1,701 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Robert Kirschner <robertkirschner@yahoo.com>, 2018 -# Martin Trigaux, 2018 -# Matus Krnac <matus.krnac@gmail.com>, 2018 -# Pavol Krnáč <pavol.krnac@ekoenergo.sk>, 2018 -# Jaroslav Bosansky <jaro.bosansky@ekoenergo.sk>, 2018 -# Stefan Stieranka <stieranka@itec.sk>, 2018 -# gebri <gebri@inmail.sk>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: gebri <gebri@inmail.sk>, 2018\n" -"Language-Team: Slovak (https://www.transifex.com/odoo/teams/41243/sk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* Status \"Návrh\" sa používa, keď používateľ kóduje nový a nepotvrdený poukaz.\n" -"\n" -"* \"Pro-forma\" status sa používa, keď poukaz nemá číslo poukážky.\n" -"\n" -"* Status \"Uverejnené\" sa používa, keď používateľ vytvorí poukážku, číslo poukážky je vygenerované a položky poukážky sú vytvorené v účte.\n" -"\n" -" * Status \"Zrušené\" sa používa keď užívateľ zruší poukážku." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Účet" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Dátum účtu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Účtovný dátum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Účtovný poukaz" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Potrebná akcia" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Suma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analytický účet" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analytické štítky " - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Ste si istý že checte zrušiť túto potvrdenku?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Dátum účtenky" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informácie účtenky" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Referencia účtenky" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Zrušiť" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Zrušiť potvrdenku" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Zrušené" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Nemožno zrušiť potvrdenku(y) ktorá je už otvorená alebo zapalatená." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Spoločnost" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Spoločnosť vzťahujúca sa k tejto účtovnej knihe" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Vytvoril" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Vytvorené" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Mena" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Zákazník" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Dátum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Popis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Zobrazovaný Názov" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Návrh" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Koncept poukazu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Dátum splatnosti" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Dátum účinnosti pre účtovné vstupy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Odberatelia" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Odberatelia (Kanály)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Odberatelia (Partneri)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Dáva sekvenciu tohoto riadku pri zobrazovaní poukazu." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Zoskupiť podľa" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Ak zaškrtnuté, nové správy vyžadujú vašu pozornosť." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Ak zaškrtnuté, nové správy vyžadujú vašu pozornosť." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"V príapde že je problém so zaokrúhľovaním dane, pouźite toto pole pre jeho " -"opravu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interné Poznámky" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Je odberateľ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Účtovná kniha" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Vstup účtovnej knihy" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Položky účtovnej knihy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Posledná modifikácia" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Naposledy upravoval" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Naposledy upravované" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Správy" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Poznámky" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Číslo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Počet akcií" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Počet správ ktoré vyžadujú akciu" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Počet neprečítaných správ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Ibe pre daň vyňatú z ceny" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Platené" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Zaplatiť priamo" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Zaplatiť neskôr" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Platba" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Metóda platby" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Prosím aktivujte sekvenciu zvolenej účtovnej knihy !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Prosím definujte sekvenciu na účtovnej knihe." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Zverejnené" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Zverejnené poukazy" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Nákup" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Nákupná potvrdenka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Nákupný poukaz" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Množstvo" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Potvrdenky" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Predaj" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informácie predaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Predajná potvrdenka " - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Vyhľadať poukazy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Postupnosť" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Nastaviť na koncept" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Stav" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Zmena stavu" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Zmena statusu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Daň" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Suma dane" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Úprava dane" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Poukaz bol plne zaplatený." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Príjmy a výdavky účtu súvisiace so zvoleným produktom." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Referencia partnera tohoto dokumentu." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Na preskúmanie" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Celkom" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Celková suma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Typ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Jednotková cena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Neprečítané správy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Počítadlo neprečítaných správ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Overiť" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Predajca" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Poukaz predajcu" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Poukaz" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Poukazové vstupy" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Riadky poukazu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Štatistiky poukazu" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Vstupy poukazu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Správy Webových stránok" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "História komunikácie webových stránok" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Keď je nákupná potvrdenka schválená, môžete nahrať\n" -"platbu predajcu spojenú s touto nákupnou potvrdenkou." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Keď je predajná potvrdenka schválená, môžete nahrať zákaznícku\n" -"platbu spojenú s touto predajnou potvrdenkou." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/sl.po b/addons/account_voucher/i18n/sl.po deleted file mode 100644 index 7208c26dae9..00000000000 --- a/addons/account_voucher/i18n/sl.po +++ /dev/null @@ -1,552 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Language-Team: Slovenian (https://www.transifex.com/odoo/teams/41243/sl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/sq.po b/addons/account_voucher/i18n/sq.po deleted file mode 100644 index 60232c3d1c8..00000000000 --- a/addons/account_voucher/i18n/sq.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n" -"Language-Team: Albanian (https://www.transifex.com/odoo/teams/41243/sq/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sq\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Llogaria Analitike" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Anullo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "E Anulluar" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Kompani" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Krijuar nga" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Krijuar me" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Partner" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Përshkrimi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Emri i paraqitur" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupo Nga" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Modifikimi i fundit në" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Modifikuar per here te fundit nga" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Modifikuar per here te fundit me" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Produkti" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Sasia" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Sekuencë" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Statusi" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/sr.po b/addons/account_voucher/i18n/sr.po deleted file mode 100644 index aca289f8f74..00000000000 --- a/addons/account_voucher/i18n/sr.po +++ /dev/null @@ -1,683 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Slobodan Simić <slsimic@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: Slobodan Simić <slsimic@gmail.com>, 2018\n" -"Language-Team: Serbian (https://www.transifex.com/odoo/teams/41243/sr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sr\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Рачун" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Knjigovodstvo Vaucera" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Рачун аналитике" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Datum Racuna" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informacije Racuna" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Otkaži" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Otkazano" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Kompanija" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Kreiran" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kupac" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Opis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Priprema" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Datum dospeća" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Efektivni datum za sadrzaj racuna" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupiši po" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne Beleske" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Извештај" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Sadrzaj dnevnika" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Sadrzaj Dnevnika" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Poruke" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Beleške" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Broj" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Plaćeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Direktna Isplata" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Isplata" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Nacin Placanja" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Proknjiženo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Predračun" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Proizvod" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Kupovina" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Kolicina" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Prodaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informacije Prodaje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Racun Prodaje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Pretrazi Vaucere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Niz" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Postavi u pripremu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Порез" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Iznos poreza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Konto prihoda ili troškova vezan za odabrani proizvod." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Pregledati" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Ukupno" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Ukupni iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tip" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Jedinična cijena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Overi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Vaucer" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Sadrzaj Vaucera" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linije Vaucera" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistike Vaucera" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Sadrzaji Vaucera" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/sr@latin.po b/addons/account_voucher/i18n/sr@latin.po deleted file mode 100644 index 162f2b46ac5..00000000000 --- a/addons/account_voucher/i18n/sr@latin.po +++ /dev/null @@ -1,560 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux <mat@odoo.com>, 2017 -# Djordje Marjanovic <djordje_m@yahoo.com>, 2017 -# Nemanja Dragovic <nemanjadragovic94@gmail.com>, 2017 -# Ljubisa Jovev <ljubisa.jovev@gmail.com>, 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.saas~18\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 09:52+0000\n" -"PO-Revision-Date: 2017-09-20 09:52+0000\n" -"Last-Translator: Ljubisa Jovev <ljubisa.jovev@gmail.com>, 2017\n" -"Language-Team: Serbian (Latin) (https://www.transifex.com/odoo/teams/41243/sr%40latin/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sr@latin\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_date -msgid "Accounting Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Knjigovodstveni vaucera" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "Iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "Analitički konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Da li ste sigurni da želite poništiti ovaj vaučer?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Datum računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Informacije o računu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "Oznaka računa" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Odustani" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Otkaži potvrdu" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Poništeno" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:159 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Otvorene ili plaćene vaučere nije moguće obrisati" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "Klikni za kreiranje vaučera prodaje." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "Klikni za kreiranje vaučera nabavke." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "Preduzeće" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "Preduzeće na koje se odnosi dnevnik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "Kreirao" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "Datum kreiranja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kupac" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "Opis" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "Naziv za prikaz" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Nacrt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Vaučeri u nacrtu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "Datum dospijeća" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_account_date -msgid "Effective date for accounting entries" -msgstr "Efektivni datum za računovodstvene unose" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupiši po" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"U slučaju da postoji problem zaokruživanja kod poreza, koristi se ovo polje " -"za ispravku" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interne beleške" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Dnevnik" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "Sadrzaj dnevnika" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Stavke knjiženja" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "Zadnja promena" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "Promenio" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "Vreme promene" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "Zabilješke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "Broj" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "Samo za porez koji nije u cijeni" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "Plaćeno" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Partner" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Plati direktno" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Plati kasnije" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "Plaćanje" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "Oznaka plaćanja" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:195 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Molimo aktivirajte brojevni krug odabranog dnevnika !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:198 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Molimo odaberite brojevni krug odabranog dnevnika !" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Proknjiženo" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Potvrđeni vaučeri" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Predračun" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "Proizvod" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Nabavka" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Vaučer nabavke" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "Vaučeri nabavke" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Vaučer nabavke" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "Količina" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Prodaja" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Informacije o prodaji" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Vaučer prodaje" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "Vaučeri prodaje" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Pretraži vaučere" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "Prioritet" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Postavi na nacrt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Promjena statusa" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Status promijenjen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "Porez" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax Amount" -msgstr "Iznos poreza" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "Vaučer je plaćen kompletno." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "Konto prihoda ili troškova vezan za odabrani proizvod." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "Partnerova oznaka ovog dokumenta." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Za provjeru" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "Ukupno" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Ukupan iznos" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "Tip" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "Jed. cena" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Potvrdi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Dobavljač" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Vaučer dobavljača" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:97 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Vaucer" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Sadrzaj Vaucera" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Linije Vaucera" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Statistike Vaucera" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Sadrzaji Vaucera" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:377 -#, python-format -msgid "You must first select a partner!" -msgstr "Morate prvo odabrati partnera!" diff --git a/addons/account_voucher/i18n/sv.po b/addons/account_voucher/i18n/sv.po deleted file mode 100644 index b3ffa4d5299..00000000000 --- a/addons/account_voucher/i18n/sv.po +++ /dev/null @@ -1,691 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Kristoffer Grundström <hamnisdude@gmail.com>, 2018 -# Martin Trigaux, 2018 -# Haojun Zou <apollo_zhj@msn.com>, 2018 -# Robert Frykelius <robert.frykelius@linserv.se>, 2018 -# Kim Asplund <kim.asplund@gmail.com>, 2018 -# lynnliuying <lynn.liu1971@gmail.com>, 2018 -# Anders Wallenquist <anders.wallenquist@vertel.se>, 2018 -# Martin Wilderoth <martin.wilderoth@linserv.se>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Martin Wilderoth <martin.wilderoth@linserv.se>, 2019\n" -"Language-Team: Swedish (https://www.transifex.com/odoo/teams/41243/sv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: sv\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Konto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Bokföringsdatum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Bokföringsdatum" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Redovisningsverifikat" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Åtgärd krävs" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Belopp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Objektkonto" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Objektetiketter" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Är du säker på att du vill avbryta detta kvitto?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Fakturadatum" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Räkningsinformation" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Fakturareferens" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Avbryt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Avbryt kvitto" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Avbruten" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Bolag" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Bolag relaterat till denna journal" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Skapad av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Skapad den" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Kund" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Datum" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Beskrivning" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Visningsnamn" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Utkast" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Preleminära bokföringsordrar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Förfallodatum" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Bokföringsdatum för konteringstransaktioner" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Följare" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Följare (Kanaler)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Följare (kontakter)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Gruppera på" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Om ikryssad nya meddelanden som kräver din uppmärksamhet" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" -"Om den är markerad så finns det meddelanden som kräver din uppmärksamhet." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Interna anteckningar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Är följare" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Journal" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Verifikation" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Journalrader" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Senast redigerad" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Senast uppdaterad av" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Senast uppdaterad" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Meddelanden" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Anteckningar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Nummer" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Antal åtgärder" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Antal meddelanden som kräver en åtgärd" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Antal olästa meddelanden" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Endast för skatt ej inkluderat i priset" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Betald" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Företag" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Betala direkt" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Betalning" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Betalningsmetod" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Postat" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Bokfärda verifikat" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Pro-forma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Produkt" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Inköp" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Inköpskvitto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Antal" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Mottagningar" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Försäljning" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Försäljningsinformation" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Försäljningskvitto" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Sök verifikat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sekvens" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Sätt till utkast" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Status" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Statusbyte" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Skatt" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Momsbelopp" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Bokföringsordern är fullständigt betald." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Intäkt- eller kostnadskonto relarerat till vald produkt." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Att godkänna" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Totalt" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Totalsumma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Typ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Styckpris" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Olästa meddelanden" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Räknare olästa meddelanden" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Bekräfta" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Leverantör" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Verifikat" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Verifikattransaktioner" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Verifikatstransaktioner" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Verifikatstatistik" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Verfikatstransaktioner" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Webbplatsmeddelanden" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Webbplatsens kommunikationshistorik" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/ta.po b/addons/account_voucher/i18n/ta.po deleted file mode 100644 index 02db9cf2964..00000000000 --- a/addons/account_voucher/i18n/ta.po +++ /dev/null @@ -1,554 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2016-02-11 13:20+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: Tamil (http://www.transifex.com/odoo/odoo-9/language/ta/)\n" -"Language: ta\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "தொகை" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "ரத்து" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "நிறுவனம்" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "உருவாக்கியவர்" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" -"உருவாக்கப்பட்ட \n" -"தேதி" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "நாணயம்" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "தேதி" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "விளக்கம்" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "காட்சி பெயர்" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "கடைசியாக திருத்திய" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "கடைசியாக புதுப்பிக்கப்பட்டது" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "கடைசியாக புதுப்பிக்கப்பட்டது" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "எண்" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "கூட்டாளி" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "தயாரிப்பு" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "அளவு" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "விற்பனை" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "வரிசை" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "வரி" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "வகை" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "அலகு விலை" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" diff --git a/addons/account_voucher/i18n/te.po b/addons/account_voucher/i18n/te.po deleted file mode 100644 index 95e72128e9a..00000000000 --- a/addons/account_voucher/i18n/te.po +++ /dev/null @@ -1,555 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Odoo 9.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-18 14:06+0000\n" -"PO-Revision-Date: 2016-06-08 07:03+0000\n" -"Last-Translator: Martin Trigaux\n" -"Language-Team: Telugu (http://www.transifex.com/odoo/odoo-9/language/te/)\n" -"Language: te\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed " -"Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher " -"number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is " -"generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_id -msgid "Account" -msgstr "ఖాతా" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_subtotal -msgid "Amount" -msgstr "మొత్తం" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_account_analytic_id -msgid "Analytic Account" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Date" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:147 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Click to create a sale receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Click to register a purchase receipt." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_company_id -msgid "Company" -msgstr "కంపెనీ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_uid -msgid "Created by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_create_date -msgid "Created on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_currency_id -msgid "Currency" -msgstr "ద్రవ్యం" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Date" -msgstr "తేదీ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_name -msgid "Description" -msgstr "వివరణ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_display_name -msgid "Display Name" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_date_due -msgid "Due Date" -msgstr "గడువు తేదీ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_id -msgid "ID" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_move_id -msgid "Journal Entry" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher___last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line___last_update -msgid "Last Modified on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_uid -msgid "Last Updated by" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_write_date -msgid "Last Updated on" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_narration -msgid "Notes" -msgstr "గమనికలు" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_number -msgid "Number" -msgstr "సంఖ్య" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_paid -msgid "Paid" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_pay_now -msgid "Payment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_name -msgid "Payment Reference" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:183 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:186 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_product_id -msgid "Product" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "కొనుగోలు" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -msgid "Purchase Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_quantity -msgid "Quantity" -msgstr "పరిమాణం" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "అమ్మకం" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Sales Receipts" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_sequence -msgid "Sequence" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "స్థితి" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_tax_ids -msgid "Tax" -msgstr "పన్ను" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_amount -msgid "Tax amount" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_tax_correction -msgid "Tax correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line_account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_amount -msgid "Total" -msgstr "మొత్తం" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "మొత్తం" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_voucher_type -msgid "Type" -msgstr "రకం" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_price_unit -msgid "Unit Price" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:31 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:348 -#, python-format -msgid "You must first select a partner!" -msgstr "" - -#~ msgid "Action Needed" -#~ msgstr "Charya Avasaram" diff --git a/addons/account_voucher/i18n/th.po b/addons/account_voucher/i18n/th.po deleted file mode 100644 index 586dad43e5a..00000000000 --- a/addons/account_voucher/i18n/th.po +++ /dev/null @@ -1,688 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Seksan Poltree <seksan.poltree@gmail.com>, 2018 -# Khwunchai Jaengsawang <khwunchai.j@ku.th>, 2018 -# LAO <sumonchai@gmail.com>, 2018 -# Ekasit Saichompu <ekasitb@gmail.com>, 2018 -# gsong <gsong2014@foxmail.com>, 2018 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-08-24 09:15+0000\n" -"Last-Translator: gsong <gsong2014@foxmail.com>, 2018\n" -"Language-Team: Thai (https://www.transifex.com/odoo/teams/41243/th/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: th\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "บัญชี" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "วันที่บัญชี" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "ใบสำคัญทางบัญชี" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "ต้องดำเนินการ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "จำนวน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "บัญชีวิเคราะห์" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "ป้ายกำกับการวิเคราะห์" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "คุณแน่ใจหรือว่าต้องการยกเลิกใบเสร็จรับเงินนี้" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "วันที่ออกบิล" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "ข้อมูลบิล" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "ยกเลิก" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "ยกเลิกใบเสร็จรับเงิน" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "ถูกยกเลิก" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "ไม่สามารถลบใบสำคัญที่ถูกเปิดหรือจ่ายแล้ว" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "บริษัท" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "สร้างโดย" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "สร้างเมื่อ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "สกุลเงิน" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "ลูกค้า" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "วันที่" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "รายละเอียด" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "ชื่อที่ใช้แสดง" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "ร่าง" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "ร่างใบสำคัญ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "วันกำหนดจ่าย" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "ผู้ติดตาม" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "ผู้ติดตาม (ช่องทาง)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "ผู้ติดตาม (คู่ค้า)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "จัดกลุ่มโดย" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "รหัส" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "ถ้าเลือก ข้อความใหม่จะต้องการความสนใจจากคุณ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "ถ้าเลือก ข้อความใหม่จะต้องการความสนใจจากคุณ" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "โน้ตภายใน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "เป็นผู้ติดตาม" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "สมุดบัญชี" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "บันทึกบัญชี" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "รายการสมุดบัญชีรายวัน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "แก้ไขครั้งสุดท้ายเมื่อ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "อัพเดทครั้งสุดท้ายโดย" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "อัพเดทครั้งสุดท้ายเมื่อ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "ข้อความ" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "โน้ต" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "หมายเลข" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "จำนวนกิจกรรม" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "ชำระแล้ว" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "คู่ค้า" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "จ่ายโดยตรง" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "การจ่ายเงิน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "วิธีการจ่ายเงิน" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "ลงบัญชีแล้ว" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "ใบสำคัญการลงบัญชี" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "สินค้า" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "การซื้อ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "ใบจ่ายเงินการจัดซื้อ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "ใบสำคัญการจัดซื้อ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "จำนวน" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "การรับ" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "ขาย" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "ข้องมูลการขาย" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "ใบเสร็จการขาย" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "ค้นหาใบสำคัญ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "ลำดับ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "กำหนดให้เป็นฉบับร่าง" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "สถานะ" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "สถานะเปลี่ยนแปลง" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "เปลี่ยนสถานะแล้ว" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "ภาษี" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "จำนวนภาษี" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "จะทบทวน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "รวม" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "จำนวนเงินรวม" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "ประเภท" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "ราคาต่อหน่วย" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "ข้อความที่ยังไม่ได้อ่าน" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "จำนวนข้อความที่ยังไม่ได้อ่าน" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "ตรวจสอบ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "ผู้จำหน่าย" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "ใบสำคัญ" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "การลงใบสำคัญ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "รายการใบสำคัญ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "สถิติใบสำคัญ" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "การลงใบสำคัญ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "ข้อความจากเว็บไซต์" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "ประวัติการสื่อสารเว็บไซต์" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/tr.po b/addons/account_voucher/i18n/tr.po deleted file mode 100644 index 6dd939094d4..00000000000 --- a/addons/account_voucher/i18n/tr.po +++ /dev/null @@ -1,703 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Güven YILMAZ <guvenyilmaz@outlook.com.tr>, 2017 -# Alexander B. <road2monstercat@gmail.com>, 2017 -# Gökhan Erdoğdu <gokhan.erdogdu@mechsoft.com.tr>, 2017 -# gezgin biri <gezginbiri@hotmail.com>, 2017 -# Fırat Kaya <firat.kaya@mechsoft.com.tr>, 2017 -# Ayhan KIZILTAN <akiziltan76@hotmail.com>, 2018 -# Martin Trigaux, 2018 -# Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2018 -# Mehmet Demirel <mdemirell@gmail.com>, 2018 -# Ramiz Deniz Öner <deniz@denizoner.com>, 2018 -# Murat Kaplan <muratk@projetgrup.com>, 2019 -# Buket Şeker <buket_skr@hotmail.com>, 2019 -# Ediz Duman <neps1192@gmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n" -"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: tr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* 'Taslak' durumu, bir kullanıcı yeni yada onaylanmamış bir Makbuz hazırlıyorsa kullanılır.\n" -"* 'Proforma' durumu, bir makbuzun numaralandırılmamış olması durumunda kullanılır.\n" -"* 'Onaylı' durumu, kullanıcı bir makbuz oluştururken kullanılır, bir makbuz numarası oluşturulur ve makbuz girişleri hesapta oluşturulur.\n" -"* 'İptal edildi' durumu kullanıcı bir makbuzu iptal ettiğinde kullanılır." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Hesap" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Hesap Tarihi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Muhasebe Tarihi" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Muhasebe Fişi" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "Muhasebe Makbuz Satırı" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Eylem Gerekiyor" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Tutar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Analitik Hesap" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Analitik Etiketleri" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Bu makbuzu iptal etmek istediğinizden emin misiniz?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Ek Sayısı" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Fatura Tarihi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Fatura Bilgileri" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Fatura Referansı" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "İptal" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Makbuz İptal et" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "İptal Edildi" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Hali hazırda açık ya da ödenmiş olan makbuz(lar) silinemiyor." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Firma" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Bu yevmiyeyle bağlantılı şirket" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Oluşturan" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Oluşturulma zamanı" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Para Birimi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Müşteri" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Tarih" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Tanım" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Görünüm Adı" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Taslak" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Taslak Makbuzlar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Vade Tarihi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Hesap Girişleri için Yürürlük Tarihi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Takipçiler" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Takipçiler (Kanallar)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Tekipçiler (İş ortakları)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Makbuz görüntülenirken bu satırın sırasını verir." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Grupla" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Eğer işaretliyse yeni iletiler ilginizi gerektirir." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "İşaretliyse, yeni mesajlar dikkatinize sunulacak." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "Vergide yuvarlama sorunu olduğunda, düzeltmek için bu alanı kullanın" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "İç Notlar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Takipçi mi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Yevmiye" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Yevmiye Kaydı" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Yevmiye Kalemleri" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Son Güncelleme" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Son Güncelleyen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Son Güncelleme" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Ana Ek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Mesaj İletilme Hatası" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Mesajlar" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Notlar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Numara" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Eylemlerin Sayısı" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Hata Sayısı" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Eylem gerektiren mesaj sayısı" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Teslimat hatası olan mesaj sayısı" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Okunmamış mesaj sayısı" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Yalnızca vergi hariç fiyatlarda" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Ödenen" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "İş Ortağı" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Doğrudan Ödeme" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Sonra Öde" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Ödeme" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "Ödeme Notu" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Ödeme Yöntemi" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Lütfen seçilen yevmiyenin seri numarasını etkinleştirin !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Yevmiye için lütfen bir seri no tanımlayın." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Onaylı" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Onaylı Makbuzlar" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Proforma" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Ürün" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Satınalma" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Satınalma Makbuzu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Satınalma Makbuzları" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Adet" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Mal Kabul" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Satış" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Satış Bilgisi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Satış Makbuzu" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Makbuz Arama" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Sıra" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Taslağa Ayarla" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Durum" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Durum Değişimi" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Durumu değişti" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Vergi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Vergi Tutarı" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Vergi Düzeltmesi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Makbuz tamamen ödenmiştir." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Seçilen ürünle ilgili gelir ve gider hesabı." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Bu belgedeki iş ortağı referansı." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "İncelenecek" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Toplam" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Toplam Tutar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Tür" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Birim Fiyat" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Okunmamış Mesajlar" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Okunmamış Mesaj Sayacı" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Doğrula" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Tedarikçi" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Tedarikçi Makbuzu" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Makbuz" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Makbuz Girişleri" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Makbuz Satırları" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Makbuz İstatistikleri" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Makbuz Girişleri" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Websitesi Mesajları" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Web Sitesi iletişim geçmişi" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Satınalma makbuzu onaylandığında, bu satınalma makbuzu ile\n" -"ilgili satıcı ödemesini kaydedebilirsiniz." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Satış makbuzu onaylandığında, bu satınalma makbuzu ile\n" -"ilgili müşteri ödemesini kaydedebilirsiniz." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "İlk önce bir ortak seçmelisiniz." diff --git a/addons/account_voucher/i18n/uk.po b/addons/account_voucher/i18n/uk.po deleted file mode 100644 index 0455b750b03..00000000000 --- a/addons/account_voucher/i18n/uk.po +++ /dev/null @@ -1,698 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# ТАрас <tratatuta@i.ua>, 2018 -# Sergiy <jshmitz@me.com>, 2018 -# Анатолій Пономаренко <aponomarenko020@gmail.com>, 2018 -# Bohdan Lisnenko, 2019 -# Alina Lisnenko <alinasemeniuk1@gmail.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: Alina Lisnenko <alinasemeniuk1@gmail.com>, 2019\n" -"Language-Team: Ukrainian (https://www.transifex.com/odoo/teams/41243/uk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: uk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* Статус 'Чернетка' використовується, коли користувач кодує новий та непідтверджений ваучер\n" -" * Статус \"Проформа\" використовується, коли ваучер не має номера ваучера\n" -" * Статус \"Опубліковано\" використовується, коли користувач створює ваучер, створюється номер ваучера, а в обліковому записі створюються записи про ваучер.\n" -" * Статус \"Скасовано\" використовується, коли користувач скасовує ваучер." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Рахунок" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Дата обліку" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Дата бухобліку" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Бухгалтерський ваучер" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "Рядок ваучера обліку" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Дія необхідна" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Сума" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Аналітичний рахунок" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Мітки аналітики" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Ви впевнені, що хочете скасувати цю квитанцію?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Підрахунок прикріплення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Дата рахунку" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Інформація про рахунок від постачальника" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Референс рахунку" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Скасувати" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Закрити квитанцію" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Скасовано" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "Неможливо видалити ваучери, які вже відкриті або оплачені." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Компанія" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Компанія-власник цього журналу" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "Створити нову квитанцію продажу" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Створив" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Створено" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Валюта" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Клієнт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Дата" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Опис" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Назва для відображення" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Чернетка" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Проект Ваучерів" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Установлений термін" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Дата набрання чинності для бухгалтерських записів" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Підписники" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Підписники (Канали)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Підписники (Партнери)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "Дає послідовність цього рядка під час показу ваучера." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Групувати за" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Якщо позначено, то повідомленя потребує вашої уваги" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Якщо відмічено, то нові повідомлення будуть потребувати вашої уваги." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Якщо позначено, деякі повідомлення мають помилку доставки." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Якщо у нас є проблема округлення податку, використовуйте це поле для його " -"виправлення" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Внутрішні примітки" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Стежить" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Журнал" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Запис в журналі" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Елементи журналу" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Остання модифікація" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Востаннє оновив" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Останнє оновлення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Основне прикріплення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "Помилка доставлення повідомлення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Повідомлення" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "Відсутня компанія" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "Відсутня валюта" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Примітки" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Номер" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Кількість дій" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Кількість помилок" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Кількість повідомлень, які потебують дії" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Кількість повідомлень з помилковою дставкою" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Кількість непрочитаних повідомлень" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Тільки для податку виключається з ціни" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Оплачено" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Партнер" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Платити прямо" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Платити пізніше" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Оплата" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "Платіжне доручення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Спосіб оплати" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Будь ласка, активуйте послідовність вибраного журналу!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Будь ласка, визначте послідовність в журналі." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Опубліковано" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Опубліковані ваучери" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "Проформа" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Товар" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Купівля" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Товарний чек/закупочний акт" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Ваучер на придбання" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Кількість" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Надходження" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "Зареєструйте нову квитанцію про купівлю" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Продаж" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Інформація про продаж" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Чек про продаж" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Знайти ваучери" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Послідовність" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Зробити чернеткою" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Статус" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Змінити статус" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Статус змінено" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Податок" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Сума податків" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "Податкове редагування" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Ваучер повністю оплачено." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Облік доходів або витрат, пов'язаних із вибраним товаром." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Партнерський референс на цей документ." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Оглянути" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Разом" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Загальна сума" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Тип" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Ціна одиниці" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Непрочитані повідомлення" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Кількість непрочитаних повідомлень" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Підтвердити" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Постачальник" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Ваучер продавця" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Ваучер" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Записи ваучера" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Рядки ваучера" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Статистика ваучера" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Записи ваучерів" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Повідомлення з вебсайту" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Історія бесіди на сайті" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Коли квитанцію про покупку підтверджено, ви можете записати платіж \n" -" постачальника, пов'язаний із цією квитанцією про придбання." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Коли квитанція про продаж підтверджено, ви можете записати платіж клієнта, \n" -" пов'язаний із цією квитанцією про продаж." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "Спочатку потрібно вибрати партнера." diff --git a/addons/account_voucher/i18n/vi.po b/addons/account_voucher/i18n/vi.po deleted file mode 100644 index 84459540b27..00000000000 --- a/addons/account_voucher/i18n/vi.po +++ /dev/null @@ -1,699 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# thanh nguyen <thanhnguyen.icsc@gmail.com>, 2018 -# Martin Trigaux, 2018 -# fanha99 <fanha99@hotmail.com>, 2018 -# son dang <son.dang@doda100.com>, 2018 -# Duy BQ <duybq86@gmail.com>, 2018 -# Minh Nguyen <ndminh210994@gmail.com>, 2018 -# khoibv Mr <kendev2009@gmail.com>, 2018 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2018-09-21 13:17+0000\n" -"Last-Translator: khoibv Mr <kendev2009@gmail.com>, 2018\n" -"Language-Team: Vietnamese (https://www.transifex.com/odoo/teams/41243/vi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: vi\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * Trạng thái 'Dự thảo' được sử dụng khi một người dùng tạo mới và chưa xác nhận Biên lai (Voucher). \n" -"* 'Pro-forma' khi biên lai trong trạng thái Pro-forma, biên lai có không số biên lai. \n" -"* Trạng thái 'Đã vào sổ' được sử dụng khi người dùng tạo biên lại, một số biên lai được tạo ra và bút toán biên lai được tạo trong hệ thống kế toán \n" -"* Trạng thái 'Hủy bỏ' được sử dụng khi người dùng hủy bỏ biên lai." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "Tài khoản" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "Ngày Kế toán" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "Ngày kế toán" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "Biên lai Kế toán" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "Cần có Hành động" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "Tổng tiền" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "Tài khoản quản trị" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "Từ khóa phân tích" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "Bạn chắc chắn muốn hủy bỏ biên lai này?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "Số đính kèm" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "Ngày hóa đơn" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "Thông tin hoá đơn" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "Dẫn chiếu Hoá đơn" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "Hủy" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "Hủy Biên lai" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "Đã hủy" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "" -"Không thể xoá (các) biên lai mà đang ở trạng thái mở hoặc đã thanh toán." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "Công ty" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "Công ty liên quan tới sổ nhật ký này" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "Được tạo bởi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "Thời điểm tạo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "Tiền tệ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "Khách hàng" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "Ngày" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "Miêu tả" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "Tên hiển thị" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "Nháp" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "Biên lai dự thảo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "Ngày đến hạn" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "Ngày hiệu lực cho bút toán kế toán" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "Người dõi theo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "Người theo dõi (Các kênh)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "Người theo dõi (Các đối tác)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "Nhóm theo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "Nếu đánh dấu kiểm, các thông điệp mới yêu cầu sự có mặt của bạn." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Nếu đánh dấu kiểm, các thông điệp mới yêu cầu sự có mặt của bạn." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "" -"Trong trường hợp chúng ta có trục trặc về việc làm tròn trong thuế, sử dụng " -"trường này để hiệu chỉnh" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "Ghi chú nội bộ" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "Trở thành người theo dõi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "Sổ nhật ký" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "Bút toán sổ nhật ký" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "Phát sinh" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "Sửa lần cuối vào" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "Cập nhật lần cuối bởi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "Cập nhật lần cuối vào" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "Đính kèm chính" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "Thông điệp" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "Ghi chú" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "Số" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "Số lượng Hành động" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "Số lỗi" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "Số thông điệp cần có hành động" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "Số thông điệp chưa đọc" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "Chỉ dành cho thuế bao gồm trong giá" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "Đã thanh toán" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "Đối tác" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "Thanh toán trực tiếp" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "Thanh toán sau" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "Thanh toán" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "Phương thức thanh toán" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "Vui lòng kích hoạt trình tự của sổ nhật ký được chọn!" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Vui lòng định nghĩa trình tự trên sổ nhật ký này." - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "Đã vào sổ" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "Biên lai đã vào sổ" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "hoá đơn tạm" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "Sản phẩm" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "Mua hàng" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "Biên lai mua hàng" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "Biên lai mua hàng" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "Số lượng" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "Nhận hàng" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "Bán" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "Các thông tin Kinh doanh" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "Biên lai bán hàng" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "Tìm kiếm biên lai" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "Trình tự" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "Thiết lập về dự thảo" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "Trạng thái" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "Thay đổi trạng thái" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "Trạng thái bị thay đổi" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "Thuế" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "Số tiền thuế" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "Biên lai đã được thanh toán hết." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "Tài khoản doanh thu hoặc chi phí liên quan tới sản phẩm đã chọn." - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "Tham chiếu cho đối tác về tài liệu này." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "Để xem xét" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "Tổng" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "Tổng số tiền" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "Loại" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "Đơn giá" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "Tin chưa đọc" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "Bộ đếm Thông điệp chưa đọc" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "Xác nhận" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "Nhà cung cấp" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "Biên lai Nhà cung cấp" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "Phiếu" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "Bút toán Biên lai (voucher)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "Chi tiết biên lai (voucher)" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "Thống kê Biên lai (voucher)" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "Bút toán Biên lai (Voucher)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "Thông điệp Website" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "Lịch sử thông tin liên lạc website" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "" -"Khi một biên lai mua hàng được xác nhận, bạn có thể ghi nhận thanh\n" -" toán liên quan đến biên lai mua hàng này." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "" -"Khi một biên lai bán hàng được xác nhận, bạn có thể ghi nhận thanh\n" -" toán liên quan đến biên lai bán hàng này." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "" diff --git a/addons/account_voucher/i18n/zh_CN.po b/addons/account_voucher/i18n/zh_CN.po deleted file mode 100644 index bed1834c12a..00000000000 --- a/addons/account_voucher/i18n/zh_CN.po +++ /dev/null @@ -1,697 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# 苏州远鼎 <tiexinliu@126.com>, 2017 -# 老窦 北京 <2662059195@qq.com>, 2018 -# liulixia <liu.lixia@elico-corp.com>, 2018 -# e2f_cn c7 <e2f_cn_c7@outlook.com>, 2018 -# JZH-Odoo <jzh@odoo.com>, 2018 -# ChinaMaker <liuct@chinamaker.net>, 2018 -# liAnGjiA <liangjia@qq.com>, 2018 -# Jeffery CHEN Fan <jeffery9@gmail.com>, 2019 -# keecome <7017511@qq.com>, 2019 -# bower Guo <124358678@qq.com>, 2019 -# roye w <159820@qq.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: roye w <159820@qq.com>, 2019\n" -"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -"* ‘草稿’状态被用来标识新生成的但是还没被确认的凭证\n" -"* ‘形式’状态被用在凭证还没有凭证号的时候\n" -"* ‘已过账’状态用在创建了凭证,生成了相关的凭证号并且该凭证的会计分录也已经生成的时候\n" -"* “取消’状态被用在已经去小的凭证上" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "账户" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "会计日期" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "会计日期" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "会计凭单" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "会计凭证明细" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "需要采取行动" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "总额" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "分析账户" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "辅助核算标签" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "你确信要取消这个收据?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "附件数量" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "账单日期" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "账单信息" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "账单参照" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "取消" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "取消收据" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "已取消" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "不能删除已经开启或者支付的单据。" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "公司" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "日记账相关的公司" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "创建一个新的销售收据" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "创建人" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "创建时间" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "币种" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "客户" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "日期" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "说明" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "显示名称" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "草稿" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "草稿凭单" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "截止日期" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "会计分录的生效日期" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "关注者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "关注者(渠道)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "关注者(业务伙伴)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "当显示凭证的时候给出序列号" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "分组" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "查看是否有需要你留意的新信息。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "如果勾选此项,有新消息会提醒你。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "如果勾选此项, 某些信息将会产生传递错误。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "如果我们在税上遇到舍入问题,用这个字段来纠正" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "内部备注" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "是关注者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "日记账" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "日记账分录" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "日记账项目" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "最后修改日" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "最后更新人" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "最后更新时间" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "附件" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "消息递送错误" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "消息" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "缺失公司" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "缺失货币" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "备注" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "号码" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "行动数量" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "错误数" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "需要行动消息的数量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "递送错误的消息数量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "未读消息的数量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "仅针对价外税" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "已支付" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "业务伙伴" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "直接支付" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "稍后付款" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "付款" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "付款备注" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "付款方式" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "请激活选中日记账的 序号( sequence )。" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "请在日记账中定义序列号" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "已过账" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "已过账凭单" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "形式" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "产品" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "采购" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "采购收据" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "采购凭单" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "数量" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "收货" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "创建新采购收据" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "销售" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "销售信息" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "销售收据" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "搜索凭单" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "序号" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "设为草稿" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "状态" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "状态更改" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "状态已变更" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "税金" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "税金总额" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "纳税调整" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "这张凭单已全部付完" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "被选定产品的相关收入科目或者费用科目" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "这个单子的业务伙伴参照" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "待审查" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "总计" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "金额总计" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "类型" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "单价" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "未读消息" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "未读消息计数器" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "验证" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "供应商" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "供应商凭单" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "凭单" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "凭单分录" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "凭单行" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "凭单统计" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "凭单分录" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "网站信息" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "网站沟通记录" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "当采购收据被确认掉,你也可以同时登记这张采购收据的付款" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "当销售收据被确认掉,你也可以同时登记这张销售收据的付款" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "必须先选择一个客户" diff --git a/addons/account_voucher/i18n/zh_TW.po b/addons/account_voucher/i18n/zh_TW.po deleted file mode 100644 index 9afc1743d62..00000000000 --- a/addons/account_voucher/i18n/zh_TW.po +++ /dev/null @@ -1,692 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_voucher -# -# Translators: -# Martin Trigaux, 2018 -# Michael Yeung, 2018 -# Bill Hsu <hcm86@icloud.com>, 2018 -# sejun huang <sejun.huang@gmail.com>, 2018 -# Andy Cheng <andy.cheng@richsoda.com>, 2019 -# 敬雲 林 <chingyun@yuanchih-consult.com>, 2019 -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server saas~11.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-21 13:17+0000\n" -"PO-Revision-Date: 2016-08-05 12:55+0000\n" -"Last-Translator: 敬雲 林 <chingyun@yuanchih-consult.com>, 2019\n" -"Language-Team: Chinese (Taiwan) (https://www.transifex.com/odoo/teams/41243/zh_TW/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: zh_TW\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__state -msgid "" -" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" -" * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" -" * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" -" * The 'Cancelled' status is used when user cancel voucher." -msgstr "" -" * 『草稿』狀態被用來標識新建立但是還沒被驗證的憑證.\n" -"* 『形式』狀態被用在憑證還沒有憑證號的時候.\n" -"* 『已過帳』狀態用在創建了憑證,生成了相關的憑證號並且該憑證的會計分錄也已經生成的時候.\n" -"* 「取消』狀態被用在已取消憑證." - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_id -msgid "Account" -msgstr "科目" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -msgid "Account Date" -msgstr "會計日期" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__account_date -msgid "Accounting Date" -msgstr "會計日期" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher -msgid "Accounting Voucher" -msgstr "會計憑證" - -#. module: account_voucher -#: model:ir.model,name:account_voucher.model_account_voucher_line -msgid "Accounting Voucher Line" -msgstr "會計憑證明細" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction -msgid "Action Needed" -msgstr "需要採取行動" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_subtotal -msgid "Amount" -msgstr "金額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__account_analytic_id -msgid "Analytic Account" -msgstr "分析帳戶" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__analytic_tag_ids -msgid "Analytic Tags" -msgstr "分析標籤" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Are you sure you want to cancel this receipt?" -msgstr "您確信要取消這個收據?" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_attachment_count -msgid "Attachment Count" -msgstr "附件數" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Bill Date" -msgstr "帳單日期" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Bill Information" -msgstr "帳單信息" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__reference -msgid "Bill Reference" -msgstr "帳單參照" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Cancel" -msgstr "取消" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Cancel Receipt" -msgstr "取消收據" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Cancelled" -msgstr "已取消" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:172 -#, python-format -msgid "Cannot delete voucher(s) which are already opened or paid." -msgstr "不能刪除已經開啟或者支付的憑證。" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__company_id -msgid "Company" -msgstr "公司" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__company_id -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__company_id -msgid "Company related to this journal" -msgstr "公司關聯到該日記帳" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "Create a new sale receipt" -msgstr "創建新的銷售憑單" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_uid -msgid "Created by" -msgstr "創建者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__create_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__create_date -msgid "Created on" -msgstr "創建時間" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__currency_id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__currency_id -msgid "Currency" -msgstr "貨幣" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -msgid "Customer" -msgstr "客戶" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Date" -msgstr "日期 " - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__name -msgid "Description" -msgstr "描述" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__display_name -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__display_name -msgid "Display Name" -msgstr "顯示名稱" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft" -msgstr "草稿" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Draft Vouchers" -msgstr "草稿憑證" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__date_due -msgid "Due Date" -msgstr "截止日期" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__account_date -msgid "Effective date for accounting entries" -msgstr "會計分錄的生效日期" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_follower_ids -msgid "Followers" -msgstr "訂閱者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_channel_ids -msgid "Followers (Channels)" -msgstr "關注者(渠道)" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_partner_ids -msgid "Followers (Partners)" -msgstr "關注者(業務夥伴)" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__sequence -msgid "Gives the sequence of this line when displaying the voucher." -msgstr "當顯示憑證的時候給出序列號." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Group By" -msgstr "分組" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__id -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__id -msgid "ID" -msgstr "ID" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread -msgid "If checked new messages require your attention." -msgstr "查看是否有需要您留意的新信息。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction -msgid "If checked, new messages require your attention." -msgstr "如果勾選此項,有新消息會提醒您。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "如果勾選此項, 某些信息將會產生傳遞錯誤。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__tax_correction -msgid "" -"In case we have a rounding problem in the tax, use this field to correct it" -msgstr "如果我們在稅上遇到捨入問題,用這個字段來糾正" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Internal Notes" -msgstr "內部備註" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_is_follower -msgid "Is Follower" -msgstr "是訂閱者" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__journal_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Journal" -msgstr "日記帳" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__move_id -msgid "Journal Entry" -msgstr "日記帳分錄" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Journal Items" -msgstr "日記帳項" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher____last_update -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line____last_update -msgid "Last Modified on" -msgstr "最後修改時間" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_uid -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_uid -msgid "Last Updated by" -msgstr "最後更新人" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__write_date -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__write_date -msgid "Last Updated on" -msgstr "最後更新時間" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_main_attachment_id -msgid "Main Attachment" -msgstr "主要附件" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error -msgid "Message Delivery error" -msgstr "郵件傳遞錯誤" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_ids -msgid "Messages" -msgstr "消息" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:109 -#, python-format -msgid "Missing Company" -msgstr "缺少公司" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:111 -#, python-format -msgid "Missing Currency" -msgstr "缺少貨別" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__narration -msgid "Notes" -msgstr "便簽" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__number -msgid "Number" -msgstr "號碼" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of Actions" -msgstr "行動數量" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of error" -msgstr "錯誤數量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "需要行動消息的數量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "發送錯誤的郵件數" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter -msgid "Number of unread messages" -msgstr "未讀消息的數量" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__tax_ids -msgid "Only for tax excluded from price" -msgstr "僅針對價外稅" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__paid -msgid "Paid" -msgstr "已付款" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__partner_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "Partner" -msgstr "業務夥伴" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Directly" -msgstr "直接支付" - -#. module: account_voucher -#: selection:account.voucher,pay_now:0 -msgid "Pay Later" -msgstr "稍後付款" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__pay_now -msgid "Payment" -msgstr "付款" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__name -msgid "Payment Memo" -msgstr "付款備註" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__payment_journal_id -msgid "Payment Method" -msgstr "付款方式" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:208 -#, python-format -msgid "Please activate the sequence of selected journal !" -msgstr "請激活選中日記帳的 序號 !" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:211 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "請在日記帳中定義序列號。" - -#. module: account_voucher -#: selection:account.voucher,state:0 -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted" -msgstr "已過帳" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Posted Vouchers" -msgstr "已過帳憑證" - -#. module: account_voucher -#: selection:account.voucher,state:0 -msgid "Pro-forma" -msgstr "形式" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__product_id -msgid "Product" -msgstr "產品" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Purchase" -msgstr "採購" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Receipt" -msgstr "採購收據" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Purchase Voucher" -msgstr "採購憑證" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__quantity -msgid "Quantity" -msgstr "數量" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt -#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt -#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt -msgid "Receipts" -msgstr "收貨" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "Register a new purchase receipt" -msgstr "登記新的採購收據" - -#. module: account_voucher -#: selection:account.voucher,voucher_type:0 -msgid "Sale" -msgstr "銷售" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Information" -msgstr "銷售信息" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Sales Receipt" -msgstr "銷售收據" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Search Vouchers" -msgstr "搜索憑證" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__sequence -msgid "Sequence" -msgstr "序列" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Set to Draft" -msgstr "設為草稿" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__state -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -msgid "Status" -msgstr "狀態" - -#. module: account_voucher -#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change -msgid "Status Change" -msgstr "狀態更改" - -#. module: account_voucher -#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change -msgid "Status changed" -msgstr "狀態已變更" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__tax_ids -msgid "Tax" -msgstr "稅" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_amount -msgid "Tax Amount" -msgstr "稅額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__tax_correction -msgid "Tax Correction" -msgstr "稅務調整" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__paid -msgid "The Voucher has been totally paid." -msgstr "這張憑證已付清。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher_line__account_id -msgid "The income or expense account related to the selected product." -msgstr "被選定產品相關的收入科目或者費用科目。" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__reference -msgid "The partner reference of this document." -msgstr "這個單據的業務夥伴參照." - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -msgid "To Review" -msgstr "待審查" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__amount -msgid "Total" -msgstr "合計" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Total Amount" -msgstr "總金額" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__voucher_type -msgid "Type" -msgstr "類型" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__price_unit -msgid "Unit Price" -msgstr "單價" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread -msgid "Unread Messages" -msgstr "未讀消息" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_unread_counter -msgid "Unread Messages Counter" -msgstr "未讀消息計數器" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -msgid "Validate" -msgstr "審核" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Vendor" -msgstr "供應商" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -msgid "Vendor Voucher" -msgstr "供應商憑證" - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:116 -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher_line__voucher_id -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_sale -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_filter_vendor -#, python-format -msgid "Voucher" -msgstr "憑證" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_tree_purchase -msgid "Voucher Entries" -msgstr "憑證分錄" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__line_ids -#: model_terms:ir.ui.view,arch_db:account_voucher.view_purchase_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_sale_receipt_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_form -#: model_terms:ir.ui.view,arch_db:account_voucher.view_voucher_line_tree -msgid "Voucher Lines" -msgstr "憑證明細行" - -#. module: account_voucher -#: model_terms:ir.ui.view,arch_db:account_voucher.account_cash_statement_graph -msgid "Voucher Statistics" -msgstr "憑證統計" - -#. module: account_voucher -#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list -msgid "Vouchers Entries" -msgstr "憑證分錄" - -#. module: account_voucher -#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__website_message_ids -msgid "Website Messages" -msgstr "網站信息" - -#. module: account_voucher -#: model:ir.model.fields,help:account_voucher.field_account_voucher__website_message_ids -msgid "Website communication history" -msgstr "網站溝通記錄" - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_purchase_receipt -msgid "" -"When the purchase receipt is confirmed, you can record the\n" -" vendor payment related to this purchase receipt." -msgstr "當採購收據被驗證,您也可以同時登記這張採購收據的付款." - -#. module: account_voucher -#: model_terms:ir.actions.act_window,help:account_voucher.action_sale_receipt -msgid "" -"When the sale receipt is confirmed, you can record the customer\n" -" payment related to this sales receipt." -msgstr "當銷售收據被驗證,您也可以同時登記這張銷售收據的付款." - -#. module: account_voucher -#: code:addons/account_voucher/models/account_voucher.py:457 -#, python-format -msgid "You must first select a partner." -msgstr "必須先選擇一個客戶." diff --git a/addons/account_voucher/models/__init__.py b/addons/account_voucher/models/__init__.py deleted file mode 100644 index 9fcbd08c89d..00000000000 --- a/addons/account_voucher/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from . import account_voucher
\ No newline at end of file diff --git a/addons/account_voucher/models/account_voucher.py b/addons/account_voucher/models/account_voucher.py deleted file mode 100644 index 50192b50bf4..00000000000 --- a/addons/account_voucher/models/account_voucher.py +++ /dev/null @@ -1,521 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - - -from odoo import fields, models, api, _ -from odoo.addons import decimal_precision as dp -from odoo.exceptions import UserError, ValidationError - - -class AccountVoucher(models.Model): - _name = 'account.voucher' - _description = 'Accounting Voucher' - _inherit = ['mail.thread'] - _order = "date desc, id desc" - - @api.model - def _default_journal(self): - voucher_type = self._context.get('voucher_type', 'sale') - company_id = self._context.get('company_id', self.env.company.id) - domain = [ - ('type', '=', voucher_type), - ('company_id', '=', company_id), - ] - return self.env['account.journal'].search(domain, limit=1) - - @api.model - def _default_payment_journal(self): - company_id = self._context.get('company_id', self.env.company.id) - domain = [ - ('type', 'in', ('bank', 'cash')), - ('company_id', '=', company_id), - ] - return self.env['account.journal'].search(domain, limit=1) - - voucher_type = fields.Selection([ - ('sale', 'Sale'), - ('purchase', 'Purchase') - ], string='Type', readonly=True, states={'draft': [('readonly', False)]}, oldname="type") - name = fields.Char('Payment Memo', - readonly=True, states={'draft': [('readonly', False)]}, default='',copy=False) - date = fields.Date("Bill Date", readonly=True, - index=True, states={'draft': [('readonly', False)]}, - copy=False, default=fields.Date.context_today) - account_date = fields.Date("Accounting Date", - readonly=True, index=True, states={'draft': [('readonly', False)]}, - help="Effective date for accounting entries", copy=False, default=fields.Date.context_today) - journal_id = fields.Many2one('account.journal', 'Journal', - required=True, readonly=True, states={'draft': [('readonly', False)]}, default=_default_journal) - payment_journal_id = fields.Many2one('account.journal', string='Payment Method', readonly=True, - states={'draft': [('readonly', False)]}, domain="[('type', 'in', ['cash', 'bank'])]", default=_default_payment_journal) - account_id = fields.Many2one('account.account', 'Account', - required=True, readonly=True, states={'draft': [('readonly', False)]}, - domain="[('deprecated', '=', False), ('internal_type','=', (voucher_type == 'purchase' and 'payable' or 'receivable'))]") - line_ids = fields.One2many('account.voucher.line', 'voucher_id', 'Voucher Lines', - readonly=True, copy=True, - states={'draft': [('readonly', False)]}) - narration = fields.Text('Notes', readonly=True, states={'draft': [('readonly', False)]}) - currency_id = fields.Many2one('res.currency', compute='_get_journal_currency', - string='Currency', readonly=True, store=True, default=lambda self: self._get_currency()) - company_id = fields.Many2one('res.company', 'Company', - store=True, readonly=True, states={'draft': [('readonly', False)]}, - related='journal_id.company_id', default=lambda self: self._get_company()) - state = fields.Selection([ - ('draft', 'Draft'), - ('cancel', 'Cancelled'), - ('proforma', 'Pro-forma'), - ('posted', 'Posted') - ], 'Status', readonly=True, tracking=True, copy=False, default='draft', - help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n" - " * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n" - " * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n" - " * The 'Cancelled' status is used when user cancel voucher.") - reference = fields.Char('Bill Reference', readonly=True, states={'draft': [('readonly', False)]}, - help="The partner reference of this document.", copy=False) - amount = fields.Monetary(string='Total', store=True, readonly=True, compute='_compute_total') - tax_amount = fields.Monetary(readonly=True, store=True, compute='_compute_total') - tax_correction = fields.Monetary(readonly=True, states={'draft': [('readonly', False)]}, - help='In case we have a rounding problem in the tax, use this field to correct it') - number = fields.Char(readonly=True, copy=False) - move_id = fields.Many2one('account.move', 'Journal Entry', copy=False) - partner_id = fields.Many2one('res.partner', 'Partner', change_default=1, readonly=True, states={'draft': [('readonly', False)]}) - paid = fields.Boolean(compute='_check_paid', help="The Voucher has been totally paid.") - pay_now = fields.Selection([ - ('pay_now', 'Pay Directly'), - ('pay_later', 'Pay Later'), - ], 'Payment', index=True, readonly=True, states={'draft': [('readonly', False)]}, default='pay_later') - date_due = fields.Date('Due Date', readonly=True, index=True, states={'draft': [('readonly', False)]}) - - @api.one - @api.depends('move_id.line_ids.reconciled', 'move_id.line_ids.account_id.internal_type') - def _check_paid(self): - self.paid = any([((line.account_id.internal_type, 'in', ('receivable', 'payable')) and line.reconciled) for line in self.move_id.line_ids]) - - @api.model - def _get_currency(self): - journal = self.env['account.journal'].browse(self.env.context.get('default_journal_id', False)) - if journal.currency_id: - return journal.currency_id.id - return self.env.company.currency_id.id - - @api.model - def _get_company(self): - return self._context.get('company_id', self.env.company.id) - - @api.constrains('company_id', 'currency_id') - def _check_company_id(self): - for voucher in self: - if not voucher.company_id: - raise ValidationError(_("Missing Company")) - if not voucher.currency_id: - raise ValidationError(_("Missing Currency")) - - @api.multi - @api.depends('name', 'number') - def name_get(self): - return [(r.id, (r.number or _('Voucher'))) for r in self] - - @api.one - @api.depends('journal_id', 'company_id') - def _get_journal_currency(self): - self.currency_id = self.journal_id.currency_id.id or self.company_id.currency_id.id - - @api.multi - @api.depends('tax_correction', 'line_ids.price_subtotal') - def _compute_total(self): - for voucher in self: - total = 0 - tax_amount = 0 - for line in voucher.line_ids: - tax_info = line.tax_ids.compute_all(line.price_unit, voucher.currency_id, line.quantity, line.product_id, voucher.partner_id) - total += tax_info.get('total_included', 0.0) - tax_amount += sum([t.get('amount',0.0) for t in tax_info.get('taxes', False)]) - voucher.amount = total + voucher.tax_correction - voucher.tax_amount = tax_amount - - @api.onchange('date') - def onchange_date(self): - self.account_date = self.date - - @api.onchange('partner_id', 'pay_now') - def onchange_partner_id(self): - pay_journal_domain = [('type', 'in', ['cash', 'bank'])] - if self.partner_id: - self.account_id = self.partner_id.property_account_receivable_id \ - if self.voucher_type == 'sale' else self.partner_id.property_account_payable_id - else: - if self.voucher_type == 'purchase': - pay_journal_domain.append(('outbound_payment_method_ids', '!=', False)) - else: - pay_journal_domain.append(('inbound_payment_method_ids', '!=', False)) - return {'domain': {'payment_journal_id': pay_journal_domain}} - - @api.multi - def proforma_voucher(self): - self.action_move_line_create() - - @api.multi - def action_cancel_draft(self): - self.write({'state': 'draft'}) - - @api.multi - def cancel_voucher(self): - for voucher in self: - voucher.move_id.button_cancel() - voucher.move_id.unlink() - self.write({'state': 'cancel', 'move_id': False}) - - @api.multi - def unlink(self): - for voucher in self: - if voucher.state not in ('draft', 'cancel'): - raise UserError(_('Cannot delete voucher(s) which are already opened or paid.')) - return super(AccountVoucher, self).unlink() - - @api.multi - def first_move_line_get(self, move_id, company_currency, current_currency): - debit = credit = 0.0 - if self.voucher_type == 'purchase': - credit = self._convert(self.amount) - elif self.voucher_type == 'sale': - debit = self._convert(self.amount) - if debit < 0.0: debit = 0.0 - if credit < 0.0: credit = 0.0 - sign = debit - credit < 0 and -1 or 1 - #set the first line of the voucher - move_line = { - 'name': self.name or '/', - 'debit': debit, - 'credit': credit, - 'account_id': self.account_id.id, - 'move_id': move_id, - 'journal_id': self.journal_id.id, - 'partner_id': self.partner_id.commercial_partner_id.id, - 'currency_id': company_currency != current_currency and current_currency or False, - 'amount_currency': (sign * abs(self.amount) # amount < 0 for refunds - if company_currency != current_currency else 0.0), - 'date': self.account_date, - 'date_maturity': self.date_due, - } - return move_line - - @api.multi - def account_move_get(self): - if self.number: - name = self.number - elif self.journal_id.sequence_id: - if not self.journal_id.sequence_id.active: - raise UserError(_('Please activate the sequence of selected journal !')) - name = self.journal_id.sequence_id.with_context(ir_sequence_date=self.date).next_by_id() - else: - raise UserError(_('Please define a sequence on the journal.')) - - move = { - 'name': name, - 'journal_id': self.journal_id.id, - 'narration': self.narration, - 'date': self.account_date, - 'ref': self.reference, - } - return move - - @api.multi - def _convert(self, amount): - ''' - This function convert the amount given in company currency. It takes either the rate in the voucher (if the - payment_rate_currency_id is relevant) either the rate encoded in the system. - :param amount: float. The amount to convert - :param voucher: id of the voucher on which we want the conversion - :param context: to context to use for the conversion. It may contain the key 'date' set to the voucher date - field in order to select the good rate to use. - :return: the amount in the currency of the voucher's company - :rtype: float - ''' - for voucher in self: - return voucher.currency_id._convert(amount, voucher.company_id.currency_id, voucher.company_id, voucher.account_date) - - @api.multi - def voucher_pay_now_payment_create(self): - if self.voucher_type == 'sale': - payment_methods = self.journal_id.inbound_payment_method_ids - payment_type = 'inbound' - partner_type = 'customer' - sequence_code = 'account.payment.customer.invoice' - else: - payment_methods = self.journal_id.outbound_payment_method_ids - payment_type = 'outbound' - partner_type = 'supplier' - sequence_code = 'account.payment.supplier.invoice' - return { - 'payment_type': payment_type, - 'payment_method_id': payment_methods and payment_methods[0].id or False, - 'partner_type': partner_type, - 'partner_id': self.partner_id.commercial_partner_id.id, - 'amount': self.amount, - 'currency_id': self.currency_id.id, - 'payment_date': self.date, - 'journal_id': self.payment_journal_id.id, - 'company_id': self.company_id.id, - 'communication': self.name, - } - - @api.multi - def voucher_move_line_create(self, line_total, move_id, company_currency, current_currency): - ''' - Create one account move line, on the given account move, per voucher line where amount is not 0.0. - It returns Tuple with tot_line what is total of difference between debit and credit and - a list of lists with ids to be reconciled with this format (total_deb_cred,list_of_lists). - - :param voucher_id: Voucher id what we are working with - :param line_total: Amount of the first line, which correspond to the amount we should totally split among all voucher lines. - :param move_id: Account move wher those lines will be joined. - :param company_currency: id of currency of the company to which the voucher belong - :param current_currency: id of currency of the voucher - :return: Tuple build as (remaining amount not allocated on voucher lines, list of account_move_line created in this method) - :rtype: tuple(float, list of int) - ''' - tax_calculation_rounding_method = self.env.company.tax_calculation_rounding_method - tax_lines_vals = [] - for line in self.line_ids: - #create one move line per voucher line where amount is not 0.0 - if not line.price_subtotal: - continue - line_subtotal = line.price_subtotal - if self.voucher_type == 'sale': - line_subtotal = -1 * line.price_subtotal - # convert the amount set on the voucher line into the currency of the voucher's company - amount = self._convert(line.price_unit*line.quantity) - move_line = { - 'journal_id': self.journal_id.id, - 'name': line.name or '/', - 'account_id': line.account_id.id, - 'move_id': move_id, - 'quantity': line.quantity, - 'product_id': line.product_id.id, - 'partner_id': self.partner_id.commercial_partner_id.id, - 'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False, - 'analytic_tag_ids': [(6, 0, line.analytic_tag_ids.ids)], - 'credit': abs(amount) if self.voucher_type == 'sale' else 0.0, - 'debit': abs(amount) if self.voucher_type == 'purchase' else 0.0, - 'date': self.account_date, - 'tax_ids': [(4,t.id) for t in line.tax_ids], - 'amount_currency': line_subtotal if current_currency != company_currency else 0.0, - 'currency_id': company_currency != current_currency and current_currency or False, - 'payment_id': self._context.get('payment_id'), - } - # Create one line per tax and fix debit-credit for the move line if there are tax included - if (line.tax_ids): - tax_group = line.tax_ids.compute_all(self._convert(line.price_unit), self.company_id.currency_id, line.quantity, line.product_id, self.partner_id) - if move_line['debit']: move_line['debit'] = tax_group['total_excluded'] - if move_line['credit']: move_line['credit'] = tax_group['total_excluded'] - Currency = self.env['res.currency'] - company_cur = Currency.browse(company_currency) - current_cur = Currency.browse(current_currency) - for tax_vals in tax_group['taxes']: - if tax_vals['amount']: - tax = self.env['account.tax'].browse([tax_vals['id']]) - account_id = (amount > 0 and tax_vals['account_id'] or tax_vals['refund_account_id']) - if not account_id: account_id = line.account_id.id - temp = { - 'account_id': account_id, - 'name': line.name + ' ' + tax_vals['name'], - 'tax_line_id': tax_vals['id'], - 'move_id': move_id, - 'date': self.account_date, - 'partner_id': self.partner_id.id, - 'debit': self.voucher_type != 'sale' and tax_vals['amount'] or 0.0, - 'credit': self.voucher_type == 'sale' and tax_vals['amount'] or 0.0, - 'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False, - } - if company_currency != current_currency: - ctx = {} - if self.account_date: - ctx['date'] = self.account_date - temp['currency_id'] = current_currency - temp['amount_currency'] = company_cur._convert(tax_vals['amount'], current_cur, line.company_id, self.account_date or fields.Date.today(), round=True) - self.env['account.move.line'].create(temp) - - self.env['account.move.line'].create(move_line) - # When global rounding is activated, we must wait until all tax lines are computed to - # merge them. - if tax_calculation_rounding_method == 'round_globally': - tax_lines_vals += self.env['account.move.line'].with_context(round=False)._apply_taxes( - move_line, - move_line.get('debit', 0.0) - move_line.get('credit', 0.0) - ) - - # When round globally is set, we merge the tax lines - if tax_calculation_rounding_method == 'round_globally': - tax_lines_vals_merged = {} - for tax_line_vals in tax_lines_vals: - key = ( - tax_line_vals['tax_line_id'], - tax_line_vals['account_id'], - tax_line_vals['analytic_account_id'], - ) - if key not in tax_lines_vals_merged: - tax_lines_vals_merged[key] = tax_line_vals - else: - tax_lines_vals_merged[key]['debit'] += tax_line_vals['debit'] - tax_lines_vals_merged[key]['credit'] += tax_line_vals['credit'] - currency = self.env['res.currency'].browse(company_currency) - for vals in tax_lines_vals_merged.values(): - vals['debit'] = currency.round(vals['debit']) - vals['credit'] = currency.round(vals['credit']) - self.env['account.move.line'].create(vals) - return line_total - - @api.multi - def action_move_line_create(self): - ''' - Confirm the vouchers given in ids and create the journal entries for each of them - ''' - for voucher in self: - local_context = dict(self._context, force_company=voucher.journal_id.company_id.id) - if voucher.move_id: - continue - company_currency = voucher.journal_id.company_id.currency_id.id - current_currency = voucher.currency_id.id or company_currency - # we select the context to use accordingly if it's a multicurrency case or not - # But for the operations made by _convert, we always need to give the date in the context - ctx = local_context.copy() - ctx['date'] = voucher.account_date - ctx['check_move_validity'] = False - # Create the account move record. - move = self.env['account.move'].create(voucher.account_move_get()) - # Get the name of the account_move just created - # Create the first line of the voucher - move_line = self.env['account.move.line'].with_context(ctx).create(voucher.with_context(ctx).first_move_line_get(move.id, company_currency, current_currency)) - line_total = move_line.debit - move_line.credit - if voucher.voucher_type == 'sale': - line_total = line_total - voucher._convert(voucher.tax_amount) - elif voucher.voucher_type == 'purchase': - line_total = line_total + voucher._convert(voucher.tax_amount) - # Create one move line per voucher line where amount is not 0.0 - line_total = voucher.with_context(ctx).voucher_move_line_create(line_total, move.id, company_currency, current_currency) - - # Create a payment to allow the reconciliation when pay_now = 'pay_now'. - if voucher.pay_now == 'pay_now': - payment_id = self.env['account.payment'].create(voucher.voucher_pay_now_payment_create()) - payment_id.post() - - # Reconcile the receipt with the payment - lines_to_reconcile = (payment_id.move_line_ids + move.line_ids).filtered(lambda l: l.account_id == voucher.account_id) - lines_to_reconcile.reconcile() - - # Add tax correction to move line if any tax correction specified - if voucher.tax_correction != 0.0: - tax_move_line = self.env['account.move.line'].search([('move_id', '=', move.id), ('tax_line_id', '!=', False)], limit=1) - if len(tax_move_line): - tax_move_line.write({'debit': tax_move_line.debit + voucher.tax_correction if tax_move_line.debit > 0 else 0, - 'credit': tax_move_line.credit + voucher.tax_correction if tax_move_line.credit > 0 else 0}) - - # We post the voucher. - voucher.write({ - 'move_id': move.id, - 'state': 'posted', - 'number': move.name - }) - move.post() - return True - - @api.multi - def _track_subtype(self, init_values): - if 'state' in init_values: - return self.env.ref('account_voucher.mt_voucher_state_change') - return super(AccountVoucher, self)._track_subtype(init_values) - - -class AccountVoucherLine(models.Model): - _name = 'account.voucher.line' - _description = 'Accounting Voucher Line' - - name = fields.Text(string='Description', required=True) - sequence = fields.Integer(default=10, - help="Gives the sequence of this line when displaying the voucher.") - voucher_id = fields.Many2one('account.voucher', 'Voucher', required=1, ondelete='cascade') - product_id = fields.Many2one('product.product', string='Product', - ondelete='set null', index=True) - account_id = fields.Many2one('account.account', string='Account', - required=True, domain=[('deprecated', '=', False)], - help="The income or expense account related to the selected product.") - price_unit = fields.Float(string='Unit Price', required=True, digits=dp.get_precision('Product Price'), oldname='amount') - price_subtotal = fields.Monetary(string='Amount', - store=True, readonly=True, compute='_compute_subtotal') - quantity = fields.Float(digits=dp.get_precision('Product Unit of Measure'), - required=True, default=1) - account_analytic_id = fields.Many2one('account.analytic.account', 'Analytic Account') - analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags') - company_id = fields.Many2one('res.company', related='voucher_id.company_id', string='Company', store=True, readonly=True) - tax_ids = fields.Many2many('account.tax', string='Tax', help="Only for tax excluded from price") - currency_id = fields.Many2one('res.currency', related='voucher_id.currency_id', readonly=False) - - @api.one - @api.depends('price_unit', 'tax_ids', 'quantity', 'product_id', 'voucher_id.currency_id') - def _compute_subtotal(self): - self.price_subtotal = self.quantity * self.price_unit - if self.tax_ids: - taxes = self.tax_ids.compute_all(self.price_unit, self.voucher_id.currency_id, self.quantity, product=self.product_id, partner=self.voucher_id.partner_id) - self.price_subtotal = taxes['total_excluded'] - - @api.onchange('product_id', 'voucher_id', 'price_unit', 'company_id') - def _onchange_line_details(self): - if not self.voucher_id or not self.product_id or not self.voucher_id.partner_id: - return - onchange_res = self.product_id_change( - self.product_id.id, - self.voucher_id.partner_id.id, - self.price_unit, - self.company_id.id, - self.voucher_id.currency_id.id, - self.voucher_id.voucher_type) - for fname, fvalue in onchange_res['value'].items(): - setattr(self, fname, fvalue) - - def _get_account(self, product, fpos, type): - accounts = product.product_tmpl_id.get_product_accounts(fpos) - if type == 'sale': - return accounts['income'] - return accounts['expense'] - - @api.multi - def product_id_change(self, product_id, partner_id=False, price_unit=False, company_id=None, currency_id=None, type=None): - # TDE note: mix of old and new onchange badly written in 9, multi but does not use record set - context = self._context - company_id = company_id if company_id is not None else context.get('company_id', False) - company = self.env['res.company'].browse(company_id) - currency = self.env['res.currency'].browse(currency_id) - if not partner_id: - raise UserError(_("You must first select a partner.")) - part = self.env['res.partner'].browse(partner_id) - if part.lang: - self = self.with_context(lang=part.lang) - - product = self.env['product.product'].browse(product_id) - fpos = part.property_account_position_id - account = self._get_account(product, fpos, type) - values = { - 'name': product.partner_ref, - 'account_id': account.id, - } - - if type == 'purchase': - values['price_unit'] = price_unit or product.standard_price - taxes = product.supplier_taxes_id or account.tax_ids - if product.description_purchase: - values['name'] += '\n' + product.description_purchase - else: - values['price_unit'] = price_unit or product.lst_price - taxes = product.taxes_id or account.tax_ids - if product.description_sale: - values['name'] += '\n' + product.description_sale - - values['tax_ids'] = taxes.ids - - if company and currency: - if company.currency_id != currency: - if type == 'purchase': - values['price_unit'] = price_unit or product.standard_price - values['price_unit'] = values['price_unit'] * currency.rate - - return {'value': values, 'domain': {}} diff --git a/addons/account_voucher/security/account_voucher_security.xml b/addons/account_voucher/security/account_voucher_security.xml deleted file mode 100644 index 6c0d836c0c0..00000000000 --- a/addons/account_voucher/security/account_voucher_security.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <data noupdate="1"> - <record id="voucher_comp_rule" model="ir.rule"> - <field name="name">Voucher multi-company</field> - <field name="model_id" ref="model_account_voucher"/> - <field eval="True" name="global"/> - <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> - </record> - <record id="voucher_line_comp_rule" model="ir.rule"> - <field name="name">Voucher Line multi-company</field> - <field name="model_id" ref="model_account_voucher_line"/> - <field eval="True" name="global"/> - <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> - </record> - </data> -</odoo> diff --git a/addons/account_voucher/security/ir.model.access.csv b/addons/account_voucher/security/ir.model.access.csv deleted file mode 100644 index c642ccdfcc1..00000000000 --- a/addons/account_voucher/security/ir.model.access.csv +++ /dev/null @@ -1,5 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_account_voucher_manager,account.voucher,model_account_voucher,account.group_account_manager,1,0,0,0
-access_account_voucher_line_manager,account.voucher.line,model_account_voucher_line,account.group_account_manager,1,0,0,0
-access_account_voucher_invoice,account.voucher invoice,model_account_voucher,account.group_account_invoice,1,1,1,1
-access_account_voucher_line_invoice,account.voucher.line invoice,model_account_voucher_line,account.group_account_invoice,1,1,1,1
\ No newline at end of file diff --git a/addons/account_voucher/tests/__init__.py b/addons/account_voucher/tests/__init__.py deleted file mode 100644 index 3f3fc7a78c8..00000000000 --- a/addons/account_voucher/tests/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from . import test_account_voucher diff --git a/addons/account_voucher/tests/test_account_voucher.py b/addons/account_voucher/tests/test_account_voucher.py deleted file mode 100644 index 40e562de210..00000000000 --- a/addons/account_voucher/tests/test_account_voucher.py +++ /dev/null @@ -1,98 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import tools -from odoo.modules.module import get_resource_path -from odoo.tests import common, Form -import time - - -class TestAccountVoucher(common.TransactionCase): - - def _load(self, module, *args): - tools.convert_file(self.cr, 'account_voucher', - get_resource_path(module, *args), - {}, 'init', False, 'test', self.registry._assertion_report) - - def test_00_account_voucher_flow(self): - """ Create Account Voucher for Customer and Vendor """ - self._load('account', 'test', 'account_minimal_test.xml') - - # User-groups and References - partner_id = self.env.ref('base.res_partner_12') - cash_journal_id = self.env.ref('account_voucher.cash_journal') - sales_journal_id = self.env.ref('account_voucher.sales_journal') - account_receivable_id = self.env.ref('account_voucher.a_recv') - - # Create a Account Voucher User - voucher_user = self.env['res.users'].create({ - 'name': 'Voucher Accountant', - 'login': 'vacc', - 'email': 'accountant@yourcompany.com', - 'company_id': self.env.ref('base.main_company').id, - 'groups_id': [(6, 0, [ - self.ref('base.group_partner_manager'), - self.ref('account.group_account_user'), - self.ref('account.group_account_invoice'), - ])] - }) - Voucher = self.env['account.voucher'].sudo(voucher_user) - - # Create Customer Voucher - c = Form(Voucher.with_context(default_voucher_type="sale", voucher_type="sale"), - view='account_voucher.view_sale_receipt_form') - c.partner_id = partner_id - c.journal_id = sales_journal_id - with c.line_ids.new() as line: - line.name = "Voucher for Axelor" - line.account_id = account_receivable_id - line.price_unit = 1000.0 - account_voucher_customer = c.save() - - # Check Customer Voucher status. - self.assertEquals(account_voucher_customer.state, 'draft', 'Initially customer voucher should be in the "Draft" state') - - # Validate Customer voucher - account_voucher_customer.proforma_voucher() - # Check for Journal Entry of customer voucher - self.assertTrue(account_voucher_customer.move_id, 'No journal entry created !.') - # Find related account move line for Customer Voucher. - customer_voucher_move = account_voucher_customer.move_id - - # Check state of Account move line. - self.assertEquals(customer_voucher_move.state, 'posted', 'Account move state is incorrect.') - # Check partner of Account move line. - self.assertEquals(customer_voucher_move.partner_id, partner_id, 'Partner is incorrect on account move.') - # Check journal in Account move line. - self.assertEquals(customer_voucher_move.journal_id, sales_journal_id, 'Journal is incorrect on account move.') - # Check amount in Account move line. - self.assertEquals(customer_voucher_move.amount, 1000.0, 'Amount is incorrect in account move.') - - # Create Vendor Voucher - v = Form(Voucher.with_context(default_voucher_type="purchase", voucher_type="purchase")) - v.partner_id = partner_id - v.journal_id = cash_journal_id - with v.line_ids.new() as line: - line.name = "Voucher Axelor" - line.account_id = account_receivable_id - line.price_unit = 1000.0 - account_voucher_vendor = v.save() - - # Check Vendor Voucher status. - self.assertEquals(account_voucher_vendor.state, 'draft', 'Initially vendor voucher should be in the "Draft" state') - - # Validate Vendor voucher - account_voucher_vendor.proforma_voucher() - # Check for Journal Entry of vendor voucher - self.assertTrue(account_voucher_vendor.move_id, 'No journal entry created !.') - # Find related account move line for Vendor Voucher. - vendor_voucher_move = account_voucher_vendor.move_id - - # Check state of Account move line. - self.assertEquals(vendor_voucher_move.state, 'posted', 'Account move state is incorrect.') - # Check partner of Account move line. - self.assertEquals(vendor_voucher_move.partner_id, partner_id, 'Partner is incorrect on account move.') - # Check journal in Account move line. - self.assertEquals(vendor_voucher_move.journal_id, cash_journal_id, 'Journal is incorrect on account move.') - # Check amount in Account move line. - self.assertEquals(vendor_voucher_move.amount, 1000.0, 'Amount is incorrect in acccount move.') diff --git a/addons/account_voucher/views/account_voucher_views.xml b/addons/account_voucher/views/account_voucher_views.xml deleted file mode 100644 index f725c6e0b59..00000000000 --- a/addons/account_voucher/views/account_voucher_views.xml +++ /dev/null @@ -1,445 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<odoo> - <record model="ir.ui.view" id="view_voucher_tree"> - <field name="name">account.voucher.tree</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" string="Voucher Entries"> - <field name="date"/> - <field name="number"/> - <field name="partner_id" string="Customer"/> - <field name="company_id" groups="base.group_multi_company"/> - <field name="voucher_type" invisible="context.get('visible', True)"/> - <field name="amount" sum="Total Amount"/> - <field name="currency_id" invisible="1"/> - <field name="state"/> - </tree> - </field> - </record> - <record model="ir.ui.view" id="view_voucher_tree_purchase"> - <field name="name">account.voucher.tree.supplier</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" string="Voucher Entries" create="0" edit="0"> - <field name="date"/> - <field name="number"/> - <field name="reference"/> - <field name="partner_id" string="Vendor"/> - <field name="voucher_type" invisible="context.get('visible', True)"/> - <field name="amount" sum="Total Amount"/> - <field name="currency_id" invisible="1"/> - <field name="state"/> - </tree> - </field> - </record> - <record model="ir.ui.view" id="view_voucher_kanban"> - <field name="name">account.voucher.kanban</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <kanban class="o_kanban_mobile"> - <field name="number"/> - <field name="partner_id"/> - <field name="amount"/> - <field name="date"/> - <field name="state"/> - <templates> - <t t-name="kanban-box"> - <div t-attf-class="oe_kanban_card oe_kanban_global_click"> - <div class="row"> - <div class="col-6"> - <strong><span><t t-esc="record.partner_id.value"/></span></strong> - </div> - <div class="col-6"> - <strong><span class="float-right text-right"><t t-esc="record.amount.value"/></span></strong> - </div> - </div> - <div class="row"> - <div class="col-6 text-muted"> - <span><t t-esc="record.number.value"/> <t t-esc="record.date.value"/></span> - </div> - <div class="col-6"> - <span class="float-right text-right"> - <field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'cancel': 'default', 'none': 'danger', 'proforma': 'warning', - 'posted': 'success'}}"/> - </span> - </div> - </div> - </div> - </t> - </templates> - </kanban> - </field> - </record> - <record model="ir.ui.view" id="view_voucher_line_form"> - <field name="name">account.voucher.line.form</field> - <field name="model">account.voucher.line</field> - <field name="arch" type="xml"> - <form string="Voucher Lines"> - <group> - <group> - <field name="product_id"/> - <field name="quantity" class="oe_inline"/> - <field name="price_unit"/> - <field name="price_subtotal"/> - <field name="currency_id" invisible="1"/> - </group> - <group> - <field name="account_id" options="{'no_create': True}"/> - <field name="tax_ids" widget="many2many_tags"/> - <field name="account_analytic_id" domain="[('company_id', '=', company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags"/> - <field name="company_id" groups="base.group_multi_company" readonly="1"/> - </group> - </group> - <label for="name"/> - <field name="name"/> - </form> - </field> - </record> - - <record model="ir.ui.view" id="view_voucher_line_tree"> - <field name="name">account.voucher.line.tree</field> - <field name="model">account.voucher.line</field> - <field name="arch" type="xml"> - <tree string="Voucher Lines" editable="bottom"> - <field name="product_id"/> - <field name="name"/> - <field name="account_id"/> - <field name="account_analytic_id" domain="[('company_id', '=', company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags"/> - <field name="quantity"/> - <field name="price_unit"/> - <field name="tax_ids" widget="many2many_tags"/> - <field name="price_subtotal"/> - <field name="currency_id" invisible="1"/> - <field name="company_id" invisible="1"/> - </tree> - </field> - </record> - - <record id="view_voucher_filter" model="ir.ui.view"> - <field name="name">account.voucher.select</field> - <field name="model">account.voucher</field> - <field name="priority">1</field> - <field name="arch" type="xml"> - <search string="Search Vouchers"> - <field name="number" string="Voucher"/> - <field name="date"/> - <filter string="Draft" name="draft" domain="[('state','=','draft')]" help="Draft Vouchers"/> - <filter string="Posted" name="posted" domain="[('state','=','posted')]" help="Posted Vouchers"/> - <separator/> - <filter string="To Review" name="toreview" domain="[('state','=','posted')]" help="To Review"/> - <field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/> - <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" /> - <group expand="0" string="Group By"> - <filter string="Partner" name="partner" domain="[]" context="{'group_by':'partner_id'}"/> - <filter string="Journal" name="journal" domain="[]" context="{'group_by':'journal_id'}"/> - <filter string="Date" name="date" domain="[]" context="{'group_by':'date','visible':True}"/> - <filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/> - </group> - </search> - </field> - </record> - - <record id="account_cash_statement_graph" model="ir.ui.view"> - <field name="name">account.voucher.graph</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <graph string="Voucher Statistics" type="bar"> - <field name="date"/> - <field name="amount" operator="+"/> - </graph> - </field> - </record> - - <act_window - id="act_journal_voucher_open" - name="Voucher Entries" - context="{'search_default_journal_id': active_id, 'default_journal_id': active_id}" - res_model="account.voucher" - binding_model="account.journal" - binding_views="form"/> - - <record model="ir.actions.act_window" id="action_review_voucher_list"> - <field name="name">Vouchers Entries</field> - <field name="res_model">account.voucher</field> - <field name="view_mode">tree,form</field> - <field name="view_id" eval="view_voucher_tree"/> - <field name="domain">[('state','=','posted')]</field> - <field name="context">{'state':'posted', 'voucher_type': voucher_type}</field> - <field name="search_view_id" ref="view_voucher_filter"/> - </record> - - <record id="view_voucher_filter_vendor" model="ir.ui.view"> - <field name="name">account.voucher.purchase.select</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <search string="Search Vouchers"> - <field name="number" string="Voucher"/> - <field name="date"/> - <filter string="Draft" name="draft" domain="[('state','=','draft')]" help="Draft Vouchers"/> - <filter string="Posted" name="posted" domain="[('state','=','posted')]" help="Posted Vouchers"/> - <field name="partner_id" string="Vendor" filter_domain="[('partner_id','child_of',self)]"/> - <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','=','purchase')]"/> - <group expand="0" string="Group By"> - <filter string="Vendor" name="vendor" domain="[]" context="{'group_by':'partner_id'}"/> - <filter string="Journal" name="journal" domain="[]" context="{'group_by':'journal_id'}"/> - <filter string="Bill Date" name="billdate" domain="[]" context="{'group_by':'date','visible':True}"/> - <filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/> - </group> - </search> - </field> - </record> - - <record id="view_voucher_filter_sale" model="ir.ui.view"> - <field name="name">account.voucher.sale.select</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <search string="Search Vouchers"> - <field name="number" string="Voucher"/> - <field name="date"/> - <filter string="Draft" name="darft" domain="[('state','=','draft')]" help="Draft Vouchers"/> - <filter string="Posted" name="posted" domain="[('state','=','posted')]" help="Posted Vouchers"/> - <field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/> - <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','=','sale')]"/> - <group expand="0" string="Group By"> - <filter string="Customer" name="customer" domain="[]" context="{'group_by':'partner_id'}"/> - <filter string="Journal" name="journal" domain="[]" context="{'group_by':'journal_id'}"/> - <filter string="Account Date" name="accountdate" domain="[]" context="{'group_by':'account_date','visible':True}"/> - <filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/> - </group> - </search> - </field> - </record> - - <record model="ir.ui.view" id="view_sale_receipt_form"> - <field name="name">account.voucher.sale.form</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <form string="Sales Receipt"> - <header> - <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight" type="object"/> - <button name="cancel_voucher" string="Cancel Receipt" type="object" states="draft,proforma"/> - <button name="cancel_voucher" string="Cancel Receipt" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/> - <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> - <field name="state" widget="statusbar" statusbar_visible="draft,posted"/> - </header> - <sheet string="Sales Receipt"> - <label for="number" string="Sales Receipt"/> - <h1> - <field name="number" readonly="1"/> - </h1> - <group> - <group> - <field name="voucher_type" invisible="True"/> - <field name="currency_id" invisible="True"/> - <field name="partner_id" domain="[('customer','=',True)]" string="Customer" context="{'search_default_customer':1, 'show_address': 1}" options='{"always_reload": True}'/> - <field name="pay_now" required="1"/> - <field name="payment_journal_id" - attrs="{'invisible': [('pay_now', '!=', 'pay_now')], 'required': [('pay_now', '=', 'pay_now')]}"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - </group> - <group> - <field name="journal_id" - domain="[('type','=','sale')]" - widget="selection" - groups="account.group_account_user"/> - <field name="date"/> - <field name="date_due" attrs="{'invisible':[('pay_now','=','pay_now')]}"/> - <field name="name" attrs="{'invisible': [('pay_now', '=', 'pay_later')]}"/> - <field name="paid" invisible="1"/> - </group> - </group> - <notebook> - <page string="Sales Information"> - <field name="line_ids"> - <tree string="Voucher Lines" editable="bottom"> - <field name="product_id"/> - <field name="name"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field name="account_analytic_id" domain="[('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags"/> - <field name="quantity"/> - <field name="price_unit"/> - <field name="tax_ids" widget="many2many_tags" domain="[('type_tax_use','=','sale')]"/> - <field name="price_subtotal"/> - <field name="currency_id" invisible="1"/> - <field name="company_id" invisible="1"/> - </tree> - </field> - <group> - <group class="oe_subtotal_footer oe_right"> - <field name="tax_amount"/> - <field name="amount"/> - </group> - <field name="narration" placeholder="Internal Notes" nolabel="1"/> - </group> - </page> - <page string="Journal Items" groups="account.group_account_user"> - <group> - <field name="account_date"/> - <field name="move_id" readonly="1"/> - </group> - </page> - </notebook> - </sheet> - <div class="oe_chatter"> - <field name="message_follower_ids" widget="mail_followers"/> - <field name="message_ids" widget="mail_thread"/> - </div> - </form> - </field> - </record> - - <!-- Sales Voucher --> - <record id="action_sale_receipt" model="ir.actions.act_window"> - <field name="name">Receipts</field> - <field name="res_model">account.voucher</field> - <field name="view_mode">tree,kanban</field> - <field name="domain">[('journal_id.type','=','sale'), ('voucher_type','=','sale')]</field> - <field name="context">{'default_voucher_type': 'sale', 'voucher_type': 'sale'}</field> - <field name="view_id" eval="view_voucher_tree"/> - <field name="search_view_id" ref="view_voucher_filter_sale"/> - <field name="target">current</field> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Create a new sale receipt - </p><p> - When the sale receipt is confirmed, you can record the customer - payment related to this sales receipt. - </p> - </field> - </record> - <record id="action_sale_receipt_tree" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="act_window_id" ref="action_sale_receipt"/> - </record> - <record id="action_sale_receipt_form" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="view_sale_receipt_form"/> - <field name="act_window_id" ref="action_sale_receipt"/> - </record> - - <menuitem id="menu_action_sale_receipt" - action="action_sale_receipt" - parent="account.menu_finance_receivables" - sequence="10"/> - - <!-- Purchase Vouchers --> - <record model="ir.ui.view" id="view_purchase_receipt_form"> - <field name="name">account.voucher.purchase.form</field> - <field name="model">account.voucher</field> - <field name="arch" type="xml"> - <form string="Purchase Voucher"> - <header> - <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight" type="object"/> - <button name="cancel_voucher" string="Cancel" type="object" states="draft,proforma" /> - <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/> - <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> - <field name="state" widget="statusbar" statusbar_visible="draft,posted"/> - </header> - <sheet string="Vendor Voucher"> - <label for="number" string="Purchase Receipt"/> - <h1> - <field name="number" readonly="1"/> - </h1> - <group> - <group> - <field name="voucher_type" invisible="True"/> - <field name="currency_id" invisible="True"/> - <field name="partner_id" domain="[('supplier','=',True)]" string="Vendor" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" /> - <field name="pay_now" required="1"/> - <field name="payment_journal_id" - attrs="{'invisible': [('pay_now', '!=', 'pay_now')], 'required': [('pay_now', '=', 'pay_now')]}"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - <field name="reference"/> - </group> - <group> - <field name="journal_id" - domain="[('type','=','purchase')]" - widget="selection" - groups="account.group_account_user"/> - <field name="date" string="Bill Date"/> - <field name="date_due" attrs="{'invisible': [('pay_now', '=', 'pay_now')]}"/> - <field name="name" colspan="2" attrs="{'invisible': [('pay_now', '=', 'pay_later')]}"/> - <field name="paid" invisible="1"/> - </group> - </group> - <notebook> - <page string="Bill Information"> - <field name="line_ids"> - <tree string="Voucher Lines" editable="bottom"> - <field name="product_id"/> - <field name="name"/> - <field name="account_id" options="{'no_create': True}" groups="account.group_account_user"/> - <field name="account_analytic_id" domain="[('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/> - <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags"/> - <field name="quantity"/> - <field name="price_unit"/> - <field name="tax_ids" widget="many2many_tags" domain="[('type_tax_use','=','purchase')]"/> - <field name="price_subtotal"/> - <field name="currency_id" invisible="1"/> - <field name="company_id" invisible="1"/> - </tree> - </field> - <group> - <group class="oe_subtotal_footer oe_right"> - <field name="tax_amount"/> - <field name="tax_correction" attrs="{'invisible': [('tax_amount','=',0)]}"/> - <field name="amount"/> - </group> - <field name="narration" placeholder="Internal Notes" nolabel="1"/> - </group> - </page> - <page string="Journal Items" groups="account.group_account_user"> - <group> - <field name="account_date"/> - <field name="move_id" readonly="1"/> - </group> - </page> - </notebook> - </sheet> - <div class="oe_chatter"> - <field name="message_follower_ids" widget="mail_followers"/> - <field name="message_ids" widget="mail_thread"/> - </div> - </form> - </field> - </record> - <record id="action_purchase_receipt" model="ir.actions.act_window"> - <field name="name">Receipts</field> - <field name="res_model">account.voucher</field> - <field name="view_mode">tree,kanban</field> - <field name="domain">[('journal_id.type','=','purchase'), ('voucher_type','=','purchase')]</field> - <field name="context">{'default_voucher_type': 'purchase', 'voucher_type': 'purchase'}</field> - <field name="view_id" eval="view_voucher_tree_purchase"/> - <field name="search_view_id" eval="view_voucher_filter_vendor"/> - <field name="target">current</field> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Register a new purchase receipt - </p><p> - When the purchase receipt is confirmed, you can record the - vendor payment related to this purchase receipt. - </p> - </field> - </record> - <record id="action_purchase_receipt_tree" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="act_window_id" ref="action_purchase_receipt"/> - </record> - <record id="action_purchase_receipt_form" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="view_purchase_receipt_form"/> - <field name="act_window_id" ref="action_purchase_receipt"/> - </record> - - <menuitem id="menu_action_purchase_receipt" - action="action_purchase_receipt" parent="account.menu_finance_payables" sequence="10"/> -</odoo> diff --git a/addons/delivery/tests/test_delivery_stock_move.py b/addons/delivery/tests/test_delivery_stock_move.py index 38ab806f613..3e2826ed516 100644 --- a/addons/delivery/tests/test_delivery_stock_move.py +++ b/addons/delivery/tests/test_delivery_stock_move.py @@ -58,13 +58,17 @@ class StockMoveInvoice(AccountingTestCase): # I confirm the invoice self.invoice = self.sale_prepaid.invoice_ids - self.invoice.action_invoice_open() + self.invoice.post() # I pay the invoice. self.invoice = self.sale_prepaid.invoice_ids - self.invoice.action_invoice_open() + self.invoice.post() self.journal = self.AccountJournal.search([('type', '=', 'cash'), ('company_id', '=', self.sale_prepaid.company_id.id)], limit=1) - self.invoice.pay_and_reconcile(self.journal, self.invoice.amount_total) + + register_payments = self.env['account.payment.register'].with_context(active_ids=self.invoice.ids).create({ + 'journal_id': self.journal.id, + }) + register_payments.create_payments() # Check the SO after paying the invoice self.assertNotEqual(self.sale_prepaid.invoice_count, 0, 'order not invoiced') diff --git a/addons/event_sale/models/account_invoice.py b/addons/event_sale/models/account_invoice.py index df995d576f5..3ef88ea342c 100644 --- a/addons/event_sale/models/account_invoice.py +++ b/addons/event_sale/models/account_invoice.py @@ -4,14 +4,14 @@ from odoo import api, models -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' @api.multi def action_invoice_paid(self): """ When an invoice linked to a sales order selling registrations is paid confirm attendees. Attendees should indeed not be confirmed before full payment. """ - res = super(AccountInvoice, self).action_invoice_paid() - self.mapped('invoice_line_ids.sale_line_ids')._update_registrations(confirm=True) + res = super(AccountMove, self).action_invoice_paid() + self.mapped('line_ids.sale_line_ids')._update_registrations(confirm=True) return res diff --git a/addons/gamification_sale_crm/data/gamification_sale_crm_data.xml b/addons/gamification_sale_crm/data/gamification_sale_crm_data.xml index d54c7e8da00..9b5c6cac959 100644 --- a/addons/gamification_sale_crm/data/gamification_sale_crm_data.xml +++ b/addons/gamification_sale_crm/data/gamification_sale_crm_data.xml @@ -9,9 +9,9 @@ <field name="computation_mode">sum</field> <field name="monetary">True</field> <field name="model_id" eval="ref('account.model_account_invoice_report')" /> - <field name="field_id" eval="ref('account.field_account_invoice_report__price_total')" /> - <field name="field_date_id" eval="ref('account.field_account_invoice_report__date')" /> - <field name="domain">[('state','!=','cancel'),('user_id','=',user.id),('type','=','out_invoice')]</field> + <field name="field_id" eval="ref('account.field_account_invoice_report__price_subtotal')" /> + <field name="field_date_id" eval="ref('account.field_account_invoice_report__invoice_date')" /> + <field name="domain">[('state','!=','cancel'),('invoice_user_id','=',user.id),('type','=','out_invoice')]</field> </record> <record model="gamification.goal.definition" id="definition_crm_nbr_new_leads"> @@ -35,7 +35,7 @@ <field name="field_id" eval="ref('crm.field_crm_lead__day_close')" /> <field name="field_date_id" eval="ref('crm.field_crm_lead__date_closed')" /> <field name="domain">[('user_id','=',user.id),('type', '=', 'lead')]</field> - </record> + </record> <record model="gamification.goal.definition" id="definition_crm_lead_delay_close"> <field name="name">Days to Close a Deal</field> @@ -47,7 +47,7 @@ <field name="field_id" eval="ref('crm.field_crm_lead__day_open')" /> <field name="field_date_id" eval="ref('crm.field_crm_lead__date_open')" /> <field name="domain">[('user_id','=',user.id)]</field> - </record> + </record> <record model="gamification.goal.definition" id="definition_crm_nbr_new_opportunities"> @@ -76,8 +76,8 @@ <field name="computation_mode">count</field> <field name="suffix">orders</field> <field name="model_id" eval="ref('account.model_account_invoice_report')" /> - <field name="field_date_id" eval="ref('account.field_account_invoice_report__date')" /> - <field name="domain">[('state','=','paid'),('user_id','=',user.id),('type','=','out_invoice')]</field> + <field name="field_date_id" eval="ref('account.field_account_invoice_report__invoice_date')" /> + <field name="domain">[('state','=','paid'),('invoice_user_id','=',user.id),('type','=','out_invoice')]</field> </record> <record model="gamification.goal.definition" id="definition_crm_tot_paid_sale_order"> <field name="name">Total Paid Sales Orders</field> @@ -85,9 +85,9 @@ <field name="computation_mode">count</field> <field name="monetary">True</field> <field name="model_id" eval="ref('account.model_account_invoice_report')" /> - <field name="field_id" eval="ref('account.field_account_invoice_report__price_total')" /> - <field name="field_date_id" eval="ref('account.field_account_invoice_report__date')" /> - <field name="domain">[('state','=','paid'),('user_id','=',user.id),('type','=','out_invoice')]</field> + <field name="field_id" eval="ref('account.field_account_invoice_report__price_subtotal')" /> + <field name="field_date_id" eval="ref('account.field_account_invoice_report__invoice_date')" /> + <field name="domain">[('state','=','paid'),('invoice_user_id','=',user.id),('type','=','out_invoice')]</field> </record> @@ -98,8 +98,8 @@ <field name="condition">lower</field> <field name="suffix">invoices</field> <field name="model_id" eval="ref('account.model_account_invoice_report')" /> - <field name="field_date_id" eval="ref('account.field_account_invoice_report__date')" /> - <field name="domain">[('state','!=','cancel'),('user_id','=',user.id),('type','=','out_refund')]</field> + <field name="field_date_id" eval="ref('account.field_account_invoice_report__invoice_date')" /> + <field name="domain">[('state','!=','cancel'),('invoice_user_id','=',user.id),('type','=','out_refund')]</field> </record> <record model="gamification.goal.definition" id="definition_crm_tot_customer_refunds"> <field name="name">Total Customer Credit Notes</field> @@ -108,9 +108,9 @@ <field name="condition">higher</field> <field name="monetary">True</field> <field name="model_id" eval="ref('account.model_account_invoice_report')" /> - <field name="field_id" eval="ref('account.field_account_invoice_report__price_total')" /> - <field name="field_date_id" eval="ref('account.field_account_invoice_report__date')" /> - <field name="domain">[('state','!=','cancel'),('user_id','=',user.id),('type','=','out_refund')]</field> + <field name="field_id" eval="ref('account.field_account_invoice_report__price_subtotal')" /> + <field name="field_date_id" eval="ref('account.field_account_invoice_report__invoice_date')" /> + <field name="domain">[('state','!=','cancel'),('invoice_user_id','=',user.id),('type','=','out_refund')]</field> </record> diff --git a/addons/hr_expense/models/account_move_line.py b/addons/hr_expense/models/account_move_line.py index 8af2ef4c881..49ddacba873 100644 --- a/addons/hr_expense/models/account_move_line.py +++ b/addons/hr_expense/models/account_move_line.py @@ -13,7 +13,7 @@ class AccountMoveLine(models.Model): @api.multi def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False): res = super(AccountMoveLine, self).reconcile(writeoff_acc_id=writeoff_acc_id, writeoff_journal_id=writeoff_journal_id) - account_move_ids = [l.move_id.id for l in self if float_compare(l.move_id.matched_percentage, 1, precision_digits=5) == 0] + account_move_ids = [l.move_id.id for l in self if float_compare(l.move_id._get_cash_basis_matched_percentage(), 1, precision_digits=5) == 0] if account_move_ids: expense_sheets = self.env['hr.expense.sheet'].search([ ('account_move_id', 'in', account_move_ids), ('state', '!=', 'done') diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index a513e6cb8d6..5ed46cbeb08 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -9,7 +9,6 @@ from odoo.tools import email_split, float_is_zero from odoo.addons import decimal_precision as dp - class HrExpense(models.Model): _name = "hr.expense" @@ -272,7 +271,8 @@ class HrExpense(models.Model): for expense in self: # create the move that will contain the accounting entries if expense.sheet_id.id not in move_grouped_by_sheet: - move = self.env['account.move'].create(expense._prepare_move_values()) + move_vals = expense._prepare_move_values() + move = self.env['account.move'].with_context(default_journal_id=move_vals['journal_id']).create(move_vals) move_grouped_by_sheet[expense.sheet_id.id] = move else: move = move_grouped_by_sheet[expense.sheet_id.id] @@ -438,9 +438,7 @@ class HrExpense(models.Model): move_line_dst['payment_id'] = payment.id # link move lines to move, and move to expense sheet - move.with_context(dont_create_taxes=True).write({ - 'line_ids': [(0, 0, line) for line in move_line_values] - }) + move.write({'line_ids': [(0, 0, line) for line in move_line_values]}) expense.sheet_id.write({'account_move_id': move.id}) if expense.payment_mode == 'company_account': diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv index 238dd2e4845..3f44a089213 100644 --- a/addons/hr_expense/security/ir.model.access.csv +++ b/addons/hr_expense/security/ir.model.access.csv @@ -10,9 +10,8 @@ access_product_template_hr_expense_user,product.template.hr.expense.user,product access_uom_uom_hr_expense_user,uom.uom.hr.expense.user,uom.model_uom_uom,hr_expense.group_hr_expense_team_approver,1,1,1,1
access_account_journal_user,account.journal.user,account.model_account_journal,hr_expense.group_hr_expense_team_approver,1,1,1,1
access_account_journal_employee,account.journal.employee,account.model_account_journal,base.group_user,1,0,0,0
-access_account_invoice_user,account.invoice.user,account.model_account_invoice,hr_expense.group_hr_expense_team_approver,1,1,1,1
-access_account_invoice_line_user,account.invoice.line.user,account.model_account_invoice_line,hr_expense.group_hr_expense_team_approver,1,1,1,1
-access_account_invoice_tax_user,account.invoice.tax.user,account.model_account_invoice_tax,hr_expense.group_hr_expense_team_approver,1,0,0,0
+access_account_invoice_user,account.invoice.user,account.model_account_move,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_account_invoice_line_user,account.invoice.line.user,account.model_account_move_line,hr_expense.group_hr_expense_team_approver,1,1,1,1
access_account_move_user,account.move.user,account.model_account_move,hr_expense.group_hr_expense_team_approver,1,0,0,0
access_account_move_line_user,account.move.line.user,account.model_account_move_line,hr_expense.group_hr_expense_team_approver,1,0,0,0
access_account_analytic_line_user,account.analytic.line.user,account.model_account_analytic_line,hr_expense.group_hr_expense_team_approver,1,1,1,1
diff --git a/addons/l10n_ae/views/report_invoice_templates.xml b/addons/l10n_ae/views/report_invoice_templates.xml index 681fe038284..b79d18baf06 100644 --- a/addons/l10n_ae/views/report_invoice_templates.xml +++ b/addons/l10n_ae/views/report_invoice_templates.xml @@ -27,7 +27,7 @@ </div> <div name="aed_total" class="col-auto"> <strong>Total (AED)</strong> - <p class="m-0" t-esc="o.amount_total_company_signed" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'/> + <p class="m-0" t-esc="o.amount_total_signed" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'/> </div> </div> </xpath> diff --git a/addons/l10n_be_edi/models/account_invoice.py b/addons/l10n_be_edi/models/account_invoice.py index 8f54e6d8381..0429b630f91 100644 --- a/addons/l10n_be_edi/models/account_invoice.py +++ b/addons/l10n_be_edi/models/account_invoice.py @@ -1,18 +1,15 @@ # -*- coding: utf-8 -*- from odoo import api, fields, models, tools, _ -from odoo.exceptions import UserError from odoo.tests.common import Form from odoo.osv import expression -import base64 -from io import BytesIO import logging _logger = logging.getLogger(__name__) -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' @api.model def _get_ubl_namespaces(self, tree): @@ -40,33 +37,34 @@ class AccountInvoice(models.Model): self.ensure_one() namespaces = self._get_ubl_namespaces(tree) - journal_id = self._default_journal() - view = journal_id.type == 'purchase' and 'account.invoice_supplier_form' or 'account.invoice_form' - with Form(self, view=view) as invoice_form: + elements = tree.xpath('//cbc:InvoiceTypeCode', namespaces=namespaces) + if elements: + type_code = elements[0].text + type = 'in_refund' if type_code == '381' else 'in_invoice' + else: + type = 'in_invoice' + + default_journal = self.with_context(default_type=type)._get_default_journal() + + with Form(self.with_context(default_type=type, default_journal_id=default_journal.id)) as invoice_form: # Reference elements = tree.xpath('//cbc:ID', namespaces=namespaces) if elements: - invoice_form.reference = elements[0].text + invoice_form.ref = elements[0].text elements = tree.xpath('//cbc:InstructionID', namespaces=namespaces) if elements: - invoice_form.name = elements[0].text + invoice_form.invoice_payment_ref = elements[0].text # Dates elements = tree.xpath('//cbc:IssueDate', namespaces=namespaces) if elements: - invoice_form.date_invoice = elements[0].text + invoice_form.invoice_date = elements[0].text elements = tree.xpath('//cbc:PaymentDueDate', namespaces=namespaces) if elements: - invoice_form.date_due = elements[0].text + invoice_form.invoice_date_due = elements[0].text # allow both cbc:PaymentDueDate and cbc:DueDate elements = tree.xpath('//cbc:DueDate', namespaces=namespaces) - invoice_form.date_due = invoice_form.date_due or elements and elements[0].text - - # Type - elements = tree.xpath('//cbc:InvoiceTypeCode', namespaces=namespaces) - if elements: - type_code = elements[0].text - invoice_form.type = 'in_refund' if type_code == '381' else 'in_invoice' + invoice_form.invoice_date_due = invoice_form.invoice_date_due or elements and elements[0].text # Currency elements = tree.xpath('//cbc:DocumentCurrencyCode', namespaces=namespaces) @@ -78,7 +76,7 @@ class AccountInvoice(models.Model): # Incoterm elements = tree.xpath('//cbc:TransportExecutionTerms/cac:DeliveryTerms/cbc:ID', namespaces=namespaces) if elements: - invoice_form.incoterm_id = self.env['account.incoterms'].search([('code', '=', elements[0].text)]) + invoice_form.invoice_incoterm_id = self.env['account.incoterms'].search([('code', '=', elements[0].text)], limit=1) # Partner partner_element = tree.xpath('//cac:AccountingSupplierParty/cac:Party', namespaces=namespaces) @@ -117,7 +115,7 @@ class AccountInvoice(models.Model): attachment_id = self.env['ir.attachment'].create({ 'name': attachment_name, 'res_id': self.id, - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'datas': attachment_data, 'type': 'binary', }) @@ -127,7 +125,6 @@ class AccountInvoice(models.Model): lines_elements = tree.xpath('//cac:InvoiceLine', namespaces=namespaces) for eline in lines_elements: with invoice_form.invoice_line_ids.new() as invoice_line_form: - invoice_line_form.account_id = invoice_line_form.account_id or self.env['account.account'].browse(self.with_context(journal_id=journal_id.id).env['account.invoice.line']._default_account()) # Quantity elements = eline.xpath('cbc:InvoicedQuantity', namespaces=namespaces) quantity = elements and float(elements[0].text) or 1.0 @@ -140,8 +137,8 @@ class AccountInvoice(models.Model): # Name elements = eline.xpath('cac:Item/cbc:Description', namespaces=namespaces) invoice_line_form.name = elements and elements[0].text or '' - invoice_line_form.name = invoice_line_form.name.replace('%month%', str(fields.Date.to_date(invoice_form.date_invoice).month)) # TODO: full name in locale - invoice_line_form.name = invoice_line_form.name.replace('%year%', str(fields.Date.to_date(invoice_form.date_invoice).year)) + invoice_line_form.name = invoice_line_form.name.replace('%month%', str(fields.Date.to_date(invoice_form.invoice_date).month)) # TODO: full name in locale + invoice_line_form.name = invoice_line_form.name.replace('%year%', str(fields.Date.to_date(invoice_form.invoice_date).year)) # Product elements = eline.xpath('cac:Item/cac:SellersItemIdentification/cbc:ID', namespaces=namespaces) @@ -160,13 +157,17 @@ class AccountInvoice(models.Model): # Taxes taxes_elements = eline.xpath('cac:TaxTotal/cac:TaxSubtotal', namespaces=namespaces) - invoice_line_form.invoice_line_tax_ids.clear() + invoice_line_form.tax_ids.clear() for etax in taxes_elements: elements = etax.xpath('cbc:Percent', namespaces=namespaces) if elements: - tax = self.env['account.tax'].search([('company_id', '=', self.env.user.company_id.id), ('amount', '=', float(elements[0].text)), ('type_tax_use', '=', journal_id.type)], order='sequence ASC', limit=1) + tax = self.env['account.tax'].search([ + ('company_id', '=', self.env.user.company_id.id), + ('amount', '=', float(elements[0].text)), + ('type_tax_use', '=', invoice_form.journal_id.type), + ], order='sequence ASC', limit=1) if tax: - invoice_line_form.invoice_line_tax_ids.add(tax) + invoice_line_form.tax_ids.add(tax) return invoice_form.save() @@ -174,4 +175,4 @@ class AccountInvoice(models.Model): def _get_xml_decoders(self): # Override ubl_decoders = [('UBL 2.1', self._detect_ubl_2_1, self._decode_ubl_2_1)] - return super(AccountInvoice, self)._get_xml_decoders() + ubl_decoders + return super(AccountMove, self)._get_xml_decoders() + ubl_decoders diff --git a/addons/l10n_be_edi/tests/test_ubl.py b/addons/l10n_be_edi/tests/test_ubl.py index c307595281a..37f40aced7c 100644 --- a/addons/l10n_be_edi/tests/test_ubl.py +++ b/addons/l10n_be_edi/tests/test_ubl.py @@ -16,17 +16,17 @@ class TestUBL(common.TransactionCase): def test_ubl_invoice_import(self): xml_file_path = get_module_resource('l10n_be_edi', 'test_xml_file', 'efff_test.xml') xml_file = open(xml_file_path, 'rb').read() - invoice_id = self.env['account.invoice'].with_context(default_type='in_invoice').create({}) + invoice = self.env['account.move'].with_context(default_type='in_invoice').create({}) attachment_id = self.env['ir.attachment'].create({ 'name': 'efff_test.xml', 'datas': base64.encodestring(xml_file), - 'res_id': invoice_id.id, - 'res_model': 'account.invoice', + 'res_id': invoice.id, + 'res_model': 'account.move', }) - invoice_id.message_post(attachment_ids=[attachment_id.id]) + invoice.message_post(attachment_ids=[attachment_id.id]) - self.assertEqual(invoice_id.amount_total, 666.50) - self.assertEqual(invoice_id.amount_tax, 115.67) - self.assertEqual(invoice_id.partner_id, self.partner_id) + self.assertEqual(invoice.amount_total, 666.50) + self.assertEqual(invoice.amount_tax, 115.67) + self.assertEqual(invoice.partner_id, self.partner_id) diff --git a/addons/l10n_be_invoice_bba/data/mail_template_data.xml b/addons/l10n_be_invoice_bba/data/mail_template_data.xml index afd26d6ec24..85baa88c157 100644 --- a/addons/l10n_be_invoice_bba/data/mail_template_data.xml +++ b/addons/l10n_be_invoice_bba/data/mail_template_data.xml @@ -12,21 +12,22 @@ <br /><br /> Here is, in attachment, your % if object.number: - invoice <strong>${object.number}</strong> + invoice <strong>${object.name}</strong> % else: invoice - %endif - % if object.origin: - (with reference: ${object.origin} ) + % endif + % if object.invoice_origin: + (with reference: ${object.invoice_origin} ) % endif amounting in <strong>${format_amount(object.amount_total, object.currency_id)}</strong> from ${object.company_id.name}. - % if object.state=='paid': + % if object.invoice_payment_state=='paid': This invoice is already paid. % else: Please remit payment at your earliest convenience. - % if object.invoice_reference_type=='structured' and object.reference: - Please use the following communication for your payment: <strong>${object.reference}</strong>. + % if object.invoice_reference_type=='structured' and object.ref: + Please use the following communication for your payment: <strong>${object.ref}</strong>. + % endif % endif <br /><br /> Do not hesitate to contact us if you have any questions. diff --git a/addons/l10n_be_invoice_bba/models/account_invoice.py b/addons/l10n_be_invoice_bba/models/account_invoice.py index 5f5f3a6f105..fc50d09cd5a 100644 --- a/addons/l10n_be_invoice_bba/models/account_invoice.py +++ b/addons/l10n_be_invoice_bba/models/account_invoice.py @@ -10,12 +10,12 @@ from odoo import api, fields, models, _ from odoo.exceptions import UserError """ -account.invoice object: add support for Belgian structured communication +account.move object: add support for Belgian structured communication """ -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' @api.multi def _get_reference_be_partner(self): diff --git a/addons/l10n_ch/models/account_invoice.py b/addons/l10n_ch/models/account_invoice.py index 01c8b747329..1238d18bdd8 100644 --- a/addons/l10n_ch/models/account_invoice.py +++ b/addons/l10n_ch/models/account_invoice.py @@ -12,8 +12,8 @@ from odoo.tools.misc import mod10r l10n_ch_ISR_NUMBER_LENGTH = 27 l10n_ch_ISR_NUMBER_ISSUER_LENGTH = 12 -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' l10n_ch_isr_postal = fields.Char(compute='_compute_l10n_ch_isr_postal', help='The postal reference identifying the bank managing this ISR.') l10n_ch_isr_postal_formatted = fields.Char(compute='_compute_l10n_ch_isr_postal', help="Postal reference of the bank, formated with '-' and without the padding zeros, to generate ISR report.") @@ -28,7 +28,7 @@ class AccountInvoice(models.Model): l10n_ch_isr_sent = fields.Boolean(defaut=False, help="Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail.") l10n_ch_currency_name = fields.Char(related='currency_id.name', readonly=False, string="Currency Name", help="The name of this invoice's currency") #This field is used in the "invisible" condition field of the 'Print ISR' button. - @api.depends('partner_bank_id.bank_id.l10n_ch_postal_eur', 'partner_bank_id.bank_id.l10n_ch_postal_chf') + @api.depends('invoice_partner_bank_id.bank_id.l10n_ch_postal_eur', 'invoice_partner_bank_id.bank_id.l10n_ch_postal_chf') def _compute_l10n_ch_isr_postal(self): """ Computes the postal reference identifying the bank managing this ISR and formats it accordingly""" def _format_isr_postal(isr_postal): @@ -44,12 +44,11 @@ class AccountInvoice(models.Model): return isr_postal[:2] + isr_postal[2:-1].rjust(6, '0') + isr_postal[-1:] for record in self: - if record.partner_bank_id and record.partner_bank_id.bank_id: - isr_postal = False + if record.invoice_partner_bank_id and record.invoice_partner_bank_id.bank_id: if record.currency_id.name == 'EUR': - isr_postal = record.partner_bank_id.bank_id.l10n_ch_postal_eur + isr_postal = record.invoice_partner_bank_id.bank_id.l10n_ch_postal_eur elif record.currency_id.name == 'CHF': - isr_postal = record.partner_bank_id.bank_id.l10n_ch_postal_chf + isr_postal = record.invoice_partner_bank_id.bank_id.l10n_ch_postal_chf else: #we don't format if in another currency as EUR or CHF continue @@ -58,7 +57,7 @@ class AccountInvoice(models.Model): record.l10n_ch_isr_postal = _format_isr_postal_scanline(isr_postal) record.l10n_ch_isr_postal_formatted = _format_isr_postal(isr_postal) - @api.depends('number', 'partner_bank_id.l10n_ch_postal') + @api.depends('name', 'invoice_partner_bank_id.l10n_ch_postal') def _compute_l10n_ch_isr_number(self): """ The ISR reference number is 27 characters long. The first 12 of them contain the postal account number of this ISR's issuer, removing the zeros @@ -80,10 +79,10 @@ class AccountInvoice(models.Model): return res for record in self: - if record.number and record.partner_bank_id and record.partner_bank_id.l10n_ch_postal: - invoice_issuer_ref = re.sub('^0*', '', record.partner_bank_id.l10n_ch_postal) + if record.name and record.invoice_partner_bank_id and record.invoice_partner_bank_id.l10n_ch_postal: + invoice_issuer_ref = re.sub('^0*', '', record.invoice_partner_bank_id.l10n_ch_postal) invoice_issuer_ref = invoice_issuer_ref.ljust(l10n_ch_ISR_NUMBER_ISSUER_LENGTH, '0') - invoice_ref = re.sub('[^\d]', '', record.number) + invoice_ref = re.sub('[^\d]', '', record.name) #We only keep the last digits of the sequence number if it is too long invoice_ref = invoice_ref[-l10n_ch_ISR_NUMBER_ISSUER_LENGTH:] internal_ref = invoice_ref.zfill(l10n_ch_ISR_NUMBER_LENGTH - l10n_ch_ISR_NUMBER_ISSUER_LENGTH - 1) # -1 for mod10r check character @@ -91,7 +90,11 @@ class AccountInvoice(models.Model): record.l10n_ch_isr_number = mod10r(invoice_issuer_ref + internal_ref) record.l10n_ch_isr_number_spaced = _space_isr_number(record.l10n_ch_isr_number) - @api.depends('currency_id.name', 'amount_total', 'partner_bank_id.bank_id', 'number', 'partner_bank_id.l10n_ch_postal', 'partner_bank_id.bank_id.l10n_ch_postal_eur', 'partner_bank_id.bank_id.l10n_ch_postal_chf') + @api.depends( + 'currency_id.name', 'amount_total', 'name', + 'invoice_partner_bank_id.l10n_ch_postal', + 'invoice_partner_bank_id.bank_id.l10n_ch_postal_eur', + 'invoice_partner_bank_id.bank_id.l10n_ch_postal_chf') def _compute_l10n_ch_isr_optical_line(self): """ The optical reading line of the ISR looks like this : left>isr_ref+ bank_ref> @@ -125,15 +128,18 @@ class AccountInvoice(models.Model): #Final assembly (the space after the '+' is no typo, it stands in the specs.) record.l10n_ch_isr_optical_line = left + '>' + record.l10n_ch_isr_number + '+ ' + record.l10n_ch_isr_postal + '>' - @api.depends('type', 'number', 'partner_bank_id.l10n_ch_postal', 'partner_bank_id.bank_id', 'currency_id.name', 'partner_bank_id.bank_id.l10n_ch_postal_eur', 'partner_bank_id.bank_id.l10n_ch_postal_chf') + @api.depends( + 'type', 'name', 'currency_id.name', + 'invoice_partner_bank_id.l10n_ch_postal', + 'invoice_partner_bank_id.bank_id.l10n_ch_postal_eur', + 'invoice_partner_bank_id.bank_id.l10n_ch_postal_chf') def _compute_l10n_ch_isr_valid(self): """Returns True if all the data required to generate the ISR are present""" for record in self: record.l10n_ch_isr_valid = record.type == 'out_invoice' and\ - record.number and \ + record.name and \ record.l10n_ch_isr_postal and \ - record.partner_bank_id and \ - record.partner_bank_id.l10n_ch_postal and \ + record.invoice_partner_bank_id.l10n_ch_postal and \ record.l10n_ch_currency_name in ['EUR', 'CHF'] def split_total_amount(self): @@ -169,10 +175,10 @@ class AccountInvoice(models.Model): - associate this bank with a postal reference for the currency used in this invoice\n - fill the 'bank account' field of the invoice with the postal to be used to receive the related payment. A default account will be automatically set for all invoices created after you defined a postal account for your company.""")) + @api.multi def action_invoice_sent(self): - """ Overridden. Triggered by the 'send by mail' button. - """ - rslt = super(AccountInvoice, self).action_invoice_sent() + # OVERRIDE + rslt = super(AccountMove, self).action_invoice_sent() if self.l10n_ch_isr_valid: rslt['context']['l10n_ch_mark_isr_as_sent'] = True @@ -184,4 +190,4 @@ class AccountInvoice(models.Model): def message_post(self, **kwargs): if self.env.context.get('l10n_ch_mark_isr_as_sent'): self.filtered(lambda inv: not inv.l10n_ch_isr_sent).write({'l10n_ch_isr_sent': True}) - return super(AccountInvoice, self.with_context(mail_post_autofollow=True)).message_post(**kwargs) + return super(AccountMove, self.with_context(mail_post_autofollow=True)).message_post(**kwargs) diff --git a/addons/l10n_ch/models/mail_template.py b/addons/l10n_ch/models/mail_template.py index 7ec29d4d508..30918bd4b78 100644 --- a/addons/l10n_ch/models/mail_template.py +++ b/addons/l10n_ch/models/mail_template.py @@ -28,7 +28,7 @@ class MailTemplate(models.Model): for res_id in res_ids: related_model = self.env[self.model_id.model].browse(res_id) - if related_model._name == 'account.invoice' and related_model.l10n_ch_isr_valid: + if related_model._name == 'account.move' and related_model.l10n_ch_isr_valid: #We add an attachment containing the ISR template = res_ids_to_templates[res_id] report_name = 'ISR-' + self._render_template(template.report_name, template.model, res_id) + '.pdf' diff --git a/addons/l10n_ch/report/isr_report.xml b/addons/l10n_ch/report/isr_report.xml index 26d843789d8..bf25cf171e8 100644 --- a/addons/l10n_ch/report/isr_report.xml +++ b/addons/l10n_ch/report/isr_report.xml @@ -17,15 +17,15 @@ <!--Report containing an ISR corrresponding to an invoice.--> <report id="l10n_ch_isr_report" - model="account.invoice" + model="account.move" report_type="qweb-pdf" string="ISR" name="l10n_ch.isr_report_main" file="l10n_ch.isr_report_main" attachment_use="True" - attachment="'ISR-' + object.number + '.pdf'" + attachment="'ISR-' + object.name + '.pdf'" menu="False" - print_report_name="'ISR-%s' % object.number" + print_report_name="'ISR-%s' % object.name" paperformat="paperformat_euro_no_margin"/> <!--No additional condition in report name on invoice state or type as this report is only available to be printed for out invoices after @@ -48,7 +48,7 @@ <!-- since the body content take the whole page we need a way to add margin back on content outside the ISR so it does not overlap with the header --> <div id="content_outside_isr"> - <h1>ISR for invoice <t t-esc="invoice.number"/></h1> + <h1>ISR for invoice <t t-esc="invoice.name"/></h1> </div> <div id="isr" t-att-class="'isr-print-bank' if print_bank else None"> @@ -62,9 +62,9 @@ <t t-if="print_bank"> <div id="voucher-for-bank"> <p t-if="not invoice.company_id.l10n_ch_isr_preprinted_bank"> - <t t-esc="invoice.partner_bank_id.bank_id.name"/><br /> - <t t-esc="invoice.partner_bank_id.bank_id.zip"/> - <t t-esc="invoice.partner_bank_id.bank_id.city"/> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.name"/><br /> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.zip"/> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.city"/> </p> </div> <!--Zugunsten von/En faveur de/A favore di--> @@ -103,9 +103,9 @@ <t t-if="print_bank"> <div id="slip-for-bank"> <p t-if="not invoice.company_id.l10n_ch_isr_preprinted_bank"> - <t t-esc="invoice.partner_bank_id.bank_id.name"/><br /> - <t t-esc="invoice.partner_bank_id.bank_id.zip"/> - <t t-esc="invoice.partner_bank_id.bank_id.city"/> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.name"/><br /> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.zip"/> + <t t-esc="invoice.invoice_partner_bank_id.bank_id.city"/> </p> </div> <!--Zugunsten von/En faveur de/A favore di--> diff --git a/addons/l10n_ch/report/swissqr_report.xml b/addons/l10n_ch/report/swissqr_report.xml index 46ab9a8db26..8199ef8b9bf 100644 --- a/addons/l10n_ch/report/swissqr_report.xml +++ b/addons/l10n_ch/report/swissqr_report.xml @@ -5,7 +5,7 @@ <xpath expr="//div[@id='qrcode']" position="after"> <link type="text/css" rel="stylesheet" href="/l10n_ch/static/src/scss/report_swissqr.css"/> <div class="swissqr_content" t-if="o.display_swiss_qr_code()"> - <div class="swissqr_body" t-if="o.partner_bank_id.validate_swiss_code_arguments(o.partner_bank_id.currency_id, o.partner_id) and ((o.currency_id.name == 'EUR') or (o.currency_id.name == 'CHF'))"> + <div class="swissqr_body" t-if="o.invoice_partner_bank_id.validate_swiss_code_arguments(o.invoice_partner_bank_id.currency_id, o.partner_id) and ((o.currency_id.name == 'EUR') or (o.currency_id.name == 'CHF'))"> <div id="title_zone" class="swissqr_column_left title_zone"> <span class="swissqr_text title title_zone">QR-bill payment part</span><br/> </div> @@ -15,14 +15,14 @@ <span class="swissqr_text content">Credit transfer</span> </div> - <img class="swissqr" t-att-src="o.partner_bank_id.build_swiss_code_url(o.residual, o.currency_id.name, o.date_due, o.partner_id, 'QRR', - (o.partner_bank_id.bank_id.l10n_ch_postal_eur) if (o.partner_bank_id.currency_id.name == 'EUR') else o.partner_bank_id.bank_id.l10n_ch_postal_chf, - (o.reference) if (o.reference) else o.number)"/> + <img class="swissqr" t-att-src="o.invoice_partner_bank_id.build_swiss_code_url(o.amount_residual, o.currency_id.name, o.invoice_date_due, o.partner_id, 'QRR', + (o.invoice_partner_bank_id.bank_id.l10n_ch_postal_eur) if (o.invoice_partner_bank_id.currency_id.name == 'EUR') else o.invoice_partner_bank_id.bank_id.l10n_ch_postal_chf, + (o.ref) if (o.ref) else o.name)"/> <img class="ch_cross" src="/l10n_ch/static/src/img/CH-Cross_7mm.png"/> <div id="indications_zone" class="swissqr_column_right indication_zone"> <span class="swissqr_text title">Account</span><br/> - <span class="swissqr_text content" t-field="o.partner_bank_id.acc_number"/><br/> + <span class="swissqr_text content" t-field="o.invoice_partner_bank_id.acc_number"/><br/> <span class="swissqr_text title">Creditor</span><br/> <span class="swissqr_text content" t-field="o.company_id.name"/><br/> @@ -32,15 +32,15 @@ <span class="swissqr_text content" t-field="o.company_id.city"/><br/> <span class="swissqr_text title">Reference number</span><br/> - <t t-if="o.partner_bank_id.currency_id.name == 'EUR'"> - <span class="swissqr_text content" t-field="o.partner_bank_id.bank_id.l10n_ch_postal_eur"/><br/> + <t t-if="o.invoice_partner_bank_id.currency_id.name == 'EUR'"> + <span class="swissqr_text content" t-field="o.invoice_partner_bank_id.bank_id.l10n_ch_postal_eur"/><br/> </t> - <t t-if="o.partner_bank_id.currency_id.name == 'CHF'"> - <span class="swissqr_text content" t-field="o.partner_bank_id.bank_id.l10n_ch_postal_chf"/><br/> + <t t-if="o.invoice_partner_bank_id.currency_id.name == 'CHF'"> + <span class="swissqr_text content" t-field="o.invoice_partner_bank_id.bank_id.l10n_ch_postal_chf"/><br/> </t> <span class="swissqr_text title">Additional information</span><br/> - <span class="swissqr_text content" t-field="o.reference"/><br/> + <span class="swissqr_text content" t-field="o.ref"/><br/> <span class="swissqr_text title">Debtor</span><br/> <span class="swissqr_text content" t-field="o.partner_id.name"/><br/> @@ -51,7 +51,7 @@ <span class="swissqr_text content" t-field="o.partner_id.city"/><br/> <span class="swissqr_text title">Due date</span><br/> - <span class="swissqr_text content" t-field="o.date_due"/><br/> + <span class="swissqr_text content" t-field="o.invoice_date_due"/><br/> </div> <div id="amount_zone" class="swissqr_column_left amount_zone"> @@ -61,11 +61,11 @@ <div class="amount_zone amount"> <span class="swissqr_text title">Amount</span><br/> - <t t-set="formated_amount" t-value="('%.2f' % (o.residual)).split(' ')[0].replace(',',' ')"/> + <t t-set="formated_amount" t-value="('%.2f' % (o.amount_residual)).split(' ')[0].replace(',',' ')"/> <span class="swissqr_text content" t-esc="formated_amount"/> </div> </div> - <div class="swissqr_body" t-if="(o.partner_bank_id.validate_swiss_code_arguments(o.partner_bank_id.currency_id, o.partner_id) == False) and ((o.currency_id.name == 'EUR') or (o.currency_id.name == 'CHF'))"> + <div class="swissqr_body" t-if="(o.invoice_partner_bank_id.validate_swiss_code_arguments(o.invoice_partner_bank_id.currency_id, o.partner_id) == False) and ((o.currency_id.name == 'EUR') or (o.currency_id.name == 'CHF'))"> <div class="swissqr_column_left procedure_zone"> <span>Some pieces of this information are not set correctly to display the Swiss QR Code.<br/> -Bank > CHF ISR reference<br/> diff --git a/addons/l10n_ch/tests/test_l10n_ch_isr.py b/addons/l10n_ch/tests/test_l10n_ch_isr.py index 2ff830342e2..2a089dccd1d 100644 --- a/addons/l10n_ch/tests/test_l10n_ch_isr.py +++ b/addons/l10n_ch/tests/test_l10n_ch_isr.py @@ -13,38 +13,27 @@ class ISRTest(AccountingTestCase): def create_invoice(self, currency_to_use='base.CHF'): """ Generates a test invoice """ - account_receivable = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - currency = self.env.ref(currency_to_use) - partner_agrolait = self.env.ref("base.res_partner_2") - product = self.env.ref("product.product_product_4") - account_revenue = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id)], limit=1) - - invoice = self.env['account.invoice'].create({ - 'partner_id': partner_agrolait.id, - 'currency_id': currency.id, - 'name': 'invoice to client', - 'account_id': account_receivable.id, + invoice = self.env['account.move'].with_context(default_type='out_invoice').create({ 'type': 'out_invoice', - 'date_invoice': time.strftime('%Y') + '-12-22', + 'partner_id': self.env.ref("base.res_partner_2").id, + 'currency_id': self.env.ref(currency_to_use).id, + 'invoice_date': time.strftime('%Y') + '-12-22', + 'invoice_line_ids': [ + (0, 0, { + 'product_id': self.env.ref("product.product_product_4").id, + 'quantity': 1, + 'price_unit': 42, + }), + ], }) - - self.env['account.invoice.line'].create({ - 'product_id': product.id, - 'quantity': 1, - 'price_unit': 42, - 'invoice_id': invoice.id, - 'name': 'something', - 'account_id': account_revenue.id, - }) - - invoice.action_invoice_open() + invoice.post() return invoice def create_account(self, number): """ Generates a test res.partner.bank. """ return self.env['res.partner.bank'].create({ - 'acc_number': number + 'acc_number': number, }) def print_isr(self, invoice): diff --git a/addons/l10n_ch/views/account_invoice_view.xml b/addons/l10n_ch/views/account_invoice_view.xml index e550670de85..52421816d1d 100644 --- a/addons/l10n_ch/views/account_invoice_view.xml +++ b/addons/l10n_ch/views/account_invoice_view.xml @@ -3,14 +3,10 @@ <data> <record id="isr_invoice_form" model="ir.ui.view"> <field name="name">l10n_ch.account.invoice.form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> - <xpath expr="//field[@name='partner_bank_id']" position="attributes"> - <attribute name="invisible">0</attribute> - </xpath> - - <xpath expr="//field[@name='sent']" position="after"> + <xpath expr="//field[@name='invoice_sent']" position="after"> <field name="l10n_ch_isr_sent" invisible="1"/> <field name="l10n_ch_currency_name" invisible="1"/> </xpath> @@ -20,9 +16,12 @@ name="isr_print" string="Print ISR" type="object" - attrs="{'invisible':['|', ('l10n_ch_isr_sent', '=', True), - '|', ('state', '!=', 'open'), - ('l10n_ch_currency_name', 'not in', ['EUR', 'CHF'])]}" + attrs="{'invisible':['|', '|', '|', '|', + ('type', 'not in', ('out_invoice', 'out_refund')), + ('l10n_ch_isr_sent', '=', True), + ('state', '!=', 'posted'), + ('invoice_payment_state', '!=', 'not_paid'), + ('l10n_ch_currency_name', 'not in', ['EUR', 'CHF'])]}" class="oe_highlight" groups="base.group_user" /> @@ -33,9 +32,12 @@ name="isr_print" string="Print ISR" type="object" - attrs="{'invisible':['|', ('l10n_ch_isr_sent', '=', False), - '|', ('state', '!=', 'open'), - ('l10n_ch_currency_name', 'not in', ['EUR', 'CHF'])]}" + attrs="{'invisible':['|', '|', '|', '|', + ('type', 'not in', ('out_invoice', 'out_refund')), + ('l10n_ch_isr_sent', '=', False), + ('state', '!=', 'posted'), + ('invoice_payment_state', '!=', 'not_paid'), + ('l10n_ch_currency_name', 'not in', ['EUR', 'CHF'])]}" groups="base.group_user" /> </xpath> @@ -44,7 +46,7 @@ <record id="isr_invoice_search_view" model="ir.ui.view"> <field name="name">l10n_ch.invoice.select</field> - <field name="model">account.invoice</field> + <field name="model">account.move</field> <field name="inherit_id" ref="account.view_account_invoice_filter"/> <field name="mode">primary</field> <field name="arch" type="xml"> @@ -56,10 +58,10 @@ <!--Overridden action (and primary child view), so the filter are only available for customer invoices--> - <record id="account.action_invoice_tree1" model="ir.actions.act_window"> + <record id="account.action_move_out_invoice_type" model="ir.actions.act_window"> <field name="name">Customer Invoices</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="search_view_id" ref="isr_invoice_search_view"/> </record> </data> -</odoo>
\ No newline at end of file +</odoo> diff --git a/addons/l10n_de/models/datev.py b/addons/l10n_de/models/datev.py index 1578b09050f..a44ff410110 100644 --- a/addons/l10n_de/models/datev.py +++ b/addons/l10n_de/models/datev.py @@ -17,17 +17,20 @@ class AccountTax(models.Model): l10n_de_datev_code = fields.Char(size=2, help="2 digits code use by Datev") -class AccountInvoice(models.Model): - _inherit = "account.invoice" - def invoice_validate(self): - for invoice in self: +class AccountMove(models.Model): + _inherit = 'account.move' + + @api.multi + def post(self): + # OVERRIDE to check the invoice lines taxes. + for invoice in self.filtered(lambda move: move.is_invoice()): for line in invoice.invoice_line_ids: account_tax = line.account_id.tax_ids.ids if account_tax and invoice.company_id.country_id.code == 'DE': account_name = line.account_id.name - for tax in line.invoice_line_tax_ids: + for tax in line.tax_ids: if tax.id not in account_tax: raise UserError(_('Account %s does not authorize to have tax %s specified on the line. \ Change the tax used in this invoice or remove all taxes from the account') % (account_name, tax.name)) - return super(AccountInvoice, self).invoice_validate()
\ No newline at end of file + return super(AccountMove, self).post() diff --git a/addons/l10n_generic_coa/data/account_bank_statement_demo.xml b/addons/l10n_generic_coa/data/account_bank_statement_demo.xml index 781c598961d..7a6b85df6fa 100644 --- a/addons/l10n_generic_coa/data/account_bank_statement_demo.xml +++ b/addons/l10n_generic_coa/data/account_bank_statement_demo.xml @@ -72,6 +72,10 @@ ('company_id', '=', obj().env.company.id)]"/> <field name="amount">102.78</field> <field name="date" eval="time.strftime('%Y')+'-01-01'"/> + <field name="account_id" model="account.account" search="[ + ('user_type_id', '=', ref('account.data_account_type_revenue')), + ('tag_ids', 'in', [ref('account.account_tag_financing')]), + ('company_id', '=', obj().env.company.id)]"/> </record> <record id="demo_bank_statement_line_6" model="account.bank.statement.line"> @@ -87,5 +91,9 @@ <field name="partner_id" ref="base.res_partner_2"/> </record> + <function model="account.bank.statement.line" name="fast_counterpart_creation"> + <value eval="[ref('demo_bank_statement_line_5')]"/> + </function> + </data> </odoo> diff --git a/addons/l10n_generic_coa/data/account_invoice_demo.xml b/addons/l10n_generic_coa/data/account_invoice_demo.xml index 7d35455cd3f..ecb460e1ce4 100644 --- a/addons/l10n_generic_coa/data/account_invoice_demo.xml +++ b/addons/l10n_generic_coa/data/account_invoice_demo.xml @@ -1,150 +1,80 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <data noupdate="1"> - <record id="demo_invoice_1" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_12"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <!-- ==== Invoice Demo 1 ==== --> + <record id="demo_invoice_1" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - <record id="demo_invoice_1_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_02').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_1"/> - <field name="product_id" ref="product.consu_delivery_02"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_02').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">642.0</field> - <field name="quantity">5</field> - </record> - <record id="demo_invoice_1_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_1"/> - <field name="product_id" ref="product.consu_delivery_03"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">280.0</field> - <field name="quantity">5.0</field> + <field name="partner_id" ref="base.res_partner_12"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.consu_delivery_02'), 'price_unit': 642.0, 'quantity': 5}), + (0, 0, {'product_id': ref('product.consu_delivery_03'), 'price_unit': 280.0, 'quantity': 5}), + ]"/> </record> - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_1')]"/> - </function> - - <record id="demo_invoice_2" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_2"/> + <!-- ==== Invoice Demo 2 ==== --> + <record id="demo_invoice_2" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-08'"/> - </record> - <record id="demo_invoice_2_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_2"/> - <field name="product_id" ref="product.consu_delivery_03"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">50.0</field> - <field name="quantity">5</field> - </record> - <record id="demo_invoice_2_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_2"/> - <field name="product_id" ref="product.consu_delivery_01"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">25.0</field> - <field name="quantity">20.0</field> + <field name="partner_id" ref="base.res_partner_2"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-08'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.consu_delivery_03'), 'price_unit': 50.0, 'quantity': 5}), + (0, 0, {'product_id': ref('product.consu_delivery_01'), 'price_unit': 25.0, 'quantity': 20}), + ]"/> </record> - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_2')]"/> - </function> - - <record id="demo_invoice_3" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_2"/> + <!-- ==== Invoice Demo 3 ==== --> + <record id="demo_invoice_3" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-08'"/> - </record> - <record id="demo_invoice_3_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_3"/> - <field name="product_id" ref="product.consu_delivery_01"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">90.0</field> - <field name="quantity">5</field> - </record> - <record id="demo_invoice_3_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_3"/> - <field name="product_id" ref="product.consu_delivery_03"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">15.0</field> - <field name="quantity">5.0</field> + <field name="partner_id" ref="base.res_partner_2"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-08'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.consu_delivery_01'), 'price_unit': 90.0, 'quantity': 5}), + (0, 0, {'product_id': ref('product.consu_delivery_03'), 'price_unit': 15.0, 'quantity': 5}), + ]"/> </record> - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_3')]"/> - </function> - - <!-- Create an invoice that will generate a followup --> - <record id="demo_invoice_followup" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_2"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term_immediate"/> + <!-- ==== Invoice Demo 4 - Create an invoice that will generate a followup ==== --> + <record id="demo_invoice_followup" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="(datetime.today() + timedelta(days=-15)).strftime('%Y-%m-%d')"/> - </record> - <record id="demo_invoice_followup_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_02').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_followup"/> - <field name="product_id" ref="product.consu_delivery_02"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_02').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">642.0</field> - <field name="quantity">5</field> - </record> - <record id="demo_invoice_followup_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').get_product_multiline_description_sale()"/> - <field name="invoice_id" ref="demo_invoice_followup"/> - <field name="product_id" ref="product.consu_delivery_03"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">280.0</field> - <field name="quantity">5.0</field> + <field name="partner_id" ref="base.res_partner_2"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term_immediate"/> + <field name="invoice_date" eval="(datetime.today() + timedelta(days=-15)).strftime('%Y-%m-%d')"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.consu_delivery_02'), 'price_unit': 642.0, 'quantity': 5}), + (0, 0, {'product_id': ref('product.consu_delivery_03'), 'price_unit': 280.0, 'quantity': 5}), + ]"/> </record> - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_followup')]"/> - </function> - - <record id="demo_invoice_0" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_12"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <!-- ==== Invoice Demo 5 - Draft Vendor Bill ==== --> + <record id="demo_invoice_0" model="account.move"> <field name="type">in_invoice</field> - <field name="journal_id" search="[('type', '=', 'purchase')]"/> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - <record id="demo_invoice_0_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_delivery_01').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_0"/> - <field name="product_id" ref="product.product_delivery_01"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">10.0</field> - <field name="quantity">1</field> - </record> - <record id="demo_invoice_0_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_order_01').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_0"/> - <field name="product_id" ref="product.product_order_01"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_order_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">4.0</field> - <field name="quantity">5.0</field> + <field name="partner_id" ref="base.res_partner_12"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.product_delivery_01'), 'price_unit': 10.0, 'quantity': 1}), + (0, 0, {'product_id': ref('product.product_order_01'), 'price_unit': 4.0, 'quantity': 5}), + ]"/> </record> - <record id="demo_invoice_extract" model="account.invoice"> - <field name="user_id" ref="base.user_demo"/> - <field name="type">in_invoice</field> + + <!-- ==== Invoice Demo 6 - Draft Vendor Bill for OCR ==== --> + <record id="demo_invoice_extract" model="account.move" context="{'type': 'in_invoice'}"> + <field name="invoice_user_id" ref="base.user_demo"/> </record> + <record id="ir_attachment_in_invoice_draft" model="ir.attachment"> <field name="type">binary</field> <field name="datas" type="base64" file="l10n_generic_coa/static/src/demo/in_invoice_yourcompany_demo.pdf"/> <field name="name">in_invoice_yourcompany_demo.pdf</field> </record> + <record id="mail_message_in_invoice_0" model="mail.message"> - <field name="model">account.invoice</field> + <field name="model">account.move</field> <field name="res_id" ref="l10n_generic_coa.demo_invoice_extract"/> <field name="body">Vendor Bill attachment</field> <field name="message_type">comment</field> @@ -153,66 +83,21 @@ <field name="attachment_ids" eval="[(6, 0, [ref('ir_attachment_in_invoice_draft')])]"/> </record> - <record id="demo_invoice_january_wages" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_12"/> + <!-- ==== Invoice Demo 7 - Posted vendor bill ==== --> + <record id="demo_invoice_equipment_purchase" model="account.move"> <field name="type">in_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - <field name="journal_id" search="[('type', '=', 'purchase')]"/> - </record> - - <record id="ceo_wages_line" model="account.invoice.line"> - <field name="invoice_id" ref="demo_invoice_january_wages"/> - <field name="name">CEO wages</field> - <field name="price_unit">10000</field> - <field name="account_id" model="account.account" - search="['|', ('tag_ids', '=', ref('account.demo_ceo_wages_account')), - ('user_type_id', '=', ref('account.data_account_type_expenses')), - ('company_id', '=', obj().env.company.id)]"/> - </record> - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_january_wages')]"/> - </function> - - <record id="demo_invoice_equipment_purchase" model="account.invoice"> <field name="partner_id" ref="base.res_partner_1"/> - <field name="type">in_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-15'"/> - <field name="journal_id" search="[('type', '=', 'purchase')]"/> - </record> - - <record id="large_cabinet_invoice_line" model="account.invoice.line"> - <field name="invoice_id" ref="demo_invoice_equipment_purchase"/> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_6').partner_ref"/> - <field name="product_id" ref="product.product_product_6"/> - <field name="price_unit">4999.99</field> - <field name="account_id" model="account.account" - search="['|', ('tag_ids', '=', ref('account.demo_office_furniture_account')), - ('user_type_id', '=', ref('account.data_account_type_expenses')), - ('company_id', '=', obj().env.company.id)]"/> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'purchase'), - ('amount', '>', 0), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_equipment_purchase')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_equipment_purchase')]"/> - </function> - - <record id="demo_bank_statement_line_5" model="account.bank.statement.line"> - <field name="account_id" model="account.account" search="[ - ('user_type_id', '=', ref('account.data_account_type_revenue')), - ('tag_ids', 'in', [ref('account.account_tag_financing')]), - ('company_id', '=', obj().env.company.id)]"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-15'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, {'product_id': ref('product.product_product_6'), 'quantity': 1, 'price_unit': 4999.99, 'price_unit': 4999.99}) + ]"/> </record> - <function model="account.bank.statement.line" name="fast_counterpart_creation"> - <value eval="[ref('demo_bank_statement_line_5')]"/> + <function model="account.move" name="post"> + <value eval="[ + ref('demo_invoice_1'), ref('demo_invoice_2'), ref('demo_invoice_3'), + ref('demo_invoice_followup'), ref('demo_invoice_equipment_purchase'), + ]"/> </function> </data> diff --git a/addons/l10n_generic_coa/tests/__init__.py b/addons/l10n_generic_coa/tests/__init__.py deleted file mode 100644 index f08703304df..00000000000 --- a/addons/l10n_generic_coa/tests/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# -*- coding: utf-8 -*- -from . import test_base_objects diff --git a/addons/l10n_generic_coa/tests/test_base_objects.py b/addons/l10n_generic_coa/tests/test_base_objects.py deleted file mode 100644 index c43eb111843..00000000000 --- a/addons/l10n_generic_coa/tests/test_base_objects.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -import time - -from odoo import fields -from odoo.tests.common import TransactionCase, Form - -class TestAccountBankStatement(TransactionCase): - """ - In order to test Bank Statement feature of account I create a bank - statement line and confirm it and check it's move created - """ - def test_basic(self): - env = self.env(context=dict(self.env.context, journal_type='bank')) - - # select the period and journal for the bank statement - journal = env['account.bank.statement'].with_context( - date=time.strftime("%Y/%m/%d"), # ??? - )._default_journal() - self.assertTrue(journal, 'Journal has not been selected') - - f = Form(env['account.bank.statement']) - # necessary as there may be existing bank statements with a non-zero - # closing balance which will be used to initialise this one. - f.balance_start = 0.0 - f.balance_end_real = 0.0 - with f.line_ids.new() as line: - line.name = 'EXT001' - line.amount = 1000 - line.partner_id = env.ref('base.res_partner_4') - - statement_id = f.save() - - # process the bank statement line - account = env['account.account'].create({ - 'name': 'toto', - 'code': 'bidule', - 'user_type_id': env.ref('account.data_account_type_fixed_assets').id - }) - statement_id.line_ids[0].process_reconciliation(new_aml_dicts=[{ - 'credit': 1000, - 'debit': 0, - 'name': 'toto', - 'account_id': account.id, - }]) - - with Form(statement_id) as f: - # modify the bank statement and set the Ending Balance. - f.balance_end_real = 1000.0 - - # confirm the bank statement using Validate button - statement_id.button_confirm_bank() - - self.assertEqual(statement_id.state, 'confirm') - -class TestAccountInvoice(TransactionCase): - def test_state(self): - # In order to test Confirm Draft Invoice wizard I create an invoice - # and confirm it with this wizard - f = Form(self.env['account.invoice']) - f.partner_id = self.env.ref('base.res_partner_12') - with f.invoice_line_ids.new() as l: - l.product_id = self.env.ref('product.product_product_3') - invoice = f.save() - - # I check that Initially customer invoice state is "Draft" - self.assertEqual(invoice.state, 'draft') - - # I called the "Confirm Draft Invoices" wizard - w = Form(self.env['account.invoice.confirm']).save() - # I clicked on Confirm Invoices Button - w.with_context( - active_model='account.invoice', - active_id=invoice.id, - active_ids=invoice.ids, - type='out_invoice', - ).invoice_confirm() - - # I check that customer invoice state is "Open" - self.assertEqual(invoice.state, 'open') - - # I check the journal associated and put this journal as not - moves = self.env['account.move.line'].search([ - ('invoice_id', '=', invoice.id) - ]) - self.assertGreater(len(moves), 0, 'You should have multiple moves') - moves[0].journal_id.write({'update_posted': True}) - - # I cancelled this open invoice using the button on invoice - invoice.action_invoice_cancel() - # I check that customer invoice is in the cancel state - self.assertEqual(invoice.state, 'cancel') diff --git a/addons/l10n_in/data/account_invoice_demo.xml b/addons/l10n_in/data/account_invoice_demo.xml index f66e55f6d30..db7863005bc 100644 --- a/addons/l10n_in/data/account_invoice_demo.xml +++ b/addons/l10n_in/data/account_invoice_demo.xml @@ -2,194 +2,86 @@ <odoo noupdate="1"> <!-- Demo of B2B (business-to-business) Taxable supplies made to other registered person.--> - <record id="demo_invoice_b2b" model="account.invoice"> + <record id="demo_invoice_b2b" model="account.move"> + <field name="type">out_invoice</field> <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> <field name="l10n_in_reseller_partner_id" ref="l10n_in.res_partner_reseller"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> - <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - - <record id="demo_invoice_b2b_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2b"/> - <field name="product_id" ref="product.product_product_8"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">40000</field> - <field name="quantity">2</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 28), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_b2b_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2b"/> - <field name="product_id" ref="product.product_product_9"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">400</field> - <field name="quantity">3</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.product_product_8'), + 'quantity': 2, + 'price_unit': 40000.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_9'), + 'quantity': 3, + 'price_unit': 400.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_10'), + 'quantity': 4, + 'price_unit': 300.0, + }), + ]"/> </record> - <record id="demo_invoice_b2b_line_3" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2b"/> - <field name="product_id" ref="product.product_product_10"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">300</field> - <field name="quantity">4</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('company_id', '=', obj().env.company.id), - '|', - '&', - ('amount', '=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - '&', - ('tax_group_id', '=', obj().env.ref('l10n_in.cess_group').id), - ('children_tax_ids.amount','=', 5) - ], limit=2).ids)]"/> - </record> - - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_b2b')]"/> - </function> - - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_b2b')]"/> - </function> <!-- Demo of B2CS (business to consumer small) Taxable supplies made to other unregistered Person and below INR 2.5 lakhs invoice value.--> - <record id="demo_invoice_b2cs" model="account.invoice"> - <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <record id="demo_invoice_b2cs" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - - <record id="demo_invoice_b2cs_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_16').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2cs"/> - <field name="product_id" ref="product.product_product_16"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_16').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_16').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">1500</field> - <field name="quantity">1</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_b2cs_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_20').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2cs"/> - <field name="product_id" ref="product.product_product_20"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_20').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_20').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">2300</field> - <field name="quantity">1</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_b2cs_line_3" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_22').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2cs"/> - <field name="product_id" ref="product.product_product_22"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_22').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_22').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">2600</field> - <field name="quantity">1</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('amount','=', 5), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_b2cs_line_4" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_24').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2cs"/> - <field name="product_id" ref="product.product_product_24"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_24').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_24').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">1655</field> - <field name="quantity">2</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('amount','=', 5), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.product_product_16'), + 'quantity': 1, + 'price_unit': 1500.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_20'), + 'quantity': 1, + 'price_unit': 2300.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_22'), + 'quantity': 1, + 'price_unit': 2600.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_24'), + 'quantity': 2, + 'price_unit': 1655.0, + }), + ]"/> </record> - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_b2cs')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_b2cs')]"/> - </function> - <!-- Demo of B2CL (business to consumer small) Taxable supplies made to other unregistered Person and below INR 2.5 lakhs invoice value.--> - <record id="demo_invoice_b2cl" model="account.invoice"> - <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer_out_state"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <record id="demo_invoice_b2cl" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - - <record id="demo_invoice_b2cl_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_b2cl"/> - <field name="product_id" ref="product.consu_delivery_01"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">90000</field> - <field name="quantity">3</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.igst_group').id), - ('amount','=', 18), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer_out_state"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.consu_delivery_01'), + 'quantity': 3, + 'price_unit': 90000.0, + }), + ]"/> </record> - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_b2cl')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_b2cl')]"/> - </function> - <!-- Demo of EXP(Export) supplies including supplies to SEZ/SEZ Developer or deemed exports.--> - <record id="demo_invoice_exp" model="account.invoice"> - <field name="partner_id" ref="base.res_partner_3"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <record id="demo_invoice_exp" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="partner_id" ref="base.res_partner_3"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> <field name="l10n_in_export_type">export_with_igst</field> <field name="journal_id" model="account.journal" eval="obj().search([ @@ -200,222 +92,107 @@ <field name="l10n_in_shipping_bill_number">999704</field> <field name="l10n_in_shipping_bill_date" eval="time.strftime('%Y-%m')+'-02'"/> <field name="l10n_in_shipping_port_code_id" ref="l10n_in.port_code_inixy1"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.product_product_4'), + 'quantity': 30, + 'price_unit': 8000.0, + }), + ]"/> </record> - <record id="demo_invoice_exp_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_4').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_exp"/> - <field name="product_id" ref="product.product_product_4"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_4').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_4').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">8000</field> - <field name="quantity">30</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.igst_group').id), - ('amount','=', 18), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_exp')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_exp')]"/> - </function> - <!-- Demo of exemp(Nil Rated, Exempted and Non GST supplies). Set Nill rated and Exempted tax in line.--> - <record id="demo_invoice_nill" model="account.invoice"> - <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <record id="demo_invoice_nill" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/> - </record> - - <record id="demo_invoice_nill_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_1').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_nill"/> - <field name="product_id" ref="product.product_product_1"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_1').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_1').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">25000</field> - <field name="quantity">2</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.exempt_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_nill_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_5').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_nill"/> - <field name="product_id" ref="product.product_product_5"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_5').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_5').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">400</field> - <field name="quantity">1</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('tax_group_id', '=', obj().env.ref('l10n_in.nil_rated_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-01'"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.product_product_1'), + 'quantity': 2, + 'price_unit': 25000.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_5'), + 'quantity': 1, + 'price_unit': 400.0, + }), + ]"/> </record> - - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_nill')]"/> - </function> - - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_nill')]"/> - </function> - <!-- Demo of cdnr(Credit/ Debit Note for registered person). Create credit note for demo b2b invoice.--> - <record id="demo_invoice_cdnr" model="account.invoice"> + <record id="demo_invoice_cdnr" model="account.move"> + <field name="type">out_refund</field> <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> <field name="l10n_in_reseller_partner_id" ref="l10n_in.res_partner_reseller"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> - <field name="type">out_refund</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-02'"/> - <field name="refund_invoice_id" ref="l10n_in.demo_invoice_b2b"/> - </record> - - <record id="demo_invoice_cdnr_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_cdnr"/> - <field name="product_id" ref="product.product_product_8"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_8').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">40000</field> - <field name="quantity">2</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 28), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-02'"/> + <field name="reversed_entry_id" ref="l10n_in.demo_invoice_b2b"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.product_product_8'), + 'quantity': 2, + 'price_unit': 40000.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_9'), + 'quantity': 3, + 'price_unit': 400.0, + }), + (0, 0, { + 'product_id': ref('product.product_product_10'), + 'quantity': 3, + 'price_unit': 400.0, + }), + ]"/> </record> - <record id="demo_invoice_cdnr_line_2" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_cdnr"/> - <field name="product_id" ref="product.product_product_9"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_9').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">400</field> - <field name="quantity">3</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> - </record> - <record id="demo_invoice_cdnr_line_3" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_cdnr"/> - <field name="product_id" ref="product.product_product_10"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.product_product_10').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">300</field> - <field name="quantity">4</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('company_id', '=', obj().env.company.id), - '|', - '&', - ('amount', '=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - '&', - ('tax_group_id', '=', obj().env.ref('l10n_in.cess_group').id), - ('children_tax_ids.amount','=', 5) - ], limit=2).ids)]"/> - </record> - - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_cdnr')]"/> - </function> - - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_cdnr')]"/> - </function> <!-- Demo of cdnr(Credit/ Debit Note for unregistered person). Create credit note for demo b2cl invoice.--> - <record id="demo_invoice_cdnur" model="account.invoice"> - <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + <record id="demo_invoice_cdnur" model="account.move"> <field name="type">out_refund</field> - <field name="date_invoice" eval="time.strftime('%Y-%m')+'-02'"/> - <field name="refund_invoice_id" ref="l10n_in.demo_invoice_b2cl"/> - </record> - - <record id="demo_invoice_cdnur_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_cdnur"/> - <field name="product_id" ref="product.consu_delivery_01"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">90000</field> - <field name="quantity">3</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="partner_id" ref="l10n_in.res_partner_unregistered_customer"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="time.strftime('%Y-%m')+'-02'"/> + <field name="reversed_entry_id" ref="l10n_in.demo_invoice_b2cl"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.consu_delivery_01'), + 'quantity': 3, + 'price_unit': 90000.0, + }), + ]"/> </record> - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_cdnur')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_cdnur')]"/> - </function> - <!-- Demo of atadj(Advance adjustments). When invoice is reconcile against Advance payment. - Reconciled invoice consideration for which payment have been recived in the past months.--> - <record id="demo_invoice_atadj" model="account.invoice"> - <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> - <field name="user_id" ref="base.user_demo"/> - <field name="payment_term_id" ref="account.account_payment_term"/> + Reconciled invoice consideration for which payment have been received in the past months.--> + <record id="demo_invoice_atadj" model="account.move"> <field name="type">out_invoice</field> - <field name="date_invoice" eval="(datetime.now() + relativedelta(months=1)).strftime('%Y-%m-01')"/> - </record> - - <record id="demo_invoice_atadj_line_1" model="account.invoice.line"> - <field name="name" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').partner_ref"/> - <field name="invoice_id" ref="demo_invoice_atadj"/> - <field name="product_id" ref="product.consu_delivery_01"/> - <field name="uom_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').uom_id.id"/> - <field name="account_id" model="account.invoice.line" eval="obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id"/> - <field name="price_unit">2000</field> - <field name="quantity">3</field> - <field name="invoice_line_tax_ids" model="account.tax" - eval="[(6, 0, obj().search([ - ('type_tax_use', '=', 'sale'), - ('amount','=', 18), - ('tax_group_id', '=', obj().env.ref('l10n_in.gst_group').id), - ('company_id', '=', obj().env.company.id)], limit=1).ids)]"/> + <field name="partner_id" ref="l10n_in.res_partner_registered_customer"/> + <field name="invoice_user_id" ref="base.user_demo"/> + <field name="invoice_payment_term_id" ref="account.account_payment_term"/> + <field name="invoice_date" eval="(datetime.now() + relativedelta(months=1)).strftime('%Y-%m-01')"/> + <field name="invoice_line_ids" eval="[ + (0, 0, { + 'product_id': ref('product.consu_delivery_01'), + 'quantity': 3, + 'price_unit': 2000.0, + }), + ]"/> </record> - <function model="account.invoice" name="_onchange_invoice_line_ids"> - <value eval="[ref('demo_invoice_atadj')]"/> - </function> - - <function model="account.invoice" name="action_invoice_open"> - <value eval="[ref('demo_invoice_atadj')]"/> + <function model="account.move" name="post"> + <value eval="[ + ref('demo_invoice_b2b'), ref('demo_invoice_b2cs'), ref('demo_invoice_b2cl'), + ref('demo_invoice_exp'), ref('demo_invoice_nill'), ref('demo_invoice_cdnr'), + ref('demo_invoice_cdnur'), ref('demo_invoice_atadj')]"/> </function> <!-- Reconciled demo payment with demo invoice of atadj(Advance adjustments)--> - <function model="account.invoice" name="assign_outstanding_credit"> + <function model="account.move" name="js_assign_outstanding_line"> <value eval="[ref('demo_invoice_atadj')]"/> <value model="account.move.line" eval="obj().search([ ('credit', '>', 0), diff --git a/addons/l10n_in/models/account_invoice.py b/addons/l10n_in/models/account_invoice.py index 5b59933d0e9..69ff5cb7842 100644 --- a/addons/l10n_in/models/account_invoice.py +++ b/addons/l10n_in/models/account_invoice.py @@ -2,11 +2,10 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, _ -from odoo.exceptions import ValidationError -class AccountInvoice(models.Model): - _inherit = "account.invoice" +class AccountMove(models.Model): + _inherit = "account.move" @api.depends('amount_total') def _compute_amount_total_words(self): @@ -30,72 +29,20 @@ class AccountInvoice(models.Model): l10n_in_reseller_partner_id = fields.Many2one('res.partner', 'Reseller', domain=[('vat', '!=', False)], help="Only Registered Reseller", readonly=True, states={'draft': [('readonly', False)]}) l10n_in_partner_vat = fields.Char(related="partner_id.vat", readonly=True) - def _get_report_base_filename(self): - self.ensure_one() - if self.company_id.country_id.code != 'IN': - return super(AccountInvoice, self)._get_report_base_filename() - return self.type == 'out_invoice' and self.state == 'draft' and _('Draft %s') % (self.journal_id.name) or \ - self.type == 'out_invoice' and self.state in ('open','in_payment','paid') and '%s - %s' % (self.journal_id.name, self.number) or \ - self.type == 'out_refund' and self.state == 'draft' and _('Credit Note') or \ - self.type == 'out_refund' and _('Credit Note - %s') % (self.number) or \ - self.type == 'in_invoice' and self.state == 'draft' and _('Vendor Bill') or \ - self.type == 'in_invoice' and self.state in ('open','in_payment','paid') and _('Vendor Bill - %s') % (self.number) or \ - self.type == 'in_refund' and self.state == 'draft' and _('Vendor Credit Note') or \ - self.type == 'in_refund' and _('Vendor Credit Note - %s') % (self.number) - - @api.multi - def _invoice_line_tax_values(self): - self.ensure_one() - tax_datas = {} - TAX = self.env['account.tax'] - for line in self.mapped('invoice_line_ids'): - price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0) - tax_lines = line.invoice_line_tax_ids.compute_all(price_unit, line.invoice_id.currency_id, line.quantity, line.product_id, line.invoice_id.partner_id, self.type in ('in_refund', 'out_refund'))['taxes'] - for tax_line in tax_lines: - tax_line['tag_ids'] = TAX.browse(tax_line['id']).tag_ids.ids - tax_datas[line.id] = tax_lines - return tax_datas - - def inv_line_characteristic_hashcode(self, invoice_line): - res = super(AccountInvoice, self).inv_line_characteristic_hashcode(invoice_line) - return res + "-%s" %(invoice_line.get('product_uom_id', 'False')) - @api.model - def tax_line_move_line_get(self): - res = super(AccountInvoice, self).tax_line_move_line_get() - for vals in res: - invoice_tax_line = self.env['account.invoice.tax'].browse(vals.get('invoice_tax_line_id')) - vals['product_id'] = invoice_tax_line.l10n_in_product_id.id - vals['uom_id'] = invoice_tax_line.l10n_in_uom_id.id - vals['quantity'] = invoice_tax_line.l10n_in_quantity + def _get_tax_grouping_key_from_tax_line(self, tax_line): + # OVERRIDE to group taxes also by product. + res = super()._get_tax_grouping_key_from_tax_line(tax_line) + res['product_id'] = tax_line.product_id.id return res - def _prepare_tax_line_vals(self, line, tax): - vals = super(AccountInvoice, self)._prepare_tax_line_vals(line, tax) - vals['l10n_in_product_id'] = line.product_id.id - vals['l10n_in_uom_id'] = line.uom_id.id - vals['l10n_in_quantity'] = line.quantity - return vals - - @api.multi - def get_taxes_values(self, tax_group_fields=False): - if tax_group_fields: - tax_group_fields |= set(['l10n_in_quantity']) - else: - tax_group_fields = set(['l10n_in_quantity']) - return super(AccountInvoice, self).get_taxes_values(tax_group_fields) - - -class AccountInvoiceTax(models.Model): - _inherit = "account.invoice.tax" - - l10n_in_product_id = fields.Many2one('product.product', string='Product') - l10n_in_uom_id = fields.Many2one('uom.uom', string='Unit of Measure') - l10n_in_quantity = fields.Float(string='Quantity') - - @api.multi - def _prepare_invoice_tax_val(self): - res = super(AccountInvoiceTax, self)._prepare_invoice_tax_val() - res['l10n_in_product_id'] = self.l10n_in_product_id.id - res['l10n_in_uom_id'] = self.l10n_in_uom_id.id + @api.model + def _get_tax_grouping_key_from_base_line(self, base_line, tax_vals): + # OVERRIDE to group taxes also by product. + res = super()._get_tax_grouping_key_from_base_line(base_line, tax_vals) + res.update({ + 'product_id': base_line.product_id.id, + 'product_uom_id': base_line.product_uom_id.id, + 'quantity': base_line.quantity, + }) return res diff --git a/addons/l10n_in/report/account_invoice_report.py b/addons/l10n_in/report/account_invoice_report.py index 1ece7871cdc..ebbee57ab68 100644 --- a/addons/l10n_in/report/account_invoice_report.py +++ b/addons/l10n_in/report/account_invoice_report.py @@ -11,7 +11,7 @@ class L10nInAccountInvoiceReport(models.Model): _order = 'date desc' account_move_id = fields.Many2one('account.move', string="Account Move") - invoice_id = fields.Many2one('account.invoice', string="Invoice") + invoice_id = fields.Many2one('account.move', string="Invoice") company_id = fields.Many2one('res.company', string="Company") date = fields.Date(string="Accounting Date") name = fields.Char(string="Invoice Number") @@ -31,7 +31,7 @@ class L10nInAccountInvoiceReport(models.Model): cess_amount = fields.Float(string="Cess Amount") price_total = fields.Float(string='Total Without Tax') total = fields.Float(string="Invoice Total") - refund_invoice_id = fields.Many2one('account.invoice', string="Refund Invoice", help="From where this Refund is created") + reversed_entry_id = fields.Many2one('account.move', string="Refund Invoice", help="From where this Refund is created") shipping_bill_number = fields.Char(string="Shipping Bill Number") shipping_bill_date = fields.Date(string="Shipping Bill Date") shipping_port_code_id = fields.Many2one('l10n_in.port.code', string='Shipping port code') @@ -63,7 +63,7 @@ class L10nInAccountInvoiceReport(models.Model): def _select(self): select_str = """ SELECT min(sub.id) as id, - sub.invoice_id, + sub.move_id, sub.account_move_id, sub.name, sub.state, @@ -78,7 +78,7 @@ class L10nInAccountInvoiceReport(models.Model): sub.journal_id, sub.company_id, sub.invoice_type, - sub.refund_invoice_id, + sub.reversed_entry_id, sub.partner_vat, sub.ecommerce_vat, sub.tax_rate as tax_rate, @@ -111,7 +111,7 @@ class L10nInAccountInvoiceReport(models.Model): def _sub_select(self): sub_select_str = """ SELECT aml.id AS id, - aml.invoice_id, + aml.move_id, aml.partner_id, am.id AS account_move_id, am.name, @@ -122,11 +122,11 @@ class L10nInAccountInvoiceReport(models.Model): ai.l10n_in_shipping_bill_number AS shipping_bill_number, ai.l10n_in_shipping_bill_date AS shipping_bill_date, ai.l10n_in_shipping_port_code_id AS shipping_port_code_id, - am.amount AS total, + am.amount_total AS total, am.journal_id, aj.company_id, ai.type AS invoice_type, - ai.refund_invoice_id AS refund_invoice_id, + ai.reversed_entry_id AS reversed_entry_id, p.vat AS partner_vat, CASE WHEN rp.vat IS NULL THEN '' ELSE rp.vat END AS ecommerce_vat, (CASE WHEN at.l10n_in_reverse_charge = True @@ -249,8 +249,8 @@ class L10nInAccountInvoiceReport(models.Model): JOIN account_tax_report_line_tags_rel tag_rep_ln ON aat.id = tag_rep_ln.account_account_tag_id LEFT JOIN res_partner cp ON cp.id = c.partner_id LEFT JOIN res_country_state cps ON cps.id = cp.state_id - LEFT JOIN account_invoice ai ON ai.id = aml.invoice_id - LEFT JOIN account_invoice refund_ai ON refund_ai.id = ai.refund_invoice_id + LEFT JOIN account_move ai ON ai.id = aml.move_id + LEFT JOIN account_move refund_ai ON refund_ai.id = ai.reversed_entry_id LEFT JOIN res_partner p ON p.id = aml.partner_id LEFT JOIN res_country_state ps ON ps.id = p.state_id LEFT JOIN res_partner rp ON rp.id = ai.l10n_in_reseller_partner_id @@ -265,7 +265,7 @@ class L10nInAccountInvoiceReport(models.Model): def _group_by(self): group_by_str = """ - GROUP BY sub.invoice_id, + GROUP BY sub.move_id, sub.account_move_id, sub.name, sub.state, @@ -280,7 +280,7 @@ class L10nInAccountInvoiceReport(models.Model): sub.journal_id, sub.company_id, sub.invoice_type, - sub.refund_invoice_id, + sub.reversed_entry_id, sub.partner_vat, sub.ecommerce_vat, sub.place_of_supply, diff --git a/addons/l10n_in/report/account_payment_report.py b/addons/l10n_in/report/account_payment_report.py index 9e4c673a389..266d8f39c43 100644 --- a/addons/l10n_in/report/account_payment_report.py +++ b/addons/l10n_in/report/account_payment_report.py @@ -64,7 +64,7 @@ class L10nInPaymentReport(models.AbstractModel): tax.id as l10n_in_tax_id, tax.amount AS tax_rate, am.partner_id, - am.amount AS payment_amount, + am.amount_total AS payment_amount, ap.journal_id, aml.currency_id, (CASE WHEN ps.l10n_in_tin IS NOT NULL @@ -143,7 +143,7 @@ class AdvancesPaymentReport(models.Model): WHERE (apr.credit_move_id = aml.id OR apr.debit_move_id = aml.id) AND (to_char(apr.max_date, 'MM-YYYY') = to_char(aml.date_maturity, 'MM-YYYY')) ) AS reconcile_amount, - (am.amount - (SELECT (CASE WHEN SUM(amount) IS NULL THEN 0 ELSE SUM(amount) END) FROM account_partial_reconcile AS apr + (am.amount_total - (SELECT (CASE WHEN SUM(amount) IS NULL THEN 0 ELSE SUM(amount) END) FROM account_partial_reconcile AS apr WHERE (apr.credit_move_id = aml.id OR apr.debit_move_id = aml.id) AND (to_char(apr.max_date, 'MM-YYYY') = to_char(aml.date_maturity, 'MM-YYYY')) )) AS amount""" diff --git a/addons/l10n_in/report/hsn_gst_report.py b/addons/l10n_in/report/hsn_gst_report.py index 5fd5bbeda23..0fb4a844a74 100644 --- a/addons/l10n_in/report/hsn_gst_report.py +++ b/addons/l10n_in/report/hsn_gst_report.py @@ -93,8 +93,8 @@ class L10nInProductHsnReport(models.Model): LEFT JOIN account_tax_report_line_tags_rel tag_rep_ln ON aat.id = tag_rep_ln.account_account_tag_id LEFT JOIN account_move_line_account_tax_rel mt ON mt.account_move_line_id = aml.id LEFT JOIN uom_uom uom ON uom.id = aml.product_uom_id - LEFT JOIN account_invoice ai ON ai.id = aml.invoice_id - WHERE aa.internal_type = 'other' AND (aml.tax_line_id IS NOT NULL OR mt.account_tax_id IS NULL) AND (ai.type IS NULL OR ai.type not in ('out_refund', 'in_refund')) + LEFT JOIN account_move ai ON ai.id = aml.move_id + WHERE aa.internal_type = 'other' AND (aml.tax_line_id IS NOT NULL OR mt.account_tax_id IS NULL) AND (ai.type IS NULL OR ai.type in ('in_invoice', 'out_invoice')) """ return from_str diff --git a/addons/l10n_in/views/account_invoice_views.xml b/addons/l10n_in/views/account_invoice_views.xml index 27ebdf6daf8..41549a72267 100644 --- a/addons/l10n_in/views/account_invoice_views.xml +++ b/addons/l10n_in/views/account_invoice_views.xml @@ -1,24 +1,28 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <record id="invoice_form_inherit_l10n_in" model="ir.ui.view"> - <field name="name">account.invoice.form.inherit.l10n.in</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="name">account.move.form.inherit.l10n.in</field> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> - <xpath expr="//field[@name='move_id']" position="after"> - <field name="l10n_in_import_export" invisible="1"/> - <field name="l10n_in_export_type" attrs="{'invisible': [('l10n_in_import_export', '!=', True)]}"/> - <field name="l10n_in_shipping_bill_number" attrs="{'invisible': [('l10n_in_import_export', '!=', True)]}"/> - <field name="l10n_in_shipping_bill_date" attrs="{'invisible': [('l10n_in_import_export', '!=', True)]}"/> - <field name="l10n_in_shipping_port_code_id" attrs="{'invisible': [('l10n_in_import_export', '!=', True)]}"/> + <xpath expr="//page[@id='other_tab']/group[@id='other_tab_group']/group[@name='payments_info_group']" position="after"> + <group string="Import/Export India"> + <field name="l10n_in_import_export" invisible="1"/> + <field name="l10n_in_export_type" + attrs="{'invisible': [('l10n_in_import_export', '!=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}"/> + <field name="l10n_in_shipping_bill_number" + attrs="{'invisible': [('l10n_in_import_export', '!=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}"/> + <field name="l10n_in_shipping_bill_date" + attrs="{'invisible': [('l10n_in_import_export', '!=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}"/> + <field name="l10n_in_shipping_port_code_id" + attrs="{'invisible': [('l10n_in_import_export', '!=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}"/> + </group> </xpath> <xpath expr="//field[@name='partner_id']" position="after"> - <field name="l10n_in_reseller_partner_id" groups="l10n_in.group_l10n_in_reseller"/> - </xpath> - <xpath expr="//field[@name='tax_line_ids']/tree/field[@name='tax_id']" position="after"> - <field name="l10n_in_product_id" invisible="1"/> - <field name="l10n_in_uom_id" invisible="1"/> - <field name="l10n_in_quantity" invisible="1"/> + <field name="l10n_in_reseller_partner_id" + groups="l10n_in.group_l10n_in_reseller" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund'))]}" + /> </xpath> </field> </record> diff --git a/addons/l10n_in/views/account_journal_views.xml b/addons/l10n_in/views/account_journal_views.xml index ce16123848e..bffca6df4a5 100644 --- a/addons/l10n_in/views/account_journal_views.xml +++ b/addons/l10n_in/views/account_journal_views.xml @@ -5,7 +5,7 @@ <field name="model">account.journal</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> - <xpath expr="//field[@name='group_invoice_lines']" position="after"> + <xpath expr="//field[@name='loss_account_id']" position="after"> <field name="l10n_in_import_export" attrs="{'invisible': [('type', 'not in', ['sale', 'purchase'])]}"/> </xpath> </field> diff --git a/addons/l10n_in/views/report_invoice.xml b/addons/l10n_in/views/report_invoice.xml index 52bd759dafc..029e3bd726d 100644 --- a/addons/l10n_in/views/report_invoice.xml +++ b/addons/l10n_in/views/report_invoice.xml @@ -9,15 +9,15 @@ <t t-set="tag_sgst_id" t-value="env.ref('l10n_in.sgst_tag_tax').id"/> <t t-set="tag_igst_id" t-value="env.ref('l10n_in.igst_tag_tax').id"/> <t t-set="tag_cess_id" t-value="env.ref('l10n_in.cess_tag_tax').id"/> - <t t-set="tax_map" t-value="o.tax_line_ids.mapped('tax_id.tag_ids.id')"/> + <t t-set="tax_map" t-value="o.invoice_line_ids.mapped('tax_ids.tag_ids.id')"/> <t t-set="is_igst" t-value="tag_igst_id in tax_map"/> <t t-set="is_cgst" t-value="tag_cgst_id in tax_map"/> <t t-set="is_cess" t-value="tag_cess_id in tax_map"/> - <t t-set="tax_datas" t-value="o._invoice_line_tax_values()"/> + <t t-set="tax_datas" t-value="o.line_ids.filtered('tax_line_id')"/> </t> </xpath> - <xpath expr="//p[@t-if='o.comment']" position="before"> + <xpath expr="//p[@t-if='o.narration']" position="before"> <t t-if="o.company_id.country_id.code == 'IN'"> <p id="total_in_words" class="mb16"> <strong>Total (In Words): </strong> @@ -82,7 +82,7 @@ <span t-if="o.type == 'out_refund'">Credit Note</span> <span t-if="o.type == 'in_refund'">Vendor Credit Note</span> <span t-if="o.type == 'in_invoice'">Vendor Bill</span> - <span t-field="o.number"/> + <span t-field="o.name"/> </h2> </xpath> diff --git a/addons/l10n_it_edi/data/invoice_it_template.xml b/addons/l10n_it_edi/data/invoice_it_template.xml index c3af915c58c..a56df3aa7b2 100644 --- a/addons/l10n_it_edi/data/invoice_it_template.xml +++ b/addons/l10n_it_edi/data/invoice_it_template.xml @@ -2,7 +2,7 @@ <odoo> <data> <template id="account_invoice_line_it_FatturaPA"> - <t t-set="taxes" t-value="line.invoice_line_tax_ids.compute_all(line.price_unit)"/> + <t t-set="taxes" t-value="line.tax_ids.compute_all(line.price_unit)"/> <DettaglioLinee> <NumeroLinea t-esc="line_counter"/> <CodiceArticolo t-if="line.product_id.barcode"> @@ -19,7 +19,7 @@ <t t-if="not line.name" t-esc="'NO NAME'"/> </Descrizione> <Quantita t-esc="format_numbers(line.quantity)"/> - <UnitaMisura t-if="line.uom_id.category_id.measure_type != 'unit'" t-esc="line.uom_id.name"/> + <UnitaMisura t-if="line.product_uom_id.category_id.measure_type != 'unit'" t-esc="line.product_uom_id.name"/> <PrezzoUnitario t-esc="format_monetary(taxes['total_excluded'], currency)"/> <ScontoMaggiorazione t-if="line.discount != 0"> <!-- [2.2.1.10] --> @@ -28,9 +28,9 @@ </ScontoMaggiorazione> <PrezzoTotale t-esc="format_monetary(line.price_subtotal, currency)"/> <!-- without tax, must include any discounts and any extra charge--> - <AliquotaIVA t-if="line.invoice_line_tax_ids.amount_type == 'percent'" t-esc="format_numbers(line.invoice_line_tax_ids.amount)"/> - <AliquotaIVA t-if="line.invoice_line_tax_ids.amount_type != 'percent'" t-esc="'0.00'"/> - <Natura t-if="line.invoice_line_tax_ids.l10n_it_has_exoneration" t-esc="line.invoice_line_tax_ids.l10n_it_kind_exoneration"/> + <AliquotaIVA t-if="line.tax_ids.amount_type == 'percent'" t-esc="format_numbers(line.tax_ids.amount)"/> + <AliquotaIVA t-if="line.tax_ids.amount_type != 'percent'" t-esc="'0.00'"/> + <Natura t-if="line.tax_ids.l10n_it_has_exoneration" t-esc="line.tax_ids.l10n_it_kind_exoneration"/> </DettaglioLinee> </template> @@ -46,7 +46,7 @@ <template id="account_invoice_it_FatturaPA_export"> <t t-set="currency" t-value="record.currency_id or record.company_currency_id"/> - <t t-set="bank" t-value="record.partner_bank_id"/> + <t t-set="bank" t-value="record.invoice_partner_bank_id"/> <p:FatturaElettronica t-att-versione="formato_trasmissione" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd"> <FatturaElettronicaHeader> <DatiTrasmissione> @@ -54,7 +54,7 @@ <IdPaese t-esc="get_vat_country(record.company_id.vat)"/> <IdCodice t-esc="record.company_id.l10n_it_codice_fiscale"/> </IdTrasmittente> - <ProgressivoInvio t-esc="record.number.replace('/','')[-10:]"/> + <ProgressivoInvio t-esc="record.name.replace('/','')[-10:]"/> <FormatoTrasmissione t-esc="formato_trasmissione"/> <CodiceDestinatario t-if="record.commercial_partner_id.l10n_it_pa_index and record.commercial_partner_id.country_id.code == 'IT'" t-esc="record.commercial_partner_id.l10n_it_pa_index.upper()"/> <CodiceDestinatario t-if="not record.commercial_partner_id.l10n_it_pa_index and record.commercial_partner_id.country_id.code == 'IT'" t-esc="'0000000'"/> @@ -129,8 +129,8 @@ <!--2.1.1--> <TipoDocumento t-esc="document_type"/> <Divisa t-esc="currency.name"/> - <Data t-esc="format_date(record.date_invoice)"/> - <Numero t-esc="record.number[-20:]"/> + <Data t-esc="format_date(record.invoice_date)"/> + <Numero t-esc="record.name[-20:]"/> <DatiBollo t-if="record.l10n_it_stamp_duty"> <!--2.1.1.6--> <BolloVirtuale>SI</BolloVirtuale> @@ -150,15 +150,15 @@ <t t-set="line_counter" t-value="line_counter + 1"/> <t t-call="l10n_it_edi.account_invoice_line_it_FatturaPA"/> </t> - <t t-foreach="record.tax_line_ids" t-as="tax_line"> + <t t-foreach="record.line_ids.filtered(lambda line: line.tax_line_id)" t-as="tax_line"> <DatiRiepilogo> <!--2.2.2--> - <AliquotaIVA t-esc="format_numbers(tax_line.tax_id.amount)"/> - <Natura t-if="tax_line.tax_id.l10n_it_has_exoneration" t-esc="tax_line.tax_id.l10n_it_kind_exoneration"/> - <ImponibileImporto t-esc="format_monetary(tax_line.base, currency)"/> - <Imposta t-esc="format_monetary(tax_line.amount, currency)"/> - <EsigibilitaIVA t-if="not tax_line.tax_id.l10n_it_has_exoneration or tax_line.tax_id.l10n_it_kind_exoneration=='N6'" t-esc="tax_line.tax_id.l10n_it_vat_due_date"/> - <RiferimentoNormativo t-if="tax_line.tax_id.l10n_it_has_exoneration" t-esc="tax_line.tax_id.l10n_it_law_reference"/> + <AliquotaIVA t-esc="format_numbers(tax_line.tax_line_id.amount)"/> + <Natura t-if="tax_line.tax_line_id.l10n_it_has_exoneration" t-esc="tax_line.tax_line_id.l10n_it_kind_exoneration"/> + <ImponibileImporto t-esc="format_monetary(tax_line.tax_base_amount, currency)"/> + <Imposta t-esc="format_monetary(tax_line.price_unit, currency)"/> + <EsigibilitaIVA t-if="not tax_line.tax_line_id.l10n_it_has_exoneration or tax_line.tax_line_id.l10n_it_kind_exoneration=='N6'" t-esc="tax_line.tax_line_id.l10n_it_vat_due_date"/> + <RiferimentoNormativo t-if="tax_line.tax_line_id.l10n_it_has_exoneration" t-esc="tax_line.tax_line_id.l10n_it_law_reference"/> </DatiRiepilogo> </t> diff --git a/addons/l10n_it_edi/models/account_invoice.py b/addons/l10n_it_edi/models/account_invoice.py index 7ec425fe5bb..649b2d2c683 100644 --- a/addons/l10n_it_edi/models/account_invoice.py +++ b/addons/l10n_it_edi/models/account_invoice.py @@ -21,9 +21,9 @@ _logger = logging.getLogger(__name__) DEFAULT_FACTUR_ITALIAN_DATE_FORMAT = '%Y-%m-%d' -class AccountInvoice(models.Model): - _inherit = 'account.invoice' - _name = 'account.invoice' + +class AccountMove(models.Model): + _inherit = 'account.move' l10n_it_send_state = fields.Selection([ ('new', 'New'), @@ -48,31 +48,31 @@ class AccountInvoice(models.Model): l10n_it_einvoice_id = fields.Many2one('ir.attachment', string="Electronic invoice", copy=False) @api.multi - def invoice_validate(self): - # Clean context from default_type to avoid making attachment - # with wrong values in subsequent operations - cleaned_ctx = dict(self.env.context) - cleaned_ctx.pop('default_type', None) - self = self.with_context(cleaned_ctx) - - super(AccountInvoice, self).invoice_validate() - for invoice in self: - if invoice.company_id.country_id != self.env.ref('base.it'): - continue - if invoice.type == 'in_invoice' or invoice.type == 'in_refund': - invoice.l10n_it_send_state = "other" - continue + def post(self): + # OVERRIDE + super(AccountMove, self).post() - invoice._check_before_xml_exporting() + # Retrieve invoices to generate the xml. + invoices_to_export = self.filtered(lambda move: move.company_id.country_id == self.env.ref('base.it') and move.is_sale_document()) + invoices_to_export.write({'l10n_it_send_state': 'other'}) + invoices_to_send = self.env['account.move'] + invoices_other = self.env['account.move'] + for invoice in invoices_to_export: + invoice._check_before_xml_exporting() invoice.invoice_generate_xml() if len(invoice.commercial_partner_id.l10n_it_pa_index or '') == 6: invoice.message_post( body=(_("Invoices for PA are not managed by Odoo, you can download the document and send it on your own.")) ) - invoice.l10n_it_send_state = "other" - continue - invoice.l10n_it_send_state = "to_send" + invoices_other += invoice + else: + invoices_to_send += invoice + + invoices_other.write({'l10n_it_send_state': 'other'}) + invoices_to_send.write({'l10n_it_send_state': 'to_send'}) + + for invoice in invoices_to_send: invoice.send_pec_mail() def _check_before_xml_exporting(self): @@ -127,11 +127,11 @@ class AccountInvoice(models.Model): # <2.2.1> for invoice_line in self.invoice_line_ids: - if len(invoice_line.invoice_line_tax_ids) != 1: + if len(invoice_line.tax_ids) != 1: raise UserError(_("You must select one and only one tax by line.")) - for tax_line in self.tax_line_ids: - if not tax_line.tax_id.l10n_it_has_exoneration and tax_line.tax_id.amount == 0: + for tax_line in self.line_ids.filtered(lambda line: line.tax_line_id): + if not tax_line.tax_line_id.l10n_it_has_exoneration and tax_line.tax_line_id.amount == 0: raise ValidationError(_("%s has an amount of 0.0, you must indicate the kind of exoneration." % tax_line.name)) @api.multi @@ -231,7 +231,7 @@ class AccountInvoice(models.Model): pdf = self.env.ref('account.account_invoices').render_qweb_pdf(self.id)[0] pdf = base64.b64encode(pdf) - pdf_name = re.sub(r'\W+', '', self.number) + '.pdf' + pdf_name = re.sub(r'\W+', '', self.name) + '.pdf' # Create file content. template_values = { @@ -304,23 +304,23 @@ class AccountInvoice(models.Model): tree = etree.fromstring(content) except: _logger.info('Error during decoding XML file') - return self.env['account.invoice'] + return self.env['account.move'] - invoices = self.env['account.invoice'] + invoices = self.env['account.move'] # possible to have multiple invoices in the case of an invoice batch, the batch itself is repeated for every invoice of the batch for body_tree in tree.xpath('//FatturaElettronicaBody', namespaces=tree.nsmap): elements = tree.xpath('//DatiGeneraliDocumento/TipoDocumento', namespaces=tree.nsmap) if elements and elements[0].text and elements[0].text == 'TD01': - self_ctx = self.with_context(type='in_invoice') + self_ctx = self.with_context(default_type='in_invoice') elif elements and elements[0].text and elements[0].text == 'TD04': - self_ctx = self.with_context(type='in_refund') + self_ctx = self.with_context(default_type='in_refund') else: _logger.info(_('Document type not managed: %s.') % (elements[0].text)) - # type must be present in the context to get the right behavior of the _default_journal method (account.invoice). - # journal_id must be present in the context to get the right behavior of the _default_account method (account.invoice.line). + # type must be present in the context to get the right behavior of the _default_journal method (account.move). + # journal_id must be present in the context to get the right behavior of the _default_account method (account.move.line). elements = tree.xpath('//CessionarioCommittente//IdCodice', namespaces=tree.nsmap) company = elements and self.env['res.company'].search([('vat', 'ilike', elements[0].text)], limit=1) @@ -341,28 +341,22 @@ class AccountInvoice(models.Model): if self.env.company != company: raise UserError(_("You can only import invoice concern your current company: %s") % self.env.company.display_name) - journal_id = self_ctx._default_journal().id - self_ctx = self_ctx.with_context(journal_id=journal_id) - + # Refund type. + # TD01 == invoice + # TD02 == advance/down payment on invoice + # TD03 == advance/down payment on fee + # TD04 == credit note + # TD05 == debit note + # TD06 == fee + elements = tree.xpath('//DatiGeneraliDocumento/TipoDocumento', namespaces=tree.nsmap) + if elements and elements[0].text and elements[0].text == 'TD01': + type = 'in_invoice' + elif elements and elements[0].text and elements[0].text == 'TD04': + type = 'in_refund' # self could be a single record (editing) or be empty (new). - with Form(self_ctx, view='account.invoice_supplier_form') as invoice_form: + with Form(self.env['account.move'].with_context(default_type=type)) as invoice_form: message_to_log = [] - invoice_form.company_id = company - - # Refund type. - # TD01 == invoice - # TD02 == advance/down payment on invoice - # TD03 == advance/down payment on fee - # TD04 == credit note - # TD05 == debit note - # TD06 == fee - elements = tree.xpath('//DatiGeneraliDocumento/TipoDocumento', namespaces=tree.nsmap) - if elements and elements[0].text and elements[0].text == 'TD01': - invoice_form.type = 'in_invoice' - elif elements and elements[0].text and elements[0].text == 'TD04': - invoice_form.type = 'in_refund' - # Partner (first step to avoid warning 'Warning! You must first select a partner.'). <1.2> elements = tree.xpath('//CedentePrestatore//IdCodice', namespaces=tree.nsmap) partner = elements and self.env['res.partner'].search(['&', ('vat', 'ilike', elements[0].text), '|', ('company_id', '=', company.id), ('company_id', '=', False)], limit=1) @@ -383,11 +377,11 @@ class AccountInvoice(models.Model): # Numbering attributed by the transmitter. <1.1.2> elements = tree.xpath('//ProgressivoInvio', namespaces=tree.nsmap) if elements: - invoice_form.name = elements[0].text + invoice_form.invoice_payment_ref = elements[0].text elements = body_tree.xpath('.//DatiGeneraliDocumento//Numero', namespaces=body_tree.nsmap) if elements: - invoice_form.reference = elements[0].text + invoice_form.ref = elements[0].text # Currency. <2.1.1.2> elements = body_tree.xpath('.//DatiGeneraliDocumento/Divisa', namespaces=body_tree.nsmap) @@ -402,7 +396,7 @@ class AccountInvoice(models.Model): if elements: date_str = elements[0].text date_obj = datetime.strptime(date_str, DEFAULT_FACTUR_ITALIAN_DATE_FORMAT) - invoice_form.date_invoice = date_obj.strftime(DEFAULT_FACTUR_ITALIAN_DATE_FORMAT) + invoice_form.invoice_date = date_obj.strftime(DEFAULT_FACTUR_ITALIAN_DATE_FORMAT) # Dati Bollo. <2.1.1.6> elements = body_tree.xpath('.//DatiGeneraliDocumento/DatiBollo/ImportoBollo', namespaces=body_tree.nsmap) @@ -443,7 +437,7 @@ class AccountInvoice(models.Model): # Comment. <2.1.1.11> elements = body_tree.xpath('.//DatiGeneraliDocumento//Causale', namespaces=body_tree.nsmap) for element in elements: - invoice_form.comment = '%s%s\n' % (invoice_form.comment or '', element.text) + invoice_form.narration = '%s%s\n' % (invoice_form.narration or '', element.text) # Informations relative to the purchase order, the contract, the agreement, # the reception phase or invoices previously transmitted @@ -467,7 +461,7 @@ class AccountInvoice(models.Model): if elements: date_str = elements[0].text date_obj = datetime.strptime(date_str, DEFAULT_FACTUR_ITALIAN_DATE_FORMAT) - invoice_form.date_due = fields.Date.to_string(date_obj) + invoice_form.invoice_date_due = fields.Date.to_string(date_obj) # Total amount. <2.4.2.6> elements = body_tree.xpath('.//ImportoPagamento', namespaces=body_tree.nsmap) @@ -489,7 +483,7 @@ class AccountInvoice(models.Model): else: bank = self.env['res.partner.bank'].search([('acc_number', '=', elements[0].text)]) if bank: - invoice_form.partner_bank_id = bank + invoice_form.invoice_partner_bank_id = bank else: message_to_log.append("%s<br/>%s" % ( _("Bank account not found, useful informations from XML file:"), @@ -562,7 +556,7 @@ class AccountInvoice(models.Model): # Taxes tax_element = element.xpath('.//AliquotaIVA', namespaces=body_tree.nsmap) natura_element = element.xpath('.//Natura', namespaces=body_tree.nsmap) - invoice_line_form.invoice_line_tax_ids.clear() + invoice_line_form.tax_ids.clear() if tax_element and tax_element[0].text: percentage = float(tax_element[0].text) if natura_element and natura_element[0].text: @@ -584,7 +578,7 @@ class AccountInvoice(models.Model): l10n_it_kind_exoneration = '' if tax: - invoice_line_form.invoice_line_tax_ids.add(tax) + invoice_line_form.tax_ids.add(tax) else: if l10n_it_kind_exoneration: message_to_log.append(_("Tax not found with percentage: %s and exoneration %s for the article: %s") % ( @@ -635,7 +629,7 @@ class AccountInvoice(models.Model): discount["name"] = _('EXTRA CHARGE: ') + invoice_line_form.name discount["amount"] = total_discount_amount discount["tax"] = [] - for tax in invoice_line_form.invoice_line_tax_ids: + for tax in invoice_line_form.tax_ids: discount["tax"].append(tax) discount_list.append(discount) invoice_line_form.discount = (1 - total_discount_percentage) * 100 @@ -643,7 +637,7 @@ class AccountInvoice(models.Model): # Apply amount discount. for discount in discount_list: with invoice_form.invoice_line_ids.new() as invoice_line_form_discount: - invoice_line_form_discount.invoice_line_tax_ids.clear() + invoice_line_form_discount.tax_ids.clear() invoice_line_form_discount.sequence = discount["seq"] invoice_line_form_discount.name = discount["name"] invoice_line_form_discount.price_unit = discount["amount"] @@ -673,7 +667,7 @@ class AccountInvoice(models.Model): if attachment: new_invoice.l10n_it_einvoice_name = attachment.name - attachment.write({'res_model': 'account.invoice', 'res_id': new_invoice.id}) + attachment.write({'res_model': 'account.move', 'res_id': new_invoice.id}) new_invoice.message_post(attachment_ids=[attachment.id]) invoices += new_invoice return invoices @@ -747,11 +741,11 @@ class ImportInvoiceImportWizard(models.TransientModel): @api.multi def _create_invoice_from_file(self, attachment): if attachment.mimetype == 'application/xml' and re.search("([A-Z]{2}[A-Za-z0-9]{2,28}_[A-Za-z0-9]{0,5}.(xml.p7m|xml))", attachment.name): - if self.env['account.invoice'].search([('l10n_it_einvoice_name', '=', attachment.name)], limit=1): + if self.env['account.move'].search([('l10n_it_einvoice_name', '=', attachment.name)], limit=1): # invoice already exist raise UserError(_('E-invoice already exist: %s') % attachment.name) self = self.with_context(default_journal_id= self.journal_id.id) - invoice = self.env['account.invoice']._import_xml_invoice(base64.decodestring(attachment.datas), attachment) + invoice = self.env['account.move']._import_xml_invoice(base64.decodestring(attachment.datas), attachment) else: invoice = super(ImportInvoiceImportWizard, self)._create_invoice_from_file(attachment) return invoice diff --git a/addons/l10n_it_edi/models/ddt.py b/addons/l10n_it_edi/models/ddt.py index 61464a7d76a..92d858f222e 100644 --- a/addons/l10n_it_edi/models/ddt.py +++ b/addons/l10n_it_edi/models/ddt.py @@ -7,9 +7,7 @@ class L10nItDdt(models.Model): _name = 'l10n_it.ddt' _description = 'Transport Document' - invoice_id = fields.One2many('account.invoice', 'l10n_it_ddt_id', string='Invoice Reference', - ondelete='cascade') - + invoice_id = fields.One2many('account.move', 'l10n_it_ddt_id', string='Invoice Reference', ondelete='cascade') name = fields.Char(string="Numero DDT", size=20, help="Transport document number", required=True) date = fields.Date(string="Data DDT", help="Transport document date", required=True) diff --git a/addons/l10n_it_edi/models/ir_mail_server.py b/addons/l10n_it_edi/models/ir_mail_server.py index 3b16d7a3076..ec2a96b93e4 100644 --- a/addons/l10n_it_edi/models/ir_mail_server.py +++ b/addons/l10n_it_edi/models/ir_mail_server.py @@ -127,7 +127,7 @@ class FetchmailServer(models.Model): self._create_invoice_from_mail_with_zip(attachment, from_address) def _create_invoice_from_mail(self, att_content, att_name, from_address): - if self.env['account.invoice'].search([('l10n_it_einvoice_name', '=', att_name)], limit=1): + if self.env['account.move'].search([('l10n_it_einvoice_name', '=', att_name)], limit=1): # invoice already exist _logger.info('E-invoice already exist: %s', att_name) return @@ -138,7 +138,7 @@ class FetchmailServer(models.Model): 'type': 'binary', }) - invoice = self.env['account.invoice']._import_xml_invoice(att_content, invoice_attachment) + invoice = self.env['account.move']._import_xml_invoice(att_content, invoice_attachment) invoice.l10n_it_send_state = "new" invoice.source_email = from_address self._cr.commit() @@ -149,7 +149,7 @@ class FetchmailServer(models.Model): def _create_invoice_from_mail_with_zip(self, attachment_zip, from_address): with zipfile.ZipFile(io.BytesIO(attachment_zip.content)) as z: for att_name in z.namelist(): - if self.env['account.invoice'].search([('l10n_it_einvoice_name', '=', att_name)], limit=1): + if self.env['account.move'].search([('l10n_it_einvoice_name', '=', att_name)], limit=1): # invoice already exist _logger.info('E-invoice in zip file (%s) already exist: %s', attachment_zip.fname, att_name) continue @@ -181,7 +181,7 @@ class FetchmailServer(models.Model): else: return - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename)]) if not related_invoice: _logger.info('Error: invoice not found for receipt file: %s', filename) @@ -211,7 +211,7 @@ class FetchmailServer(models.Model): # Delivery receipt # This is the receipt sent by the ES to the transmitting subject to communicate # delivery of the file to the addressee - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename), ('l10n_it_send_state', '=', 'sent')]) if not related_invoice: @@ -227,7 +227,7 @@ class FetchmailServer(models.Model): # Rejection notice # This is the receipt sent by the ES to the transmitting subject if one or more of # the checks carried out by the ES on the file received do not have a successful result. - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename), ('l10n_it_send_state', '=', 'sent')]) if not related_invoice: @@ -240,7 +240,7 @@ class FetchmailServer(models.Model): ) activity_vals = { 'activity_type_id': self.env.ref('mail.mail_activity_data_todo').id, - 'user_id': related_invoice.user_id.id if related_invoice.user_id else self.env.user.id + 'invoice_user_id': related_invoice.invoice_user_id.id if related_invoice.invoice_user_id else self.env.user.id } related_invoice.activity_schedule(summary='Rejection notice', **activity_vals) @@ -248,7 +248,7 @@ class FetchmailServer(models.Model): # Failed delivery notice # This is the receipt sent by the ES to the transmitting subject if the file is not # delivered to the addressee. - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename), ('l10n_it_send_state', '=', 'sent')]) if not related_invoice: @@ -273,7 +273,7 @@ class FetchmailServer(models.Model): # This is the receipt sent by the ES to the invoice sender to communicate the result # (acceptance or refusal of the invoice) of the checks carried out on the document by # the addressee. - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename), ('l10n_it_send_state', '=', 'delivered')]) if not related_invoice: @@ -300,7 +300,7 @@ class FetchmailServer(models.Model): if related_invoice.l10n_it_send_state == 'delivered_refused': activity_vals = { 'activity_type_id': self.env.ref('mail.mail_activity_data_todo').id, - 'user_id': related_invoice.user_id.id if related_invoice.user_id else self.env.user.id + 'invoice_user_id': related_invoice.invoice_user_id.id if related_invoice.invoice_user_id else self.env.user.id } related_invoice.activity_schedule(summary='Outcome notice: Refused', **activity_vals) @@ -316,7 +316,7 @@ class FetchmailServer(models.Model): # This is the receipt sent by the ES to both the invoice sender and the invoice # addressee to communicate the expiry of the maximum term for communication of # acceptance/refusal. - related_invoice = self.env['account.invoice'].search([ + related_invoice = self.env['account.move'].search([ ('l10n_it_einvoice_name', '=', filename), ('l10n_it_send_state', '=', 'delivered')]) if not related_invoice: _logger.info('Error: invoice not found for receipt file: %s', attachment.fname) diff --git a/addons/l10n_it_edi/tests/test_generate.py b/addons/l10n_it_edi/tests/test_generate.py index 60592ade8c7..e0518666c09 100644 --- a/addons/l10n_it_edi/tests/test_generate.py +++ b/addons/l10n_it_edi/tests/test_generate.py @@ -6,7 +6,7 @@ from odoo.tests.common import TransactionCase, Form class TestItalianElectronicInvoice(TransactionCase): def test_state(self): - f = Form(self.env['account.invoice']) + f = Form(self.env['account.move']) f.partner_id = self.env.ref('base.res_partner_12') with f.invoice_line_ids.new() as l: l.product_id = self.env.ref('product.product_product_3') @@ -15,18 +15,10 @@ class TestItalianElectronicInvoice(TransactionCase): # I check that Initially customer invoice state is "Draft" self.assertEqual(invoice.state, 'draft') - # I called the "Confirm Draft Invoices" wizard - w = Form(self.env['account.invoice.confirm']).save() - # I clicked on Confirm Invoices Button - w.with_context( - active_model='account.invoice', - active_id=invoice.id, - active_ids=invoice.ids, - type='out_invoice', - ).invoice_confirm() + invoice.post() # I check that customer invoice state is "Open" - self.assertEqual(invoice.state, 'open') + self.assertEqual(invoice.state, 'posted') # Electronic invoice must be present and have the same name as l10n_it_einvoice_name self.assertEqual(invoice.l10n_it_einvoice_id.name, invoice.l10n_it_einvoice_name) diff --git a/addons/l10n_it_edi/views/l10n_it_view.xml b/addons/l10n_it_edi/views/l10n_it_view.xml index 504d444af3e..ada99ce24a4 100644 --- a/addons/l10n_it_edi/views/l10n_it_view.xml +++ b/addons/l10n_it_edi/views/l10n_it_view.xml @@ -106,12 +106,12 @@ <record id="invoice_supplier_tree_l10n_it" model="ir.ui.view"> <field name="name">account.invoice.supplier.tree.l10n.it</field> - <field name="model">account.invoice</field> + <field name="model">account.move</field> <field name="priority">20</field> - <field name="inherit_id" ref="account.invoice_tree"/> + <field name="inherit_id" ref="account.view_move_tree"/> <field name="arch" type="xml"> <data> - <xpath expr="//field[@name='type']" position="after"> + <xpath expr="//field[@name='currency_id']" position="after"> <field name="l10n_it_send_state" invisible="1" widget="label_selection" options="{'classes': {'to_send': 'default', 'invalid': 'danger', 'sent': 'warning', 'delivered': 'success', 'delivered_accepted': 'success', 'delivered_refused': 'success', 'delivered_expired': 'success', 'failed_delivery': 'success'}}"/> @@ -125,9 +125,9 @@ <record id="invoice_kanban_l10n_it" model="ir.ui.view"> <field name="name">account.invoice.kanban.l10n.it</field> - <field name="model">account.invoice</field> + <field name="model">account.move</field> <field name="priority">20</field> - <field name="inherit_id" ref="account.invoice_kanban"/> + <field name="inherit_id" ref="account.view_account_move_kanban"/> <field name="arch" type="xml"> <data> <xpath expr="//field[@name='currency_id']" position="after"> @@ -145,58 +145,39 @@ </record> <record id="account_invoice_form_l10n_it" model="ir.ui.view"> - <field name="name">account.invoice.form.l10n.it</field> - <field name="model">account.invoice</field> + <field name="name">account.move.form.l10n.it</field> + <field name="model">account.move</field> <field name="priority">20</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <data> <xpath expr="//button[@name='preview_invoice']" position="after"> - <button name="invoice_validate" type="object" icon="fa-envelope-o" attrs="{'invisible': [('l10n_it_send_state', '!=', 'invalid')]}" class="btn btn-primary" string="Resend"/> - <button name="invoice_validate" type="object" icon="fa-envelope-o" attrs="{'invisible': ['|',('state', 'in', ['draft', 'cancel']),('l10n_it_send_state', 'not in', ['to_send', False])]}" class="btn btn-primary" string="Send"/> + <button name="post" type="object" icon="fa-envelope-o" class="btn btn-primary" string="Resend" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'out_refund')), ('l10n_it_send_state', '!=', 'invalid')]}"/> + <button name="post" type="object" icon="fa-envelope-o" class="btn btn-primary" string="Send" + attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund')), ('state', 'in', ['draft', 'cancel']),('l10n_it_send_state', 'not in', ['to_send', False])]}"/> </xpath> <xpath expr="//field[@name='type']" position="before"> - <div class="alert alert-success" role="alert" attrs="{'invisible': [('l10n_it_send_state', 'not in', ['delivered', 'delivered_accepted', 'delivered_refused', 'delivered_expired', 'failed_delivery'])]}"> + <div class="alert alert-success" role="alert" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'out_refund')), ('l10n_it_send_state', 'not in', ['delivered', 'delivered_accepted', 'delivered_refused', 'delivered_expired', 'failed_delivery'])]}"> <i class="fa fa-check" aria-label="Delivered" title="Delivered"></i> <field name="l10n_it_send_state" readonly="1"/> </div> - <div class="alert alert-warning" role="alert" attrs="{'invisible': [('l10n_it_send_state', '!=', 'sent')]}"> + <div class="alert alert-warning" role="alert" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'out_refund')), ('l10n_it_send_state', '!=', 'sent')]}"> <i class="fa fa-paper-plane-o"/> E-Invoice sent, waiting for a response </div> - <div class="alert alert-danger" role="alert" attrs="{'invisible': [('l10n_it_send_state', '!=', 'invalid')]}"> + <div class="alert alert-danger" role="alert" + attrs="{'invisible': ['|', ('type', 'not in', ('out_invoice', 'out_refund')), ('l10n_it_send_state', '!=', 'invalid')]}"> <i class="fa fa-exclamation-triangle"/> E-Invoice check failed. You can modify the invoice, and resend it. </div> </xpath> <xpath expr="//page[@name='other_info']" position="after"> - <page string="Electronic Invoicing"> - <group> - <group> - <field name="l10n_it_stamp_duty"/> - </group> - <group> - <field name="l10n_it_ddt_id"/> - </group> - </group> - </page> - </xpath> - </data> - </field> - </record> - - <record id="account_invoice_supplier_form_l10n_it" model="ir.ui.view"> - <field name="name">account.invoice.supplier.form.l10n.it</field> - <field name="model">account.invoice</field> - <field name="priority">20</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <data> - <xpath expr="//field[@name='date_due']" position="replace"> - <field name="date_due" attrs="{'readonly': [('state', 'in', ['open', 'in_payment', 'paid'])]}" force_save="1"/> - </xpath> - <xpath expr="//page[@name='other_info']" position="after"> - <page string="Electronic Invoicing"> + <page string="Electronic Invoicing" attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"> <group> <group> <field name="l10n_it_stamp_duty"/> + <field name="l10n_it_ddt_id" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund'))]}"/> </group> </group> </page> @@ -207,7 +188,7 @@ <record id="view_account_invoice_filter_l10n_it" model="ir.ui.view"> <field name="name">account.invoice.select.l10n.it</field> - <field name="model">account.invoice</field> + <field name="model">account.move</field> <field name="inherit_id" ref="account.view_account_invoice_filter"/> <field name="arch" type="xml"> <xpath expr="//filter[@name='late']" position="after"> diff --git a/addons/l10n_sg/models/__init__.py b/addons/l10n_sg/models/__init__.py index a4f534641a6..e9d8409f353 100644 --- a/addons/l10n_sg/models/__init__.py +++ b/addons/l10n_sg/models/__init__.py @@ -3,6 +3,6 @@ # Copyright (C) 2014 Tech Receptives (<http://techreceptives.com>). -from . import account_invoice +from . import account_move from . import res_company from . import res_partner diff --git a/addons/l10n_sg/models/account_invoice.py b/addons/l10n_sg/models/account_move.py index 3821eb7c69e..9168e75bb7d 100644 --- a/addons/l10n_sg/models/account_invoice.py +++ b/addons/l10n_sg/models/account_move.py @@ -2,9 +2,9 @@ from odoo import fields, models -class AccountInvoice(models.Model): - _name = 'account.invoice' - _inherit = 'account.invoice' + +class AccountMove(models.Model): + _inherit = 'account.move' l10n_sg_permit_number = fields.Char(string="Permit No.") diff --git a/addons/l10n_sg/views/account_invoice_view.xml b/addons/l10n_sg/views/account_invoice_view.xml index 5987650a7a9..c7be420df38 100644 --- a/addons/l10n_sg/views/account_invoice_view.xml +++ b/addons/l10n_sg/views/account_invoice_view.xml @@ -3,8 +3,8 @@ <data> <record id="view_invoice_form_l10n_sg" model="ir.ui.view"> <field name="name">l10n_sg.invoice.form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='fiscal_position_id']" position="after"> <field name="l10n_sg_permit_number"/> diff --git a/addons/mass_mailing_sale/models/mass_mailing.py b/addons/mass_mailing_sale/models/mass_mailing.py index 1f6dff970d2..3287f5cf08b 100644 --- a/addons/mass_mailing_sale/models/mass_mailing.py +++ b/addons/mass_mailing_sale/models/mass_mailing.py @@ -27,9 +27,9 @@ class MassMailing(models.Model): invoices = self.env['sale.order'].search(self._get_sale_utm_domain()).mapped('invoice_ids') res = self.env['account.invoice.report'].search_read( [('invoice_id', 'in', invoices.ids), ('state', 'not in', ['draft', 'cancel'])], - ['user_currency_price_total'] + ['price_subtotal'] ) - mass_mailing.sale_invoiced_amount = sum(r['user_currency_price_total'] for r in res) + mass_mailing.sale_invoiced_amount = sum(r['price_subtotal'] for r in res) else: mass_mailing.sale_invoiced_amount = 0 @@ -42,11 +42,13 @@ class MassMailing(models.Model): @api.multi def action_redirect_to_invoiced(self): - action = self.env.ref('account.action_invoice_refund_out_tree').read()[0] + action = self.env.ref('account.view_move_form').read()[0] invoices = self.env['sale.order'].search(self._get_sale_utm_domain()).mapped('invoice_ids') action['domain'] = [ ('id', 'in', invoices.ids), - ('state', 'not in', ['draft', 'cancel']) + ('type', 'in', ('out_invoice', 'out_refund')), + ('type', '=', 'posted'), + ('partner_id', 'child_of', self.id), ] return action diff --git a/addons/membership/__manifest__.py b/addons/membership/__manifest__.py index 73aa1ab0c95..2a2ffd49576 100644 --- a/addons/membership/__manifest__.py +++ b/addons/membership/__manifest__.py @@ -20,7 +20,7 @@ It supports different kind of members: It is integrated with sales and accounting to allow you to automatically invoice and send propositions for membership renewal. """, - 'depends': ['base', 'product', 'account'], + 'depends': ['account'], 'data': [ 'security/ir.model.access.csv', 'wizard/membership_invoice_views.xml', diff --git a/addons/membership/models/__init__.py b/addons/membership/models/__init__.py index c82af4339ef..4a529d013d6 100644 --- a/addons/membership/models/__init__.py +++ b/addons/membership/models/__init__.py @@ -4,4 +4,4 @@ from . import membership from . import partner from . import product -from . import account_invoice +from . import account_move diff --git a/addons/membership/models/account_invoice.py b/addons/membership/models/account_invoice.py deleted file mode 100644 index 64f987158b7..00000000000 --- a/addons/membership/models/account_invoice.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import api, fields, models - -from datetime import date - - -class Invoice(models.Model): - _inherit = 'account.invoice' - - @api.multi - def action_cancel_draft(self): - self.env['membership.membership_line'].search([ - ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) - ]).write({'date_cancel': False}) - return super(Invoice, self).action_cancel_draft() - - @api.multi - def action_cancel(self): - '''Create a 'date_cancel' on the membership_line object''' - self.env['membership.membership_line'].search([ - ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) - ]).write({'date_cancel': fields.Date.today()}) - return super(Invoice, self).action_cancel() - - @api.multi - def write(self, vals): - '''Change the partner on related membership_line''' - if 'partner_id' in vals: - self.env['membership.membership_line'].search([ - ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) - ]).write({'partner': vals['partner_id']}) - return super(Invoice, self).write(vals) - - -class AccountInvoiceLine(models.Model): - _inherit = 'account.invoice.line' - - @api.multi - def write(self, vals): - MemberLine = self.env['membership.membership_line'] - res = super(AccountInvoiceLine, self).write(vals) - for line in self.filtered(lambda line: line.invoice_id.type == 'out_invoice'): - member_lines = MemberLine.search([('account_invoice_line', '=', line.id)]) - if line.product_id.membership and not member_lines: - # Product line has changed to a membership product - date_from = line.product_id.membership_date_from - date_to = line.product_id.membership_date_to - if (line.invoice_id.date_invoice > (date_from or date.min) and - line.invoice_id.date_invoice < (date_to or date.min)): - date_from = line.invoice_id.date_invoice - MemberLine.create({ - 'partner': line.invoice_id.partner_id.id, - 'membership_id': line.product_id.id, - 'member_price': line.price_unit, - 'date': fields.Date.today(), - 'date_from': date_from, - 'date_to': date_to, - 'account_invoice_line': line.id, - }) - if line.product_id and not line.product_id.membership and member_lines: - # Product line has changed to a non membership product - member_lines.unlink() - return res - - @api.model - def create(self, vals): - MemberLine = self.env['membership.membership_line'] - invoice_line = super(AccountInvoiceLine, self).create(vals) - if invoice_line.invoice_id.type == 'out_invoice' and \ - invoice_line.product_id.membership and \ - not MemberLine.search([('account_invoice_line', '=', invoice_line.id)]): - # Product line is a membership product - date_from = invoice_line.product_id.membership_date_from - date_to = invoice_line.product_id.membership_date_to - if (date_from and - date_from < - (invoice_line.invoice_id.date_invoice or date.min) < - (date_to or date.min)): - date_from = invoice_line.invoice_id.date_invoice - MemberLine.create({ - 'partner': invoice_line.invoice_id.partner_id.id, - 'membership_id': invoice_line.product_id.id, - 'member_price': invoice_line.price_unit, - 'date': fields.Date.today(), - 'date_from': date_from, - 'date_to': date_to, - 'account_invoice_line': invoice_line.id, - }) - return invoice_line diff --git a/addons/membership/models/account_move.py b/addons/membership/models/account_move.py new file mode 100644 index 00000000000..62b7526eae5 --- /dev/null +++ b/addons/membership/models/account_move.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + +from datetime import date + + +class AccountMove(models.Model): + _inherit = 'account.move' + + @api.multi + def button_draft(self): + # OVERRIDE to update the cancel date. + res = super(AccountMove, self).button_draft() + if self.type == 'out_invoice': + self.env['membership.membership_line'].search([ + ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) + ]).write({'date_cancel': False}) + return res + + @api.multi + def button_cancel(self): + # OVERRIDE to update the cancel date. + res = super(AccountMove, self).button_cancel() + if self.type == 'out_invoice': + self.env['membership.membership_line'].search([ + ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) + ]).write({'date_cancel': fields.Date.today()}) + return res + + @api.multi + def write(self, vals): + # OVERRIDE to write the partner on the membership lines. + res = super(AccountMove, self).write(vals) + if 'partner_id' in vals: + self.env['membership.membership_line'].search([ + ('account_invoice_line', 'in', self.mapped('invoice_line_ids').ids) + ]).write({'partner': vals['partner_id']}) + return res + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + @api.multi + def write(self, vals): + # OVERRIDE + res = super(AccountMoveLine, self).write(vals) + + to_process = self.filtered(lambda line: line.move_id.type == 'out_invoice' and line.product_id.membership) + + # Nothing to process, break. + if not to_process: + return res + + existing_memberships = self.env['membership.membership_line'].search([ + ('account_invoice_line', 'in', to_process.ids)]) + to_process = to_process - existing_memberships.mapped('account_invoice_line') + + # All memberships already exist, break. + if not to_process: + return res + + memberships_vals = [] + for line in to_process: + date_from = line.product_id.membership_date_from + date_to = line.product_id.membership_date_to + if (date_from and date_from < (line.move_id.invoice_date or date.min) < (date_to or date.min)): + date_from = line.move_id.invoice_date + memberships_vals.append({ + 'partner': line.move_id.partner_id.id, + 'membership_id': line.product_id.id, + 'member_price': line.price_unit, + 'date': fields.Date.today(), + 'date_from': date_from, + 'date_to': date_to, + 'account_invoice_line': line.id, + }) + self.env['membership.membership_line'].create(memberships_vals) + return res + + @api.model_create_multi + def create(self, vals_list): + # OVERRIDE + lines = super(AccountMoveLine, self).create(vals_list) + to_process = lines.filtered(lambda line: line.move_id.type == 'out_invoice' and line.product_id.membership) + + # Nothing to process, break. + if not to_process: + return lines + + existing_memberships = self.env['membership.membership_line'].search([ + ('account_invoice_line', 'in', to_process.ids)]) + to_process = to_process - existing_memberships.mapped('account_invoice_line') + + # All memberships already exist, break. + if not to_process: + return lines + + memberships_vals = [] + for line in to_process: + date_from = line.product_id.membership_date_from + date_to = line.product_id.membership_date_to + if (date_from and date_from < (line.move_id.invoice_date or date.min) < (date_to or date.min)): + date_from = line.move_id.invoice_date + memberships_vals.append({ + 'partner': line.move_id.partner_id.id, + 'membership_id': line.product_id.id, + 'member_price': line.price_unit, + 'date': fields.Date.today(), + 'date_from': date_from, + 'date_to': date_to, + 'account_invoice_line': line.id, + }) + self.env['membership.membership_line'].create(memberships_vals) + return lines diff --git a/addons/membership/models/membership.py b/addons/membership/models/membership.py index 416907bca4d..9134add2d97 100644 --- a/addons/membership/models/membership.py +++ b/addons/membership/models/membership.py @@ -31,9 +31,9 @@ class MembershipLine(models.Model): member_price = fields.Float(string='Membership Fee', digits=dp.get_precision('Product Price'), required=True, help='Amount for the membership') - account_invoice_line = fields.Many2one('account.invoice.line', string='Account Invoice line', readonly=True, ondelete='cascade') - account_invoice_id = fields.Many2one('account.invoice', related='account_invoice_line.invoice_id', string='Invoice', readonly=True) - company_id = fields.Many2one('res.company', related='account_invoice_line.invoice_id.company_id', string="Company", readonly=True, store=True) + account_invoice_line = fields.Many2one('account.move.line', string='Account Invoice line', readonly=True, ondelete='cascade') + account_invoice_id = fields.Many2one('account.move', related='account_invoice_line.move_id', string='Invoice', readonly=True) + company_id = fields.Many2one('res.company', related='account_invoice_line.move_id.company_id', string="Company", readonly=True, store=True) state = fields.Selection(STATE, compute='_compute_state', string='Membership Status', store=True, help="It indicates the membership status.\n" "-Non Member: A member who has not applied for any membership.\n" @@ -43,42 +43,37 @@ class MembershipLine(models.Model): "-Invoiced Member: A member whose invoice has been created.\n" "-Paid Member: A member who has paid the membership amount.") - @api.depends('account_invoice_line.invoice_id.state', - 'account_invoice_line.invoice_id.payment_ids', - 'account_invoice_line.invoice_id.payment_ids.invoice_ids.type') + @api.depends('account_invoice_id.state', + 'account_invoice_id.amount_residual', + 'account_invoice_id.invoice_payment_state') def _compute_state(self): """Compute the state lines """ - Invoice = self.env['account.invoice'] + if not self: + return + + self._cr.execute(''' + SELECT reversed_entry_id, COUNT(id) + FROM account_move + WHERE reversed_entry_id IN %s + GROUP BY reversed_entry_id + ''', [tuple(self.mapped('account_invoice_id.id'))]) + reverse_map = dict(self._cr.fetchall()) for line in self: - self._cr.execute(''' - SELECT i.state, i.id FROM - account_invoice i - WHERE - i.id = ( - SELECT l.invoice_id FROM - account_invoice_line l WHERE - l.id = ( - SELECT ml.account_invoice_line FROM - membership_membership_line ml WHERE - ml.id = %s - ) - ) - ''', (line.id,)) - fetched = self._cr.fetchone() - if not fetched: - line.state = 'canceled' - continue - istate = fetched[0] - if istate == 'draft': + move_state = line.account_invoice_id.state + payment_state = line.account_invoice_id.invoice_payment_state + + line.state = 'none' + if move_state == 'draft': line.state = 'waiting' - elif istate == 'open': - line.state = 'invoiced' - elif istate == 'paid': - line.state = 'paid' - invoices = Invoice.browse(fetched[1]).payment_ids.mapped('invoice_ids') - if invoices.filtered(lambda invoice: invoice.type == 'out_refund'): - line.state = 'canceled' - elif istate == 'cancel': + elif move_state == 'posted': + if payment_state == 'paid': + if reverse_map.get(line.account_invoice_id.id): + line.state = 'canceled' + else: + line.state = 'paid' + elif payment_state == 'in_payment': + line.state = 'paid' + elif payment_state == 'not_paid': + line.state = 'invoiced' + elif move_state == 'cancel': line.state = 'canceled' - else: - line.state = 'none' diff --git a/addons/membership/models/partner.py b/addons/membership/models/partner.py index 907efb32b88..75947a34738 100644 --- a/addons/membership/models/partner.py +++ b/addons/membership/models/partner.py @@ -27,138 +27,75 @@ class Partner(models.Model): '-Waiting Member: A member who has applied for the membership and whose invoice is going to be created.\n' '-Invoiced Member: A member whose invoice has been created.\n' '-Paying member: A member who has paid the membership fee.') - membership_start = fields.Date(compute='_compute_membership_start', + membership_start = fields.Date(compute='_compute_membership_state', string ='Membership Start Date', store=True, help="Date from which membership becomes active.") - membership_stop = fields.Date(compute='_compute_membership_stop', + membership_stop = fields.Date(compute='_compute_membership_state', string ='Membership End Date', store=True, help="Date until which membership remains active.") - membership_cancel = fields.Date(compute='_compute_membership_cancel', + membership_cancel = fields.Date(compute='_compute_membership_state', string ='Cancel Membership Date', store=True, help="Date on which membership has been cancelled") - @api.depends('member_lines.account_invoice_line.invoice_id.state', - 'member_lines.account_invoice_line.invoice_id.invoice_line_ids', - 'member_lines.account_invoice_line.invoice_id.payment_ids', - 'member_lines.account_invoice_line.invoice_id.payment_move_line_ids', - 'member_lines.account_invoice_line.invoice_id.partner_id', + @api.depends('member_lines.account_invoice_line', + 'member_lines.account_invoice_line.move_id.state', + 'member_lines.account_invoice_line.move_id.invoice_payment_state', + 'member_lines.account_invoice_line.move_id.partner_id', 'free_member', 'member_lines.date_to', 'member_lines.date_from', 'associate_member') def _compute_membership_state(self): - values = self._membership_state() - for partner in self: - partner.membership_state = values[partner.id] - - # Do not depend directly on "associate_member.membership_state" or we might end up in an - # infinite loop. Since we still need this dependency somehow, we explicitly search for the - # "parent members" and trigger a recompute. - parent_members = self.search([('associate_member', 'in', self.ids)]) - self - if parent_members: - parent_members._recompute_todo(self._fields['membership_state']) - - @api.depends('member_lines.account_invoice_line.invoice_id.state', - 'member_lines.account_invoice_line.invoice_id.invoice_line_ids', - 'member_lines.account_invoice_line.invoice_id.payment_ids', - 'free_member', - 'member_lines.date_to', 'member_lines.date_from', 'member_lines.date_cancel', - 'membership_state', - 'associate_member.membership_state') - def _compute_membership_start(self): - """Return date of membership""" + today = fields.Date.today() for partner in self: + state = 'none' + partner.membership_start = self.env['membership.membership_line'].search([ ('partner', '=', partner.associate_member.id or partner.id), ('date_cancel','=',False) ], limit=1, order='date_from').date_from - - @api.depends('member_lines.account_invoice_line.invoice_id.state', - 'member_lines.account_invoice_line.invoice_id.invoice_line_ids', - 'member_lines.account_invoice_line.invoice_id.payment_ids', - 'free_member', - 'member_lines.date_to', 'member_lines.date_from', 'member_lines.date_cancel', - 'membership_state', - 'associate_member.membership_state') - def _compute_membership_stop(self): - MemberLine = self.env['membership.membership_line'] - for partner in self: partner.membership_stop = self.env['membership.membership_line'].search([ ('partner', '=', partner.associate_member.id or partner.id),('date_cancel','=',False) ], limit=1, order='date_to desc').date_to - - @api.depends('member_lines.account_invoice_line.invoice_id.state', - 'member_lines.account_invoice_line.invoice_id.invoice_line_ids', - 'member_lines.account_invoice_line.invoice_id.payment_ids', - 'free_member', - 'member_lines.date_to', 'member_lines.date_from', 'member_lines.date_cancel', - 'membership_state', - 'associate_member.membership_state') - def _compute_membership_cancel(self): - for partner in self: - if partner.membership_state == 'canceled': - partner.membership_cancel = self.env['membership.membership_line'].search([ - ('partner', '=', partner.id) - ], limit=1, order='date_cancel').date_cancel - else: - partner.membership_cancel = False - - def _membership_state(self): - """This Function return Membership State For Given Partner. """ - res = {} - today = fields.Date.today() - for partner in self: - res[partner.id] = 'none' + partner.membership_cancel = self.env['membership.membership_line'].search([ + ('partner', '=', partner.id) + ], limit=1, order='date_cancel').date_cancel if partner.membership_cancel and today > partner.membership_cancel: - res[partner.id] = 'free' if partner.free_member else 'canceled' + partner.membership_state = 'free' if partner.free_member else 'canceled' continue if partner.membership_stop and today > partner.membership_stop: - res[partner.id] = 'free' if partner.free_member else 'old' + partner.membership_state = 'free' if partner.free_member else 'old' continue if partner.associate_member: - res_state = partner.associate_member._membership_state() - res[partner.id] = res_state[partner.associate_member.id] + partner.associate_member._compute_membership_state() + partner.membership_state = partner.associate_member.membership_state continue - s = 4 - if partner.member_lines: + line_states = [mline.state for mline in partner.member_lines if \ + (mline.date_to or date.min) >= today and \ + (mline.date_from or date.min) <= today and \ + mline.account_invoice_line.move_id.partner_id == partner] + + if 'paid' in line_states: + state = 'paid' + elif 'invoiced' in line_states: + state = 'invoiced' + elif 'waiting' in line_states: + state = 'waiting' + elif 'canceled' in line_states: + state = 'canceled' + + if state == 'none': for mline in partner.member_lines: - if (mline.date_to or date.min) >= today and (mline.date_from or date.min) <= today: - if mline.account_invoice_line.invoice_id.partner_id == partner: - mstate = mline.account_invoice_line.invoice_id.state - if mstate == 'paid': - s = 0 - inv = mline.account_invoice_line.invoice_id - for ml in inv.payment_move_line_ids: - if any(ml.invoice_id.filtered(lambda inv: inv.type == 'out_refund')): - s = 2 - break - elif mstate == 'open' and s != 0: - s = 1 - elif mstate == 'cancel' and s != 0 and s != 1: - s = 2 - elif mstate == 'draft' and s != 0 and s != 1: - s = 3 - if s == 4: - for mline in partner.member_lines: - if (mline.date_from or date.min) < today and (mline.date_to or date.min) < today and (mline.date_from or date.min) <= (mline.date_to or date.min) and mline.account_invoice_line and mline.account_invoice_line.invoice_id.state == 'paid': - s = 5 - else: - s = 6 - if s == 0: - res[partner.id] = 'paid' - elif s == 1: - res[partner.id] = 'invoiced' - elif s == 2: - res[partner.id] = 'canceled' - elif s == 3: - res[partner.id] = 'waiting' - elif s == 5: - res[partner.id] = 'old' - elif s == 6: - res[partner.id] = 'none' - if partner.free_member and s != 0: - res[partner.id] = 'free' - return res + # if there is an old invoice paid, set the state to 'old' + if ((mline.date_from or date.min) < today and (mline.date_to or date.min) < today and \ + (mline.date_from or date.min) <= (mline.date_to or date.min) and \ + mline.account_invoice_id and mline.account_invoice_id.state == 'paid'): + state = 'old' + break + + if partner.free_member and state is not 'paid': + state = 'free' + partner.membership_state = state @api.one @api.constrains('associate_member') @@ -178,36 +115,23 @@ class Partner(models.Model): self.recompute() @api.multi - def create_membership_invoice(self, product_id=None, datas=None): + def create_membership_invoice(self, product, amount): """ Create Customer Invoice of Membership for partners. - @param datas: datas has dictionary value which consist Id of Membership product and Cost Amount of Membership. - datas = {'membership_product_id': None, 'amount': None} """ - product_id = product_id or datas.get('membership_product_id') - amount = datas.get('amount', 0.0) - invoice_list = [] + invoice_vals_list = [] for partner in self: addr = partner.address_get(['invoice']) if partner.free_member: raise UserError(_("Partner is a free Member.")) if not addr.get('invoice', False): raise UserError(_("Partner doesn't have an address to make the invoice.")) - invoice = self.env['account.invoice'].create({ + + invoice_vals_list.append({ + 'type': 'out_invoice', 'partner_id': partner.id, - 'account_id': partner.property_account_receivable_id.id, - 'fiscal_position_id': partner.property_account_position_id.id + 'invoice_line_ids': [ + (0, None, {'product_id': product.id, 'quantity': 1, 'price_unit': amount, 'tax_ids': [(6, 0, product.taxes_id.ids)]}) + ] }) - line_values = { - 'product_id': product_id, - 'price_unit': amount, - 'invoice_id': invoice.id, - } - # create a record in cache, apply onchange then revert back to a dictionnary - invoice_line = self.env['account.invoice.line'].new(line_values) - invoice_line._onchange_product_id() - line_values = invoice_line._convert_to_write({name: invoice_line[name] for name in invoice_line._cache}) - line_values['price_unit'] = amount - invoice.write({'invoice_line_ids': [(0, 0, line_values)]}) - invoice_list.append(invoice.id) - invoice.compute_taxes() - return invoice_list + + return self.env['account.move'].create(invoice_vals_list) diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py index 2c506ce300e..1734bc045f5 100644 --- a/addons/membership/report/report_membership.py +++ b/addons/membership/report/report_membership.py @@ -73,14 +73,14 @@ class ReportMembership(models.Model): CASE WHEN ml.state = 'waiting' THEN ml.id END AS num_waiting, CASE WHEN ml.state = 'invoiced' THEN ml.id END AS num_invoiced, CASE WHEN ml.state = 'paid' THEN ml.id END AS num_paid, - CASE WHEN ml.state IN ('waiting', 'invoiced') THEN SUM(il.price_subtotal) ELSE 0 END AS tot_pending, - CASE WHEN ml.state = 'paid' OR p.membership_state = 'old' THEN SUM(il.price_subtotal) ELSE 0 END AS tot_earned, + CASE WHEN ml.state IN ('waiting', 'invoiced') THEN SUM(aml.price_subtotal) ELSE 0 END AS tot_pending, + CASE WHEN ml.state = 'paid' OR p.membership_state = 'old' THEN SUM(aml.price_subtotal) ELSE 0 END AS tot_earned, ml.membership_id AS membership_id, p.company_id AS company_id FROM res_partner p LEFT JOIN membership_membership_line ml ON (ml.partner = p.id) - LEFT JOIN account_invoice_line il ON (ml.account_invoice_line = il.id) - LEFT JOIN account_invoice ai ON (il.invoice_id = ai.id) + LEFT JOIN account_move_line aml ON (ml.account_invoice_line = aml.id) + LEFT JOIN account_move am ON (aml.move_id = am.id) WHERE p.membership_state != 'none' and p.active = 'true' GROUP BY p.id, diff --git a/addons/membership/tests/test_membership.py b/addons/membership/tests/test_membership.py index fa00f0d31c2..0e68b039deb 100644 --- a/addons/membership/tests/test_membership.py +++ b/addons/membership/tests/test_membership.py @@ -2,9 +2,11 @@ import datetime from dateutil.relativedelta import relativedelta +from unittest.mock import patch from odoo.addons.membership.tests.common import TestMembershipCommon from odoo.tests import tagged +from odoo import fields @tagged('post_install', '-at_install') @@ -16,7 +18,7 @@ class TestMembership(TestMembershipCommon): 'membership_date_to': datetime.date.today() + relativedelta(years=-1), }) - self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) + self.partner_1.create_membership_invoice(self.membership_1, 75.0) self.assertEqual( self.partner_1.membership_state, 'old', 'membership: outdated subscription should put member in old state') @@ -27,10 +29,8 @@ class TestMembership(TestMembershipCommon): 'membership: default membership status of partners should be None') # subscribes to a membership - self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) + invoice = self.partner_1.create_membership_invoice(self.membership_1, 75.0) - # checks for invoices - invoice = self.env['account.invoice'].search([('partner_id', '=', self.partner_1.id)], limit=1) self.assertEqual( invoice.state, 'draft', 'membership: new subscription should create a draft invoice') @@ -46,14 +46,22 @@ class TestMembership(TestMembershipCommon): 'membership: new membership should be in waiting state') # the invoice is open -> customer goes to invoiced status - invoice.action_invoice_open() + invoice.post() self.assertEqual( self.partner_1.membership_state, 'invoiced', 'membership: after opening the invoice, customer should be in invoiced status') # the invoice is paid -> customer goes to paid status bank_journal = self.env['account.journal'].create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'}) - invoice.pay_and_reconcile(bank_journal, invoice.amount_total) + self.env['account.payment'].create({ + 'payment_method_id': self.env.ref("account.account_payment_method_manual_in").id, + 'payment_type': 'inbound', + 'invoice_ids': [(6, False, invoice.ids)], + 'amount': 86.25, + 'journal_id': bank_journal.id, + 'partner_type': 'customer', + }).post() + self.assertEqual( self.partner_1.membership_state, 'paid', 'membership: after paying the invoice, customer should be in paid status') @@ -73,12 +81,17 @@ class TestMembership(TestMembershipCommon): 'membership: default membership status of partners should be None') # subscribes to a membership - self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) - - # checks for invoices - invoice = self.env['account.invoice'].search([('partner_id', '=', self.partner_1.id)], limit=1) + invoice = self.partner_1.create_membership_invoice(self.membership_1, 75.0) # the invoice is canceled -> membership state of the customer goes to canceled - invoice.action_invoice_cancel() + invoice.journal_id.update_posted = True + + def patched_today(*args, **kwargs): + return fields.Date.to_date('2019-01-01') + + with patch.object(fields.Date, 'today', patched_today): + invoice.button_cancel() + + self.partner_1._compute_membership_state() self.assertEqual(invoice.state, 'cancel') self.assertEqual(self.partner_1.membership_state, 'canceled') diff --git a/addons/membership/views/partner_views.xml b/addons/membership/views/partner_views.xml index 5b526fc3771..f44d3ffa14e 100644 --- a/addons/membership/views/partner_views.xml +++ b/addons/membership/views/partner_views.xml @@ -138,7 +138,7 @@ </group> <group> <field name="member_price"/> - <field name="account_invoice_id" context="{'form_view_ref': 'account.invoice_form'}"/> + <field name="account_invoice_id" context="{'form_view_ref': 'account.view_move_form'}"/> </group> </group> </form> diff --git a/addons/membership/wizard/membership_invoice.py b/addons/membership/wizard/membership_invoice.py index 56208de5abf..a3d5737bae2 100644 --- a/addons/membership/wizard/membership_invoice.py +++ b/addons/membership/wizard/membership_invoice.py @@ -21,21 +21,16 @@ class MembershipInvoice(models.TransientModel): @api.multi def membership_invoice(self): - if self: - datas = { - 'membership_product_id': self.product_id.id, - 'amount': self.member_price - } - invoice_list = self.env['res.partner'].browse(self._context.get('active_ids')).create_membership_invoice(datas=datas) + invoice_list = self.env['res.partner'].browse(self._context.get('active_ids')).create_membership_invoice(self.product_id, self.member_price) search_view_ref = self.env.ref('account.view_account_invoice_filter', False) - form_view_ref = self.env.ref('account.invoice_form', False) - tree_view_ref = self.env.ref('account.invoice_tree', False) + form_view_ref = self.env.ref('account.view_move_form', False) + tree_view_ref = self.env.ref('account.view_move_tree', False) return { - 'domain': [('id', 'in', invoice_list)], + 'domain': [('id', 'in', invoice_list.ids)], 'name': 'Membership Invoices', - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'type': 'ir.actions.act_window', 'views': [(tree_view_ref.id, 'tree'), (form_view_ref.id, 'form')], 'search_view_id': search_view_ref and search_view_ref.id, diff --git a/addons/payment/models/account_invoice.py b/addons/payment/models/account_invoice.py index 54d9f9099b0..de16fb595c8 100644 --- a/addons/payment/models/account_invoice.py +++ b/addons/payment/models/account_invoice.py @@ -5,9 +5,9 @@ from odoo import api, fields, models, _ from odoo.exceptions import ValidationError -class AccountInvoice(models.Model): - _inherit = 'account.invoice' - +class AccountMove(models.Model): + _inherit = 'account.move' + transaction_ids = fields.Many2many('payment.transaction', 'account_invoice_transaction_rel', 'invoice_id', 'transaction_id', string='Transactions', copy=False, readonly=True) authorized_transaction_ids = fields.Many2many('payment.transaction', compute='_compute_authorized_transaction_ids', @@ -75,7 +75,7 @@ class AccountInvoice(models.Model): vals['acquirer_id'] = acquirer.id vals.update({ - 'amount': sum(self.mapped('residual')), + 'amount': sum(self.mapped('amount_residual')), 'currency_id': currency.id, 'partner_id': partner.id, 'invoice_ids': [(6, 0, self.ids)], diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index 3481429bec8..a6adb02778d 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -624,8 +624,9 @@ class PaymentTransaction(models.Model): domain="[('acquirer_id', '=', acquirer_id)]") payment_id = fields.Many2one('account.payment', string='Payment', readonly=True) - invoice_ids = fields.Many2many('account.invoice', 'account_invoice_transaction_rel', 'transaction_id', 'invoice_id', - string='Invoices', copy=False, readonly=True) + invoice_ids = fields.Many2many('account.move', 'account_invoice_transaction_rel', 'transaction_id', 'invoice_id', + string='Invoices', copy=False, readonly=True, + domain=[('type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]) invoice_ids_nbr = fields.Integer(compute='_compute_invoice_ids_nbr', string='# of Invoices') _sql_constraints = [ @@ -750,7 +751,7 @@ class PaymentTransaction(models.Model): def _reconcile_after_transaction_done(self): # Validate invoices automatically upon the transaction is posted. invoices = self.mapped('invoice_ids').filtered(lambda inv: inv.state == 'draft') - invoices.action_invoice_open() + invoices.post() # Create & Post the payments. payments = defaultdict(lambda: self.env['account.payment']) @@ -870,7 +871,7 @@ class PaymentTransaction(models.Model): action = { 'name': _('Invoices'), 'type': 'ir.actions.act_window', - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'target': 'current', } invoice_ids = self.invoice_ids.ids @@ -878,7 +879,7 @@ class PaymentTransaction(models.Model): invoice = invoice_ids[0] action['res_id'] = invoice action['view_mode'] = 'form' - action['views'] = [(self.env.ref('account.invoice_form').id, 'form')] + action['views'] = [(self.env.ref('account.view_move_form').id, 'form')] else: action['view_mode'] = 'tree,form' action['domain'] = [('id', 'in', invoice_ids)] diff --git a/addons/payment/views/account_invoice_views.xml b/addons/payment/views/account_invoice_views.xml index 9703acf1d6c..907af3b5bdc 100644 --- a/addons/payment/views/account_invoice_views.xml +++ b/addons/payment/views/account_invoice_views.xml @@ -2,25 +2,25 @@ <odoo> <data> <record id="account_invoice_view_form_inherit_payment" model="ir.ui.view"> - <field name="name">account.invoice.view.form.inherit.payment</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="name">account.move.view.form.inherit.payment</field> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <!-- The user must capture/void the authorized transactions before registering a new payment. --> <xpath expr="//button[@id='account_invoice_payment_btn']" position="attributes"> - <attribute name="attrs">{'invisible': ['|', ('state', '!=', 'open'), ('authorized_transaction_ids', '!=', [])]}</attribute> + <attribute name="attrs">{'invisible': ['|', '|', '|', ('state', '!=', 'posted'), ('invoice_payment_state', '!=', 'not_paid'), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('authorized_transaction_ids', '!=', [])]}</attribute> </xpath> <xpath expr="//button[@id='account_invoice_payment_btn']" position="after"> <field name="authorized_transaction_ids" invisible="1"/> <button name="payment_action_capture" type="object" string="Capture Transaction" class="oe_highlight" - attrs="{'invisible': ['|', ('state', '!=', 'open'), ('authorized_transaction_ids', '=', [])]}"/> + attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/> <button name="payment_action_void" type="object" string="Void Transaction" confirm="Are you sure you want to void the authorized transaction? This action can't be undone." - attrs="{'invisible': ['|', ('state', '!=', 'open'), ('authorized_transaction_ids', '=', [])]}"/> + attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/> </xpath> </field> </record> diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index d860865c51e..abf858acfc2 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -155,40 +155,16 @@ class PosOrder(models.Model): }) return order - def _prepare_analytic_account(self, line): - '''This method is designed to be inherited in a custom module''' - return False - def _create_account_move(self): self.ensure_one() date_tz_user = fields.Datetime.context_timestamp(self, fields.Datetime.from_string(self.session_id.start_at)) date_tz_user = fields.Date.to_string(date_tz_user) - return self.env['account.move'].sudo().create({ + return self.env['account.move'].with_context(default_journal_id=self.sale_journal.id).sudo().create({ 'ref': self.name, 'journal_id': self.sale_journal.id, 'date': date_tz_user }) - def _prepare_invoice(self): - """ - Prepare the dict of values to create the new invoice for a pos order. - """ - invoice_type = 'out_invoice' if self.amount_total >= 0 else 'out_refund' - return { - 'name': self.name, - 'origin': self.name, - 'account_id': self.partner_id.property_account_receivable_id.id, - 'journal_id': self.session_id.config_id.invoice_journal_id.id, - 'company_id': self.company_id.id, - 'type': invoice_type, - 'reference': self.name, - 'partner_id': self.partner_id.id, - 'comment': self.note or '', - # considering partner's sale pricelist's currency - 'currency_id': self.pricelist_id.currency_id.id, - 'user_id': self.user_id.id, - } - @api.model def _get_account_move_line_group_data_type_key(self, data_type, values, options={}): """ @@ -202,7 +178,6 @@ class PosOrder(models.Model): return ('product', values['partner_id'], (values['product_id'], tuple(values['tax_ids'][0][2]), values['name']), - values['analytic_account_id'], values['debit'] > 0, values.get('currency_id')) elif data_type == 'tax': @@ -225,36 +200,17 @@ class PosOrder(models.Model): values.get('currency_id')) return False - def _action_create_invoice_line(self, line=False, invoice_id=False): - InvoiceLine = self.env['account.invoice.line'] - inv_name = line.product_id.display_name - inv_line = { - 'invoice_id': invoice_id, - 'product_id': line.product_id.id, - 'quantity': line.qty if self.amount_total >= 0 else -line.qty, - 'account_analytic_id': self._prepare_analytic_account(line), - 'name': inv_name, + def _prepare_invoice_line(self, order_line): + return { + 'product_id': order_line.product_id.id, + 'quantity': order_line.qty if self.amount_total >= 0 else -order_line.qty, + 'discount': order_line.discount, + 'price_unit': order_line.price_unit, + 'name': order_line.product_id.display_name, + 'tax_ids': [(6, 0, order_line.tax_ids.ids)], } - # Oldlin trick - invoice_line = InvoiceLine.sudo().new(inv_line) - invoice_line._onchange_product_id() - invoice_line.invoice_line_tax_ids = [(6, False, line.tax_ids_after_fiscal_position.filtered(lambda t: t.company_id.id == line.order_id.company_id.id).ids)] - # We convert a new id object back to a dictionary to write to - # bridge between old and new api - inv_line = invoice_line._convert_to_write({name: invoice_line[name] for name in invoice_line._cache}) - inv_line.update(price_unit=line.price_unit, discount=line.discount, name=inv_name) - return InvoiceLine.sudo().create(inv_line) def _prepare_account_move_line(self, line, partner_id, current_company, currency_id, rounding_method): - def _flatten_tax_and_children(taxes, group_done=None): - children = self.env['account.tax'] - if group_done is None: - group_done = set() - for tax in taxes.filtered(lambda t: t.amount_type == 'group'): - if tax.id not in group_done: - group_done.add(tax.id) - children |= _flatten_tax_and_children(tax.children_tax_ids, group_done) - return taxes + children res = [] order = line.order_id cur_company = order.company_id.currency_id @@ -285,7 +241,7 @@ class PosOrder(models.Model): # Create a move for the line for the order line # Just like for invoices, a group of taxes must be present on this base line # As well as its children - base_line_tax_ids = _flatten_tax_and_children(line.tax_ids_after_fiscal_position).filtered(lambda tax: tax.type_tax_use in ['sale', 'none']) + base_line_tax_ids = line.tax_ids_after_fiscal_position.flatten_taxes_hierarchy().filtered(lambda tax: tax.type_tax_use in ['sale', 'none']) base_line_taxes_repartition = base_line_tax_ids.mapped(line.qty<0 and 'refund_repartition_line_ids' or 'invoice_repartition_line_ids') base_line_tags = base_line_taxes_repartition.filtered(lambda x: x.repartition_type == 'base').mapped('tag_ids') data = { @@ -293,7 +249,6 @@ class PosOrder(models.Model): 'quantity': line.qty, 'product_id': line.product_id.id, 'account_id': income_account.id, - 'analytic_account_id': self._prepare_analytic_account(line), 'credit': ((amount_subtotal > 0) and amount_subtotal) or 0.0, 'debit': ((amount_subtotal < 0) and -amount_subtotal) or 0.0, 'tax_ids': [(6, 0, base_line_tax_ids.ids)], @@ -366,23 +321,20 @@ class PosOrder(models.Model): account_analytic=account_analytic) if res: line1, line2 = res - line1 = Product._convert_prepared_anglosaxon_line(line1, line['partner_id']) insert_data('counter_part', { 'name': line1['name'], 'account_id': line1['account_id'], - 'credit': line1['credit'] or 0.0, - 'debit': line1['debit'] or 0.0, - 'partner_id': line1['partner_id'] + 'credit': line1['price'] < 0 and -line1['price'], + 'debit': line1['price'] > 0 and line1['price'], + 'partner_id': order.partner_id.id }) - - line2 = Product._convert_prepared_anglosaxon_line(line2, line['partner_id']) insert_data('counter_part', { 'name': line2['name'], 'account_id': line2['account_id'], - 'credit': line2['credit'] or 0.0, - 'debit': line2['debit'] or 0.0, - 'partner_id': line2['partner_id'] + 'credit': line2['price'] < 0 and -line2['price'], + 'debit': line2['price'] > 0 and line2['price'], + 'partner_id': order.partner_id.id }) move = False for order in self.filtered(lambda o: not o.account_move or o.state == 'paid'): @@ -463,7 +415,7 @@ class PosOrder(models.Model): if cur != cur_company: # 'amount_cur_company' contains the sum of the AML converted in the company # currency. This makes the logic consistent with 'compute_invoice_totals' from - # 'account.invoice'. It ensures that the counterpart line is the same amount than + # 'account.move'. It ensures that the counterpart line is the same amount than # the sum of the product and taxes lines. amount_total = amount_cur_company else: @@ -495,7 +447,7 @@ class PosOrder(models.Model): return True def _get_pos_anglo_saxon_price_unit(self, product, partner_id, quantity): - price_unit = product._get_anglo_saxon_price_unit() + price_unit = product._stock_account_get_anglo_saxon_price_unit() if product._get_invoice_policy() == "delivery": moves = self.filtered(lambda o: o.partner_id.id == partner_id)\ .mapped('picking_id.move_lines')\ @@ -508,7 +460,7 @@ class PosOrder(models.Model): def _reconcile_payments(self): for order in self: - aml = order.statement_ids.mapped('journal_entry_ids') | order.account_move.line_ids | order.invoice_id.move_id.line_ids + aml = order.statement_ids.mapped('journal_entry_ids') | order.account_move.line_ids aml = aml.filtered(lambda r: not r.reconciled and r.account_id.internal_type == 'receivable' and r.partner_id == order.partner_id.commercial_partner_id) try: @@ -575,7 +527,6 @@ class PosOrder(models.Model): [('draft', 'New'), ('cancel', 'Cancelled'), ('paid', 'Paid'), ('done', 'Posted'), ('invoiced', 'Invoiced')], 'Status', readonly=True, copy=False, default='draft') - invoice_id = fields.Many2one('account.invoice', string='Invoice', copy=False) account_move = fields.Many2one('account.move', string='Journal Entry', readonly=True, copy=False) picking_id = fields.Many2one('stock.picking', string='Picking', readonly=True, copy=False) picking_type_id = fields.Many2one('stock.picking.type', related='session_id.config_id.picking_type_id', string="Operation Type", readonly=False) @@ -649,7 +600,7 @@ class PosOrder(models.Model): if 'partner_id' in vals: for order in self: partner_id = False - if order.invoice_id: + if order.account_move: raise UserError(_("You cannot change the partner of a POS order for which an invoice has already been issued.")) if vals['partner_id']: partner = Partner.browse(vals['partner_id']) @@ -680,11 +631,11 @@ class PosOrder(models.Model): return { 'name': _('Customer Invoice'), 'view_mode': 'form', - 'view_id': self.env.ref('account.invoice_form').id, - 'res_model': 'account.invoice', + 'view_id': self.env.ref('account.view_move_form').id, + 'res_model': 'account.move', 'context': "{'type':'out_invoice'}", 'type': 'ir.actions.act_window', - 'res_id': self.invoice_id.id, + 'res_id': self.account_move.id, } @api.multi @@ -696,48 +647,52 @@ class PosOrder(models.Model): @api.multi def action_pos_order_invoice(self): - Invoice = self.env['account.invoice'] + moves = self.env['account.move'] for order in self: # Force company for all SUPERUSER_ID action - local_context = dict(self.env.context, force_company=order.company_id.id, company_id=order.company_id.id) - if order.invoice_id: - Invoice += order.invoice_id + if order.account_move: + moves += order.account_move continue if not order.partner_id: raise UserError(_('Please provide a partner for the sale.')) - invoice = Invoice.new(order._prepare_invoice()) - invoice._onchange_partner_id() - invoice.fiscal_position_id = order.fiscal_position_id - - inv = invoice._convert_to_write({name: invoice[name] for name in invoice._cache}) - new_invoice = Invoice.with_context(local_context).sudo().create(inv) + move_vals = { + 'invoice_payment_ref': order.name, + 'invoice_origin': order.name, + 'journal_id': order.session_id.config_id.invoice_journal_id.id, + 'type': 'out_invoice' if order.amount_total >= 0 else 'out_refund', + 'ref': order.name, + 'partner_id': order.partner_id.id, + 'narration': order.note or '', + # considering partner's sale pricelist's currency + 'currency_id': order.pricelist_id.currency_id.id, + 'invoice_user_id': order.user_id.id, + 'fiscal_position_id': order.fiscal_position_id.id, + 'invoice_line_ids': [(0, None, order._prepare_invoice_line(line)) for line in order.lines], + } + new_move = moves.sudo()\ + .with_context(default_type=move_vals['type'], force_company=order.company_id.id)\ + .create(move_vals) message = _("This invoice has been created from the point of sale session: <a href=# data-oe-model=pos.order data-oe-id=%d>%s</a>") % (order.id, order.name) - new_invoice.message_post(body=message) - order.write({'invoice_id': new_invoice.id, 'state': 'invoiced'}) - Invoice += new_invoice - - for line in order.lines: - self.with_context(local_context)._action_create_invoice_line(line, new_invoice.id) - - new_invoice.with_context(local_context).sudo().compute_taxes() - order.sudo().write({'state': 'invoiced'}) + new_move.message_post(body=message) + order.write({'account_move': new_move.id, 'state': 'invoiced'}) + moves += new_move - if not Invoice: + if not moves: return {} return { 'name': _('Customer Invoice'), 'view_mode': 'form', - 'view_id': self.env.ref('account.invoice_form').id, - 'res_model': 'account.invoice', + 'view_id': self.env.ref('account.view_move_form').id, + 'res_model': 'account.move', 'context': "{'type':'out_invoice'}", 'type': 'ir.actions.act_window', 'nodestroy': True, 'target': 'current', - 'res_id': Invoice and Invoice.ids[0] or False, + 'res_id': moves and moves.ids[0] or False, } # this method is unused, and so is the state 'cancel' @@ -777,8 +732,7 @@ class PosOrder(models.Model): if to_invoice: pos_order.action_pos_order_invoice() - pos_order.invoice_id.sudo().with_context(force_company=self.env.user.company_id.id).action_invoice_open() - pos_order.account_move = pos_order.invoice_id.move_id + pos_order.account_move.sudo().with_context(force_company=self.env.user.company_id.id).post() return order_ids def test_paid(self): diff --git a/addons/point_of_sale/report/pos_invoice.py b/addons/point_of_sale/report/pos_invoice.py index 27b13ba67df..e3f669d00a3 100644 --- a/addons/point_of_sale/report/pos_invoice.py +++ b/addons/point_of_sale/report/pos_invoice.py @@ -15,8 +15,8 @@ class PosInvoiceReport(models.AbstractModel): ids_to_print = [] invoiced_posorders_ids = [] selected_orders = PosOrder.browse(docids) - for order in selected_orders.filtered(lambda o: o.invoice_id): - ids_to_print.append(order.invoice_id.id) + for order in selected_orders.filtered(lambda o: o.account_move): + ids_to_print.append(order.account_move.id) invoiced_posorders_ids.append(order.id) not_invoiced_orders_ids = list(set(docids) - set(invoiced_posorders_ids)) if not_invoiced_orders_ids: @@ -24,4 +24,4 @@ class PosInvoiceReport(models.AbstractModel): not_invoiced_orders_names = [a.name for a in not_invoiced_posorders] raise UserError(_('No link to an invoice for %s.') % ', '.join(not_invoiced_orders_names)) - return {'docs': self.env['account.invoice'].sudo().browse(ids_to_print)} + return {'docs': self.env['account.move'].sudo().browse(ids_to_print)} diff --git a/addons/point_of_sale/report/pos_order_report.py b/addons/point_of_sale/report/pos_order_report.py index be9f9e7e3c7..3111dc7fd3c 100644 --- a/addons/point_of_sale/report/pos_order_report.py +++ b/addons/point_of_sale/report/pos_order_report.py @@ -63,7 +63,7 @@ class PosOrderReport(models.Model): pt.pos_categ_id, s.pricelist_id, s.session_id, - s.invoice_id IS NOT NULL AS invoiced + s.account_move IS NOT NULL AS invoiced """ def _from(self): @@ -81,7 +81,7 @@ class PosOrderReport(models.Model): GROUP BY s.id, s.date_order, s.partner_id,s.state, pt.categ_id, s.user_id, s.location_id, s.company_id, s.sale_journal, - s.pricelist_id, s.invoice_id, s.create_date, s.session_id, + s.pricelist_id, s.account_move, s.create_date, s.session_id, l.product_id, pt.categ_id, pt.pos_categ_id, p.product_tmpl_id, diff --git a/addons/point_of_sale/tests/test_point_of_sale_flow.py b/addons/point_of_sale/tests/test_point_of_sale_flow.py index 0041ee18ea3..a3406706a36 100644 --- a/addons/point_of_sale/tests/test_point_of_sale_flow.py +++ b/addons/point_of_sale/tests/test_point_of_sale_flow.py @@ -304,7 +304,7 @@ class TestPointOfSaleFlow(TestPointOfSaleCommon): 'price_unit': 450, 'discount': 5.0, 'qty': 2.0, - 'tax_ids': [(6, 0, self.product3.taxes_id.ids)], + 'tax_ids': [(6, 0, self.product3.taxes_id.filtered(lambda t: t.company_id.id == self.company_id).ids)], 'price_subtotal': untax1, 'price_subtotal_incl': untax1 + atax1, }), (0, 0, { @@ -313,7 +313,7 @@ class TestPointOfSaleFlow(TestPointOfSaleCommon): 'price_unit': 300, 'discount': 5.0, 'qty': 3.0, - 'tax_ids': [(6, 0, self.product4.taxes_id.ids)], + 'tax_ids': [(6, 0, self.product4.taxes_id.filtered(lambda t: t.company_id.id == self.company_id).ids)], 'price_subtotal': untax2, 'price_subtotal_incl': untax2 + atax2, })], @@ -335,14 +335,14 @@ class TestPointOfSaleFlow(TestPointOfSaleCommon): # I check that the order is marked as paid and there is no invoice # attached to it self.assertEqual(self.pos_order_pos1.state, 'paid', "Order should be in paid state.") - self.assertFalse(self.pos_order_pos1.invoice_id, 'Invoice should not be attached to order.') + self.assertFalse(self.pos_order_pos1.account_move, 'Invoice should not be attached to order.') # I generate an invoice from the order res = self.pos_order_pos1.action_pos_order_invoice() self.assertIn('res_id', res, "No invoice created") # I test that the total of the attached invoice is correct - invoice = self.env['account.invoice'].browse(res['res_id']) + invoice = self.env['account.move'].browse(res['res_id']) self.assertAlmostEqual( invoice.amount_total, self.pos_order_pos1.amount_total, places=2, msg="Invoice not correct") @@ -713,16 +713,16 @@ class TestPointOfSaleFlow(TestPointOfSaleCommon): # I check that the order is marked as paid and there is no invoice # attached to it self.assertEqual(self.pos_order_pos1.state, 'paid', "Order should be in paid state.") - self.assertFalse(self.pos_order_pos1.invoice_id, 'Invoice should not be attached to order.') + self.assertFalse(self.pos_order_pos1.account_move, 'Invoice should not be attached to order.') # I generate an invoice from the order res = self.pos_order_pos1.action_pos_order_invoice() self.assertIn('res_id', res, "No invoice created") # I test that the total of the attached invoice is correct - invoice = self.env['account.invoice'].browse(res['res_id']) + invoice = self.env['account.move'].browse(res['res_id']) self.assertAlmostEqual( invoice.amount_total, self.pos_order_pos1.amount_total, places=2, msg="Invoice not correct") for iline in invoice.invoice_line_ids: - self.assertFalse(iline.invoice_line_tax_ids) + self.assertFalse(iline.tax_ids) diff --git a/addons/product_email_template/models/__init__.py b/addons/product_email_template/models/__init__.py index 2962f90f02e..6e7344e1748 100644 --- a/addons/product_email_template/models/__init__.py +++ b/addons/product_email_template/models/__init__.py @@ -1,4 +1,4 @@ # -*- coding: utf-8 -*- from . import product -from . import account_invoice
\ No newline at end of file +from . import account_move
\ No newline at end of file diff --git a/addons/product_email_template/models/account_invoice.py b/addons/product_email_template/models/account_move.py index 9668c8cdd58..87ed8e59663 100644 --- a/addons/product_email_template/models/account_invoice.py +++ b/addons/product_email_template/models/account_move.py @@ -3,8 +3,8 @@ from odoo import api, models -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' def invoice_validate_send_email(self): for invoice in self.filtered(lambda x: x.type == 'out_invoice'): @@ -18,7 +18,8 @@ class AccountInvoice(models.Model): return True @api.multi - def invoice_validate(self): - res = super(AccountInvoice, self).invoice_validate() + def post(self): + # OVERRIDE + res = super(AccountMove, self).post() self.invoice_validate_send_email() return res diff --git a/addons/product_margin/models/product_product.py b/addons/product_margin/models/product_product.py index 5e4d5565b59..362fc1fbccb 100644 --- a/addons/product_margin/models/product_product.py +++ b/addons/product_margin/models/product_product.py @@ -89,14 +89,17 @@ class ProductProduct(models.Model): res[val.id]['date_from'] = date_from res[val.id]['date_to'] = date_to res[val.id]['invoice_state'] = invoice_state - invoice_types = () states = () + invoice_payment_states = () if invoice_state == 'paid': - states = ('paid',) + states = ('posted',) + invoice_payment_states = ('paid',) elif invoice_state == 'open_paid': - states = ('open', 'paid') + states = ('posted',) + invoice_payment_states = ('not_paid', 'paid') elif invoice_state == 'draft_open_paid': - states = ('draft', 'open', 'paid') + states = ('posted', 'draft') + invoice_payment_states = ('not_paid', 'paid') if "force_company" in self.env.context: company_id = self.env.context['force_company'] else: @@ -104,29 +107,35 @@ class ProductProduct(models.Model): #Cost price is calculated afterwards as it is a property sqlstr = """ - select - sum(l.price_unit * l.quantity)/nullif(sum(l.quantity),0) as avg_unit_price, - sum(l.quantity) as num_qty, - sum(l.quantity * (l.price_subtotal_signed/(nullif(l.quantity,0)))) as total, - sum(l.quantity * pt.list_price) as sale_expected - from account_invoice_line l - left join account_invoice i on (l.invoice_id = i.id) - left join product_product product on (product.id=l.product_id) - left join product_template pt on (pt.id = product.product_tmpl_id) - where l.product_id = %s and i.state in %s and i.type IN %s and (i.date_invoice IS NULL or (i.date_invoice>=%s and i.date_invoice<=%s and i.company_id=%s)) + SELECT + SUM(l.price_unit * l.quantity)/NULLIF(SUM(l.quantity),0) AS avg_unit_price, + SUM(l.quantity) AS num_qty, + SUM(l.balance) AS total, + SUM(l.quantity * pt.list_price) AS sale_expected + FROM account_move_line l + LEFT JOIN account_move i ON (l.move_id = i.id) + LEFT JOIN product_product product ON (product.id=l.product_id) + LEFT JOIN product_template pt ON (pt.id = product.product_tmpl_id) + WHERE l.product_id = %s + AND i.state IN %s + AND i.invoice_payment_state IN %s + AND i.type IN %s + AND i.invoice_date BETWEEN %s AND %s + AND i.company_id = %s + AND l.display_type IS NULL """ invoice_types = ('out_invoice', 'in_refund') - self.env.cr.execute(sqlstr, (val.id, states, invoice_types, date_from, date_to, company_id)) + self.env.cr.execute(sqlstr, (val.id, states, invoice_payment_states, invoice_types, date_from, date_to, company_id)) result = self.env.cr.fetchall()[0] res[val.id]['sale_avg_price'] = result[0] and result[0] or 0.0 res[val.id]['sale_num_invoiced'] = result[1] and result[1] or 0.0 - res[val.id]['turnover'] = result[2] and result[2] or 0.0 + res[val.id]['turnover'] = result[2] and -result[2] or 0.0 res[val.id]['sale_expected'] = result[3] and result[3] or 0.0 res[val.id]['sales_gap'] = res[val.id]['sale_expected'] - res[val.id]['turnover'] ctx = self.env.context.copy() ctx['force_company'] = company_id invoice_types = ('in_invoice', 'out_refund') - self.env.cr.execute(sqlstr, (val.id, states, invoice_types, date_from, date_to, company_id)) + self.env.cr.execute(sqlstr, (val.id, states, invoice_payment_states, invoice_types, date_from, date_to, company_id)) result = self.env.cr.fetchall()[0] res[val.id]['purchase_avg_price'] = result[0] and result[0] or 0.0 res[val.id]['purchase_num_invoiced'] = result[1] and result[1] or 0.0 diff --git a/addons/product_margin/tests/test_product_margin.py b/addons/product_margin/tests/test_product_margin.py index 9cc292dd82d..9626b47bb6d 100644 --- a/addons/product_margin/tests/test_product_margin.py +++ b/addons/product_margin/tests/test_product_margin.py @@ -10,7 +10,7 @@ class TestProductMargin(common.TransactionCase): def create_account_invoice(self, invoice_type, partner, product, quantity=0.0, price_unit=0.0): """ Create an invoice as in a view by triggering its onchange methods""" - invoice_form = Form(self.env['account.invoice'].with_context(type=invoice_type)) + invoice_form = Form(self.env['account.move'].with_context(default_type=invoice_type)) invoice_form.partner_id = partner with invoice_form.invoice_line_ids.new() as line: line.product_id = product @@ -18,7 +18,7 @@ class TestProductMargin(common.TransactionCase): line.price_unit = price_unit invoice = invoice_form.save() - invoice.action_invoice_open() + invoice.post() return invoice def test_product_margin(self): diff --git a/addons/purchase/__manifest__.py b/addons/purchase/__manifest__.py index 1565066cc8e..cf3743bb15d 100644 --- a/addons/purchase/__manifest__.py +++ b/addons/purchase/__manifest__.py @@ -13,7 +13,7 @@ 'data': [ 'security/purchase_security.xml', 'security/ir.model.access.csv', - 'views/account_invoice_views.xml', + 'views/account_move_views.xml', 'data/purchase_data.xml', 'report/purchase_reports.xml', 'views/purchase_views.xml', diff --git a/addons/purchase/models/account_invoice.py b/addons/purchase/models/account_invoice.py index 130c40a7d61..9e1f867a7ea 100644 --- a/addons/purchase/models/account_invoice.py +++ b/addons/purchase/models/account_invoice.py @@ -2,191 +2,112 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, _ -from odoo.tools.float_utils import float_compare - - -class AccountInvoice(models.Model): - _inherit = 'account.invoice' - - purchase_id = fields.Many2one( - comodel_name='purchase.order', - string='Add Purchase Order', - readonly=True, states={'draft': [('readonly', False)]}, - help='Load the vendor bill based on selected purchase order. Several PO can be selected.' - ) - vendor_bill_purchase_id = fields.Many2one( - comodel_name='purchase.bill.union', - string='Auto-Complete' - ) - - @api.onchange('vendor_bill_purchase_id') - def _onchange_bill_purchase_order(self): - if not self.vendor_bill_purchase_id: - return {} - self.purchase_id = self.vendor_bill_purchase_id.purchase_order_id - self.vendor_bill_id = self.vendor_bill_purchase_id.vendor_bill_id - self.vendor_bill_purchase_id = False - return {} - - @api.onchange('state', 'partner_id', 'invoice_line_ids') - def _onchange_allowed_purchase_ids(self): - ''' - The purpose of the method is to define a domain for the available - purchase orders. + + +class AccountMove(models.Model): + _inherit = 'account.move' + + purchase_vendor_bill_id = fields.Many2one('purchase.bill.union', store=False, readonly=True, + states={'draft': [('readonly', False)]}, + string='Auto-complete', + help="Auto-complete from a past bill / purchase order.") + purchase_id = fields.Many2one('purchase.order', store=False, readonly=True, + states={'draft': [('readonly', False)]}, + string='Purchase Order', + help="Auto-complete from a past purchase order.") + + @api.onchange('purchase_vendor_bill_id', 'purchase_id') + def _onchange_purchase_auto_complete(self): + ''' Load from either an old purchase order, either an old vendor bill. + + When setting a 'purchase.bill.union' in 'purchase_vendor_bill_id': + * If it's a vendor bill, 'invoice_vendor_bill_id' is set and the loading is done by '_onchange_invoice_vendor_bill'. + * If it's a purchase order, 'purchase_id' is set and this method will load lines. + + /!\ All this not-stored fields must be empty at the end of this function. ''' - result = {} - - # A PO can be selected only if at least one PO line is not already in the invoice - purchase_line_ids = self.invoice_line_ids.mapped('purchase_line_id') - purchase_ids = self.invoice_line_ids.mapped('purchase_id').filtered(lambda r: r.order_line <= purchase_line_ids) - - domain = [('invoice_status', 'in', ['to invoice', 'no'])] - if self.partner_id: - domain += [('partner_id', 'child_of', self.partner_id.id)] - if purchase_ids: - domain += [('id', 'not in', purchase_ids.ids)] - result['domain'] = {'purchase_id': domain} - return result - - def _prepare_invoice_line_from_po_line(self, line): - if line.product_id.purchase_method == 'purchase': - qty = line.product_qty - line.qty_invoiced - else: - qty = line.qty_received - line.qty_invoiced - if float_compare(qty, 0.0, precision_rounding=line.product_uom.rounding) <= 0: - qty = 0.0 - taxes = line.taxes_id - invoice_line_tax_ids = line.order_id.fiscal_position_id.map_tax(taxes, line.product_id, line.order_id.partner_id) - invoice_line = self.env['account.invoice.line'] - date = self.date or self.date_invoice - data = { - 'purchase_line_id': line.id, - 'name': line.order_id.name + ': ' + line.name, - 'origin': line.order_id.origin, - 'uom_id': line.product_uom.id, - 'product_id': line.product_id.id, - 'account_id': invoice_line.with_context({'journal_id': self.journal_id.id, 'type': 'in_invoice'})._default_account(), - 'price_unit': line.order_id.currency_id._convert( - line.price_unit, self.currency_id, line.company_id, date or fields.Date.today(), round=False), - 'quantity': qty, - 'discount': 0.0, - 'account_analytic_id': line.account_analytic_id.id, - 'analytic_tag_ids': line.analytic_tag_ids.ids, - 'invoice_line_tax_ids': invoice_line_tax_ids.ids - } - account = invoice_line.get_invoice_line_account('in_invoice', line.product_id, line.order_id.fiscal_position_id, self.env.company) - if account: - data['account_id'] = account.id - return data - - def _onchange_product_id(self): - domain = super(AccountInvoice, self)._onchange_product_id() - if self.purchase_id: - # Use the purchase uom by default - self.uom_id = self.product_id.uom_po_id - return domain - - # Load all unsold PO lines - @api.onchange('purchase_id') - def purchase_order_change(self): + if self.purchase_vendor_bill_id.vendor_bill_id: + self.invoice_vendor_bill_id = self.purchase_vendor_bill_id.vendor_bill_id + self._onchange_invoice_vendor_bill() + elif self.purchase_vendor_bill_id.purchase_order_id: + self.purchase_id = self.purchase_vendor_bill_id.purchase_order_id + self.purchase_vendor_bill_id = False + if not self.purchase_id: - return {} - if not self.partner_id: - self.partner_id = self.purchase_id.partner_id.id - - vendor_ref = self.purchase_id.partner_ref - if vendor_ref and (not self.reference or ( - vendor_ref + ", " not in self.reference and not self.reference.endswith(vendor_ref))): - self.reference = ", ".join([self.reference, vendor_ref]) if self.reference else vendor_ref - - if not self.invoice_line_ids: - #as there's no invoice line yet, we keep the currency of the PO - self.currency_id = self.purchase_id.currency_id - - new_lines = self.env['account.invoice.line'] - for line in self.purchase_id.order_line - self.invoice_line_ids.mapped('purchase_line_id'): - data = self._prepare_invoice_line_from_po_line(line) - new_line = new_lines.new(data) + return + + # Copy partner. + self.partner_id = self.purchase_id.partner_id + self.fiscal_position_id = self.purchase_id.fiscal_position_id + self.invoice_payment_term_id = self.purchase_id.payment_term_id + self.currency_id = self.purchase_id.currency_id + + # Copy purchase lines. + po_lines = self.purchase_id.order_line - self.line_ids.mapped('purchase_line_id') + new_lines = self.env['account.move.line'] + for line in po_lines: + new_line = new_lines.new(line._prepare_account_move_line(self)) + new_line.account_id = new_line._get_computed_account() + new_line._onchange_price_subtotal() new_lines += new_line + new_lines._onchange_mark_recompute_taxes() - self.invoice_line_ids += new_lines - self.payment_term_id = self.purchase_id.payment_term_id - self.env.context = dict(self.env.context, from_purchase_order_change=True) - self.purchase_id = False - return {} - - @api.onchange('currency_id') - def _onchange_currency_id(self): - if self.currency_id: - for line in self.invoice_line_ids.filtered(lambda r: r.purchase_line_id): - date = self.date or self.date_invoice or fields.Date.today() - company = self.company_id - line.price_unit = line.purchase_id.currency_id._convert( - line.purchase_line_id.price_unit, self.currency_id, company, date, round=False) - - @api.onchange('invoice_line_ids') - def _onchange_origin(self): - purchase_ids = self.invoice_line_ids.mapped('purchase_id') - if purchase_ids: - self.origin = ', '.join(purchase_ids.mapped('name')) - - @api.onchange('partner_id', 'company_id') - def _onchange_partner_id(self): - payment_term_id = self.env.context.get('from_purchase_order_change') and self.payment_term_id or False - res = super(AccountInvoice, self)._onchange_partner_id() - if payment_term_id: - self.payment_term_id = payment_term_id - if not self.env.context.get('default_journal_id') and self.partner_id and\ - self.type in ['in_invoice', 'in_refund'] and\ - self.currency_id != self.partner_id.property_purchase_currency_id and\ - self.partner_id.property_purchase_currency_id.id: - journal_domain = [ - ('type', '=', 'purchase'), - ('company_id', '=', self.company_id.id), - ('currency_id', '=', self.partner_id.property_purchase_currency_id.id), - ] - default_journal_id = self.env['account.journal'].search(journal_domain, limit=1) - if default_journal_id: - self.journal_id = default_journal_id - if self.env.context.get('default_currency_id'): - self.currency_id = self.env.context['default_currency_id'] - if self.partner_id.property_purchase_currency_id: - self.currency_id = self.partner_id.property_purchase_currency_id - return res + # Compute invoice_origin. + origins = set(self.line_ids.mapped('purchase_line_id.order_id.name')) + self.invoice_origin = ','.join(list(origins)) - @api.model - def create(self, vals): - invoice = super(AccountInvoice, self).create(vals) - purchase = invoice.invoice_line_ids.mapped('purchase_line_id.order_id') - if purchase and not invoice.refund_invoice_id: - message = _("This vendor bill has been created from: %s") % (",".join(["<a href=# data-oe-model=purchase.order data-oe-id=" + str(order.id) + ">" + order.name + "</a>" for order in purchase])) - invoice.message_post(body=message) - return invoice + # Compute ref. + refs = set(self.line_ids.mapped('purchase_line_id.order_id.partner_ref')) + refs = [ref for ref in refs if ref] + self.ref = ','.join(refs) + + # Compute _invoice_payment_ref. + if len(refs) == 1: + self._invoice_payment_ref = refs[0] + + self.purchase_id = False + self._onchange_currency() + + @api.model_create_multi + def create(self, vals_list): + # OVERRIDE + moves = super(AccountMove, self).create(vals_list) + for move in moves: + if move.reversed_entry_id: + continue + purchase = move.line_ids.mapped('purchase_line_id.order_id') + if not purchase: + continue + refs = ["<a href=# data-oe-model=purchase.order data-oe-id=%s>%s</a>" % tuple(name_get) for name_get in purchase.name_get()] + message = _("This vendor bill has been created from: %s") % ','.join(refs) + move.message_post(body=message) + return moves @api.multi def write(self, vals): - result = True - for invoice in self: - purchase_old = invoice.invoice_line_ids.mapped('purchase_line_id.order_id') - result = result and super(AccountInvoice, invoice).write(vals) - purchase_new = invoice.invoice_line_ids.mapped('purchase_line_id.order_id') - #To get all po reference when updating invoice line or adding purchase order reference from vendor bill. - purchase = (purchase_old | purchase_new) - (purchase_old & purchase_new) - if purchase: - message = _("This vendor bill has been modified from: %s") % (",".join(["<a href=# data-oe-model=purchase.order data-oe-id=" + str(order.id) + ">" + order.name + "</a>" for order in purchase])) - invoice.message_post(body=message) - return result - - def _get_onchange_create(self): - res = super()._get_onchange_create() - res['_onchange_partner_id'].append('currency_id') + # OVERRIDE + old_purchases = [move.mapped('line_ids.purchase_line_id.order_id') for move in self] + res = super(AccountMove, self).write(vals) + for i, move in enumerate(self): + new_purchases = move.mapped('line_ids.purchase_line_id.order_id') + if not new_purchases: + continue + diff_purchases = new_purchases - old_purchases[i] + if diff_purchases: + refs = ["<a href=# data-oe-model=purchase.order data-oe-id=%s>%s</a>" % tuple(name_get) for name_get in diff_purchases.name_get()] + message = _("This vendor bill has been modified from: %s") % ','.join(refs) + move.message_post(body=message) return res -class AccountInvoiceLine(models.Model): +class AccountMoveLine(models.Model): """ Override AccountInvoice_line to add the link to the purchase order line it is related to""" - _inherit = 'account.invoice.line' + _inherit = 'account.move.line' + + purchase_line_id = fields.Many2one('purchase.order.line', 'Purchase Order Line', ondelete='set null', index=True) - purchase_line_id = fields.Many2one('purchase.order.line', 'Purchase Order Line', ondelete='set null', index=True, readonly=True) - purchase_id = fields.Many2one('purchase.order', related='purchase_line_id.order_id', string='Purchase Order', store=False, readonly=True, related_sudo=False, - help='Associated Purchase Order. Filled in automatically when a PO is chosen on the vendor bill.') + @api.multi + def _copy_data_extend_business_fields(self, values): + # OVERRIDE to copy the 'purchase_line_id' field as well. + super(AccountMoveLine, self)._copy_data_extend_business_fields(values) + values['purchase_line_id'] = self.purchase_line_id.id diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py index c6aee321bab..7169399e3f7 100644 --- a/addons/purchase/models/purchase.py +++ b/addons/purchase/models/purchase.py @@ -59,12 +59,10 @@ class PurchaseOrder(models.Model): else: order.invoice_status = 'no' - @api.depends('order_line.invoice_lines.invoice_id') + @api.depends('order_line.invoice_lines.move_id') def _compute_invoice(self): for order in self: - invoices = self.env['account.invoice'] - for line in order.order_line: - invoices |= line.invoice_lines.mapped('invoice_id') + invoices = order.mapped('order_line.invoice_lines.move_id') order.invoice_ids = invoices order.invoice_count = len(invoices) @@ -104,7 +102,7 @@ class PurchaseOrder(models.Model): notes = fields.Text('Terms and Conditions') invoice_count = fields.Integer(compute="_compute_invoice", string='Bill Count', copy=False, default=0, store=True) - invoice_ids = fields.Many2many('account.invoice', compute="_compute_invoice", string='Bills', copy=False, store=True) + invoice_ids = fields.Many2many('account.move', compute="_compute_invoice", string='Bills', copy=False, store=True) invoice_status = fields.Selection([ ('no', 'Nothing to Bill'), ('to invoice', 'Waiting Bills'), @@ -398,22 +396,19 @@ class PurchaseOrder(models.Model): This function returns an action that display existing vendor bills of given purchase order ids. When only one found, show the vendor bill immediately. ''' - action = self.env.ref('account.action_vendor_bill_template') + action = self.env.ref('account.action_move_in_invoice_type') result = action.read()[0] create_bill = self.env.context.get('create_bill', False) # override the context to get rid of the default filtering result['context'] = { - 'type': 'in_invoice', + 'default_type': 'in_invoice', 'default_purchase_id': self.id, - 'default_currency_id': self.currency_id.id, - 'default_company_id': self.company_id.id, - 'company_id': self.company_id.id } # choose the view_mode accordingly if len(self.invoice_ids) > 1 and not create_bill: result['domain'] = "[('id', 'in', " + str(self.invoice_ids.ids) + ")]" else: - res = self.env.ref('account.invoice_supplier_form', False) + res = self.env.ref('account.view_move_form', False) result['views'] = [(res and res.id or False, 'form')] # Do not set an invoice_id if we want to create a new bill. if not create_bill: @@ -455,7 +450,7 @@ class PurchaseOrderLine(models.Model): company_id = fields.Many2one('res.company', related='order_id.company_id', string='Company', store=True, readonly=True) state = fields.Selection(related='order_id.state', store=True, readonly=False) - invoice_lines = fields.One2many('account.invoice.line', 'purchase_line_id', string="Bill Lines", readonly=True, copy=False) + invoice_lines = fields.One2many('account.move.line', 'purchase_line_id', string="Bill Lines", readonly=True, copy=False) # Replace by invoiced Qty qty_invoiced = fields.Float(compute='_compute_qty_invoiced', string="Billed Qty", digits=dp.get_precision('Product Unit of Measure'), store=True) @@ -510,16 +505,16 @@ class PurchaseOrderLine(models.Model): taxes = line.product_id.supplier_taxes_id.filtered(lambda r: not line.company_id or r.company_id == line.company_id) line.taxes_id = fpos.map_tax(taxes, line.product_id, line.order_id.partner_id) if fpos else taxes - @api.depends('invoice_lines.invoice_id.state', 'invoice_lines.quantity') + @api.depends('invoice_lines.move_id.state', 'invoice_lines.quantity') def _compute_qty_invoiced(self): for line in self: qty = 0.0 for inv_line in line.invoice_lines: - if inv_line.invoice_id.state not in ['cancel']: - if inv_line.invoice_id.type == 'in_invoice': - qty += inv_line.uom_id._compute_quantity(inv_line.quantity, line.product_uom) - elif inv_line.invoice_id.type == 'in_refund': - qty -= inv_line.uom_id._compute_quantity(inv_line.quantity, line.product_uom) + if inv_line.move_id.state not in ['cancel']: + if inv_line.move_id.type == 'in_invoice': + qty += inv_line.product_uom_id._compute_quantity(inv_line.quantity, line.product_uom) + elif inv_line.move_id.type == 'in_refund': + qty -= inv_line.product_uom_id._compute_quantity(inv_line.quantity, line.product_uom) line.qty_invoiced = qty @api.multi @@ -696,3 +691,34 @@ class PurchaseOrderLine(models.Model): self.product_uom = seller_min_qty[0].product_uom else: self.product_qty = 1.0 + + @api.multi + def _prepare_account_move_line(self, move): + self.ensure_one() + if self.product_id.purchase_method == 'purchase': + qty = self.product_qty - self.qty_invoiced + else: + qty = self.qty_received - self.qty_invoiced + if float_compare(qty, 0.0, precision_rounding=self.product_uom.rounding) <= 0: + qty = 0.0 + + if self.currency_id == move.company_id.currency_id: + currency = False + else: + currency = move.currency_id + + return { + 'name': '%s: %s' % (self.order_id.name, self.name), + 'move_id': move.id, + 'currency_id': currency and currency.id or False, + 'purchase_line_id': self.id, + 'date_maturity': move.invoice_date_due, + 'product_uom_id': self.product_uom.id, + 'product_id': self.product_id.id, + 'price_unit': self.price_unit, + 'quantity': qty, + 'partner_id': move.partner_id.id, + 'analytic_account_id': self.account_analytic_id.id, + 'analytic_tag_ids': [(6, 0, self.analytic_tag_ids.ids)], + 'tax_ids': [(6, 0, self.taxes_id.ids)], + } diff --git a/addons/purchase/models/res_partner.py b/addons/purchase/models/res_partner.py index f62f589e57c..3fbe6acd12c 100644 --- a/addons/purchase/models/res_partner.py +++ b/addons/purchase/models/res_partner.py @@ -32,7 +32,7 @@ class res_partner(models.Model): all_partners = self.search([('id', 'child_of', self.ids)]) all_partners.read(['parent_id']) - supplier_invoice_groups = self.env['account.invoice'].read_group( + supplier_invoice_groups = self.env['account.move'].read_group( domain=[('partner_id', 'in', all_partners.ids), ('type', 'in', ('in_invoice', 'in_refund'))], fields=['partner_id'], groupby=['partner_id'] diff --git a/addons/purchase/report/purchase_bill.py b/addons/purchase/report/purchase_bill.py index 009ce1f6ac8..0a9609144b8 100644 --- a/addons/purchase/report/purchase_bill.py +++ b/addons/purchase/report/purchase_bill.py @@ -17,7 +17,7 @@ class PurchaseBillUnion(models.Model): amount = fields.Float(string='Amount', readonly=True) currency_id = fields.Many2one('res.currency', string='Currency', readonly=True) company_id = fields.Many2one('res.company', 'Company', readonly=True) - vendor_bill_id = fields.Many2one('account.invoice', string='Vendor Bill', readonly=True) + vendor_bill_id = fields.Many2one('account.move', string='Vendor Bill', readonly=True) purchase_order_id = fields.Many2one('purchase.order', string='Purchase Order', readonly=True) @api.model_cr @@ -26,14 +26,14 @@ class PurchaseBillUnion(models.Model): self.env.cr.execute(""" CREATE OR REPLACE VIEW purchase_bill_union AS ( SELECT - id, number as name, reference, partner_id, date, amount_untaxed as amount, currency_id, company_id, + id, name, ref as reference, partner_id, date, amount_untaxed as amount, currency_id, company_id, id as vendor_bill_id, NULL as purchase_order_id - FROM account_invoice + FROM account_move WHERE - type='in_invoice' and COALESCE(number, '') != '' + type='in_invoice' and state = 'posted' UNION SELECT - -id, name, partner_ref, partner_id, date_order::date as date, amount_untaxed as amount, currency_id, company_id, + -id, name, partner_ref as reference, partner_id, date_order::date as date, amount_untaxed as amount, currency_id, company_id, NULL as vendor_bill_id, id as purchase_order_id FROM purchase_order WHERE diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv index 7c8e0e11ad6..6784aa839e9 100644 --- a/addons/purchase/security/ir.model.access.csv +++ b/addons/purchase/security/ir.model.access.csv @@ -12,11 +12,8 @@ access_account_tax_purchase_user_manager,account.tax,account.model_account_tax,g access_product_product_purchase_user,product.product.purchase.user,product.model_product_product,group_purchase_user,1,0,0,0
access_product_product_purchase_manager,product.product purchase_manager,product.model_product_product,purchase.group_purchase_manager,1,1,1,1
access_product_template_purchase_user,product.template purchase_user,product.model_product_template,group_purchase_user,1,0,0,0
-access_account_invoice_purchase,account_invoice purchase,account.model_account_invoice,group_purchase_user,1,1,1,1
-access_account_invoice_line_purchase,account_invoice.line purchase,account.model_account_invoice_line,group_purchase_user,1,1,1,1
-access_account_invoice_purchase_manager,account_invoice purchase manager,account.model_account_invoice,group_purchase_manager,1,0,0,0
-access_account_invoice_line_purchase_manager,account_invoice.line purchase manager,account.model_account_invoice_line,group_purchase_manager,1,0,0,0
-access_account_invoice_tax_purchase,account_invoice.tax purchase,account.model_account_invoice_tax,group_purchase_user,1,1,1,1
+access_account_move_purchase,account_move purchase,account.model_account_move,group_purchase_user,1,1,1,1
+access_account_move_purchase_manager,account_move purchase manager,account.model_account_move,group_purchase_manager,1,0,0,0
access_account_fiscal_position_purchase_user,account.fiscal.position purchase,account.model_account_fiscal_position,group_purchase_user,1,0,0,0
access_res_partner_purchase_user,res.partner purchase,base.model_res_partner,group_purchase_user,1,0,0,0
access_account_journal,account.journal,account.model_account_journal,group_purchase_user,1,0,0,0
diff --git a/addons/purchase/tests/test_purchase_order_report.py b/addons/purchase/tests/test_purchase_order_report.py index 24750e71d60..b78a83d9829 100644 --- a/addons/purchase/tests/test_purchase_order_report.py +++ b/addons/purchase/tests/test_purchase_order_report.py @@ -56,11 +56,11 @@ class TestPurchaseOrderReport(common.TransactionCase): }) po.button_confirm() - f = Form(self.env['account.invoice']) + f = Form(self.env['account.move']) f.partner_id = po.partner_id f.purchase_id = po invoice = f.save() - invoice.action_invoice_open() + invoice.post() res_product1 = self.PurchaseReport.search([ ('order_id', '=', po.id), ('product_id', '=', self.product1.id)]) diff --git a/addons/purchase/views/account_invoice_views.xml b/addons/purchase/views/account_invoice_views.xml deleted file mode 100644 index a8b1affcbde..00000000000 --- a/addons/purchase/views/account_invoice_views.xml +++ /dev/null @@ -1,88 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <record id="action_invoice_pending" model="ir.actions.act_window"> - <field name="name">Vendor Bills</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','=','in_invoice')]</field> - <field name="context">{'default_type':'in_invoice', 'type':'in_invoice', 'journal_type': 'purchase'}</field> - <field name="search_view_id" ref="account.view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Create a vendor bill - </p><p> - Use this menu to control the invoices to be received from your - vendors. When registering a new bill, set the purchase order - and Odoo will fill the bill automatically according to ordered - or received quantities. - </p> - </field> - </record> - - <record id="purchase_open_invoice" model="ir.actions.act_window"> - <field name="name">Vendor Bills</field> - <field name="res_model">account.invoice</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph</field> - <field eval="False" name="view_id"/> - <field name="domain">[('type','in',('in_invoice', 'in_refund')),('purchase_id','=',active_id)]</field> - <field name="context">{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase', 'default_purchase_id': active_id}</field> - <field name="search_view_id" ref="account.view_account_invoice_filter"/> - <field name="help" type="html"> - <p class="o_view_nocontent_smiling_face"> - Record a vendor bill related to this purchase - </p><p> - You can control the invoice from your vendor according to - what you purchased (services) or received (products). - </p> - </field> - </record> - <record id="action_invoice_supplier_tree1_view1" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="account.invoice_supplier_tree"/> - <field name="act_window_id" ref="purchase_open_invoice"/> - </record> - <record id="action_invoice__supplier_tree1_view2" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">form</field> - <field name="view_id" ref="account.invoice_supplier_form"/> - <field name="act_window_id" ref="purchase_open_invoice"/> - </record> - - <record id="view_invoice_supplier_purchase_form" model="ir.ui.view"> - <field name="name">account.invoice.supplier.purchase</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="groups_id" eval="[(4,ref('purchase.group_purchase_user'))]"/> - <field name="arch" type="xml"> - <field name="vendor_bill_id" position="after"> - <field name="vendor_bill_purchase_id" attrs="{'invisible': ['|', '|', ('state','not in',['draft']), ('state', '=', 'purchase'), ('type', '=', 'in_refund')]}" - class="oe_edit_only" domain="[('partner_id','child_of',[partner_id])]" - placeholder="Select a purchase order or an old bill" - options="{'no_create': True, 'no_open': True}"/> - <field name="purchase_id" class="oe_edit_only" - invisible="1" context="{'show_total_amount': True}"/> - </field> - <field name="vendor_bill_id" position="attributes"> - <attribute name="attrs">{'invisible': ['|', ('type', '=', 'in_invoice'), ('state', 'not in', ['draft'])]}</attribute> - </field> - <xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='company_id']" position="after"> - <field name="purchase_line_id" invisible="1" readonly="0"/> - <field name="purchase_id" invisible="1" readonly="0"/> - </xpath> - </field> - </record> - - <record id="view_invoice_line_form_inherit_purchase" model="ir.ui.view"> - <field name="name">account.invoice.line.form.inherit.purchase</field> - <field name="model">account.invoice.line</field> - <field name="inherit_id" ref="account.view_invoice_line_form"/> - <field name="arch" type="xml"> - <field name="account_id" position="before"> - <field name="purchase_id" invisible="context.get('type') in ('out_invoice', 'out_refund')"/> - </field> - </field> - </record> - -</odoo> diff --git a/addons/purchase/views/account_move_views.xml b/addons/purchase/views/account_move_views.xml new file mode 100644 index 00000000000..f60fe6490b1 --- /dev/null +++ b/addons/purchase/views/account_move_views.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <record id="view_move_form_inherit_purchase" model="ir.ui.view"> + <field name="name">account.move.inherit.purchase</field> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> + <field name="groups_id" eval="[(4, ref('purchase.group_purchase_user'))]"/> + <field name="arch" type="xml"> + <!-- Auto-complete could be done from either a bill either a purchase order --> + <field name="invoice_vendor_bill_id" position="after"> + <field name="purchase_id" invisible="1"/> + <field name="purchase_vendor_bill_id" + attrs="{'invisible': ['|', '|', ('state','not in',['draft']), ('state', '=', 'purchase'), ('type', '!=', 'in_invoice')]}" + class="oe_edit_only" + domain="[('company_id', '=', company_id), ('partner_id','child_of', [partner_id])]" + placeholder="Select a purchase order or an old bill" + context="{'show_total_amount': True}" + options="{'no_create': True, 'no_open': True}"/> + </field> + <field name="invoice_vendor_bill_id" position="attributes"> + <attribute name="invisible">1</attribute> + </field> + <!-- Add link to purchase_line_id to account.move.line --> + <xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='company_id']" position="after"> + <field name="purchase_line_id" invisible="1"/> + </xpath> + <xpath expr="//field[@name='line_ids']/tree/field[@name='company_id']" position="after"> + <field name="purchase_line_id" invisible="1"/> + </xpath> + </field> + </record> +</odoo> diff --git a/addons/purchase/views/purchase_views.xml b/addons/purchase/views/purchase_views.xml index 6ff2769eb7e..d5b320c6d33 100644 --- a/addons/purchase/views/purchase_views.xml +++ b/addons/purchase/views/purchase_views.xml @@ -45,7 +45,7 @@ <!--Invoice control--> <menuitem id="menu_procurement_management_pending_invoice" - action="action_invoice_pending" + action="account.action_move_in_invoice_type" parent="menu_purchase_control" sequence="13"/> diff --git a/addons/purchase/views/res_partner_views.xml b/addons/purchase/views/res_partner_views.xml index 8bd9514d40c..460b8e81219 100644 --- a/addons/purchase/views/res_partner_views.xml +++ b/addons/purchase/views/res_partner_views.xml @@ -48,10 +48,10 @@ <record id="act_res_partner_2_supplier_invoices" model="ir.actions.act_window"> <field name="name">Vendor Bills</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="view_mode">tree,form,graph</field> <field name="domain">[('type','in',('in_invoice', 'in_refund'))]</field> - <field name="context">{'search_default_partner_id': active_id, 'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field> + <field name="context">{'search_default_partner_id': active_id, 'default_type': 'in_invoice'}</field> <field name="help" type="html"> <p class="o_view_nocontent_smiling_face"> Record a new vendor bill diff --git a/addons/purchase_stock/models/account_invoice.py b/addons/purchase_stock/models/account_invoice.py index 78292718a55..5658c8d4f9c 100644 --- a/addons/purchase_stock/models/account_invoice.py +++ b/addons/purchase_stock/models/account_invoice.py @@ -5,151 +5,171 @@ from odoo import api, fields, models from odoo.tools.float_utils import float_compare -class AccountInvoice(models.Model): - _inherit = 'account.invoice' - - @api.model - def invoice_line_move_line_get(self): - res = super(AccountInvoice, self).invoice_line_move_line_get() - - if self.env.company.anglo_saxon_accounting: - if self.type in ['in_invoice', 'in_refund']: - for i_line in self.invoice_line_ids: - res.extend(self._anglo_saxon_purchase_move_lines(i_line, res)) - return res - - @api.model - def _anglo_saxon_purchase_move_lines(self, i_line, res): - """Return the additional move lines for purchase invoices and refunds. - - i_line: An account.invoice.line object. - res: The move line entries produced so far by the parent move_line_get. - """ - inv = i_line.invoice_id - company_currency = inv.company_id.currency_id - if i_line.product_id and i_line.product_id.valuation == 'real_time' and i_line.product_id.type == 'product': - # get the fiscal position - fpos = i_line.invoice_id.fiscal_position_id - # get the price difference account at the product - acc = i_line.product_id.property_account_creditor_price_difference - if not acc: - # if not found on the product get the price difference account at the category - acc = i_line.product_id.categ_id.property_account_creditor_price_difference_categ - acc = fpos.map_account(acc).id - # reference_account_id is the stock input account - reference_account_id = i_line.product_id.product_tmpl_id.get_product_accounts(fiscal_pos=fpos)['stock_input'].id - diff_res = [] - # calculate and write down the possible price difference between invoice price and product price - for line in res: - if line.get('invl_id', 0) == i_line.id and reference_account_id == line['account_id']: - # valuation_price unit is always expressed in invoice currency, so that it can always be computed with the good rate - valuation_price_unit = company_currency._convert( - i_line.product_id.uom_id._compute_price(i_line.product_id.standard_price, i_line.uom_id), - inv.currency_id, - company=inv.company_id, date=fields.Date.today(), round=False, - ) +class AccountMove(models.Model): + _inherit = 'account.move' + + @api.multi + def _stock_account_prepare_anglo_saxon_in_lines_vals(self): + ''' Prepare values used to create the journal items (account.move.line) corresponding to the price difference + lines for vendor bills. + + Example: + + Buy a product having a cost of 9 and a supplier price of 10 and being a storable product and having a perpetual + valuation in FIFO. The vendor bill's journal entries looks like: + + Account | Debit | Credit + --------------------------------------------------------------- + 101120 Stock Interim Account (Received) | 10.0 | + --------------------------------------------------------------- + 101100 Account Payable | | 10.0 + --------------------------------------------------------------- + + This method computes values used to make two additional journal items: + + --------------------------------------------------------------- + 101120 Stock Interim Account (Received) | | 1.0 + --------------------------------------------------------------- + xxxxxx Price Difference Account | 1.0 | + --------------------------------------------------------------- + + :return: A list of Python dictionary to be passed to env['account.move.line'].create. + ''' + lines_vals_list = [] + + for move in self: + if move.type not in ('in_invoice', 'in_refund', 'in_receipt') or not move.company_id.anglo_saxon_accounting: + continue + + for line in move.invoice_line_ids.filtered(lambda line: line.product_id.type == 'product' and line.product_id.valuation == 'real_time'): + + # Filter out lines being not eligible for price difference. + if line.product_id.type != 'product' or line.product_id.valuation != 'real_time': + continue + + # Retrieve accounts needed to generate the price difference. + debit_pdiff_account = line.product_id.property_account_creditor_price_difference \ + or line.product_id.categ_id.property_account_creditor_price_difference_categ + debit_pdiff_account = move.fiscal_position_id.map_account(debit_pdiff_account) + + if line.product_id.cost_method != 'standard' and line.purchase_line_id: + po_currency = line.purchase_line_id.currency_id + po_company = line.purchase_line_id.company_id + + # Retrieve stock valuation moves. + valuation_stock_moves = self.env['stock.move'].search([ + ('purchase_line_id', '=', line.purchase_line_id.id), + ('state', '=', 'done'), + ('product_qty', '!=', 0.0), + ]) + if move.type == 'in_refund': + valuation_stock_moves = valuation_stock_moves.filtered(lambda stock_move: stock_move._is_out()) + else: + valuation_stock_moves = valuation_stock_moves.filtered(lambda stock_move: stock_move._is_in()) + + if valuation_stock_moves: + valuation_price_unit_total = 0 + valuation_total_qty = 0 + for val_stock_move in valuation_stock_moves: + # In case val_stock_move is a return move, its valuation entries have been made with the + # currency rate corresponding to the original stock move + valuation_date = val_stock_move.origin_returned_move_id.date or val_stock_move.date + layers_qty = sum(val_stock_move.mapped('stock_valuation_layer_ids.quantity')) + layers_values = sum(val_stock_move.mapped('stock_valuation_layer_ids.value')) + valuation_price_unit_total += line.company_currency_id._convert( + layers_values, move.currency_id, + move.company_id, valuation_date, round=False, + ) + valuation_total_qty += layers_qty + valuation_price_unit = valuation_price_unit_total / valuation_total_qty + valuation_price_unit = line.product_id.uom_id._compute_price(valuation_price_unit, line.product_uom_id) - if i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id: - po_currency = i_line.purchase_id.currency_id - po_company = i_line.purchase_id.company_id - #for average/fifo/lifo costing method, fetch real cost price from incomming moves + elif line.product_id.cost_method == 'fifo': + # In this condition, we have a real price-valuated product which has not yet been received valuation_price_unit = po_currency._convert( - i_line.purchase_line_id.product_uom._compute_price(i_line.purchase_line_id.price_unit, i_line.uom_id), - inv.currency_id, - company=po_company, date=inv.date or inv.date_invoice, round=False, + line.purchase_line_id.price_unit, move.currency_id, + po_company, move.date, round=False, ) - stock_move_obj = self.env['stock.move'] - valuation_stock_move = stock_move_obj.search([ - ('purchase_line_id', '=', i_line.purchase_line_id.id), - ('state', '=', 'done'), ('product_qty', '!=', 0.0) - ]) - if self.type == 'in_refund': - valuation_stock_move = valuation_stock_move.filtered(lambda m: m._is_out()) - elif self.type == 'in_invoice': - valuation_stock_move = valuation_stock_move.filtered(lambda m: m._is_in()) - - if valuation_stock_move: - valuation_price_unit_total = 0 - valuation_total_qty = 0 - for val_stock_move in valuation_stock_move: - # In case val_stock_move is a return move, its valuation entries have been made with the - # currency rate corresponding to the original stock move - valuation_date = val_stock_move.origin_returned_move_id.date or val_stock_move.date - layers_qty = sum(val_stock_move.mapped('stock_valuation_layer_ids.quantity')) - layers_values = sum(val_stock_move.mapped('stock_valuation_layer_ids.value')) - valuation_price_unit_total += company_currency._convert( - layers_values, - inv.currency_id, - company=inv.company_id, date=valuation_date, round=False, - ) - valuation_total_qty += layers_qty - - # in Stock Move, price unit is in company_currency - valuation_price_unit = valuation_price_unit_total / valuation_total_qty - valuation_price_unit = i_line.product_id.uom_id._compute_price(valuation_price_unit, i_line.uom_id) - - elif i_line.product_id.cost_method == 'fifo': - # In this condition, we have a real price-valuated product which has not yet been received - valuation_price_unit = po_currency._convert( - i_line.purchase_line_id.price_unit, inv.currency_id, - company=po_company, date=inv.date or inv.date_invoice, round=False, - ) + else: + # For average/fifo/lifo costing method, fetch real cost price from incoming moves. + price_unit = line.purchase_line_id.product_uom._compute_price(line.purchase_line_id.price_unit, line.product_uom_id) + valuation_price_unit = po_currency._convert( + price_unit, move.currency_id, + po_company, move.date, round=False + ) + + else: + # Valuation_price unit is always expressed in invoice currency, so that it can always be computed with the good rate + price_unit = line.product_id.uom_id._compute_price(line.product_id.standard_price, line.product_uom_id) + valuation_price_unit = line.company_currency_id._convert( + price_unit, move.currency_id, + move.company_id, fields.Date.today(), round=False + ) - interim_account_price = valuation_price_unit * line['quantity'] - invoice_cur_prec = inv.currency_id.decimal_places - - # price with discount and without tax included - price_unit = i_line.price_unit * (1 - (i_line.discount or 0.0) / 100.0) - tax_ids = [] - if line['tax_ids']: - #line['tax_ids'] is -2many commands list for account.move.line - tax_ids = [tax_data['id'] for tax_data in self.env['account.move.line'].resolve_2many_commands('tax_ids', line['tax_ids'], ['id'])] - taxes = self.env['account.tax'].browse(tax_ids) - price_unit = taxes.compute_all(price_unit, currency=inv.currency_id, quantity=1.0, is_refund=inv.type in ('in_refund', 'out_refund'))['total_excluded'] - - for tax in taxes: - tax_ids.append((4, tax.id, None)) - for child in tax.children_tax_ids: - if child.type_tax_use != 'none': - tax_ids.append((4, child.id, None)) - - if float_compare(valuation_price_unit, price_unit, precision_digits=invoice_cur_prec) != 0 and float_compare(line['price_unit'], i_line.price_unit, precision_digits=invoice_cur_prec) == 0: - price_before = line.get('price', 0.0) - price_unit_val_dif = price_unit - valuation_price_unit - - price_val_dif = price_before - interim_account_price - if inv.currency_id.compare_amounts(price_unit, valuation_price_unit) != 0 and acc: - # If the unit prices have not changed and we have a - # valuation difference, it means this difference is due to exchange rates, - # so we don't create anything, the exchange rate entries will - # be processed automatically by the rest of the code. - diff_line = { - 'type': 'src', - 'name': i_line.name[:64], - 'price_unit': price_unit_val_dif, - 'quantity': line['quantity'], - 'price': inv.currency_id.round(price_val_dif), - 'account_id': acc, - 'product_id': line['product_id'], - 'uom_id': line['uom_id'], - 'account_analytic_id': line['account_analytic_id'], - 'tax_ids': tax_ids, - } - # We update the original line accordingly - # line['price_unit'] doesn't contain the discount, so use price_unit - # instead. It could make sense to include the discount in line['price_unit'], - # but that doesn't seem a good idea in stable since it is done in - # "invoice_line_move_line_get" of "account.invoice". - line['price_unit'] = inv.currency_id.round(price_unit - diff_line['price_unit']) - line['price'] = inv.currency_id.round(line['price'] - diff_line['price']) - diff_res.append(diff_line) - return diff_res - return [] - - def _get_last_step_stock_moves(self): + invoice_cur_prec = move.currency_id.decimal_places + + price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0) + if line.tax_ids: + price_unit = line.tax_ids.compute_all( + price_unit, currency=move.currency_id, quantity=1.0, is_refund=move.type == 'in_refund')['total_excluded'] + + if float_compare(valuation_price_unit, price_unit, precision_digits=invoice_cur_prec) != 0 \ + and float_compare(line['price_unit'], line.price_unit, precision_digits=invoice_cur_prec) == 0: + + price_unit_val_dif = price_unit - valuation_price_unit + + if move.currency_id.compare_amounts(price_unit, valuation_price_unit) != 0 and debit_pdiff_account: + # Add price difference account line. + vals = { + 'name': line.name[:64], + 'move_id': move.id, + 'currency_id': line.currency_id.id, + 'product_id': line.product_id.id, + 'product_uom_id': line.product_uom_id.id, + 'quantity': line.quantity, + 'price_unit': price_unit_val_dif, + 'price_subtotal': line.quantity * price_unit_val_dif, + 'account_id': debit_pdiff_account.id, + 'analytic_account_id': line.analytic_account_id.id, + 'analytic_tag_ids': [(6, 0, line.analytic_tag_ids.ids)], + 'exclude_from_invoice_tab': True, + 'is_anglo_saxon_line': True, + } + vals.update(line._get_fields_onchange_subtotal(price_subtotal=vals['price_subtotal'])) + lines_vals_list.append(vals) + + # Correct the amount of the current line. + vals = { + 'name': line.name[:64], + 'move_id': move.id, + 'currency_id': line.currency_id.id, + 'product_id': line.product_id.id, + 'product_uom_id': line.product_uom_id.id, + 'quantity': line.quantity, + 'price_unit': -price_unit_val_dif, + 'price_subtotal': line.quantity * -price_unit_val_dif, + 'account_id': line.account_id.id, + 'analytic_account_id': line.analytic_account_id.id, + 'analytic_tag_ids': [(6, 0, line.analytic_tag_ids.ids)], + 'exclude_from_invoice_tab': True, + 'is_anglo_saxon_line': True, + } + vals.update(line._get_fields_onchange_subtotal(price_subtotal=vals['price_subtotal'])) + lines_vals_list.append(vals) + return lines_vals_list + + @api.multi + def post(self): + # OVERRIDE + # Create additional price difference lines for vendor bills. + self.env['account.move.line'].create(self._stock_account_prepare_anglo_saxon_in_lines_vals()) + return super(AccountMove, self).post() + + @api.multi + def _stock_account_get_last_step_stock_moves(self): """ Overridden from stock_account. Returns the stock moves associated to this invoice.""" - rslt = super(AccountInvoice, self)._get_last_step_stock_moves() + rslt = super(AccountMove, self)._stock_account_get_last_step_stock_moves() for invoice in self.filtered(lambda x: x.type == 'in_invoice'): rslt += invoice.mapped('invoice_line_ids.purchase_line_id.move_ids').filtered(lambda x: x.state == 'done' and x.location_id.usage == 'supplier') for invoice in self.filtered(lambda x: x.type == 'in_refund'): diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py index 314c5655d2a..80f9e7d8339 100644 --- a/addons/purchase_stock/models/purchase.py +++ b/addons/purchase_stock/models/purchase.py @@ -307,7 +307,7 @@ class PurchaseOrderLine(models.Model): 'activity_type_id': self.env.ref('mail.mail_activity_data_todo').id, 'note': _('The quantities on your purchase order indicate less than billed. You should ask for a refund. '), 'res_id': line.invoice_lines[0].invoice_id.id, - 'res_model_id': self.env.ref('account.model_account_invoice').id, + 'res_model_id': self.env.ref('account.model_account_move').id, }) activity._onchange_activity_type_id() diff --git a/addons/purchase_stock/models/stock.py b/addons/purchase_stock/models/stock.py index fb5393795f1..fdb03cf3289 100644 --- a/addons/purchase_stock/models/stock.py +++ b/addons/purchase_stock/models/stock.py @@ -97,7 +97,7 @@ class StockMove(models.Model): """ Overridden to return the vendor bills related to this stock move. """ rslt = super(StockMove, self)._get_related_invoices() - rslt += self.mapped('picking_id.purchase_id.invoice_ids').filtered(lambda x: x.state not in ('draft', 'cancel')) + rslt += self.mapped('picking_id.purchase_id.invoice_ids').filtered(lambda x: x.state == 'posted') return rslt diff --git a/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py b/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py index 86cb9a64216..3d205a995ec 100644 --- a/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py +++ b/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py @@ -19,7 +19,7 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): self.price_dif_account = self.env['account.account'].create({ 'name': 'Test price dif', 'code': 'purchase_account_TEST_42', - 'user_type_id': self.env['account.account.type'].search([],limit=1).id, + 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, 'reconcile': True, 'company_id': self.company.id, }) @@ -44,19 +44,12 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): return rslt def _create_invoice_for_po(self, purchase_order, date): - account_receivable = self.env['account.account'].search([('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1) - rslt = self.env['account.invoice'].create({ - 'purchase_id': purchase_order.id, - 'partner_id': self.test_partner.id, - 'currency_id': self.currency_two.id, - 'name': 'vendor bill', - 'type': 'in_invoice', - 'date_invoice': date, - 'date': date, - 'account_id': account_receivable.id, - }) - rslt.purchase_order_change() - return rslt + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.invoice_date = date + move_form.partner_id = self.test_partner + move_form.currency_id = self.currency_two + move_form.purchase_id = purchase_order + return move_form.save() def test_shipment_invoice(self): """ Tests the case into which we receive the goods first, and then make the invoice. @@ -74,12 +67,12 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): 'rate': 7.76435463, 'name': '2018-02-01', }) - invoice.action_invoice_open() + invoice.post() picking = self.env['stock.picking'].search([('purchase_id','=',purchase_order.id)]) self.check_reconciliation(invoice, picking) # cancel the invoice invoice.journal_id.write({'update_posted': 1}) - invoice.action_cancel() + invoice.button_cancel() def test_invoice_shipment(self): """ Tests the case into which we make the invoice first, and then receive the goods. @@ -89,8 +82,10 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): purchase_order = self._create_purchase(test_product, '2017-12-01') invoice = self._create_invoice_for_po(purchase_order, '2017-12-23') - invoice_line = self.env['account.invoice.line'].search([('invoice_id', '=', invoice.id)]) - invoice_line.quantity = 1 + move_form = Form(invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 1 + invoice = move_form.save() # The currency rate changes self.env['res.currency.rate'].create({ @@ -101,7 +96,7 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): }) # Validate the invoice and refund the goods - invoice.action_invoice_open() + invoice.post() self._process_pickings(purchase_order.picking_ids, date='2017-12-24') picking = self.env['stock.picking'].search([('purchase_id', '=', purchase_order.id)]) self.check_reconciliation(invoice, picking) @@ -136,17 +131,15 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): }) # Refund the invoice - refund_invoice_wiz = self.env['account.invoice.refund'].with_context(active_ids=[invoice.id]).create({ - 'description': 'test_invoice_shipment_refund', - 'filter_refund': 'cancel', + refund_invoice_wiz = self.env['account.move.reversal'].with_context(active_ids=[invoice.id]).create({ + 'reason': 'test_invoice_shipment_refund', + 'refund_method': 'cancel', 'date': '2018-03-15', - 'date_invoice': '2018-03-15', }) - refund_invoice_wiz.invoice_refund() + refund_invoice = self.env['account.move'].browse(refund_invoice_wiz.reverse_moves()['res_id']) # Check the result - refund_invoice = self.env['account.invoice'].search([('name', '=', 'test_invoice_shipment_refund')])[0] - self.assertTrue(invoice.state == refund_invoice.state == 'paid'), "Invoice and refund should both be in 'Paid' state" + self.assertTrue(invoice.invoice_payment_state == refund_invoice.invoice_payment_state == 'paid'), "Invoice and refund should both be in 'Paid' state" self.check_reconciliation(refund_invoice, return_pick) def test_multiple_shipments_invoices(self): @@ -159,27 +152,33 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): picking = self.env['stock.picking'].search([('purchase_id', '=', purchase_order.id)], order="id asc", limit=1) invoice = self._create_invoice_for_po(purchase_order, '2017-01-15') - invoice_line = self.env['account.invoice.line'].search([('invoice_id', '=', invoice.id)]) - invoice_line.quantity = 3 + move_form = Form(invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 3.0 + invoice = move_form.save() + self.env['res.currency.rate'].create({ 'currency_id': self.currency_one.id, 'company_id': self.company.id, 'rate': 7.76435463, 'name': '2017-02-01', }) - invoice.action_invoice_open() + invoice.post() self.check_reconciliation(invoice, picking, full_reconcile=False) invoice2 = self._create_invoice_for_po(purchase_order, '2017-02-15') - invoice_line = self.env['account.invoice.line'].search([('invoice_id', '=', invoice2.id)]) - invoice_line.quantity = 2 + move_form = Form(invoice2) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 2.0 + invoice2 = move_form.save() + self.env['res.currency.rate'].create({ 'currency_id': self.currency_one.id, 'company_id': self.company.id, 'rate': 13.834739702, 'name': '2017-03-01', }) - invoice2.action_invoice_open() + invoice2.post() self.check_reconciliation(invoice2, picking, full_reconcile=False) self.env['res.currency.rate'].create({ diff --git a/addons/purchase_stock/tests/test_purchase_order.py b/addons/purchase_stock/tests/test_purchase_order.py index 1367604d118..155a71f11a0 100644 --- a/addons/purchase_stock/tests/test_purchase_order.py +++ b/addons/purchase_stock/tests/test_purchase_order.py @@ -16,8 +16,6 @@ class TestPurchaseOrder(AccountingTestCase): # Useful models self.PurchaseOrder = self.env['purchase.order'] self.PurchaseOrderLine = self.env['purchase.order.line'] - self.AccountInvoice = self.env['account.invoice'] - self.AccountInvoiceLine = self.env['account.invoice.line'] self.partner_id = self.env.ref('base.res_partner_1') self.product_id_1 = self.env.ref('product.product_product_8') self.product_id_2 = self.env.ref('product.product_product_11') @@ -80,13 +78,11 @@ class TestPurchaseOrder(AccountingTestCase): self.picking.button_validate() self.assertEqual(self.po.order_line.mapped('qty_received'), [5.0, 5.0], 'Purchase: all products should be received"') - self.invoice = self.AccountInvoice.create({ - 'partner_id': self.partner_id.id, - 'purchase_id': self.po.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - self.invoice.purchase_order_change() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_id + move_form.purchase_id = self.po + self.invoice = move_form.save() + self.assertEqual(self.po.order_line.mapped('qty_invoiced'), [5.0, 5.0], 'Purchase: all products should be invoiced"') def test_02_po_return(self): @@ -114,14 +110,12 @@ class TestPurchaseOrder(AccountingTestCase): self.assertEqual(self.po.order_line.mapped('qty_received'), [5.0, 5.0], 'Purchase: all products should be received"') #After Receiving all products create vendor bill. - self.invoice = self.AccountInvoice.create({ - 'partner_id': self.partner_id.id, - 'purchase_id': self.po.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - self.invoice.purchase_order_change() - self.invoice.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_id + move_form.purchase_id = self.po + self.invoice = move_form.save() + self.invoice.post() + self.assertEqual(self.po.order_line.mapped('qty_invoiced'), [5.0, 5.0], 'Purchase: all products should be invoiced"') # Check quantity received @@ -146,14 +140,16 @@ class TestPurchaseOrder(AccountingTestCase): # Check Received quantity self.assertEqual(self.po.order_line[0].qty_received, 3.0, 'Purchase: delivered quantity should be 3.0 instead of "%s" after picking return' % self.po.order_line[0].qty_received) #Create vendor bill for refund qty - self.invoice = self.AccountInvoice.create({ - 'partner_id': self.partner_id.id, - 'purchase_id': self.po.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_refund', - }) - self.invoice.purchase_order_change() - self.invoice.invoice_line_ids[0].quantity = 2.0 - self.invoice.invoice_line_ids[1].quantity = 2.0 - self.invoice.action_invoice_open() - self.assertEqual(self.po.order_line.mapped('qty_invoiced'), [3.0, 3.0], 'Purchase: Billed quantity should be 3.0')
\ No newline at end of file + move_form = Form(self.env['account.move'].with_context(default_type='in_refund')) + move_form.partner_id = self.partner_id + move_form.purchase_id = self.po + self.invoice = move_form.save() + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 2.0 + with move_form.invoice_line_ids.edit(1) as line_form: + line_form.quantity = 2.0 + self.invoice = move_form.save() + self.invoice.post() + + self.assertEqual(self.po.order_line.mapped('qty_invoiced'), [3.0, 3.0], 'Purchase: Billed quantity should be 3.0') diff --git a/addons/purchase_stock/tests/test_stockvaluation.py b/addons/purchase_stock/tests/test_stockvaluation.py index b3845bb4add..14383c79b57 100644 --- a/addons/purchase_stock/tests/test_stockvaluation.py +++ b/addons/purchase_stock/tests/test_stockvaluation.py @@ -366,14 +366,11 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt_po1.move_lines.quantity_done = 10 receipt_po1.button_validate() - invoice_po1 = self.env['account.invoice'].create({ - 'partner_id': self.partner_id.id, - 'purchase_id': po1.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice_po1.purchase_order_change() - invoice_po1.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_id + move_form.purchase_id = po1 + invoice_po1 = move_form.save() + invoice_po1.post() # Receive 10@20 ; create the vendor bill po2 = self.env['purchase.order'].create({ @@ -394,14 +391,11 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt_po2.move_lines.quantity_done = 10 receipt_po2.button_validate() - invoice_po2 = self.env['account.invoice'].create({ - 'partner_id': self.partner_id.id, - 'purchase_id': po2.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice_po2.purchase_order_change() - invoice_po2.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_id + move_form.purchase_id = po2 + invoice_po2 = move_form.save() + invoice_po2.post() # valuation of product1 should be 300 self.assertEqual(self.product1.value_svl, 300) @@ -421,16 +415,13 @@ class TestStockValuationWithCOA(AccountingTestCase): self.assertEqual(self.product1.value_svl, 200) # create a credit note for po2 - creditnote_po2 = self.env['account.invoice'].create({ - 'partner_id': self.partner_id.id, - 'purchase_id': po2.id, - 'account_id': self.partner_id.property_account_payable_id.id, - 'type': 'in_refund', - }) - - creditnote_po2.purchase_order_change() - creditnote_po2.invoice_line_ids[0].quantity = 10 - creditnote_po2.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_refund')) + move_form.partner_id = self.partner_id + move_form.purchase_id = po2 + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 10 + creditnote_po2 = move_form.save() + creditnote_po2.post() # check the anglo saxon entries price_diff_entry = self.env['account.move.line'].search([('account_id', '=', self.price_diff_account.id)]) @@ -459,15 +450,13 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt.button_validate() # Create an invoice with a different price - invoice = self.env['account.invoice'].create({ - 'partner_id': order.partner_id.id, - 'purchase_id': order.id, - 'account_id': order.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice.purchase_order_change() - invoice.invoice_line_ids[0].price_unit = 15.0 - invoice.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = order.partner_id + move_form.purchase_id = order + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 15.0 + invoice = move_form.save() + invoice.post() # Check what was posted in the price difference account price_diff_aml = self.env['account.move.line'].search([('account_id','=', self.price_diff_account.id)]) @@ -475,10 +464,13 @@ class TestStockValuationWithCOA(AccountingTestCase): self.assertAlmostEquals(price_diff_aml.debit, 5, "Price difference should be equal to 5 (15-10)") # Check what was posted in stock input account - input_aml = self.env['account.move.line'].search([('account_id','=', self.stock_input_account.id)]) - self.assertEquals(len(input_aml), 2, "Only two lines should have been generated in stock input account: one when receiving the product, one when making the invoice.") - self.assertAlmostEquals(sum(input_aml.mapped('debit')), 10, "Total debit value on stock input account should be equal to the original PO price of the product.") - self.assertAlmostEquals(sum(input_aml.mapped('credit')), 10, "Total credit value on stock input account should be equal to the original PO price of the product.") + input_aml = self.env['account.move.line'].search([('account_id','=',self.stock_input_account.id)]) + self.assertEquals(len(input_aml), 3, "Only three lines should have been generated in stock input account: one when receiving the product, one when making the invoice.") + invoice_amls = input_aml.filtered(lambda l: l.move_id == invoice) + picking_aml = input_aml - invoice_amls + self.assertAlmostEquals(sum(invoice_amls.mapped('debit')), 15, "Total debit value on stock input account should be equal to the original PO price of the product.") + self.assertAlmostEquals(sum(invoice_amls.mapped('credit')), 5, "Total debit value on stock input account should be equal to the original PO price of the product.") + self.assertAlmostEquals(sum(picking_aml.mapped('credit')), 10, "Total credit value on stock input account should be equal to the original PO price of the product.") def test_valuation_from_increasing_tax(self): """ Check that a tax without account will increment the stock value. @@ -572,27 +564,25 @@ class TestStockValuationWithCOA(AccountingTestCase): }) po.button_confirm() - inv = self.env['account.invoice'].create({ + inv = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': date_po, + 'invoice_date': date_po, + 'date': date_po, 'currency_id': self.eur_currency.id, - 'purchase_id': po.id, 'partner_id': self.partner_id.id, 'invoice_line_ids': [(0, 0, { 'name': 'Test', - 'price_subtotal': 100.0, 'price_unit': 100.0, 'product_id': self.product1.id, - 'purchase_id': po.id, 'purchase_line_id': po.order_line.id, 'quantity': 1.0, 'account_id': self.stock_input_account.id, })] }) - inv.action_invoice_open() + inv.post() - move_lines = inv.move_id.line_ids + move_lines = inv.line_ids self.assertEqual(len(move_lines), 2) payable_line = move_lines.filtered(lambda l: l.account_id.internal_type == 'payable') @@ -704,11 +694,11 @@ class TestStockValuationWithCOA(AccountingTestCase): line_product_average = po.order_line.filtered(lambda l: l.product_id == self.product1) line_product_standard = po.order_line.filtered(lambda l: l.product_id == product_standard) - inv = self.env['account.invoice'].create({ + inv = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': date_invoice, + 'invoice_date': date_invoice, + 'date': date_invoice, 'currency_id': self.eur_currency.id, - 'purchase_id': po.id, 'partner_id': self.partner_id.id, 'invoice_line_ids': [ (0, 0, { @@ -716,7 +706,6 @@ class TestStockValuationWithCOA(AccountingTestCase): 'price_subtotal': 100.0, 'price_unit': 100.0, 'product_id': self.product1.id, - 'purchase_id': po.id, 'purchase_line_id': line_product_average.id, 'quantity': 1.0, 'account_id': self.stock_input_account.id, @@ -726,7 +715,6 @@ class TestStockValuationWithCOA(AccountingTestCase): 'price_subtotal': 70.0, 'price_unit': 70.0, 'product_id': product_standard.id, - 'purchase_id': po.id, 'purchase_line_id': line_product_standard.id, 'quantity': 1.0, 'account_id': self.stock_input_account.id, @@ -734,13 +722,13 @@ class TestStockValuationWithCOA(AccountingTestCase): ] }) - inv.action_invoice_open() + inv.post() for p in patchers: p.stop() - move_lines = inv.move_id.line_ids - self.assertEqual(len(move_lines), 4) + move_lines = inv.line_ids + self.assertEqual(len(move_lines), 5) # Ensure no exchange difference move has been created self.assertTrue(all([not l.reconciled for l in move_lines])) @@ -762,18 +750,18 @@ class TestStockValuationWithCOA(AccountingTestCase): # Stock-wise, we have been invoiced 100 EUR, and we ordered 100 EUR # there is no price difference # However, 100 EUR should be converted at the time of the invoice - stock_line = product_lines.filtered(lambda l: l.account_id == self.stock_input_account) - self.assertEqual(stock_line.amount_currency, 100.00) - self.assertAlmostEqual(stock_line.balance, 50.00) + stock_lines = product_lines.filtered(lambda l: l.account_id == self.stock_input_account) + self.assertAlmostEqual(sum(stock_lines.mapped('amount_currency')), 100.00) + self.assertAlmostEqual(sum(stock_lines.mapped('balance')), 50.00) # PRICE DIFFERENCE (STANDARD) # We ordered a product that should have cost 60 USD (120 EUR) # However, we effectively got invoiced 70 EUR (35 USD) product_lines = move_lines.filtered(lambda l: l.product_id == product_standard) - stock_line = product_lines.filtered(lambda l: l.account_id == self.stock_input_account) - self.assertEqual(stock_line.amount_currency, 120.00) - self.assertAlmostEqual(stock_line.balance, 60.00) + stock_lines = product_lines.filtered(lambda l: l.account_id == self.stock_input_account) + self.assertAlmostEqual(sum(stock_lines.mapped('amount_currency')), 120.00) + self.assertAlmostEqual(sum(stock_lines.mapped('balance')), 60.00) price_diff_line = product_lines.filtered(lambda l: l.account_id == self.price_diff_account) self.assertEqual(price_diff_line.amount_currency, -50.00) @@ -875,19 +863,17 @@ class TestStockValuationWithCOA(AccountingTestCase): picking.button_validate() - inv = self.env['account.invoice'].create({ + inv = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': date_invoice, + 'invoice_date': date_invoice, + 'date': date_invoice, 'currency_id': self.eur_currency.id, - 'purchase_id': po.id, 'partner_id': self.partner_id.id, 'invoice_line_ids': [ (0, 0, { 'name': product_avg.name, - 'price_subtotal': 30.0, 'price_unit': 30.0, 'product_id': product_avg.id, - 'purchase_id': po.id, 'purchase_line_id': line_product_avg.id, 'quantity': 1.0, 'account_id': self.stock_input_account.id, @@ -895,12 +881,12 @@ class TestStockValuationWithCOA(AccountingTestCase): ] }) - inv.action_invoice_open() + inv.post() for p in patchers: p.stop() - move_lines = inv.move_id.line_ids + move_lines = inv.line_ids self.assertEqual(len(move_lines), 2) # PAYABLE CHECK @@ -945,6 +931,7 @@ class TestStockValuationWithCOA(AccountingTestCase): """ company = self.env.user.company_id company.anglo_saxon_accounting = True + exchange_diff_journal = company.currency_exchange_journal_id.exists() date_po = '2019-01-01' date_delivery = '2019-01-08' @@ -1048,19 +1035,17 @@ class TestStockValuationWithCOA(AccountingTestCase): picking.button_validate() picking.action_done() # Create Backorder - inv = self.env['account.invoice'].create({ + inv = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': date_invoice, + 'invoice_date': date_invoice, + 'date': date_invoice, 'currency_id': self.eur_currency.id, - 'purchase_id': po.id, 'partner_id': self.partner_id.id, 'invoice_line_ids': [ (0, 0, { 'name': product_avg.name, - 'price_subtotal': 100.0, 'price_unit': 20.0, 'product_id': product_avg.id, - 'purchase_id': po.id, 'purchase_line_id': line_product_avg.id, 'quantity': 5.0, 'account_id': self.stock_input_account.id, @@ -1068,7 +1053,7 @@ class TestStockValuationWithCOA(AccountingTestCase): ] }) - inv.action_invoice_open() + inv.post() backorder_picking = self.env['stock.picking'].search([('backorder_id', '=', picking.id)]) delivery_now = date_delivery1 @@ -1077,19 +1062,17 @@ class TestStockValuationWithCOA(AccountingTestCase): .write({'quantity_done': 5.0})) backorder_picking.button_validate() - inv1 = self.env['account.invoice'].create({ + inv1 = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', - 'date_invoice': date_invoice1, + 'invoice_date': date_invoice1, + 'date': date_invoice1, 'currency_id': self.eur_currency.id, - 'purchase_id': po.id, 'partner_id': self.partner_id.id, 'invoice_line_ids': [ (0, 0, { 'name': product_avg.name, - 'price_subtotal': 200.0, 'price_unit': 40.0, 'product_id': product_avg.id, - 'purchase_id': po.id, 'purchase_line_id': line_product_avg.id, 'quantity': 5.0, 'account_id': self.stock_input_account.id, @@ -1097,7 +1080,7 @@ class TestStockValuationWithCOA(AccountingTestCase): ] }) - inv1.action_invoice_open() + inv1.post() for p in patchers: p.stop() @@ -1105,8 +1088,8 @@ class TestStockValuationWithCOA(AccountingTestCase): ########################## # Invoice 0 # ########################## - move_lines = inv.move_id.line_ids - self.assertEqual(len(move_lines), 3) + move_lines = inv.line_ids + self.assertEqual(len(move_lines), 4) # PAYABLE CHECK payable_line = move_lines.filtered(lambda l: l.account_id.internal_type == 'payable') @@ -1116,35 +1099,34 @@ class TestStockValuationWithCOA(AccountingTestCase): # # PRODUCTS CHECKS # DELIVERY DIFFERENCE (AVERAGE) - stock_line = move_lines.filtered(lambda l: l.account_id == self.stock_input_account) - self.assertEqual(stock_line.journal_id, inv.journal_id) - self.assertEqual(stock_line.amount_currency, 150.00) - self.assertAlmostEqual(stock_line.balance, 75.00) + stock_lines = move_lines.filtered(lambda l: l.account_id == self.stock_input_account) + self.assertEqual(len(stock_lines), 2) + self.assertAlmostEqual(sum(stock_lines.mapped('amount_currency')), 150.00) + self.assertAlmostEqual(sum(stock_lines.mapped('balance')), 75.00) price_diff_line = move_lines.filtered(lambda l: l.account_id == self.price_diff_account) - self.assertEqual(price_diff_line.amount_currency, -50.00) + self.assertAlmostEqual(price_diff_line.amount_currency, -50.00) self.assertAlmostEqual(price_diff_line.balance, -25.00) - full_reconcile = stock_line.full_reconcile_id + full_reconcile = stock_lines.mapped('full_reconcile_id') self.assertTrue(full_reconcile.exists()) - reconciled_lines = full_reconcile.reconciled_line_ids - stock_line + reconciled_lines = full_reconcile.reconciled_line_ids - stock_lines self.assertEqual(len(reconciled_lines), 2) stock_journal_line = reconciled_lines.filtered(lambda l: l.journal_id == self.stock_journal) self.assertEqual(stock_journal_line.amount_currency, -150) self.assertAlmostEqual(stock_journal_line.balance, -214.29) - exhange_diff_journal = company.currency_exchange_journal_id.exists() - exchange_stock_line = reconciled_lines.filtered(lambda l: l.journal_id == exhange_diff_journal) + exchange_stock_line = reconciled_lines.filtered(lambda l: l.journal_id == exchange_diff_journal) self.assertEqual(exchange_stock_line.amount_currency, 0.00) self.assertAlmostEqual(exchange_stock_line.balance, 139.29) ########################## # Invoice 1 # ########################## - move_lines = inv1.move_id.line_ids - self.assertEqual(len(move_lines), 3) + move_lines = inv1.line_ids + self.assertEqual(len(move_lines), 4) # PAYABLE CHECK payable_line = move_lines.filtered(lambda l: l.account_id.internal_type == 'payable') @@ -1154,29 +1136,28 @@ class TestStockValuationWithCOA(AccountingTestCase): # # PRODUCTS CHECKS # DELIVERY DIFFERENCE (AVERAGE) - stock_line = move_lines.filtered(lambda l: l.account_id == self.stock_input_account) - self.assertEqual(stock_line.journal_id, inv.journal_id) - self.assertEqual(stock_line.amount_currency, 150.00) - self.assertAlmostEqual(stock_line.balance, 68.18) + stock_lines = move_lines.filtered(lambda l: l.account_id == self.stock_input_account) + self.assertEqual(stock_lines.mapped('journal_id'), inv.journal_id) + self.assertAlmostEqual(sum(stock_lines.mapped('amount_currency')), 150.00) + self.assertAlmostEqual(sum(stock_lines.mapped('balance')), 68.18) price_diff_line = move_lines.filtered(lambda l: l.account_id == self.price_diff_account) self.assertEqual(price_diff_line.amount_currency, 50.00) self.assertAlmostEqual(price_diff_line.balance, 22.73) - full_reconcile = stock_line.full_reconcile_id + full_reconcile = stock_lines.mapped('full_reconcile_id') self.assertTrue(full_reconcile.exists()) - reconciled_lines = full_reconcile.reconciled_line_ids - stock_line - self.assertEqual(len(reconciled_lines), 2) + reconciled_lines = full_reconcile.reconciled_line_ids - stock_lines + self.assertEqual(len(reconciled_lines), 3) stock_journal_line = reconciled_lines.filtered(lambda l: l.journal_id == self.stock_journal) self.assertEqual(stock_journal_line.amount_currency, -150) self.assertAlmostEqual(stock_journal_line.balance, -187.5) - exhange_diff_journal = company.currency_exchange_journal_id.exists() - exchange_stock_line = reconciled_lines.filtered(lambda l: l.journal_id == exhange_diff_journal) - self.assertEqual(exchange_stock_line.amount_currency, 0.00) - self.assertAlmostEqual(exchange_stock_line.balance, 119.32) + exchange_stock_lines = reconciled_lines.filtered(lambda l: l.journal_id == exchange_diff_journal) + self.assertAlmostEqual(sum(exchange_stock_lines.mapped('amount_currency')), 0.00) + self.assertAlmostEqual(sum(exchange_stock_lines.mapped('balance')), 119.32) def test_anglosaxon_valuation_price_total_diff_discount(self): """ @@ -1206,16 +1187,13 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt.button_validate() # Create an invoice with a different price and a discount - invoice = self.env['account.invoice'].create({ - 'partner_id': order.partner_id.id, - 'purchase_id': order.id, - 'account_id': order.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice.purchase_order_change() - invoice.invoice_line_ids[0].price_unit = 100.0 - invoice.invoice_line_ids[0].discount = 10.0 - invoice.action_invoice_open() + invoice_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + invoice_form.purchase_id = order + with invoice_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 100.0 + line_form.discount = 10.0 + invoice = invoice_form.save() + invoice.post() # Check what was posted in the price difference account price_diff_aml = self.env['account.move.line'].search([('account_id','=', self.price_diff_account.id)]) @@ -1224,7 +1202,7 @@ class TestStockValuationWithCOA(AccountingTestCase): # Check what was posted in stock input account input_aml = self.env['account.move.line'].search([('account_id','=', self.stock_input_account.id)]) - self.assertEquals(len(input_aml), 2, "Only two lines should have been generated in stock input account: one when receiving the product, one when making the invoice.") + self.assertEquals(len(input_aml), 3, "Only two lines should have been generated in stock input account: one when receiving the product, two when making the invoice.") self.assertAlmostEquals(sum(input_aml.mapped('debit')), 110, "Total debit value on stock input account should be equal to the original PO price of the product.") self.assertAlmostEquals(sum(input_aml.mapped('credit')), 110, "Total credit value on stock input account should be equal to the original PO price of the product.") @@ -1256,24 +1234,22 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt.button_validate() # Create an invoice with a different price and a discount - invoice = self.env['account.invoice'].create({ - 'partner_id': order.partner_id.id, - 'purchase_id': order.id, - 'account_id': order.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice.purchase_order_change() - invoice.invoice_line_ids[0].discount = 10.0 - invoice.action_invoice_open() + invoice_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + invoice_form.purchase_id = order + with invoice_form.invoice_line_ids.edit(0) as line_form: + line_form.tax_ids.clear() + line_form.discount = 10.0 + invoice = invoice_form.save() + invoice.post() # Check what was posted in the price difference account - price_diff_aml = self.env['account.move.line'].search([('account_id','=', self.price_diff_account.id)]) + price_diff_aml = self.env['account.move.line'].search([('account_id', '=', self.price_diff_account.id)]) self.assertEquals(len(price_diff_aml), 1, "Only one line should have been generated in the price difference account.") - self.assertAlmostEquals(price_diff_aml.credit, 10, "Price difference should be equal to 20 (110-90)") + self.assertAlmostEquals(price_diff_aml.credit, 10, "Price difference should be equal to 10 (100-90)") # Check what was posted in stock input account - input_aml = self.env['account.move.line'].search([('account_id','=', self.stock_input_account.id)]) - self.assertEquals(len(input_aml), 2, "Only two lines should have been generated in stock input account: one when receiving the product, one when making the invoice.") + input_aml = self.env['account.move.line'].search([('account_id', '=', self.stock_input_account.id)]) + self.assertEquals(len(input_aml), 3, "Three lines generated in stock input account: one when receiving the product, two when making the invoice.") self.assertAlmostEquals(sum(input_aml.mapped('debit')), 100, "Total debit value on stock input account should be equal to the original PO price of the product.") self.assertAlmostEquals(sum(input_aml.mapped('credit')), 100, "Total credit value on stock input account should be equal to the original PO price of the product.") @@ -1305,16 +1281,13 @@ class TestStockValuationWithCOA(AccountingTestCase): receipt.button_validate() # Create an invoice with a different price and a discount - invoice = self.env['account.invoice'].create({ - 'partner_id': order.partner_id.id, - 'purchase_id': order.id, - 'account_id': order.partner_id.property_account_payable_id.id, - 'type': 'in_invoice', - }) - invoice.purchase_order_change() - invoice.invoice_line_ids[0].price_unit = 100.0 - invoice.invoice_line_ids[0].discount = 10.0 - invoice.action_invoice_open() + invoice_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + invoice_form.purchase_id = order + with invoice_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 100.0 + line_form.discount = 10.0 + invoice = invoice_form.save() + invoice.post() # Check if something was posted in the price difference account price_diff_aml = self.env['account.move.line'].search([('account_id','=', self.price_diff_account.id)]) diff --git a/addons/repair/models/__init__.py b/addons/repair/models/__init__.py index 5380c269b1b..1997e59df6e 100644 --- a/addons/repair/models/__init__.py +++ b/addons/repair/models/__init__.py @@ -3,3 +3,4 @@ from . import repair from . import stock_traceability +from . import account_move diff --git a/addons/repair/models/account_move.py b/addons/repair/models/account_move.py new file mode 100644 index 00000000000..e3f1a932186 --- /dev/null +++ b/addons/repair/models/account_move.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class AccountMove(models.Model): + _inherit = 'account.move' + + repair_ids = fields.One2many('repair.order', 'invoice_id', readonly=True, copy=False) + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + repair_line_ids = fields.One2many('repair.line', 'invoice_line_id', readonly=True, copy=False) + repair_fee_ids = fields.One2many('repair.fee', 'invoice_line_id', readonly=True, copy=False) diff --git a/addons/repair/models/repair.py b/addons/repair/models/repair.py index 3f2d747654f..e9fbdae2e63 100644 --- a/addons/repair/models/repair.py +++ b/addons/repair/models/repair.py @@ -1,7 +1,5 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from datetime import datetime +# Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, _ from odoo.addons import decimal_precision as dp @@ -96,8 +94,9 @@ class Repair(models.Model): states={'draft': [('readonly', False)]}, help='Selecting \'Before Repair\' or \'After Repair\' will allow you to generate invoice before or after the repair is done respectively. \'No invoice\' means you don\'t want to generate invoice for this repair order.') invoice_id = fields.Many2one( - 'account.invoice', 'Invoice', - copy=False, readonly=True, tracking=True) + 'account.move', 'Invoice', + copy=False, readonly=True, tracking=True, + domain=[('type', '=', 'out_invoice')]) move_id = fields.Many2one( 'stock.move', 'Move', copy=False, readonly=True, tracking=True, @@ -287,96 +286,149 @@ class Repair(models.Model): @param group: It is set to true when group invoice is to be generated. @return: Invoice Ids. """ - res = dict.fromkeys(self.ids, False) - invoices_group = {} - InvoiceLine = self.env['account.invoice.line'] - Invoice = self.env['account.invoice'] - for repair in self.filtered(lambda repair: repair.state not in ('draft', 'cancel') and not repair.invoice_id): - if not repair.partner_id.id and not repair.partner_invoice_id.id: + grouped_invoices_vals = {} + repairs = self.filtered(lambda repair: repair.state not in ('draft', 'cancel') + and not repair.invoice_id + and repair.invoice_method != 'none') + for repair in repairs: + partner_invoice = repair.partner_invoice_id or repair.partner_id + if not partner_invoice: raise UserError(_('You have to select an invoice address in the repair form.')) - comment = repair.quotation_notes - if repair.invoice_method != 'none': - if group and repair.partner_invoice_id.id in invoices_group: - invoice = invoices_group[repair.partner_invoice_id.id] - invoice.write({ - 'name': invoice.name + ', ' + repair.name, - 'origin': invoice.origin + ', ' + repair.name, - 'comment': (comment and (invoice.comment and invoice.comment + "\n" + comment or comment)) or (invoice.comment and invoice.comment or ''), + + narration = repair.quotation_notes + currency = repair.pricelist_id.currency_id + # Fallback on the user company as the 'company_id' is not required. + company = repair.company_id or self.env.user.company_id + + journal = self.env['account.move'].with_context(force_company=company.id, type='out_invoice')._get_default_journal() + if not journal: + raise UserError(_('Please define an accounting sales journal for the company %s (%s).') % (self.company_id.name, self.company_id.id)) + + if (partner_invoice.id, currency.id) not in grouped_invoices_vals: + grouped_invoices_vals[(partner_invoice.id, currency.id)] = [] + current_invoices_list = grouped_invoices_vals[(partner_invoice.id, currency.id)] + + if not group or len(current_invoices_list) == 0: + invoice_vals = { + 'name': repair.name, + 'type': 'out_invoice', + 'partner_id': partner_invoice.id, + 'currency_id': currency.id, + 'narration': narration, + 'line_ids': [], + 'invoice_origin': repair.name, + 'repair_ids': [(4, repair.id)], + 'invoice_line_ids': [], + } + current_invoices_list.append(invoice_vals) + else: + # if group == True: concatenate invoices by partner and currency + invoice_vals = current_invoices_list[0] + invoice_vals['name'] += ', ' + repair.name + invoice_vals['invoice_origin'] += ', ' + repair.name + invoice_vals['repair_ids'].append((4, repair.id)) + if not invoice_vals['narration']: + invoice_vals['narration'] = narration + else: + invoice_vals['narration'] += '\n' + narration + + # Create invoice lines from operations. + for operation in repair.operations.filtered(lambda op: op.type == 'add'): + if group: + name = repair.name + '-' + operation.name + else: + name = operation.name + + account = operation.product_id.product_tmpl_id._get_product_accounts()['income'] + if not account: + raise UserError(_('No account defined for product "%s".') % operation.product_id.name) + + invoice_line_vals = { + 'name': name, + 'account_id': account.id, + 'quantity': operation.product_uom_qty, + 'tax_ids': [(6, 0, operation.tax_id.ids)], + 'product_uom_id': operation.product_uom.id, + 'price_unit': operation.price_unit, + 'price_subtotal': operation.product_uom_qty * operation.price_unit, + 'product_id': operation.product_id.id, + 'repair_line_ids': [(4, operation.id)], + } + + if currency == company.currency_id: + balance = -invoice_line_vals['price_subtotal'] + invoice_line_vals.update({ + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, }) else: - if not repair.partner_id.property_account_receivable_id: - raise UserError(_('No account defined for partner "%s".') % repair.partner_id.name) - invoice = Invoice.create({ - 'name': repair.name, - 'origin': repair.name, - 'type': 'out_invoice', - 'account_id': repair.partner_id.property_account_receivable_id.id, - 'partner_id': repair.partner_invoice_id.id or repair.partner_id.id, - 'currency_id': repair.pricelist_id.currency_id.id, - 'comment': repair.quotation_notes, - 'fiscal_position_id': repair.partner_id.property_account_position_id.id + amount_currency = -invoice_line_vals['price_subtotal'] + balance = currency._convert(amount_currency, self.company_id.currency_id, self.company_id, fields.Date.today()) + invoice_line_vals.update({ + 'amount_currency': amount_currency, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + 'currency_id': currency.id, }) - invoices_group[repair.partner_invoice_id.id] = invoice - repair.write({'invoiced': True, 'invoice_id': invoice.id}) - - for operation in repair.operations: - if operation.type == 'add': - if group: - name = repair.name + '-' + operation.name - else: - name = operation.name - - if operation.product_id.property_account_income_id: - account_id = operation.product_id.property_account_income_id.id - elif operation.product_id.categ_id.property_account_income_categ_id: - account_id = operation.product_id.categ_id.property_account_income_categ_id.id - else: - raise UserError(_('No account defined for product "%s".') % operation.product_id.name) - - invoice_line = InvoiceLine.create({ - 'invoice_id': invoice.id, - 'name': name, - 'origin': repair.name, - 'account_id': account_id, - 'quantity': operation.product_uom_qty, - 'invoice_line_tax_ids': [(6, 0, [x.id for x in operation.tax_id])], - 'uom_id': operation.product_uom.id, - 'price_unit': operation.price_unit, - 'price_subtotal': operation.product_uom_qty * operation.price_unit, - 'product_id': operation.product_id and operation.product_id.id or False - }) - operation.write({'invoiced': True, 'invoice_line_id': invoice_line.id}) - for fee in repair.fees_lines: - if group: - name = repair.name + '-' + fee.name - else: - name = fee.name - if not fee.product_id: - raise UserError(_('No product defined on fees.')) - - if fee.product_id.property_account_income_id: - account_id = fee.product_id.property_account_income_id.id - elif fee.product_id.categ_id.property_account_income_categ_id: - account_id = fee.product_id.categ_id.property_account_income_categ_id.id - else: - raise UserError(_('No account defined for product "%s".') % fee.product_id.name) - - invoice_line = InvoiceLine.create({ - 'invoice_id': invoice.id, - 'name': name, - 'origin': repair.name, - 'account_id': account_id, - 'quantity': fee.product_uom_qty, - 'invoice_line_tax_ids': [(6, 0, [x.id for x in fee.tax_id])], - 'uom_id': fee.product_uom.id, - 'product_id': fee.product_id and fee.product_id.id or False, - 'price_unit': fee.price_unit, - 'price_subtotal': fee.product_uom_qty * fee.price_unit + invoice_vals['invoice_line_ids'].append((0, 0, invoice_line_vals)) + + # Create invoice lines from fees. + for fee in repair.fees_lines: + if group: + name = repair.name + '-' + fee.name + else: + name = fee.name + + if not fee.product_id: + raise UserError(_('No product defined on fees.')) + + account = fee.product_id.product_tmpl_id._get_product_accounts()['income'] + if not account: + raise UserError(_('No account defined for product "%s".') % fee.product_id.name) + + invoice_line_vals = { + 'type': 'out_invoice', + 'name': name, + 'account_id': account.id, + 'quantity': fee.product_uom_qty, + 'tax_ids': [(6, 0, fee.tax_id.ids)], + 'product_uom_id': fee.product_uom.id, + 'price_unit': fee.price_unit, + 'product_id': fee.product_id.id, + 'repair_fee_ids': [(4, fee.id)], + 'invoice_line_ids': [], + } + + if currency == company.currency_id: + balance = -invoice_line_vals['price_subtotal'] + invoice_line_vals.update({ + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, }) - fee.write({'invoiced': True, 'invoice_line_id': invoice_line.id}) - invoice.compute_taxes() - res[repair.id] = invoice.id - return res + else: + amount_currency = -invoice_line_vals['price_subtotal'] + balance = currency._convert(amount_currency, self.company_id.currency_id, self.company_id, + fields.Date.today()) + invoice_line_vals.update({ + 'amount_currency': amount_currency, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + 'currency_id': currency.id, + }) + invoice_vals['invoice_line_ids'].append((0, 0, invoice_line_vals)) + + # Create invoices. + invoices_vals_list = [] + for invoices in grouped_invoices_vals.values(): + for invoice in invoices: + invoices_vals_list.append(invoice) + self.env['account.move'].with_context(default_type='out_invoice').create(invoices_vals_list) + + repairs.write({'invoiced': True}) + repairs.mapped('operations').filtered(lambda op: op.type == 'add').write({'invoiced': True}) + repairs.mapped('fees_lines').write({'invoiced': True}) + + return dict((repair.id, repair.invoice_id.id) for repair in repairs) @api.multi def action_created_invoice(self): @@ -385,8 +437,8 @@ class Repair(models.Model): 'name': _('Invoice created'), 'type': 'ir.actions.act_window', 'view_mode': 'form', - 'res_model': 'account.invoice', - 'view_id': self.env.ref('account.invoice_form').id, + 'res_model': 'account.move', + 'view_id': self.env.ref('account.view_move_form').id, 'target': 'current', 'res_id': self.invoice_id.id, } @@ -520,7 +572,7 @@ class RepairLine(models.Model): required=True, domain="[('category_id', '=', product_uom_category_id)]") product_uom_category_id = fields.Many2one(related='product_id.uom_id.category_id') invoice_line_id = fields.Many2one( - 'account.invoice.line', 'Invoice Line', + 'account.move.line', 'Invoice Line', copy=False, readonly=True) location_id = fields.Many2one( 'stock.location', 'Source Location', @@ -634,7 +686,7 @@ class RepairFee(models.Model): product_uom_category_id = fields.Many2one(related='product_id.uom_id.category_id') price_subtotal = fields.Float('Subtotal', compute='_compute_price_subtotal', store=True, digits=0) 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', copy=False, readonly=True) + invoice_line_id = fields.Many2one('account.move.line', 'Invoice Line', copy=False, readonly=True) invoiced = fields.Boolean('Invoiced', copy=False, readonly=True) @api.one diff --git a/addons/repair/wizard/repair_make_invoice.py b/addons/repair/wizard/repair_make_invoice.py index 7a20513ab16..e3e853fb31a 100644 --- a/addons/repair/wizard/repair_make_invoice.py +++ b/addons/repair/wizard/repair_make_invoice.py @@ -27,9 +27,9 @@ class MakeInvoice(models.TransientModel): 'domain': [('id', 'in', list(new_invoice.values()))], 'name': 'Invoices', 'view_mode': 'tree,form', - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'view_id': False, - 'views': [(self.env.ref('account.invoice_tree').id, 'tree'), (self.env.ref('account.invoice_form').id, 'form')], + 'views': [(self.env.ref('account.view_move_tree').id, 'tree'), (self.env.ref('account.view_move_form').id, 'form')], 'context': "{'type':'out_invoice'}", 'type': 'ir.actions.act_window' } diff --git a/addons/sale/models/account_invoice.py b/addons/sale/models/account_invoice.py index efad48b77e8..8e310e3c0a5 100644 --- a/addons/sale/models/account_invoice.py +++ b/addons/sale/models/account_invoice.py @@ -4,15 +4,15 @@ from odoo import api, fields, models, _ -class AccountInvoice(models.Model): - _name = 'account.invoice' - _inherit = ['account.invoice', 'utm.mixin'] +class AccountMove(models.Model): + _name = 'account.move' + _inherit = ['account.move', 'utm.mixin'] @api.model - def _get_default_team(self): + def _get_invoice_default_sale_team(self): return self.env['crm.team']._get_default_team_id() - team_id = fields.Many2one('crm.team', string='Sales Team', default=_get_default_team, oldname='section_id') + team_id = fields.Many2one('crm.team', string='Sales Team', default=_get_invoice_default_sale_team) partner_shipping_id = fields.Many2one( 'res.partner', string='Delivery Address', @@ -25,103 +25,93 @@ class AccountInvoice(models.Model): """ Trigger the change of fiscal position when the shipping address is modified. """ - fiscal_position = self.env['account.fiscal.position'].get_fiscal_position(self.partner_id.id, self.partner_shipping_id.id) + delivery_partner_id = self._get_invoice_delivery_partner_id() + fiscal_position = self.env['account.fiscal.position'].get_fiscal_position( + self.partner_id.id, delivery_id=delivery_partner_id) + if fiscal_position: self.fiscal_position_id = fiscal_position @api.multi def unlink(self): - downpayment_lines = self.mapped('invoice_line_ids.sale_line_ids').filtered(lambda line: line.is_downpayment) - res = super(AccountInvoice, self).unlink() + downpayment_lines = self.mapped('line_ids.sale_line_ids').filtered(lambda line: line.is_downpayment) + res = super(AccountMove, self).unlink() if downpayment_lines: downpayment_lines.unlink() return res - @api.onchange('partner_id', 'company_id') - def _onchange_delivery_address(self): + @api.onchange('partner_id') + def _onchange_partner_id(self): + # OVERRIDE + res = super(AccountMove, self)._onchange_partner_id() + + # Recompute 'partner_shipping_id' based on 'partner_id'. addr = self.partner_id.address_get(['delivery']) self.partner_shipping_id = addr and addr.get('delivery') - inv_type = self.type or self.env.context.get('type', 'out_invoice') - if inv_type == 'out_invoice': - company = self.company_id or self.env.company - self.comment = company.with_context(lang=self.partner_id.lang).invoice_terms or (self._origin.company_id == company and self.comment) - @api.onchange('user_id') + # Recompute 'narration' based on 'company.invoice_terms'. + if self.type == 'out_invoice': + self.narration = self.company_id.with_context(lang=self.partner_id.lang).invoice_terms + + return res + + @api.onchange('invoice_user_id') def onchange_user_id(self): - if self.user_id and self.user_id.sale_team_id: - self.team_id = self.user_id.sale_team_id + if self.invoice_user_id and self.invoice_user_id.sale_team_id: + self.team_id = self.invoice_user_id.sale_team_id @api.multi - def _prepare_refund(self, invoice, date_invoice=None, date=None, description=None, journal_id=None): - values = super(AccountInvoice, self)._prepare_refund(invoice, date_invoice, date, description, journal_id) - values.update({'campaign_id': invoice.campaign_id.id, - 'medium_id': invoice.medium_id.id, - 'source_id': invoice.source_id.id}) - return values + def _reverse_moves(self, default_values_list=None, cancel=False): + # OVERRIDE + if not default_values_list: + default_values_list = [{} for move in self] + for move, default_values in zip(self, default_values_list): + default_values.update({ + 'campaign_id': move.campaign_id.id, + 'medium_id': move.medium_id.id, + 'source_id': move.source_id.id, + }) + return super()._reverse_moves(default_values_list=default_values_list, cancel=cancel) @api.multi - def action_invoice_open(self): + def post(self): # OVERRIDE # Auto-reconcile the invoice with payments coming from transactions. # It's useful when you have a "paid" sale order (using a payment transaction) and you invoice it later. - res = super(AccountInvoice, self).action_invoice_open() - - if not self: - return res + res = super(AccountMove, self).post() - for invoice in self: + for invoice in self.filtered(lambda move: move.is_invoice()): payments = invoice.mapped('transaction_ids.payment_id') move_lines = payments.mapped('move_line_ids').filtered(lambda line: not line.reconciled and line.credit > 0.0) for line in move_lines: - invoice.assign_outstanding_credit(line.id) + invoice.js_assign_outstanding_line(line.id) return res @api.multi def action_invoice_paid(self): - res = super(AccountInvoice, self).action_invoice_paid() + # OVERRIDE + res = super(AccountMove, self).action_invoice_paid() todo = set() - for invoice in self: + for invoice in self.filtered(lambda move: move.is_invoice()): for line in invoice.invoice_line_ids: for sale_line in line.sale_line_ids: - todo.add((sale_line.order_id, invoice.number)) + todo.add((sale_line.order_id, invoice.name)) for (order, name) in todo: - order.message_post(body=_("Invoice %s paid") % (name)) + order.message_post(body=_("Invoice %s paid") % name) return res - @api.model - def _refund_cleanup_lines(self, lines): - """ This override will link Sale line to all its invoice lines (direct invoice, refund create from invoice, ...) - in order to have the invoiced quantity taking invoice (in/out) into account in its computation everytime, - whatever the refund policy (create, cancel or modify). - """ - result = super(AccountInvoice, self)._refund_cleanup_lines(lines) - if lines._name == 'account.invoice.line': # avoid side effects as lines can be taxes .... - for i, line in enumerate(lines): - for name, field in line._fields.items(): - if name == 'sale_line_ids': - result[i][2][name] = [(4, line_id) for line_id in line[name].ids] - return result - @api.multi - def get_delivery_partner_id(self): + def _get_invoice_delivery_partner_id(self): + # OVERRIDE self.ensure_one() - return self.partner_shipping_id.id or super(AccountInvoice, self).get_delivery_partner_id() - - def _get_refund_common_fields(self): - return super(AccountInvoice, self)._get_refund_common_fields() + ['team_id', 'partner_shipping_id'] - - def _get_intrastat_country_id(self): - if self.type in ['out_invoice', 'out_refund']: - return self.partner_shipping_id.country_id.id or super(AccountInvoice, self)._get_intrastat_country_id() - return super(AccountInvoice, self)._get_intrastat_country_id() + return self.partner_shipping_id.id or super(AccountMove, self)._get_invoice_delivery_partner_id() - -class AccountInvoiceLine(models.Model): - _inherit = 'account.invoice.line' - _order = 'invoice_id, sequence, id' - - sale_line_ids = fields.Many2many( - 'sale.order.line', - 'sale_order_line_invoice_rel', - 'invoice_line_id', 'order_line_id', - string='Sales Order Lines', readonly=True, copy=False) + @api.multi + def _get_invoice_intrastat_country_id(self): + # OVERRIDE + self.ensure_one() + if self.is_sale_document(): + intrastat_country_id = self.partner_shipping_id.country_id.id + else: + intrastat_country_id = super(AccountMove, self)._get_invoice_intrastat_country_id() + return intrastat_country_id diff --git a/addons/sale/models/account_move.py b/addons/sale/models/account_move.py index 346e25fc4f5..8dfebda60d3 100644 --- a/addons/sale/models/account_move.py +++ b/addons/sale/models/account_move.py @@ -9,6 +9,18 @@ from odoo.tools import float_compare, float_is_zero class AccountMoveLine(models.Model): _inherit = 'account.move.line' + sale_line_ids = fields.Many2many( + 'sale.order.line', + 'sale_order_line_invoice_rel', + 'invoice_line_id', 'order_line_id', + string='Sales Order Lines', readonly=True, copy=False) + + @api.multi + def _copy_data_extend_business_fields(self, values): + # OVERRIDE to copy the 'sale_line_ids' field as well. + super(AccountMoveLine, self)._copy_data_extend_business_fields(values) + values['sale_line_ids'] = [(6, None, self.sale_line_ids.ids)] + @api.multi def _prepare_analytic_line(self): """ Note: This method is called only on the move.line that having an analytic account, and diff --git a/addons/sale/models/payment.py b/addons/sale/models/payment.py index e89f4b78a2a..58b3a4d6ac7 100644 --- a/addons/sale/models/payment.py +++ b/addons/sale/models/payment.py @@ -118,7 +118,7 @@ class PaymentTransaction(models.Model): trans = trans.with_context(**ctx_company) trans.sale_order_ids._force_lines_to_invoice_policy_order() invoices = trans.sale_order_ids._create_invoices() - trans.invoice_ids = [(6, 0, invoices)] + trans.invoice_ids = [(6, 0, invoices.ids)] @api.model def _compute_reference_prefix(self, values): diff --git a/addons/sale/models/res_config_settings.py b/addons/sale/models/res_config_settings.py index fa56659c6e8..df64ec7667c 100644 --- a/addons/sale/models/res_config_settings.py +++ b/addons/sale/models/res_config_settings.py @@ -68,7 +68,7 @@ class ResConfigSettings(models.TransientModel): "This mode is advised if you issue the final invoice at the order and not after the delivery.", config_parameter='sale.automatic_invoice') template_id = fields.Many2one('mail.template', 'Email Template', - domain="[('model', '=', 'account.invoice')]", + domain="[('model', '=', 'account.move')]", config_parameter='sale.default_email_template', default=lambda self: self.env.ref('account.email_template_edi_invoice', False)) confirmation_template_id = fields.Many2one('mail.template', string='Confirmation Email', diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 72d568904fd..8be7341080d 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +7# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from datetime import datetime, timedelta @@ -70,7 +70,7 @@ class SaleOrder(models.Model): deposit_product_id = self.env['sale.advance.payment.inv']._default_product_id() line_invoice_status_all = [(d['order_id'][0], d['invoice_status']) for d in self.env['sale.order.line'].read_group([('order_id', 'in', self.ids), ('product_id', '!=', deposit_product_id.id)], ['order_id', 'invoice_status'], ['order_id', 'invoice_status'], lazy=False)] for order in self: - invoice_ids = order.order_line.mapped('invoice_lines.invoice_id').filtered(lambda r: r.type in ['out_invoice', 'out_refund']) + invoice_ids = order.order_line.mapped('invoice_lines.move_id').filtered(lambda r: r.type in ['out_invoice', 'out_refund']) line_invoice_status = [d[1] for d in line_invoice_status_all if d[0] == order.id] @@ -157,7 +157,7 @@ class SaleOrder(models.Model): order_line = fields.One2many('sale.order.line', 'order_id', string='Order Lines', states={'cancel': [('readonly', True)], 'done': [('readonly', True)]}, copy=True, auto_join=True) invoice_count = fields.Integer(string='Invoice Count', compute='_get_invoiced', readonly=True) - invoice_ids = fields.Many2many("account.invoice", string='Invoices', compute="_get_invoiced", readonly=True, copy=False) + invoice_ids = fields.Many2many("account.move", string='Invoices', compute="_get_invoiced", readonly=True, copy=False) invoice_status = fields.Selection([ ('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), @@ -455,28 +455,28 @@ class SaleOrder(models.Model): a clean extension chain). """ self.ensure_one() - journal_id = self.env['account.invoice'].default_get(['journal_id'])['journal_id'] - if not journal_id: - raise UserError(_('Please define an accounting sales journal for this company.')) + journal = self.env['account.move'].with_context(force_company=self.company_id.id, default_type='out_invoice')._get_default_journal() + if not journal: + raise UserError(_('Please define an accounting sales journal for the company %s (%s).') % (self.company_id.name, self.company_id.id)) + invoice_vals = { - 'name': self.client_order_ref or '', - 'origin': self.name, + 'ref': self.client_order_ref or '', 'type': 'out_invoice', - 'account_id': self.partner_invoice_id.property_account_receivable_id.id, - 'partner_id': self.partner_invoice_id.id, - 'partner_shipping_id': self.partner_shipping_id.id, - 'journal_id': journal_id, + 'narration': self.note, 'currency_id': self.pricelist_id.currency_id.id, - 'comment': self.note, - 'payment_term_id': self.payment_term_id.id, - 'fiscal_position_id': self.fiscal_position_id.id or self.partner_invoice_id.property_account_position_id.id, - 'company_id': self.company_id.id, 'campaign_id': self.campaign_id.id, 'medium_id': self.medium_id.id, 'source_id': self.source_id.id, - 'user_id': self.user_id and self.user_id.id, + 'invoice_user_id': self.user_id and self.user_id.id, 'team_id': self.team_id.id, + 'partner_id': self.partner_invoice_id.id, + 'partner_shipping_id': self.partner_shipping_id.id, + 'fiscal_position_id': self.fiscal_position_id.id or self.partner_invoice_id.property_account_position_id.id, + 'invoice_origin': self.name, + 'invoice_payment_term_id': self.payment_term_id.id, + 'invoice_payment_ref': self.reference, 'transaction_ids': [(6, 0, self.transaction_ids.ids)], + 'invoice_line_ids': [], } return invoice_vals @@ -490,12 +490,12 @@ class SaleOrder(models.Model): @api.multi def action_view_invoice(self): invoices = self.mapped('invoice_ids') - action = self.env.ref('account.action_invoice_tree1').read()[0] + action = self.env.ref('account.action_move_out_invoice_type').read()[0] if len(invoices) > 1: action['domain'] = [('id', 'in', invoices.ids)] elif len(invoices) == 1: - action['views'] = [(self.env.ref('account.invoice_form').id, 'form')] - action['res_id'] = invoices.ids[0] + action['views'] = [(self.env.ref('account.view_move_form').id, 'form')] + action['res_id'] = invoices.id else: action = {'type': 'ir.actions.act_window_close'} return action @@ -509,104 +509,86 @@ class SaleOrder(models.Model): :param final: if True, refunds will be generated if necessary :returns: list of created invoices """ - inv_obj = self.env['account.invoice'] precision = self.env['decimal.precision'].precision_get('Product Unit of Measure') - invoices = {} - references = {} - invoices_origin = {} - invoices_name = {} - - # Keep track of the sequences of the lines - # To keep lines under their section - inv_line_sequence = 0 - for order in self: - group_key = order.id if grouped else (order.partner_invoice_id.id, order.currency_id.id) - # We only want to create sections that have at least one invoiceable line + # 1) Create invoices. + invoice_vals_list = [] + for order in self: pending_section = None - # Create lines in batch to avoid performance problems - line_vals_list = [] - # sequence is the natural order of order_lines + # Invoice values. + invoice_vals = order._prepare_invoice() + + # Invoice line values (keep only necessary sections). for line in order.order_line: if line.display_type == 'line_section': pending_section = line continue if float_is_zero(line.qty_to_invoice, precision_digits=precision): continue - if group_key not in invoices: - inv_data = order._prepare_invoice() - invoice = inv_obj.create(inv_data) - references[invoice] = order - invoices[group_key] = invoice - invoices_origin[group_key] = [invoice.origin] - invoices_name[group_key] = [invoice.name] - elif group_key in invoices: - if order.name not in invoices_origin[group_key]: - invoices_origin[group_key].append(order.name) - if order.client_order_ref and order.client_order_ref not in invoices_name[group_key]: - invoices_name[group_key].append(order.client_order_ref) - if line.qty_to_invoice > 0 or (line.qty_to_invoice < 0 and final): if pending_section: - section_invoice = pending_section.invoice_line_create_vals( - invoices[group_key].id, - pending_section.qty_to_invoice - ) - inv_line_sequence += 1 - section_invoice[0]['sequence'] = inv_line_sequence - line_vals_list.extend(section_invoice) + invoice_vals.append((0, 0, pending_section._prepare_invoice_line())) pending_section = None + invoice_vals['invoice_line_ids'].append((0, 0, line._prepare_invoice_line())) - inv_line_sequence += 1 - inv_line = line.invoice_line_create_vals( - invoices[group_key].id, line.qty_to_invoice - ) - inv_line[0]['sequence'] = inv_line_sequence - line_vals_list.extend(inv_line) - - if references.get(invoices.get(group_key)): - if order not in references[invoices[group_key]]: - references[invoices[group_key]] |= order - - self.env['account.invoice.line'].create(line_vals_list) - - for group_key in invoices: - invoices[group_key].write({'name': ', '.join(invoices_name[group_key]), - 'origin': ', '.join(invoices_origin[group_key])}) - sale_orders = references[invoices[group_key]] - if len(sale_orders) == 1: - invoices[group_key].reference = sale_orders.reference + if not invoice_vals['invoice_line_ids']: + raise UserError(_('There is no invoiceable line. If a product has a Delivered quantities invoicing policy, please make sure that a quantity has been delivered.')) - if not invoices: - raise UserError(_('There is no invoiceable line. If a product has a Delivered quantities invoicing policy, please make sure that a quantity has been delivered.')) + invoice_vals_list.append(invoice_vals) - for invoice in invoices.values(): - invoice.compute_taxes() - if not invoice.invoice_line_ids: - raise UserError(_('There is no invoiceable line. If a product has a Delivered quantities invoicing policy, please make sure that a quantity has been delivered.')) - # If invoice is negative, do a refund invoice instead - if invoice.amount_total < 0: - invoice.type = 'out_refund' - for line in invoice.invoice_line_ids: - line.quantity = -line.quantity - # Use additional field helper function (for account extensions) - for line in invoice.invoice_line_ids: - line._set_additional_fields() - # Necessary to force computation of taxes. In account_invoice, they are triggered - # by onchanges, which are not triggered when doing a create. - invoice.compute_taxes() - # Idem for partner - so_payment_term_id = invoice.payment_term_id.id - fp_invoice = invoice.fiscal_position_id - invoice._onchange_partner_id() - invoice.fiscal_position_id = fp_invoice - # To keep the payment terms set on the SO - invoice.payment_term_id = so_payment_term_id - invoice.message_post_with_view('mail.message_origin_link', - values={'self': invoice, 'origin': references[invoice]}, - subtype_id=self.env.ref('mail.mt_note').id) - return [inv.id for inv in invoices.values()] + if not invoice_vals_list: + raise UserError(_( + 'There is no invoiceable line. If a product has a Delivered quantities invoicing policy, please make sure that a quantity has been delivered.')) + + # 2) Manage 'grouped' parameter: group by (partner_id, currency_id). + if grouped: + new_invoice_vals_list = [] + for invoices in groupby(invoice_vals_list, key=lambda x: (x.partner_id.id, x.currency_id.id)): + origins = set() + payment_refs = set() + refs = set() + ref_invoice_vals = None + for invoice_vals in invoices: + if not ref_invoice_vals: + ref_invoice_vals = invoice_vals + else: + ref_invoice_vals['invoice_line_ids'] += invoice_vals['invoice_line_ids'] + origins.add(invoice_vals['invoice_origin']) + payment_refs.add(invoice_vals['invoice_payment_ref']) + refs.add(invoice_vals['ref']) + ref_invoice_vals.update({ + 'ref': ', '.join(refs), + 'invoice_origin': ', '.join(origins), + 'invoice_payment_ref': len(payment_refs) == 1 and payment_refs.pop() or False, + }) + new_invoice_vals_list.append(ref_invoice_vals) + invoice_vals_list = new_invoice_vals_list + + # 3) Manage 'final' parameter: transform out_invoice to out_refund if negative. + out_invoice_vals_list = [] + refund_invoice_vals_list = [] + if final: + for invoice_vals in invoice_vals_list: + if sum(l[2]['quantity'] * l[2]['price_unit'] for l in invoice_vals['invoice_line_ids']) < 0: + for l in invoice_vals['invoice_line_ids']: + l[2]['quantity'] = -l[2]['quantity'] + invoice_vals['type'] = 'out_refund' + refund_invoice_vals_list.append(invoice_vals) + else: + out_invoice_vals_list.append(invoice_vals) + else: + out_invoice_vals_list = invoice_vals_list + + # Create invoices. + moves = self.env['account.move'].with_context(default_type='out_invoice').create(out_invoice_vals_list) + moves += self.env['account.move'].with_context(default_type='out_refund').create(refund_invoice_vals_list) + for move in moves: + move.message_post_with_view('mail.message_origin_link', + values={'self': move, 'origin': move.line_ids.mapped('sale_line_ids.order_id')}, + subtype_id=self.env.ref('mail.mt_note').id + ) + return moves @api.multi def action_draft(self): @@ -999,7 +981,7 @@ class SaleOrderLine(models.Model): else: line.qty_to_invoice = 0 - @api.depends('invoice_lines.invoice_id.state', 'invoice_lines.quantity') + @api.depends('invoice_lines.move_id.state', 'invoice_lines.quantity') def _get_invoice_qty(self): """ Compute the quantity invoiced. If case of a refund, the quantity invoiced is decreased. Note @@ -1010,11 +992,11 @@ class SaleOrderLine(models.Model): for line in self: qty_invoiced = 0.0 for invoice_line in line.invoice_lines: - if invoice_line.invoice_id.state != 'cancel': - if invoice_line.invoice_id.type == 'out_invoice': - qty_invoiced += invoice_line.uom_id._compute_quantity(invoice_line.quantity, line.product_uom) - elif invoice_line.invoice_id.type == 'out_refund': - qty_invoiced -= invoice_line.uom_id._compute_quantity(invoice_line.quantity, line.product_uom) + if invoice_line.move_id.state != 'cancel': + if invoice_line.move_id.type == 'out_invoice': + qty_invoiced += invoice_line.product_uom_id._compute_quantity(invoice_line.quantity, line.product_uom) + elif invoice_line.move_id.type == 'out_refund': + qty_invoiced -= invoice_line.product_uom_id._compute_quantity(invoice_line.quantity, line.product_uom) line.qty_invoiced = qty_invoiced @api.depends('price_unit', 'discount') @@ -1128,7 +1110,7 @@ class SaleOrderLine(models.Model): name = fields.Text(string='Description', required=True) sequence = fields.Integer(string='Sequence', default=10) - invoice_lines = fields.Many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_line_id', string='Invoice Lines', copy=False) + invoice_lines = fields.Many2many('account.move.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_line_id', string='Invoice Lines', copy=False) invoice_status = fields.Selection([ ('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), @@ -1300,7 +1282,7 @@ class SaleOrderLine(models.Model): else: line.qty_delivered_manual = 0.0 - @api.depends('invoice_lines', 'invoice_lines.price_total', 'invoice_lines.invoice_id.state', 'invoice_lines.invoice_id.type') + @api.depends('invoice_lines', 'invoice_lines.price_total', 'invoice_lines.move_id.state', 'invoice_lines.move_id.type') def _compute_untaxed_amount_invoiced(self): """ Compute the untaxed amount already invoiced from the sale order line, taking the refund attached the so line into account. This amount is computed as @@ -1312,11 +1294,11 @@ class SaleOrderLine(models.Model): for line in self: amount_invoiced = 0.0 for invoice_line in line.invoice_lines: - if invoice_line.invoice_id.state in ['open', 'in_payment', 'paid']: - invoice_date = invoice_line.invoice_id.date_invoice or fields.Date.today() - if invoice_line.invoice_id.type == 'out_invoice': + if invoice_line.move_id.state == 'posted': + invoice_date = invoice_line.move_id.invoice_date or fields.Date.today() + if invoice_line.move_id.type == 'out_invoice': amount_invoiced += invoice_line.currency_id._convert(invoice_line.price_subtotal, line.currency_id, line.company_id, invoice_date) - elif invoice_line.invoice_id.type == 'out_refund': + elif invoice_line.move_id.type == 'out_refund': amount_invoiced -= invoice_line.currency_id._convert(invoice_line.price_subtotal, line.currency_id, line.company_id, invoice_date) line.untaxed_amount_invoiced = amount_invoiced @@ -1347,57 +1329,27 @@ class SaleOrderLine(models.Model): line.untaxed_amount_to_invoice = amount_to_invoice @api.multi - def _prepare_invoice_line(self, qty): + def _prepare_invoice_line(self): """ Prepare the dict of values to create the new invoice line for a sales order line. :param qty: float quantity to invoice """ self.ensure_one() - res = {} - account = self.product_id.property_account_income_id or self.product_id.categ_id.property_account_income_categ_id - - if not account and self.product_id: - raise UserError(_('Please define income account for this product: "%s" (id:%d) - or for its category: "%s".') % - (self.product_id.name, self.product_id.id, self.product_id.categ_id.name)) - - fpos = self.order_id.fiscal_position_id or self.order_id.partner_id.property_account_position_id - if fpos and account: - account = fpos.map_account(account) - - res = { - 'name': self.name, + return { + 'display_type': self.display_type, 'sequence': self.sequence, - 'origin': self.order_id.name, - 'account_id': account.id, - 'price_unit': self.price_unit, - 'quantity': qty, + 'name': self.name, + 'product_id': self.product_id.id, + 'product_uom_id': self.product_uom.id, + 'quantity': self.qty_to_invoice, 'discount': self.discount, - 'uom_id': self.product_uom.id, - 'product_id': self.product_id.id or False, - 'invoice_line_tax_ids': [(6, 0, self.tax_id.ids)], - 'account_analytic_id': self.order_id.analytic_account_id.id, + 'price_unit': self.price_unit, + 'tax_ids': [(6, 0, self.tax_id.ids)], + 'analytic_account_id': self.order_id.analytic_account_id.id, 'analytic_tag_ids': [(6, 0, self.analytic_tag_ids.ids)], - 'display_type': self.display_type, + 'sale_line_ids': [(4, self.id)], } - return res - - def invoice_line_create_vals(self, invoice_id, qty): - """ Create an invoice line. The quantity to invoice can be positive (invoice) or negative - (refund). - - :param invoice_id: integer - :param qty: float quantity to invoice - :returns list of dict containing creation values for account.invoice.line records - """ - vals_list = [] - precision = self.env['decimal.precision'].precision_get('Product Unit of Measure') - for line in self: - if not float_is_zero(qty, precision_digits=precision) or not line.product_id: - vals = line._prepare_invoice_line(qty=qty) - vals.update({'invoice_id': invoice_id, 'sale_line_ids': [(6, 0, [line.id])]}) - vals_list.append(vals) - return vals_list @api.multi def _prepare_procurement_values(self, group_id=False): diff --git a/addons/sale/models/sales_team.py b/addons/sale/models/sales_team.py index 6d297bb0ee5..280b6d0a3ad 100644 --- a/addons/sale/models/sales_team.py +++ b/addons/sale/models/sales_team.py @@ -65,16 +65,32 @@ class CrmTeam(models.Model): @api.multi def _compute_invoiced(self): - invoice_data = self.env['account.invoice'].read_group([ - ('state', 'in', ['open', 'in_payment', 'paid']), - ('team_id', 'in', self.ids), - ('date', '<=', date.today()), - ('date', '>=', date.today().replace(day=1)), - ('type', 'in', ['out_invoice', 'out_refund']), - ], ['amount_untaxed_signed', 'team_id'], ['team_id']) - data_map = { datum['team_id'][0]: datum['amount_untaxed_signed'] for datum in invoice_data} + if not self: + return + + query = ''' + SELECT + move.team_id AS team_id, + SUM(line.balance) AS amount_untaxed_signed + FROM account_move move + LEFT JOIN account_move_line line ON line.move_id = move.id + INNER JOIN account_account_type account_type ON account_type.id = line.user_type_id + WHERE move.type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund') + AND move.invoice_payment_state IN ('in_payment', 'paid') + AND move.state = 'posted' + AND move.team_id IN %s + AND move.date BETWEEN %s AND %s + AND line.tax_line_id IS NULL + AND line.display_type IS NULL + AND account_type.type NOT IN ('receivable', 'payable') + ''' + today = fields.Date.today() + params = [tuple(self.ids), fields.Date.to_string(today), fields.Date.to_string(today.replace(day=1))] + self._cr.execute(query, params) + + data_map = dict((v[0], v[1]) for v in self._cr.fetchall()) for team in self: - team.invoiced = data_map.get(team.id,0.0) + team.invoiced = data_map.get(team.id, 0.0) def _graph_get_model(self): if self._context.get('in_sales_app'): diff --git a/addons/sale/report/invoice_report.py b/addons/sale/report/invoice_report.py index c70f82afe6c..9928d58efbf 100644 --- a/addons/sale/report/invoice_report.py +++ b/addons/sale/report/invoice_report.py @@ -10,10 +10,7 @@ class AccountInvoiceReport(models.Model): team_id = fields.Many2one('crm.team', string='Sales Team') def _select(self): - return super(AccountInvoiceReport, self)._select() + ", sub.team_id as team_id" - - def _sub_select(self): - return super(AccountInvoiceReport, self)._sub_select() + ", ai.team_id as team_id" + return super(AccountInvoiceReport, self)._select() + ", move.team_id as team_id" def _group_by(self): - return super(AccountInvoiceReport, self)._group_by() + ", ai.team_id" + return super(AccountInvoiceReport, self)._group_by() + ", move.team_id" diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv index bd3d2e61c49..d0fff8782df 100644 --- a/addons/sale/security/ir.model.access.csv +++ b/addons/sale/security/ir.model.access.csv @@ -4,10 +4,8 @@ access_sale_order_line,sale.order.line,model_sale_order_line,sales_team.group_sa access_sale_order_line_accountant,sale.order.line accountant,model_sale_order_line,account.group_account_user,1,1,0,0
access_sale_order_portal,sale.order.portal,sale.model_sale_order,base.group_portal,1,0,0,0
access_sale_order_line_portal,sale.order.line.portal,sale.model_sale_order_line,base.group_portal,1,0,0,0
-access_account_invoice_tax_salesman,account_invoice_tax salesman,account.model_account_invoice_tax,sales_team.group_sale_salesman,1,1,1,0
-access_account_invoice_salesman,account_invoice salesman,account.model_account_invoice,sales_team.group_sale_salesman,1,1,1,0
-access_account_invoice_manager,account_invoice manager,account.model_account_invoice,sales_team.group_sale_manager,1,1,1,1
-access_account_invoice_line_salesman,account_invoice.line salesman,account.model_account_invoice_line,sales_team.group_sale_salesman,1,1,1,0
+access_account_move_salesman,account_move salesman,account.model_account_move,sales_team.group_sale_salesman,1,1,1,0
+access_account_move_manager,account_move manager,account.model_account_move,sales_team.group_sale_manager,1,1,1,1
access_account_payment_term_salesman,account_payment_term salesman,account.model_account_payment_term,sales_team.group_sale_salesman,1,0,0,0
access_account_analytic_tag_sale_salesman,account.analytic.tag.sale.salesman,analytic.model_account_analytic_tag,sales_team.group_sale_salesman,1,0,0,0
access_account_analytic_account_salesman,account_analytic_account salesman,analytic.model_account_analytic_account,sales_team.group_sale_salesman,1,1,1,0
@@ -46,7 +44,6 @@ access_product_template_attribute_exclusion_sale_manager,product.attribute manag access_product_template_attribute_line_sale_manager,product.attribute manager line,product.model_product_template_attribute_line,sales_team.group_sale_manager,1,1,1,1
access_account_tax_sale_manager,account.tax sale manager,account.model_account_tax,sales_team.group_sale_salesman,1,0,0,0
access_account_journal_sale_manager,account.journal sale manager,account.model_account_journal,sales_team.group_sale_salesman,1,0,0,0
-access_account_invoice_tax_sale_manager,account.invoice.tax sale manager,account.model_account_invoice_tax,sales_team.group_sale_salesman,1,0,0,0
access_account_tax_group_sale_manager,account.tax.group sale manager,account.model_account_tax_group,sales_team.group_sale_salesman,1,0,0,0
access_account_account_sale_manager,account.account sale manager,account.model_account_account,sales_team.group_sale_manager,1,0,0,0
access_mail_activity_type_sale_manager,mail.activity.type.sale.manager,mail.model_mail_activity_type,sales_team.group_sale_manager,1,1,1,1
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml index c779ca25ab3..129046dac20 100644 --- a/addons/sale/security/sale_security.xml +++ b/addons/sale/security/sale_security.xml @@ -124,7 +124,7 @@ <record id="account_invoice_report_rule_see_personal" model="ir.rule"> <field name="name">Personal Invoices Analysis</field> <field name="model_id" ref="model_account_invoice_report"/> - <field name="domain_force">['|', ('user_id', '=', user.id), ('user_id', '=', False)]</field> + <field name="domain_force">['|', ('invoice_user_id', '=', user.id), ('invoice_user_id', '=', False)]</field> <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> </record> diff --git a/addons/sale/tests/test_reinvoice.py b/addons/sale/tests/test_reinvoice.py index 6f7080307a4..b7640fd23e9 100644 --- a/addons/sale/tests/test_reinvoice.py +++ b/addons/sale/tests/test_reinvoice.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.addons.sale.tests.test_sale_common import TestCommonSaleNoChart +from odoo.tests import Form class TestReInvoice(TestCommonSaleNoChart): @@ -28,23 +29,7 @@ class TestReInvoice(TestCommonSaleNoChart): 'analytic_account_id': cls.analytic_account.id, }) - Invoice = cls.env['account.invoice'].with_context(mail_notrack=True, mail_create_nolog=True) - cls.invoiceA = Invoice.create({ - 'name': 'Test Invoice', - 'type': 'in_invoice', - 'partner_id': cls.partner_customer_usd.id, - 'account_id': cls.account_payable.id, - 'journal_id': cls.journal_purchase.id, - 'currency_id': cls.env.user.company_id.currency_id.id, - }) - cls.invoiceB = Invoice.create({ - 'name': 'Test Invoice 2', - 'type': 'in_invoice', - 'partner_id': cls.partner_customer_usd.id, - 'account_id': cls.account_payable.id, - 'journal_id': cls.journal_purchase.id, - 'currency_id': cls.env.user.company_id.currency_id.id, - }) + cls.AccountMove = cls.env['account.move'].with_context(default_type='in_invoice', mail_notrack=True, mail_create_nolog=True) def test_at_cost(self): """ Test vendor bill at cost for product based on ordered and delivered quantities. """ @@ -75,27 +60,18 @@ class TestReInvoice(TestCommonSaleNoChart): self.sale_order.action_confirm() # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_ordered_cost.name, - 'product_id': self.product_ordered_cost.id, - 'quantity': 3, - 'uom_id': self.product_ordered_cost.uom_id.id, - 'price_unit': self.product_ordered_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - invoice_lineA2 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_cost.name, - 'product_id': self.product_deliver_cost.id, - 'quantity': 3, - 'uom_id': self.product_deliver_cost.uom_id.id, - 'price_unit': self.product_deliver_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + move_form = Form(self.AccountMove) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_ordered_cost + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_cost + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + invoice_a = move_form.save() + invoice_a.post() sale_order_line3 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol.product_id == self.product_ordered_cost) sale_order_line4 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol.product_id == self.product_deliver_cost) @@ -108,34 +84,25 @@ class TestReInvoice(TestCommonSaleNoChart): self.assertEquals(sale_order_line1.qty_delivered, 1, "Exising SO line 1 should not be impacted by reinvoicing product at cost") self.assertEquals(sale_order_line2.qty_delivered, 1, "Exising SO line 2 should not be impacted by reinvoicing product at cost") - self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_ordered_cost.standard_price, invoice_lineA1.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') - self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_deliver_cost.standard_price, invoice_lineA2.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_ordered_cost.standard_price, 3, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_deliver_cost.standard_price, 3, 0, 0), 'Sale line is wrong after confirming vendor invoice') self.assertEquals(sale_order_line3.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line should be computed by analytic amount") self.assertEquals(sale_order_line4.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line should be computed by analytic amount") # create second invoice lines and validate it - invoice_lineB1 = self.env['account.invoice.line'].create({ - 'name': self.product_ordered_cost.name, - 'product_id': self.product_ordered_cost.id, - 'quantity': 2, - 'uom_id': self.product_ordered_cost.uom_id.id, - 'price_unit': self.product_ordered_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - invoice_lineB2 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_cost.name, - 'product_id': self.product_deliver_cost.id, - 'quantity': 2, - 'uom_id': self.product_deliver_cost.uom_id.id, - 'price_unit': self.product_deliver_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - self.invoiceB.action_invoice_open() + move_form = Form(self.AccountMove) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_ordered_cost + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_cost + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + invoice_b = move_form.save() + invoice_b.post() sale_order_line5 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol != sale_order_line3 and sol.product_id == self.product_ordered_cost) sale_order_line6 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol != sale_order_line4 and sol.product_id == self.product_deliver_cost) @@ -146,8 +113,8 @@ class TestReInvoice(TestCommonSaleNoChart): self.assertEquals(len(self.sale_order.order_line), 6, "There should be still 4 lines on the SO, no new created") self.assertEquals(len(self.sale_order.order_line.filtered(lambda sol: sol.is_expense)), 4, "There should be still 2 expenses lines on the SO") - self.assertEquals((sale_order_line5.price_unit, sale_order_line5.qty_delivered, sale_order_line5.product_uom_qty, sale_order_line5.qty_invoiced), (self.product_ordered_cost.standard_price, invoice_lineB1.quantity, 0, 0), 'Sale line 5 is wrong after confirming 2e vendor invoice') - self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line6.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_deliver_cost.standard_price, invoice_lineB2.quantity, 0, 0), 'Sale line 6 is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line5.price_unit, sale_order_line5.qty_delivered, sale_order_line5.product_uom_qty, sale_order_line5.qty_invoiced), (self.product_ordered_cost.standard_price, 2, 0, 0), 'Sale line 5 is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line6.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_deliver_cost.standard_price, 2, 0, 0), 'Sale line 6 is wrong after confirming 2e vendor invoice') def test_sales_price(self): """ Test invoicing vendor bill at sales price for products based on delivered and ordered quantities. Check no existing SO line is incremented, but when invoicing a @@ -178,27 +145,18 @@ class TestReInvoice(TestCommonSaleNoChart): self.sale_order.action_confirm() # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_sales_price.name, - 'product_id': self.product_deliver_sales_price.id, - 'quantity': 3, - 'uom_id': self.product_deliver_sales_price.uom_id.id, - 'price_unit': self.product_deliver_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - invoice_lineA2 = self.env['account.invoice.line'].create({ - 'name': self.product_order_sales_price.name, - 'product_id': self.product_order_sales_price.id, - 'quantity': 3, - 'uom_id': self.product_order_sales_price.uom_id.id, - 'price_unit': self.product_order_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + move_form = Form(self.AccountMove) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_sales_price + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_order_sales_price + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + invoice_a = move_form.save() + invoice_a.post() sale_order_line3 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol.product_id == self.product_deliver_sales_price) sale_order_line4 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol.product_id == self.product_order_sales_price) @@ -211,34 +169,25 @@ class TestReInvoice(TestCommonSaleNoChart): self.assertEquals(sale_order_line1.qty_delivered, 1, "Exising SO line 1 should not be impacted by reinvoicing product at cost") self.assertEquals(sale_order_line2.qty_delivered, 1, "Exising SO line 2 should not be impacted by reinvoicing product at cost") - self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_deliver_sales_price.list_price, invoice_lineA1.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') - self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_order_sales_price.list_price, invoice_lineA2.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_deliver_sales_price.list_price, 3, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_order_sales_price.list_price, 3, 0, 0), 'Sale line is wrong after confirming vendor invoice') self.assertEquals(sale_order_line3.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line 3 should be computed by analytic amount") self.assertEquals(sale_order_line4.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line 4 should be computed by analytic amount") # create second invoice lines and validate it - invoice_lineB1 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_sales_price.name, - 'product_id': self.product_deliver_sales_price.id, - 'quantity': 2, - 'uom_id': self.product_deliver_sales_price.uom_id.id, - 'price_unit': self.product_deliver_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - invoice_lineB2 = self.env['account.invoice.line'].create({ - 'name': self.product_order_sales_price.name, - 'product_id': self.product_order_sales_price.id, - 'quantity': 2, - 'uom_id': self.product_order_sales_price.uom_id.id, - 'price_unit': self.product_order_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - self.invoiceB.action_invoice_open() + move_form = Form(self.AccountMove) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_sales_price + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_order_sales_price + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + invoice_b = move_form.save() + invoice_b.post() sale_order_line5 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol != sale_order_line3 and sol.product_id == self.product_deliver_sales_price) sale_order_line6 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol != sale_order_line4 and sol.product_id == self.product_order_sales_price) @@ -249,7 +198,7 @@ class TestReInvoice(TestCommonSaleNoChart): self.assertEquals(len(self.sale_order.order_line), 5, "There should be 5 lines on the SO, 1 new created and 1 incremented") self.assertEquals(len(self.sale_order.order_line.filtered(lambda sol: sol.is_expense)), 3, "There should be 3 expenses lines on the SO") - self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_order_sales_price.list_price, invoice_lineB2.quantity, 0, 0), 'Sale line is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_order_sales_price.list_price, 2, 0, 0), 'Sale line is wrong after confirming 2e vendor invoice') def test_no_expense(self): """ Test invoicing vendor bill with no policy. Check nothing happen. """ @@ -267,18 +216,19 @@ class TestReInvoice(TestCommonSaleNoChart): self.sale_order.action_confirm() # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_no_expense.name, - 'product_id': self.product_no_expense.id, - 'quantity': 3, - 'uom_id': self.product_no_expense.uom_id.id, - 'price_unit': self.product_no_expense.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + invoice_a = self.AccountMove.create({ + 'partner_id': self.partner_customer_usd.id, + 'journal_id': self.journal_purchase.id, + 'line_ids': [ + (0, 0, { + 'product_id': self.product_no_expense.id, + 'quantity': 3, + 'analytic_account_id': self.analytic_account.id, + }), + ], + }) + invoice_a.post() self.assertEquals(len(self.sale_order.order_line), 1, "No SO line should have been created (or removed) when validating vendor bill") self.assertEquals(sale_order_line.qty_delivered, 1, "The delivered quantity of SO line should not have been incremented") - self.assertTrue(invoice_lineA1.invoice_id.move_id.mapped('line_ids.analytic_line_ids'), "Analytic lines should be generated") + self.assertTrue(invoice_a.mapped('line_ids.analytic_line_ids'), "Analytic lines should be generated") diff --git a/addons/sale/tests/test_sale_order.py b/addons/sale/tests/test_sale_order.py index 9968ffb6bf4..f738d7c78b8 100644 --- a/addons/sale/tests/test_sale_order.py +++ b/addons/sale/tests/test_sale_order.py @@ -79,7 +79,6 @@ class TestSaleOrder(TestCommonSaleNoChart): - Invoice repeatedly while varrying delivered quantities and check that invoice are always what we expect """ # DBO TODO: validate invoice and register payments - Invoice = self.env['account.invoice'] self.sale_order.order_line.read(['name', 'price_unit', 'product_uom_qty', 'price_total']) self.assertEqual(self.sale_order.amount_total, sum([2 * p.list_price for p in self.product_map.values()]), 'Sale: total amount is wrong') @@ -99,8 +98,7 @@ class TestSaleOrder(TestCommonSaleNoChart): self.assertTrue(self.sale_order.invoice_status == 'to invoice') # create invoice: only 'invoice on order' products are invoiced - inv_id = self.sale_order._create_invoices() - invoice = Invoice.browse(inv_id) + invoice = self.sale_order._create_invoices() self.assertEqual(len(invoice.invoice_line_ids), 2, 'Sale: invoice is missing lines') self.assertEqual(invoice.amount_total, sum([2 * p.list_price if p.invoice_policy == 'order' else 0 for p in self.product_map.values()]), 'Sale: invoice total amount is wrong') self.assertTrue(self.sale_order.invoice_status == 'no', 'Sale: SO status after invoicing should be "nothing to invoice"') @@ -112,8 +110,7 @@ class TestSaleOrder(TestCommonSaleNoChart): for line in self.sale_order.order_line: line.qty_delivered = 2 if line.product_id.expense_policy == 'no' else 0 self.assertTrue(self.sale_order.invoice_status == 'to invoice', 'Sale: SO status after delivery should be "to invoice"') - inv_id = self.sale_order._create_invoices() - invoice2 = Invoice.browse(inv_id) + invoice2 = self.sale_order._create_invoices() self.assertEqual(len(invoice2.invoice_line_ids), 2, 'Sale: second invoice is missing lines') self.assertEqual(invoice2.amount_total, sum([2 * p.list_price if p.invoice_policy == 'delivery' else 0 for p in self.product_map.values()]), 'Sale: second invoice total amount is wrong') self.assertTrue(self.sale_order.invoice_status == 'invoiced', 'Sale: SO status after invoicing everything should be "invoiced"') @@ -126,8 +123,7 @@ class TestSaleOrder(TestCommonSaleNoChart): # upsell and invoice self.sol_serv_order.write({'product_uom_qty': 10}) - inv_id = self.sale_order._create_invoices() - invoice3 = Invoice.browse(inv_id) + invoice3 = self.sale_order._create_invoices() self.assertEqual(len(invoice3.invoice_line_ids), 1, 'Sale: third invoice is missing lines') self.assertEqual(invoice3.amount_total, 8 * self.product_map['serv_order'].list_price, 'Sale: second invoice total amount is wrong') self.assertTrue(self.sale_order.invoice_status == 'invoiced', 'Sale: SO status after invoicing everything (including the upsel) should be "invoiced"') @@ -187,19 +183,21 @@ class TestSaleOrder(TestCommonSaleNoChart): so.action_confirm() so._create_analytic_account() - company = self.env.ref('base.main_company') - journal = self.env['account.journal'].create({'name': 'Purchase Journal - Test', 'code': 'STPJ', 'type': 'purchase', 'company_id': company.id}) - invoice_vals = { - 'name': '', + inv = self.env['account.move'].with_context(default_type='in_invoice').create({ 'type': 'in_invoice', 'partner_id': self.partner_customer_usd.id, - 'invoice_line_ids': [(0, 0, {'name': serv_cost.name, 'product_id': serv_cost.id, 'quantity': 2, 'uom_id': serv_cost.uom_id.id, 'price_unit': serv_cost.standard_price, 'account_analytic_id': so.analytic_account_id.id, 'account_id': self.account_income.id})], - 'account_id': self.account_payable.id, - 'journal_id': journal.id, - 'currency_id': company.currency_id.id, - } - inv = self.env['account.invoice'].create(invoice_vals) - inv.action_invoice_open() + 'invoice_line_ids': [ + (0, 0, { + 'name': serv_cost.name, + 'product_id': serv_cost.id, + 'product_uom_id': serv_cost.uom_id.id, + 'quantity': 2, + 'price_unit': serv_cost.standard_price, + 'analytic_account_id': so.analytic_account_id.id, + }), + ], + }) + inv.post() sol = so.order_line.filtered(lambda l: l.product_id == serv_cost) self.assertTrue(sol, 'Sale: cost invoicing does not add lines when confirming vendor invoice') self.assertEquals((sol.price_unit, sol.qty_delivered, sol.product_uom_qty, sol.qty_invoiced), (160, 2, 0, 0), 'Sale: line is wrong after confirming vendor invoice') diff --git a/addons/sale/tests/test_sale_refund.py b/addons/sale/tests/test_sale_refund.py index c9e3f42af77..07446ec33a1 100644 --- a/addons/sale/tests/test_sale_refund.py +++ b/addons/sale/tests/test_sale_refund.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from .test_sale_common import TestCommonSaleNoChart +from odoo.tests import Form class TestSaleToInvoice(TestCommonSaleNoChart): @@ -67,7 +68,7 @@ class TestSaleToInvoice(TestCommonSaleNoChart): 'active_model': 'sale.order', 'active_ids': [cls.sale_order.id], 'active_id': cls.sale_order.id, - 'default_journal_id': cls.journal_sale + 'default_journal_id': cls.journal_sale.id, }).create({ 'advance_payment_method': 'delivered' }) @@ -77,7 +78,7 @@ class TestSaleToInvoice(TestCommonSaleNoChart): def test_refund_create(self): # Validate invoice - self.invoice.action_invoice_open() + self.invoice.post() # Check quantity to invoice on SO lines for line in self.sale_order.order_line: @@ -99,11 +100,11 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(len(line.invoice_lines), 1, "The lines 'ordered' qty are invoiced, so it should be linked to 1 invoice lines") # Make a credit note - credit_note_wizard = self.env['account.invoice.refund'].with_context({'active_ids': [self.invoice.id], 'active_id': self.invoice.id}).create({ - 'filter_refund': 'refund', # this is the only mode for which the SO line is linked to the refund (https://github.com/odoo/odoo/commit/e680f29560ac20133c7af0c6364c6ef494662eac) - 'description': 'reason test create', + credit_note_wizard = self.env['account.move.reversal'].with_context({'active_ids': [self.invoice.id], 'active_id': self.invoice.id}).create({ + 'refund_method': 'refund', # this is the only mode for which the SO line is linked to the refund (https://github.com/odoo/odoo/commit/e680f29560ac20133c7af0c6364c6ef494662eac) + 'reason': 'reason test create', }) - credit_note_wizard.invoice_refund() + credit_note_wizard.reverse_moves() invoice_refund = self.sale_order.invoice_ids.sorted(key=lambda inv: inv.id, reverse=False)[-1] # the first invoice, its refund, and the new invoice # Check invoice's type and number @@ -137,7 +138,7 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(len(line.invoice_lines), 2, "The line 'ordered service' is invoiced, so it should be linked to 2 invoice lines (invoice and refund)") # Validate the refund - invoice_refund.action_invoice_open() + invoice_refund.post() for line in self.sale_order.order_line: if line.product_id.invoice_policy == 'delivery': @@ -164,11 +165,14 @@ class TestSaleToInvoice(TestCommonSaleNoChart): """ Test invoice with a refund in 'cancel' mode, meaning a refund will be created and auto confirm to completely cancel the first customer invoice. The SO will have 2 invoice (customer + refund) in a paid state at the end. """ # Increase quantity of an invoice lines - self.invoice.invoice_line_ids[0].write({'quantity': 6.0}) # consu ordered: from 5 to 6 - self.invoice.invoice_line_ids[1].write({'quantity': 4.0}) # service ordered: from 3 to 4 + with Form(self.invoice) as invoice_form: + with invoice_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 6 + with invoice_form.invoice_line_ids.edit(1) as line_form: + line_form.quantity = 4 # Validate invoice - self.invoice.action_invoice_open() + self.invoice.post() # Check quantity to invoice on SO lines for line in self.sale_order.order_line: @@ -187,16 +191,15 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(line.qty_to_invoice, -1, "The quantity to invoice is negative as we invoice more than ordered") # Make a credit note - credit_note_wizard = self.env['account.invoice.refund'].with_context({'active_ids': [self.invoice.id], 'active_id': self.invoice.id}).create({ - 'filter_refund': 'cancel', - 'description': 'reason test cancel', + credit_note_wizard = self.env['account.move.reversal'].with_context({'active_ids': self.invoice.ids, 'active_id': self.invoice.id}).create({ + 'refund_method': 'cancel', + 'reason': 'reason test cancel', }) - credit_note_wizard.invoice_refund() - invoice_refund = self.sale_order.invoice_ids.sorted(key=lambda inv: inv.id, reverse=False)[-1] # the first invoice, its refund, and the new invoice + invoice_refund = self.env['account.move'].browse(credit_note_wizard.reverse_moves()['res_id']) # Check invoice's type and number self.assertEquals(invoice_refund.type, 'out_refund', 'The last created invoiced should be a customer invoice') - self.assertEquals(invoice_refund.state, 'paid', 'Last Customer creadit note should be in paid state') + self.assertEquals(invoice_refund.invoice_payment_state, 'paid', 'Last Customer creadit note should be in paid state') self.assertEquals(self.sale_order.invoice_count, 2, "The SO should have 3 related invoices: the original, the refund, and the new one") self.assertEquals(len(self.sale_order.invoice_ids.filtered(lambda inv: inv.type == 'out_refund')), 1, "The SO should be linked to only one refund") self.assertEquals(len(self.sale_order.invoice_ids.filtered(lambda inv: inv.type == 'out_invoice')), 1, "The SO should be linked to only one customer invoices") @@ -221,11 +224,14 @@ class TestSaleToInvoice(TestCommonSaleNoChart): def test_refund_modify(self): """ Test invoice with a refund in 'modify' mode, and check customer invoices credit note is created from respective invoice """ # Decrease quantity of an invoice lines - self.invoice.invoice_line_ids[0].write({'quantity': 3.0}) # consu ordered: from 5 to 3 - self.invoice.invoice_line_ids[1].write({'quantity': 2.0}) # service ordered: from 3 to 2 + with Form(self.invoice) as invoice_form: + with invoice_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 3 + with invoice_form.invoice_line_ids.edit(1) as line_form: + line_form.quantity = 2 # Validate invoice - self.invoice.action_invoice_open() + self.invoice.post() # Check quantity to invoice on SO lines for line in self.sale_order.order_line: @@ -247,12 +253,11 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(len(line.invoice_lines), 1, "The lines 'ordered' qty are invoiced, so it should be linked to 1 invoice lines") # Make a credit note - credit_note_wizard = self.env['account.invoice.refund'].with_context({'active_ids': [self.invoice.id], 'active_id': self.invoice.id}).create({ - 'filter_refund': 'modify', # this is the only mode for which the SO line is linked to the refund (https://github.com/odoo/odoo/commit/e680f29560ac20133c7af0c6364c6ef494662eac) - 'description': 'reason test modify', + credit_note_wizard = self.env['account.move.reversal'].with_context({'active_ids': [self.invoice.id], 'active_id': self.invoice.id}).create({ + 'refund_method': 'modify', # this is the only mode for which the SO line is linked to the refund (https://github.com/odoo/odoo/commit/e680f29560ac20133c7af0c6364c6ef494662eac) + 'reason': 'reason test modify', }) - credit_note_wizard.invoice_refund() - invoice_refund = self.sale_order.invoice_ids.sorted(key=lambda inv: inv.id, reverse=False)[-1] # the first invoice, its refund, and the new invoice + invoice_refund = self.env['account.move'].browse(credit_note_wizard.reverse_moves()['res_id']) # Check invoice's type and number self.assertEquals(invoice_refund.type, 'out_invoice', 'The last created invoiced should be a customer invoice') @@ -285,11 +290,15 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(len(line.invoice_lines), 3, "The line 'ordered service' is invoiced, so it should be linked to 3 invoice lines (invoice and refund)") # Change unit of ordered product on refund lines - invoice_refund.invoice_line_ids.filtered(lambda invl: invl.product_id == self.sol_prod_order.product_id).write({'price_unit': 100}) - invoice_refund.invoice_line_ids.filtered(lambda invl: invl.product_id == self.sol_serv_order.product_id).write({'price_unit': 50}) + move_form = Form(invoice_refund) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.price_unit = 100 + with move_form.invoice_line_ids.edit(1) as line_form: + line_form.price_unit = 50 + invoice_refund = move_form.save() # Validate the refund - invoice_refund.action_invoice_open() + invoice_refund.post() for line in self.sale_order.order_line: if line.product_id.invoice_policy == 'delivery': diff --git a/addons/sale/tests/test_sale_to_invoice.py b/addons/sale/tests/test_sale_to_invoice.py index adfd0102b45..97386c83b66 100644 --- a/addons/sale/tests/test_sale_to_invoice.py +++ b/addons/sale/tests/test_sale_to_invoice.py @@ -3,6 +3,7 @@ from odoo.tools import float_is_zero from .test_sale_common import TestCommonSaleNoChart +from odoo.tests import Form class TestSaleToInvoice(TestCommonSaleNoChart): @@ -134,7 +135,7 @@ class TestSaleToInvoice(TestCommonSaleNoChart): }) payment.create_invoices() invoice = self.sale_order.invoice_ids[0] - invoice.action_invoice_open() + invoice.post() # Check discount appeared on both SO lines and invoice lines for line, inv_line in zip(self.sale_order.order_line, invoice.invoice_line_ids): @@ -172,8 +173,12 @@ class TestSaleToInvoice(TestCommonSaleNoChart): invoice = self.sale_order.invoice_ids[0] # Update quantity of an invoice lines - invoice.invoice_line_ids[0].write({'quantity': 3.0}) # product ordered: from 5 to 3 - invoice.invoice_line_ids[1].write({'quantity': 2.0}) # service ordered: from 3 to 2 + move_form = Form(invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 3.0 + with move_form.invoice_line_ids.edit(1) as line_form: + line_form.quantity = 2.0 + invoice = move_form.save() # amount to invoice / invoiced should not have changed (amounts take only confirmed invoice into account) for line in self.sale_order.order_line: @@ -192,7 +197,7 @@ class TestSaleToInvoice(TestCommonSaleNoChart): self.assertEquals(line.untaxed_amount_to_invoice, line.product_uom_qty * line.price_unit, "The amount to invoice should the total of the line, as the line is confirmed (no confirmed invoice)") self.assertEquals(line.untaxed_amount_invoiced, 0.0, "The invoiced amount should be zero, as no invoice are validated for now") - invoice.action_invoice_open() + invoice.post() # Check quantity to invoice on SO lines for line in self.sale_order.order_line: diff --git a/addons/sale/tests/test_sale_transaction.py b/addons/sale/tests/test_sale_transaction.py index 71765022872..ef102706061 100644 --- a/addons/sale/tests/test_sale_transaction.py +++ b/addons/sale/tests/test_sale_transaction.py @@ -38,8 +38,7 @@ class TestSaleTransaction(AccountingTestCase): self.assertTrue(transaction.payment_id) self.assertEqual(transaction.payment_id.state, 'posted') - invoice_ids = order._create_invoices() - invoice = self.env['account.invoice'].browse(invoice_ids) - invoice.action_invoice_open() + invoice = order._create_invoices() + invoice.post() - self.assertEqual(invoice.state, 'paid') + self.assertEqual(invoice.invoice_payment_state, 'paid') diff --git a/addons/sale/views/sale_portal_templates.xml b/addons/sale/views/sale_portal_templates.xml index 9b95b4ad835..8cae1b0074c 100644 --- a/addons/sale/views/sale_portal_templates.xml +++ b/addons/sale/views/sale_portal_templates.xml @@ -408,7 +408,7 @@ <a t-att-href="report_url"> <span t-esc="i.number"/> </a> - <div class="small d-lg-inline-block">Date: <span class="text-muted" t-field="i.date_invoice"/></div> + <div class="small d-lg-inline-block">Date: <span class="text-muted" t-field="i.invoice_date"/></div> </div> <span t-if="i.state == 'paid'" class="small badge badge-success orders_label_text_align"><i class="fa fa-fw fa-check"/> <b>Paid</b></span> <span t-else="" class="small badge badge-info orders_label_text_align"><i class="fa fa-fw fa-clock-o"/> <b>Waiting Payment</b></span> diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml index 2a7346060ba..2783d8c91ad 100644 --- a/addons/sale/views/sale_views.xml +++ b/addons/sale/views/sale_views.xml @@ -1063,11 +1063,11 @@ <!-- Update account invoice search view!--> <record id="account_invoice_groupby_inherit" model="ir.ui.view"> - <field name="name">account.invoice.groupby</field> - <field name="model">account.invoice</field> + <field name="name">account.move.groupby</field> + <field name="model">account.move</field> <field name="inherit_id" ref="account.view_account_invoice_filter"/> <field name="arch" type="xml"> - <xpath expr="//field[@name='user_id']" position="after"> + <xpath expr="//field[@name='invoice_user_id']" position="after"> <field name="team_id"/> </xpath> <xpath expr="//group/filter[@name='status']" position="after"> @@ -1079,21 +1079,26 @@ <!-- Update account invoice !--> <record model="ir.ui.view" id="account_invoice_form"> <field name="name">Account Invoice</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <data> - <xpath expr="//field[@name='user_id']" position="after"> - <field name="team_id"/> - </xpath> <xpath expr="//field[@name='partner_id']" position="after"> - <field name="partner_shipping_id" groups="sale.group_delivery_invoice_address"/> + <field name="partner_shipping_id" + groups="sale.group_delivery_invoice_address" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"/> </xpath> - <xpath expr="//field[@name='discount']" position="attributes"> + <xpath expr="//field[@name='invoice_line_ids']//field[@name='discount']" position="attributes"> <attribute name="groups">sale.group_discount_per_so_line</attribute> </xpath> - <xpath expr="//field[@name='partner_bank_id']/.." position="after"> - <group string="Marketing" name="utm_link" groups="base.group_no_one"> + <xpath expr="//group[@name='sale_info_group']" position="inside"> + <field name="team_id"/> + </xpath> + <xpath expr="//group[@id='other_tab_group']" position="inside"> + <group string="Marketing" + name="utm_link" + groups="base.group_no_one" + attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund'))]}"> <field name="campaign_id"/> <field name="medium_id"/> <field name="source_id"/> @@ -1103,45 +1108,6 @@ </field> </record> - <record model="ir.ui.view" id="account_invoice_line_tree"> - <field name="name">account.invoice.line.tree</field> - <field name="model">account.invoice.line</field> - <field name="inherit_id" ref="account.view_invoice_line_tree"/> - <field name="arch" type="xml"> - <data> - <xpath expr="//field[@name='discount']" position="attributes"> - <attribute name="groups">sale.group_discount_per_so_line</attribute> - </xpath> - </data> - </field> - </record> - - <record model="ir.ui.view" id="account_invoice_line_form"> - <field name="name">account.invoice.line.form</field> - <field name="model">account.invoice.line</field> - <field name="inherit_id" ref="account.view_invoice_line_form"/> - <field name="arch" type="xml"> - <data> - <xpath expr="//field[@name='discount']" position="attributes"> - <attribute name="groups">sale.group_discount_per_so_line</attribute> - </xpath> - </data> - </field> - </record> - - <record model="ir.ui.view" id="account_invoice_supplier_form"> - <field name="name">account.invoice.supplier.form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <data> - <xpath expr="//field[@name='discount']" position="attributes"> - <attribute name="groups">sale.group_discount_per_so_line</attribute> - </xpath> - </data> - </field> - </record> - <record id="product_pricelist_view_tree" model="ir.ui.view"> <field name="name">product.pricelist.tree.inherit.product</field> <field name="model">product.pricelist</field> @@ -1238,11 +1204,11 @@ </record> <record id="action_invoice_salesteams" model="ir.actions.act_window"> <field name="name">Invoices</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="view_mode">tree,form,calendar,graph,kanban,pivot</field> - <field name="view_id" ref="account.invoice_tree"/> + <field name="view_id" ref="account.view_move_tree"/> <field name="domain">[ - ('state', 'not in', ['draft', 'cancel']), + ('state', '=', 'posted'), ('type', 'in', ['out_invoice', 'out_refund'])]</field> <field name="context">{ 'search_default_team_id': [active_id], @@ -1264,7 +1230,7 @@ <record id="action_invoice_salesteams_view_form" model="ir.actions.act_window.view"> <field name="sequence">2</field> <field name="view_mode">form</field> - <field name="view_id" ref="account.invoice_form"/> + <field name="view_id" ref="account.view_move_form"/> <field name="act_window_id" ref="sale.action_invoice_salesteams"/> </record> diff --git a/addons/sale/views/sales_team_views.xml b/addons/sale/views/sales_team_views.xml index 12e58a92e63..fe09a37b701 100644 --- a/addons/sale/views/sales_team_views.xml +++ b/addons/sale/views/sales_team_views.xml @@ -20,7 +20,7 @@ <xpath expr="//group/filter[@name='user']" position="after"> <filter string="Sales Team" name="sales_channel" domain="[]" context="{'group_by':'team_id'}"/> </xpath> - <xpath expr="//field[@name='user_id']" position="after"> + <xpath expr="//field[@name='invoice_user_id']" position="after"> <field name="team_id"/> </xpath> </field> @@ -41,7 +41,7 @@ <field name="search_view_id" ref="sale_order_view_search_inherit_quotation"/> </record> - <record id="crm_team_salesteams_view_kanban" model="ir.ui.view"> + <record id="crm_team_salesteams_view_kanban" model="ir.ui.view"> <field name="name">crm.team.kanban</field> <field name="model">crm.team</field> <field name="inherit_id" ref="sales_team.crm_team_salesteams_view_kanban"/> diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py index 58e10c2480a..8263eff54b7 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.py +++ b/addons/sale/wizard/sale_make_invoice_advance.py @@ -64,69 +64,43 @@ class SaleAdvancePaymentInv(models.TransientModel): @api.multi def _create_invoice(self, order, so_line, amount): - inv_obj = self.env['account.invoice'] - ir_property_obj = self.env['ir.property'] - - account_id = False - if self.product_id.id: - account_id = order.fiscal_position_id.map_account(self.product_id.property_account_income_id or self.product_id.categ_id.property_account_income_categ_id).id - if not account_id: - inc_acc = ir_property_obj.get('property_account_income_categ_id', 'product.category') - account_id = order.fiscal_position_id.map_account(inc_acc).id if inc_acc else False - if not account_id: - raise UserError( - _('There is no income account defined for this product: "%s". You may have to install a chart of account from Accounting app, settings menu.') % - (self.product_id.name,)) - if self.amount <= 0.00: raise UserError(_('The value of the down payment amount must be positive.')) - context = {'lang': order.partner_id.lang} if self.advance_payment_method == 'percentage': amount = order.amount_untaxed * self.amount / 100 name = _("Down payment of %s%%") % (self.amount,) else: amount = self.amount name = _('Down Payment') - del context - taxes = self.product_id.taxes_id.filtered(lambda r: not order.company_id or r.company_id == order.company_id) - if order.fiscal_position_id and taxes: - tax_ids = order.fiscal_position_id.map_tax(taxes, self.product_id, order.partner_shipping_id).ids - else: - tax_ids = taxes.ids - invoice = inv_obj.create({ - 'name': order.client_order_ref, - 'origin': order.name, + invoice_vals = { 'type': 'out_invoice', - 'reference': False, - 'account_id': order.partner_id.property_account_receivable_id.id, + 'invoice_origin': order.name, + 'invoice_user_id': order.user_id.id, + 'narration': order.note, 'partner_id': order.partner_invoice_id.id, + 'fiscal_position_id': order.fiscal_position_id.id or order.partner_id.property_account_position_id.id, 'partner_shipping_id': order.partner_shipping_id.id, + 'currency_id': order.pricelist_id.currency_id.id, + 'invoice_payment_ref': order.client_order_ref, + 'invoice_payment_term_id': order.payment_term_id.id, + 'team_id': order.team_id.id, + 'campaign_id': order.campaign_id.id, + 'medium_id': order.medium_id.id, + 'source_id': order.source_id.id, 'invoice_line_ids': [(0, 0, { 'name': name, - 'origin': order.name, - 'account_id': account_id, 'price_unit': amount, 'quantity': 1.0, - 'discount': 0.0, - 'uom_id': self.product_id.uom_id.id, 'product_id': self.product_id.id, 'sale_line_ids': [(6, 0, [so_line.id])], - 'invoice_line_tax_ids': [(6, 0, tax_ids)], 'analytic_tag_ids': [(6, 0, so_line.analytic_tag_ids.ids)], - 'account_analytic_id': order.analytic_account_id.id or False, + 'analytic_account_id': order.analytic_account_id.id or False, })], - 'currency_id': order.pricelist_id.currency_id.id, - 'payment_term_id': order.payment_term_id.id, - 'fiscal_position_id': order.fiscal_position_id.id or order.partner_id.property_account_position_id.id, - 'team_id': order.team_id.id, - 'campaign_id': order.campaign_id.id, - 'medium_id': order.medium_id.id, - 'source_id': order.source_id.id, - 'user_id': order.user_id.id, - 'comment': order.note, - }) - invoice.compute_taxes() + } + if order.fiscal_position_id: + invoice_vals['fiscal_position_id'] = order.fiscal_position_id.id + invoice = self.env['account.move'].create(invoice_vals) invoice.message_post_with_view('mail.message_origin_link', values={'self': invoice, 'origin': order}, subtype_id=self.env.ref('mail.mt_note').id) diff --git a/addons/sale_crm/models/__init__.py b/addons/sale_crm/models/__init__.py index 0317332dce1..3ae8003c29c 100644 --- a/addons/sale_crm/models/__init__.py +++ b/addons/sale_crm/models/__init__.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import account_invoice from . import crm_lead from . import crm_team from . import res_users diff --git a/addons/sale_crm/models/account_invoice.py b/addons/sale_crm/models/account_invoice.py deleted file mode 100755 index 695766f651a..00000000000 --- a/addons/sale_crm/models/account_invoice.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import models - - -class AccountInvoice(models.Model): - _name = "account.invoice" - _inherit = ['account.invoice', 'utm.mixin'] diff --git a/addons/sale_crm/models/crm_lead.py b/addons/sale_crm/models/crm_lead.py index 45f0982d0a0..f89a509c74b 100644 --- a/addons/sale_crm/models/crm_lead.py +++ b/addons/sale_crm/models/crm_lead.py @@ -42,21 +42,22 @@ class CrmLead(models.Model): 'last_month': 0, } account_invoice_domain = [ - ('state', 'in', ['open', 'in_payment', 'paid']), - ('user_id', '=', self.env.uid), - ('date_invoice', '>=', date_today.replace(day=1) - relativedelta(months=+1)), + ('state', '=', 'posted'), + ('invoice_user_id', '=', self.env.uid), + ('invoice_date', '>=', date_today.replace(day=1) - relativedelta(months=+1)), ('type', 'in', ['out_invoice', 'out_refund']) ] - invoice_data = self.env['account.invoice'].search_read(account_invoice_domain, ['date_invoice', 'amount_untaxed_signed']) + invoice_data = self.env['account.move'].search_read(account_invoice_domain, ['invoice_date', 'amount_untaxed', 'type']) for invoice in invoice_data: - if invoice['date_invoice']: - invoice_date = fields.Date.from_string(invoice['date_invoice']) + if invoice['invoice_date']: + invoice_date = fields.Date.from_string(invoice['invoice_date']) + sign = 1 if invoice['type'] == 'out_invoice' else -1 if invoice_date <= date_today and invoice_date >= date_today.replace(day=1): - res['invoiced']['this_month'] += invoice['amount_untaxed_signed'] + res['invoiced']['this_month'] += sign * invoice['amount_untaxed'] elif invoice_date < date_today.replace(day=1) and invoice_date >= date_today.replace(day=1) - relativedelta(months=+1): - res['invoiced']['last_month'] += invoice['amount_untaxed_signed'] + res['invoiced']['last_month'] += sign * invoice['amount_untaxed'] res['invoiced']['target'] = self.env.user.target_sales_invoiced return res diff --git a/addons/sale_expense/tests/test_sale_expense.py b/addons/sale_expense/tests/test_sale_expense.py index 3e58ea4d23d..0af29c9dacb 100644 --- a/addons/sale_expense/tests/test_sale_expense.py +++ b/addons/sale_expense/tests/test_sale_expense.py @@ -88,6 +88,5 @@ class TestSaleExpense(TestSale): # self.assertTrue(so.invoice_status, 'no', 'Sale Expense: expenses should not impact the invoice_status of the so') # both expenses should be invoiced - inv_id = so._create_invoices() - inv = self.env['account.invoice'].browse(inv_id) + inv = so._create_invoices() self.assertEqual(inv.amount_untaxed, 621.54 + (prod_exp_2.list_price * 100.0), 'Sale Expense: invoicing of expense is wrong') diff --git a/addons/sale_mrp/models/__init__.py b/addons/sale_mrp/models/__init__.py index 75e0d652578..9a9609e5400 100644 --- a/addons/sale_mrp/models/__init__.py +++ b/addons/sale_mrp/models/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import sale_mrp +from . import account_move diff --git a/addons/sale_mrp/models/account_move.py b/addons/sale_mrp/models/account_move.py new file mode 100644 index 00000000000..a1ff4ff9c2b --- /dev/null +++ b/addons/sale_mrp/models/account_move.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +from odoo import models + + +class AccountMoveLine(models.Model): + # TDE FIXME: what is this code ?? + _inherit = "account.move.line" + + def _stock_account_get_anglo_saxon_price_unit(self): + price_unit = super(AccountMoveLine, self)._stock_account_get_anglo_saxon_price_unit() + # in case of anglo saxon with a product configured as invoiced based on delivery, with perpetual + # valuation and real price costing method, we must find the real price for the cost of good sold + if self.product_id.invoice_policy == "delivery": + for s_line in self.sale_line_ids: + # qtys already invoiced + qty_done = sum([x.product_uom_id._compute_quantity(x.quantity, x.product_id.uom_id) for x in s_line.invoice_lines if x.move_id.state == 'posted']) + quantity = self.product_uom_id._compute_quantity(self.quantity, self.product_id.uom_id) + # Put moves in fixed order by date executed + moves = s_line.move_ids.sorted(lambda x: x.date) + # Go through all the moves and do nothing until you get to qty_done + # Beyond qty_done we need to calculate the average of the price_unit + # on the moves we encounter. + bom = s_line.product_id.product_tmpl_id.bom_ids and s_line.product_id.product_tmpl_id.bom_ids[0] + if bom.type == 'phantom': + average_price_unit = 0 + components = s_line._get_bom_component_qty(bom) + for product_id in components: + factor = components[product_id]['qty'] + prod_moves = [m for m in moves if m.product_id.id == product_id] + prod_qty_done = factor * qty_done + prod_quantity = factor * quantity + average_price_unit += factor * self._compute_average_price(prod_qty_done, prod_quantity, prod_moves) + price_unit = average_price_unit or price_unit + price_unit = self.product_id.uom_id._compute_price(price_unit, self.product_uom_id) + return price_unit diff --git a/addons/sale_mrp/models/sale_mrp.py b/addons/sale_mrp/models/sale_mrp.py index d80fdf068a7..f63519c0f72 100644 --- a/addons/sale_mrp/models/sale_mrp.py +++ b/addons/sale_mrp/models/sale_mrp.py @@ -101,36 +101,3 @@ class SaleOrderLine(models.Model): if bom and 'previous_product_uom_qty' in self.env.context: return previous_product_uom_qty and previous_product_uom_qty.get(self.id, 0.0) return super(SaleOrderLine, self)._get_qty_procurement(previous_product_uom_qty=previous_product_uom_qty) - - -class AccountInvoiceLine(models.Model): - # TDE FIXME: what is this code ?? - _inherit = "account.invoice.line" - - def _get_anglo_saxon_price_unit(self): - price_unit = super(AccountInvoiceLine, self)._get_anglo_saxon_price_unit() - # in case of anglo saxon with a product configured as invoiced based on delivery, with perpetual - # valuation and real price costing method, we must find the real price for the cost of good sold - if self.product_id.invoice_policy == "delivery": - for s_line in self.sale_line_ids: - # qtys already invoiced - qty_done = sum([x.uom_id._compute_quantity(x.quantity, x.product_id.uom_id) for x in s_line.invoice_lines if x.invoice_id.state in ('open', 'in_payment', 'paid')]) - quantity = self.uom_id._compute_quantity(self.quantity, self.product_id.uom_id) - # Put moves in fixed order by date executed - moves = s_line.move_ids.sorted(lambda x: x.date) - # Go through all the moves and do nothing until you get to qty_done - # Beyond qty_done we need to calculate the average of the price_unit - # on the moves we encounter. - bom = s_line.product_id.product_tmpl_id.bom_ids and s_line.product_id.product_tmpl_id.bom_ids[0] - if bom.type == 'phantom': - average_price_unit = 0 - components = s_line._get_bom_component_qty(bom) - for product_id in components: - factor = components[product_id]['qty'] - prod_moves = [m for m in moves if m.product_id.id == product_id] - prod_qty_done = factor * qty_done - prod_quantity = factor * quantity - average_price_unit += factor * self._compute_average_price(prod_qty_done, prod_quantity, prod_moves) - price_unit = average_price_unit or price_unit - price_unit = self.product_id.uom_id._compute_price(price_unit, self.uom_id) - return price_unit diff --git a/addons/sale_mrp/tests/test_sale_mrp_flow.py b/addons/sale_mrp/tests/test_sale_mrp_flow.py index 4f4c2a35061..bafa2a17882 100644 --- a/addons/sale_mrp/tests/test_sale_mrp_flow.py +++ b/addons/sale_mrp/tests/test_sale_mrp_flow.py @@ -561,6 +561,7 @@ class TestSaleMrpFlow(common.SavepointCase): # These products are in the Test category # The bom consists of 2 component1 and 1 component2 # The invoice policy of the finished product is based on delivered quantities + self.env.company.currency_id = self.env.ref('base.USD') self.uom_unit = self.UoM.create({ 'name': 'Test-Unit', 'category_id': self.categ_unit.id, @@ -571,7 +572,7 @@ class TestSaleMrpFlow(common.SavepointCase): self.company.anglo_saxon_accounting = True self.partner = self.env.ref('base.res_partner_1') self.category = self.env.ref('product.product_category_1').copy({'name': 'Test category','property_valuation': 'real_time', 'property_cost_method': 'fifo'}) - account_type = self.env['account.account.type'].create({'name': 'RCV type', 'type': 'receivable'}) + account_type = self.env['account.account.type'].create({'name': 'RCV type', 'type': 'other'}) self.account_receiv = self.env['account.account'].create({'name': 'Receivable', 'code': 'RCV00' , 'user_type_id': account_type.id, 'reconcile': True}) account_expense = self.env['account.account'].create({'name': 'Expense', 'code': 'EXP00' , 'user_type_id': account_type.id, 'reconcile': True}) account_output = self.env['account.account'].create({'name': 'Output', 'code': 'OUT00' , 'user_type_id': account_type.id, 'reconcile': True}) @@ -632,7 +633,13 @@ class TestSaleMrpFlow(common.SavepointCase): 'partner_id': self.partner.id, 'partner_invoice_id': self.partner.id, 'partner_shipping_id': self.partner.id, - 'order_line': [(0, 0, {'name': self.finished_product.name, 'product_id': self.finished_product.id, 'product_uom_qty': 3, 'product_uom': self.finished_product.uom_id.id, 'price_unit': self.finished_product.list_price})], + 'order_line': [(0, 0, { + 'name': self.finished_product.name, + 'product_id': self.finished_product.id, + 'product_uom_qty': 3, + 'product_uom': self.finished_product.uom_id.id, + 'price_unit': self.finished_product.list_price + })], 'pricelist_id': self.env.ref('product.list0').id, 'company_id': self.company.id, } @@ -650,11 +657,14 @@ class TestSaleMrpFlow(common.SavepointCase): self.so._create_invoices() self.invoice = self.so.invoice_ids # Changed the invoiced quantity of the finished product to 2 - self.invoice.invoice_line_ids.write({'quantity': 2.0}) - self.invoice.action_invoice_open() - aml = self.invoice.move_id.line_ids - aml_expense = aml.filtered(lambda l: l.account_id.id == account_expense.id) - aml_output = aml.filtered(lambda l: l.account_id.id == account_output.id) + move_form = Form(self.invoice) + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.quantity = 2.0 + self.invoice = move_form.save() + self.invoice.post() + aml = self.invoice.line_ids + aml_expense = aml.filtered(lambda l: l.is_anglo_saxon_line and l.debit > 0) + aml_output = aml.filtered(lambda l: l.is_anglo_saxon_line and l.credit > 0) # Check that the cost of Good Sold entries are equal to 2* (2 * 20 + 1 * 10) = 100 self.assertEqual(aml_expense.debit, 100, "Cost of Good Sold entry missing or mismatching") self.assertEqual(aml_output.credit, 100, "Cost of Good Sold entry missing or mismatching") diff --git a/addons/sale_stock/models/__init__.py b/addons/sale_stock/models/__init__.py index 1f11274e77a..b2be36f44b9 100644 --- a/addons/sale_stock/models/__init__.py +++ b/addons/sale_stock/models/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import account_invoice +from . import account_move from . import res_company from . import sale_order from . import res_config_settings diff --git a/addons/sale_stock/models/account_invoice.py b/addons/sale_stock/models/account_move.py index 26ab9a69f92..e9a8edc5f78 100644 --- a/addons/sale_stock/models/account_invoice.py +++ b/addons/sale_stock/models/account_move.py @@ -7,17 +7,17 @@ from odoo import fields, models from odoo.tools import float_is_zero -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' - def _get_last_step_stock_moves(self): + def _stock_account_get_last_step_stock_moves(self): """ Overridden from stock_account. Returns the stock moves associated to this invoice.""" - rslt = super(AccountInvoice, self)._get_last_step_stock_moves() + rslt = super(AccountMove, self)._stock_account_get_last_step_stock_moves() for invoice in self.filtered(lambda x: x.type == 'out_invoice'): rslt += invoice.mapped('invoice_line_ids.sale_line_ids.order_id.picking_ids.move_lines').filtered(lambda x: x.state == 'done' and x.location_dest_id.usage == 'customer') for invoice in self.filtered(lambda x: x.type == 'out_refund'): - rslt += invoice.mapped('refund_invoice_id.invoice_line_ids.sale_line_ids.order_id.picking_ids.move_lines').filtered(lambda x: x.state == 'done' and x.location_id.usage == 'customer') + rslt += invoice.mapped('reversed_entry_id.invoice_line_ids.sale_line_ids.order_id.picking_ids.move_lines').filtered(lambda x: x.state == 'done' and x.location_id.usage == 'customer') return rslt def _get_invoiced_lot_values(self): @@ -96,18 +96,18 @@ class AccountInvoice(models.Model): return lot_values -class AccountInvoiceLine(models.Model): - _inherit = "account.invoice.line" +class AccountMoveLine(models.Model): + _inherit = "account.move.line" - def _get_anglo_saxon_price_unit(self): - price_unit = super(AccountInvoiceLine,self)._get_anglo_saxon_price_unit() + def _stock_account_get_anglo_saxon_price_unit(self): + price_unit = super(AccountMoveLine,self)._stock_account_get_anglo_saxon_price_unit() # in case of anglo saxon with a product configured as invoiced based on delivery, with perpetual # valuation and real price costing method, we must find the real price for the cost of good sold if self.product_id.invoice_policy == "delivery": for s_line in self.sale_line_ids: # qtys already invoiced - qty_done = sum([x.uom_id._compute_quantity(x.quantity, x.product_id.uom_id) for x in s_line.invoice_lines if x.invoice_id.state in ('open', 'in_payment', 'paid')]) - quantity = self.uom_id._compute_quantity(self.quantity, self.product_id.uom_id) + qty_done = sum([x.product_uom_id._compute_quantity(x.quantity, x.product_id.uom_id) for x in s_line.invoice_lines if x.move_id.state == 'posted']) + quantity = self.product_uom_id._compute_quantity(self.quantity, self.product_id.uom_id) # Put moves in fixed order by date executed moves = s_line.move_ids.sorted(lambda x: x.date) # Go through all the moves and do nothing until you get to qty_done @@ -115,7 +115,7 @@ class AccountInvoiceLine(models.Model): # on the moves we encounter. average_price_unit = self._compute_average_price(qty_done, quantity, moves) price_unit = average_price_unit or price_unit - price_unit = self.product_id.uom_id._compute_price(price_unit, self.uom_id) + price_unit = self.product_id.uom_id._compute_price(price_unit, self.product_uom_id) return price_unit def _compute_average_price(self, qty_done, quantity, moves): diff --git a/addons/sale_stock/models/sale_order.py b/addons/sale_stock/models/sale_order.py index 1393d284284..4379feb3370 100644 --- a/addons/sale_stock/models/sale_order.py +++ b/addons/sale_stock/models/sale_order.py @@ -160,7 +160,7 @@ class SaleOrder(models.Model): @api.multi def _prepare_invoice(self): invoice_vals = super(SaleOrder, self)._prepare_invoice() - invoice_vals['incoterm_id'] = self.incoterm.id or False + invoice_vals['invoice_incoterm_id'] = self.incoterm.id return invoice_vals @api.model diff --git a/addons/sale_stock/models/stock.py b/addons/sale_stock/models/stock.py index 36c2795e61d..21972630368 100644 --- a/addons/sale_stock/models/stock.py +++ b/addons/sale_stock/models/stock.py @@ -31,9 +31,9 @@ class StockMove(models.Model): related to this stock move. """ rslt = super(StockMove, self)._get_related_invoices() - invoices = self.mapped('picking_id.sale_id.invoice_ids').filtered(lambda x: x.state not in ('draft', 'cancel')) + invoices = self.mapped('picking_id.sale_id.invoice_ids').filtered(lambda x: x.state == 'posted') rslt += invoices - #rslt += invoices.mapped('refund_invoice_ids') + #rslt += invoices.mapped('reverse_entry_ids') return rslt def _assign_picking_post_process(self, new=False): diff --git a/addons/sale_stock/tests/test_anglo_saxon_valuation_reconciliation.py b/addons/sale_stock/tests/test_anglo_saxon_valuation_reconciliation.py index cf444c56bb3..ae913f88d45 100644 --- a/addons/sale_stock/tests/test_anglo_saxon_valuation_reconciliation.py +++ b/addons/sale_stock/tests/test_anglo_saxon_valuation_reconciliation.py @@ -47,24 +47,21 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): rslt.action_confirm() return rslt - def _create_invoice_for_so(self, sale_order, product, date): - rslt = self.env['account.invoice'].create({ + def _create_invoice_for_so(self, sale_order, product, date, quantity=1.0): + rslt = self.env['account.move'].create({ 'partner_id': self.test_partner.id, 'currency_id': self.currency_two.id, - 'name': 'customer invoice', 'type': 'out_invoice', - 'date_invoice': date, - 'account_id': self.account_receivable.id, + 'invoice_date': date, 'invoice_line_ids': [(0, 0, { 'name': 'test line', - 'origin': sale_order.name, 'account_id': self.account_income.id, 'price_unit': self.product_price_unit, - 'quantity': 1.0, + 'quantity': quantity, 'discount': 0.0, - 'uom_id': product.uom_id.id, + 'product_uom_id': product.uom_id.id, 'product_id': product.id, - 'sale_line_ids': [(6, 0, [line.id for line in sale_order.order_line])], + 'sale_line_ids': [(6, 0, sale_order.order_line.ids)], })], }) @@ -103,7 +100,7 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): 'rate': 9.87366352, 'name': '2018-02-01', }) - invoice.action_invoice_open() + invoice.post() picking = self.env['stock.picking'].search([('sale_id', '=', sale_order.id)]) self.check_reconciliation(invoice, picking, operation='sale') @@ -125,7 +122,7 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): 'rate': 0.974784, 'name': '2018-02-01', }) - invoice.action_invoice_open() + invoice.post() self._process_pickings(sale_order.picking_ids) @@ -155,13 +152,15 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): 'rate': 9.56564564, 'name': '2018-04-01', }) - refund_invoice_wiz = self.env['account.invoice.refund'].with_context(active_ids=[invoice.id]).create({ - 'description': 'test_invoice_shipment_refund', - 'filter_refund': 'cancel', + refund_invoice_wiz = self.env['account.move.reversal'].with_context(active_ids=[invoice.id]).create({ + 'reason': 'test_invoice_shipment_refund', + 'refund_method': 'cancel', }) - refund_invoice_wiz.invoice_refund() - refund_invoice = self.env['account.invoice'].search([('name', '=', 'test_invoice_shipment_refund')])[0] - self.assertTrue(invoice.state == refund_invoice.state == 'paid'), "Invoice and refund should both be in 'Paid' state" + refund_invoice = self.env['account.move'].browse(refund_invoice_wiz.reverse_moves()['res_id']) + self.assertTrue( + invoice.invoice_payment_state == refund_invoice.invoice_payment_state == 'paid', + "Invoice and refund should both be in 'Paid' state" + ) self.check_reconciliation(refund_invoice, return_pick, operation='sale') def test_multiple_shipments_invoices(self): @@ -175,28 +174,24 @@ class TestValuationReconciliation(ValuationReconciliationTestCase): self._process_pickings(sale_order.picking_ids, quantity=2.0) picking = self.env['stock.picking'].search([('sale_id', '=', sale_order.id)], order="id asc", limit=1) - invoice = self._create_invoice_for_so(sale_order, test_product, '2018-02-03') - invoice_line = self.env['account.invoice.line'].search([('invoice_id', '=', invoice.id)]) - invoice_line.quantity = 3 + invoice = self._create_invoice_for_so(sale_order, test_product, '2018-02-03', quantity=3) self.env['res.currency.rate'].create({ 'currency_id': self.currency_one.id, 'company_id': self.company.id, 'rate': 7.76435463, 'name': '2018-02-01', }) - invoice.action_invoice_open() + invoice.post() self.check_reconciliation(invoice, picking, full_reconcile=False, operation='sale') - invoice2 = self._create_invoice_for_so(sale_order, test_product, '2018-03-12') - invoice_line = self.env['account.invoice.line'].search([('invoice_id', '=', invoice2.id)]) - invoice_line.quantity = 2 + invoice2 = self._create_invoice_for_so(sale_order, test_product, '2018-03-12', quantity=2) self.env['res.currency.rate'].create({ 'currency_id': self.currency_one.id, 'company_id': self.company.id, 'rate': 13.834739702, 'name': '2018-03-01', }) - invoice2.action_invoice_open() + invoice2.post() self.check_reconciliation(invoice2, picking, full_reconcile=False, operation='sale') self.env['res.currency.rate'].create({ diff --git a/addons/sale_stock/tests/test_sale_stock.py b/addons/sale_stock/tests/test_sale_stock.py index 9bea6fa8847..47fd2408bd3 100644 --- a/addons/sale_stock/tests/test_sale_stock.py +++ b/addons/sale_stock/tests/test_sale_stock.py @@ -13,7 +13,7 @@ class TestSaleStock(TestSale): Test SO's changes when playing around with stock moves, quants, pack operations, pickings and whatever other model there is in stock with "invoice on delivery" products """ - inv_obj = self.env['account.invoice'] + inv_obj = self.env['account.move'] self.so = self.env['sale.order'].create({ 'partner_id': self.partner.id, 'partner_invoice_id': self.partner.id, @@ -41,8 +41,7 @@ class TestSaleStock(TestSale): del_qties_truth = [1.0 if sol.product_id.type in ['product', 'consu'] else 0.0 for sol in self.so.order_line] self.assertEqual(del_qties, del_qties_truth, 'Sale Stock: delivered quantities are wrong after partial delivery') # invoice on delivery: only storable products - inv_id = self.so._create_invoices() - inv_1 = inv_obj.browse(inv_id) + inv_1 = self.so._create_invoices() self.assertTrue(all([il.product_id.invoice_policy == 'delivery' for il in inv_1.invoice_line_ids]), 'Sale Stock: invoice should only contain "invoice on delivery" products') @@ -93,7 +92,7 @@ class TestSaleStock(TestSale): 'product_id': self.env.ref('sale.advance_product_0').id, }) act = adv_wiz.with_context(open_invoices=True).create_invoices() - inv = self.env['account.invoice'].browse(act['res_id']) + inv = self.env['account.move'].browse(act['res_id']) self.assertEqual(inv.amount_untaxed, self.so.amount_untaxed * 5.0 / 100.0, 'Sale Stock: deposit invoice is wrong') self.assertEqual(self.so.invoice_status, 'to invoice', 'Sale Stock: so should be to invoice after invoicing deposit') # invoice on order: everything should be invoiced @@ -151,12 +150,11 @@ class TestSaleStock(TestSale): # Check invoice self.assertEqual(self.so.invoice_status, 'to invoice', 'Sale Stock: so invoice_status should be "to invoice" instead of "%s" before invoicing' % self.so.invoice_status) - inv_1_id = self.so._create_invoices() + self.inv_1 = self.so._create_invoices() self.assertEqual(self.so.invoice_status, 'invoiced', 'Sale Stock: so invoice_status should be "invoiced" instead of "%s" after invoicing' % self.so.invoice_status) - self.assertEqual(len(inv_1_id), 1, 'Sale Stock: only one invoice instead of "%s" should be created' % len(inv_1_id)) - self.inv_1 = self.env['account.invoice'].browse(inv_1_id) + self.assertEqual(len(self.inv_1), 1, 'Sale Stock: only one invoice instead of "%s" should be created' % len(self.inv_1)) self.assertEqual(self.inv_1.amount_untaxed, self.inv_1.amount_untaxed, 'Sale Stock: amount in SO and invoice should be the same') - self.inv_1.action_invoice_open() + self.inv_1.post() # Create return picking stock_return_picking_form = Form(self.env['stock.return.picking'] @@ -226,10 +224,9 @@ class TestSaleStock(TestSale): # Check invoice self.assertEqual(self.so.invoice_status, 'to invoice', 'Sale Stock: so invoice_status should be "to invoice" before invoicing') - inv_1_id = self.so._create_invoices() + self.inv_1 = self.so._create_invoices() self.assertEqual(self.so.invoice_status, 'no', 'Sale Stock: so invoice_status should be "no" after invoicing') - self.assertEqual(len(inv_1_id), 1, 'Sale Stock: only one invoice should be created') - self.inv_1 = self.env['account.invoice'].browse(inv_1_id) + self.assertEqual(len(self.inv_1), 1, 'Sale Stock: only one invoice should be created') self.assertEqual(self.inv_1.amount_untaxed, self.inv_1.amount_untaxed, 'Sale Stock: amount in SO and invoice should be the same') self.so.action_done() diff --git a/addons/sale_timesheet/models/__init__.py b/addons/sale_timesheet/models/__init__.py index 7b8dab836ce..d86f267756a 100644 --- a/addons/sale_timesheet/models/__init__.py +++ b/addons/sale_timesheet/models/__init__.py @@ -2,7 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import account -from . import account_invoice +from . import account_move from . import product from . import project from . import project_overview diff --git a/addons/sale_timesheet/models/account.py b/addons/sale_timesheet/models/account.py index ec2cfe53213..be4c3e6b6ce 100644 --- a/addons/sale_timesheet/models/account.py +++ b/addons/sale_timesheet/models/account.py @@ -19,7 +19,7 @@ class AccountAnalyticLine(models.Model): ('billable_fixed', 'Billed at a Fixed price'), ('non_billable', 'Non Billable Tasks'), ('non_billable_project', 'No task found')], string="Billable Type", compute='_compute_timesheet_invoice_type', compute_sudo=True, store=True, readonly=True) - timesheet_invoice_id = fields.Many2one('account.invoice', string="Invoice", readonly=True, copy=False, help="Invoice created from the timesheet") + timesheet_invoice_id = fields.Many2one('account.move', string="Invoice", readonly=True, copy=False, help="Invoice created from the timesheet") @api.multi @api.depends('so_line.product_id', 'project_id', 'task_id') diff --git a/addons/sale_timesheet/models/account_invoice.py b/addons/sale_timesheet/models/account_move.py index 7042ec2465c..08c797a819d 100644 --- a/addons/sale_timesheet/models/account_invoice.py +++ b/addons/sale_timesheet/models/account_move.py @@ -5,8 +5,8 @@ from odoo import api, fields, models, _ from odoo.tools.float_utils import float_round, float_is_zero -class AccountInvoice(models.Model): - _inherit = "account.invoice" +class AccountMove(models.Model): + _inherit = "account.move" timesheet_ids = fields.One2many('account.analytic.line', 'timesheet_invoice_id', string='Timesheets', readonly=True, copy=False) timesheet_count = fields.Integer("Number of timesheets", compute='_compute_timesheet_count') @@ -45,26 +45,28 @@ class AccountInvoice(models.Model): } -class AccountInvoiceLine(models.Model): - _inherit = 'account.invoice.line' +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' - @api.model - def create(self, values): - """ Link the timesheet from the SO lines to the corresponding draft invoice. - NOTE: only the timesheets linked to an Sale Line with a product invoiced on delivered quantity - are concerned, since in ordered quantity, the timesheet quantity is not invoiced, but is simply - to compute the delivered one (for reporting). - """ - invoice_line = super(AccountInvoiceLine, self).create(values) - if invoice_line.invoice_id.type == 'out_invoice' and invoice_line.invoice_id.state == 'draft': - sale_line_delivery = invoice_line.sale_line_ids.filtered(lambda sol: sol.product_id.invoice_policy == 'delivery' and sol.product_id.service_type == 'timesheet') + @api.model_create_multi + def create(self, vals_list): + # OVERRIDE + # Link the timesheet from the SO lines to the corresponding draft invoice. + # NOTE: Only the timesheets linked to an Sale Line with a product invoiced on delivered quantity + # are concerned, since in ordered quantity, the timesheet quantity is not invoiced, but is simply + # to compute the delivered one (for reporting). + lines = super(AccountMoveLine, self).create(vals_list) + lines_to_process = lines.filtered(lambda line: line.move_id.type == 'out_invoice' + and line.move_id.state == 'draft') + for line in lines_to_process: + sale_line_delivery = line.sale_line_ids.filtered(lambda sol: sol.product_id.invoice_policy == 'delivery' and sol.product_id.service_type == 'timesheet') if sale_line_delivery: domain = self._timesheet_domain_get_invoiced_lines(sale_line_delivery) timesheets = self.env['account.analytic.line'].search(domain) timesheets.write({ - 'timesheet_invoice_id': invoice_line.invoice_id.id, + 'timesheet_invoice_id': line.move_id.id, }) - return invoice_line + return lines @api.model def _timesheet_domain_get_invoiced_lines(self, sale_line_delivery): diff --git a/addons/sale_timesheet/models/project_overview.py b/addons/sale_timesheet/models/project_overview.py index e495efe906a..afa3e5cc642 100644 --- a/addons/sale_timesheet/models/project_overview.py +++ b/addons/sale_timesheet/models/project_overview.py @@ -456,7 +456,7 @@ class Project(models.Model): invoice_ids = self.env['sale.order'].search_read([('id', 'in', sale_orders.ids)], ['invoice_ids']) invoice_ids = list(itertools.chain(*[i['invoice_ids'] for i in invoice_ids])) - invoice_ids = self.env['account.invoice'].search_read([('id', 'in', invoice_ids), ('type', '=', 'out_invoice')], ['id']) + invoice_ids = self.env['account.move'].search_read([('id', 'in', invoice_ids), ('type', '=', 'out_invoice')], ['id']) invoice_ids = list(map(lambda x: x['id'], invoice_ids)) if invoice_ids: @@ -465,7 +465,7 @@ class Project(models.Model): 'count': len(invoice_ids), 'icon': 'fa fa-pencil-square-o', 'action': _to_action_data( - action=self.env.ref('account.action_invoice_tree1'), + action=self.env.ref('account.action_move_out_invoice_type'), domain=[('id', 'in', invoice_ids), ('type', '=', 'out_invoice')], context={'create': False, 'delete': False} ) diff --git a/addons/sale_timesheet/tests/test_reinvoice.py b/addons/sale_timesheet/tests/test_reinvoice.py index cfb1d6bb6b9..5b3058ce5ef 100644 --- a/addons/sale_timesheet/tests/test_reinvoice.py +++ b/addons/sale_timesheet/tests/test_reinvoice.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.addons.sale_timesheet.tests.common import TestCommonSaleTimesheetNoChart +from odoo.tests import Form class TestReInvoice(TestCommonSaleTimesheetNoChart): @@ -44,23 +45,7 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): 'analytic_account_id': cls.analytic_account.id, }) - Invoice = cls.env['account.invoice'].with_context(mail_notrack=True, mail_create_nolog=True) - cls.invoiceA = Invoice.create({ - 'name': 'Test Invoice', - 'type': 'in_invoice', - 'partner_id': cls.partner_customer_usd.id, - 'account_id': cls.account_payable.id, - 'journal_id': cls.journal_purchase.id, - 'currency_id': cls.env.user.company_id.currency_id.id, - }) - cls.invoiceB = Invoice.create({ - 'name': 'Test Invoice 2', - 'type': 'in_invoice', - 'partner_id': cls.partner_customer_usd.id, - 'account_id': cls.account_payable.id, - 'journal_id': cls.journal_purchase.id, - 'currency_id': cls.env.user.company_id.currency_id.id, - }) + cls.Invoice = cls.env['account.move'].with_context(mail_notrack=True, mail_create_nolog=True) def test_at_cost(self): """ Test vendor bill at cost for product based on ordered and delivered quantities. """ @@ -101,28 +86,18 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): 'employee_id': self.employee_user.id, }) - # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_ordered_cost.name, - 'product_id': self.product_ordered_cost.id, - 'quantity': 3, - 'uom_id': self.product_ordered_cost.uom_id.id, - 'price_unit': self.product_ordered_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - invoice_lineA2 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_cost.name, - 'product_id': self.product_deliver_cost.id, - 'quantity': 3, - 'uom_id': self.product_deliver_cost.uom_id.id, - 'price_unit': self.product_deliver_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_ordered_cost + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_cost + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + invoice_a = move_form.save() + invoice_a.post() sale_order_line3 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol.product_id == self.product_ordered_cost) sale_order_line4 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol.product_id == self.product_deliver_cost) @@ -139,34 +114,25 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.assertFalse(sale_order_line4.task_id, "Adding a new expense SO line should not create a task (sol4)") self.assertEquals(len(self.sale_order.project_ids), 1, "SO create only one project with its service line. Adding new expense SO line should not impact that") - self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_ordered_cost.standard_price, invoice_lineA1.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') - self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_deliver_cost.standard_price, invoice_lineA2.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_ordered_cost.standard_price, 3.0, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_deliver_cost.standard_price, 3.0, 0, 0), 'Sale line is wrong after confirming vendor invoice') self.assertEquals(sale_order_line3.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line should be computed by analytic amount") self.assertEquals(sale_order_line4.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line should be computed by analytic amount") # create second invoice lines and validate it - invoice_lineB1 = self.env['account.invoice.line'].create({ - 'name': self.product_ordered_cost.name, - 'product_id': self.product_ordered_cost.id, - 'quantity': 2, - 'uom_id': self.product_ordered_cost.uom_id.id, - 'price_unit': self.product_ordered_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - invoice_lineB2 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_cost.name, - 'product_id': self.product_deliver_cost.id, - 'quantity': 2, - 'uom_id': self.product_deliver_cost.uom_id.id, - 'price_unit': self.product_deliver_cost.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - self.invoiceB.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_ordered_cost + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_cost + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + invoice_b = move_form.save() + invoice_b.post() sale_order_line5 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol != sale_order_line3 and sol.product_id == self.product_ordered_cost) sale_order_line6 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol != sale_order_line4 and sol.product_id == self.product_deliver_cost) @@ -177,8 +143,8 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.assertEquals(len(self.sale_order.order_line), 6, "There should be still 4 lines on the SO, no new created") self.assertEquals(len(self.sale_order.order_line.filtered(lambda sol: sol.is_expense)), 4, "There should be still 2 expenses lines on the SO") - self.assertEquals((sale_order_line5.price_unit, sale_order_line5.qty_delivered, sale_order_line5.product_uom_qty, sale_order_line5.qty_invoiced), (self.product_ordered_cost.standard_price, invoice_lineB1.quantity, 0, 0), 'Sale line 5 is wrong after confirming 2e vendor invoice') - self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line6.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_deliver_cost.standard_price, invoice_lineB2.quantity, 0, 0), 'Sale line 6 is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line5.price_unit, sale_order_line5.qty_delivered, sale_order_line5.product_uom_qty, sale_order_line5.qty_invoiced), (self.product_ordered_cost.standard_price, 2.0, 0, 0), 'Sale line 5 is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line6.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_deliver_cost.standard_price, 2.0, 0, 0), 'Sale line 6 is wrong after confirming 2e vendor invoice') def test_sales_price(self): """ Test invoicing vendor bill at sales price for products based on delivered and ordered quantities. Check no existing SO line is incremented, but when invoicing a @@ -219,27 +185,18 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): }) # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_sales_price.name, - 'product_id': self.product_deliver_sales_price.id, - 'quantity': 3, - 'uom_id': self.product_deliver_sales_price.uom_id.id, - 'price_unit': self.product_deliver_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - invoice_lineA2 = self.env['account.invoice.line'].create({ - 'name': self.product_order_sales_price.name, - 'product_id': self.product_order_sales_price.id, - 'quantity': 3, - 'uom_id': self.product_order_sales_price.uom_id.id, - 'price_unit': self.product_order_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_sales_price + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_order_sales_price + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + invoice_a = move_form.save() + invoice_a.post() sale_order_line3 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol.product_id == self.product_deliver_sales_price) sale_order_line4 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol.product_id == self.product_order_sales_price) @@ -256,34 +213,25 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.assertFalse(sale_order_line4.task_id, "Adding a new expense SO line should not create a task (sol4)") self.assertEquals(len(self.sale_order.project_ids), 1, "SO create only one project with its service line. Adding new expense SO line should not impact that") - self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_deliver_sales_price.list_price, invoice_lineA1.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') - self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_order_sales_price.list_price, invoice_lineA2.quantity, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line3.price_unit, sale_order_line3.qty_delivered, sale_order_line3.product_uom_qty, sale_order_line3.qty_invoiced), (self.product_deliver_sales_price.list_price, 3.0, 0, 0), 'Sale line is wrong after confirming vendor invoice') + self.assertEquals((sale_order_line4.price_unit, sale_order_line4.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line4.qty_invoiced), (self.product_order_sales_price.list_price, 3.0, 0, 0), 'Sale line is wrong after confirming vendor invoice') self.assertEquals(sale_order_line3.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line 3 should be computed by analytic amount") self.assertEquals(sale_order_line4.qty_delivered_method, 'analytic', "Delivered quantity of 'expense' SO line 4 should be computed by analytic amount") # create second invoice lines and validate it - invoice_lineB1 = self.env['account.invoice.line'].create({ - 'name': self.product_deliver_sales_price.name, - 'product_id': self.product_deliver_sales_price.id, - 'quantity': 2, - 'uom_id': self.product_deliver_sales_price.uom_id.id, - 'price_unit': self.product_deliver_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - invoice_lineB2 = self.env['account.invoice.line'].create({ - 'name': self.product_order_sales_price.name, - 'product_id': self.product_order_sales_price.id, - 'quantity': 2, - 'uom_id': self.product_order_sales_price.uom_id.id, - 'price_unit': self.product_order_sales_price.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceB.id, - }) - self.invoiceB.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_deliver_sales_price + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_order_sales_price + line_form.quantity = 2.0 + line_form.analytic_account_id = self.analytic_account + invoice_b = move_form.save() + invoice_b.post() sale_order_line5 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line1 and sol != sale_order_line3 and sol.product_id == self.product_deliver_sales_price) sale_order_line6 = self.sale_order.order_line.filtered(lambda sol: sol != sale_order_line2 and sol != sale_order_line4 and sol.product_id == self.product_order_sales_price) @@ -294,7 +242,7 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.assertEquals(len(self.sale_order.order_line), 5, "There should be 5 lines on the SO, 1 new created and 1 incremented") self.assertEquals(len(self.sale_order.order_line.filtered(lambda sol: sol.is_expense)), 3, "There should be 3 expenses lines on the SO") - self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_order_sales_price.list_price, invoice_lineB2.quantity, 0, 0), 'Sale line is wrong after confirming 2e vendor invoice') + self.assertEquals((sale_order_line6.price_unit, sale_order_line6.qty_delivered, sale_order_line4.product_uom_qty, sale_order_line6.qty_invoiced), (self.product_order_sales_price.list_price, 2.0, 0, 0), 'Sale line is wrong after confirming 2e vendor invoice') def test_no_expense(self): """ Test invoicing vendor bill with no policy. Check nothing happen. """ @@ -312,17 +260,14 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.sale_order.action_confirm() # create invoice lines and validate it - invoice_lineA1 = self.env['account.invoice.line'].create({ - 'name': self.product_no_expense.name, - 'product_id': self.product_no_expense.id, - 'quantity': 3, - 'uom_id': self.product_no_expense.uom_id.id, - 'price_unit': self.product_no_expense.standard_price, - 'account_analytic_id': self.analytic_account.id, - 'account_id': self.account_income.id, - 'invoice_id': self.invoiceA.id, - }) - self.invoiceA.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = self.partner_customer_usd + with move_form.line_ids.new() as line_form: + line_form.product_id = self.product_no_expense + line_form.quantity = 3.0 + line_form.analytic_account_id = self.analytic_account + invoice_a = move_form.save() + invoice_a.post() # let's log some timesheets (on the project created by sale_order_line1) task_sol1 = sale_order_line.task_id @@ -336,4 +281,4 @@ class TestReInvoice(TestCommonSaleTimesheetNoChart): self.assertEquals(len(self.sale_order.order_line), 1, "No SO line should have been created (or removed) when validating vendor bill") self.assertEquals(sale_order_line.qty_delivered, 1, "The delivered quantity of SO line should not have been incremented") - self.assertTrue(invoice_lineA1.invoice_id.move_id.mapped('line_ids.analytic_line_ids'), "Analytic lines should be generated") + self.assertTrue(invoice_a.mapped('line_ids.analytic_line_ids'), "Analytic lines should be generated") diff --git a/addons/sale_timesheet/tests/test_reporting.py b/addons/sale_timesheet/tests/test_reporting.py index a26042ec00e..8b28ff84190 100644 --- a/addons/sale_timesheet/tests/test_reporting.py +++ b/addons/sale_timesheet/tests/test_reporting.py @@ -236,8 +236,8 @@ class TestReporting(TestCommonSaleTimesheetNoChart): }) action_invoice = payment.with_context(context).create_invoices() invoice_id = action_invoice['res_id'] - invoice_1 = self.env['account.invoice'].browse(invoice_id) - invoice_1.action_invoice_open() + invoice_1 = self.env['account.move'].browse(invoice_id) + invoice_1.post() # deliver project should now have cost and something invoiced project_so_1_stat = self.env['project.profitability.report'].read_group([('project_id', 'in', project_so_1.ids)], ['project_id', 'amount_untaxed_to_invoice', 'amount_untaxed_invoiced', 'timesheet_unit_amount', 'timesheet_cost', 'expense_cost', 'expense_amount_untaxed_to_invoice', 'expense_amount_untaxed_invoiced'], ['project_id'])[0] @@ -290,8 +290,8 @@ class TestReporting(TestCommonSaleTimesheetNoChart): }) action_invoice = payment.with_context(context).create_invoices() invoice_id = action_invoice['res_id'] - invoice_2 = self.env['account.invoice'].browse(invoice_id) - invoice_2.action_invoice_open() + invoice_2 = self.env['account.move'].browse(invoice_id) + invoice_2.post() # deliver project should not be impacted by the invoice of the other SO project_so_1_stat = self.env['project.profitability.report'].read_group([('project_id', 'in', project_so_1.ids)], ['project_id', 'amount_untaxed_to_invoice', 'amount_untaxed_invoiced', 'timesheet_unit_amount', 'timesheet_cost', 'expense_cost', 'expense_amount_untaxed_to_invoice', 'expense_amount_untaxed_invoiced'], ['project_id'])[0] diff --git a/addons/sale_timesheet/tests/test_sale_service.py b/addons/sale_timesheet/tests/test_sale_service.py index e2591ba0268..725298877d0 100644 --- a/addons/sale_timesheet/tests/test_sale_service.py +++ b/addons/sale_timesheet/tests/test_sale_service.py @@ -168,9 +168,8 @@ class TestSaleService(TestCommonSaleTimesheetNoChart): self.assertEqual(task_serv2.timesheet_ids.mapped('so_line'), so_line_deliver_global_project, "Old timesheet are not modified when changing the task SO line") # invoice SO, and validate invoice - invoice_id = self.sale_order._create_invoices()[0] - invoice = self.env['account.invoice'].browse(invoice_id) - invoice.action_invoice_open() + invoice = self.sale_order._create_invoices()[0] + invoice.post() # try to update timesheets, catch error 'You cannot modify invoiced timesheet' with self.assertRaises(UserError): diff --git a/addons/sale_timesheet/tests/test_sale_timesheet.py b/addons/sale_timesheet/tests/test_sale_timesheet.py index c1a2dfd93d0..da88d793561 100644 --- a/addons/sale_timesheet/tests/test_sale_timesheet.py +++ b/addons/sale_timesheet/tests/test_sale_timesheet.py @@ -64,8 +64,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertEqual(sale_order.analytic_account_id, project_serv1.analytic_account_id, "The created project should be linked to the analytic account of the SO") # create invoice - invoice_id1 = sale_order._create_invoices()[0] - invoice1 = self.env['account.invoice'].browse(invoice_id1) + invoice1 = sale_order._create_invoices()[0] # let's log some timesheets (on the project created by so_line_ordered_project_only) timesheet1 = self.env['account.analytic.line'].create({ @@ -128,7 +127,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertEqual(len(sale_order.project_ids), 2, "No new project should have been created by the SO, when selling 'new task in new project' product, since it reuse the one from 'project only'.") # get first invoice line of sale line linked to timesheet1 - invoice_line_1 = so_line_ordered_global_project.invoice_lines.filtered(lambda line: line.invoice_id.id == invoice_id1) + invoice_line_1 = so_line_ordered_global_project.invoice_lines.filtered(lambda line: line.move_id == invoice1) self.assertEqual(so_line_ordered_global_project.product_uom_qty, invoice_line_1.quantity, "The invoice (ordered) quantity should not change when creating timesheet") @@ -138,8 +137,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertEqual(so_line_ordered_global_project.product_uom_qty, invoice_line_1.quantity, "The invoice (ordered) quantity should not change when modifying timesheet") # create second invoice - invoice_id2 = sale_order._create_invoices()[0] - invoice2 = self.env['account.invoice'].browse(invoice_id2) + invoice2 = sale_order._create_invoices()[0] self.assertEqual(len(sale_order.invoice_ids), 2, "A second invoice should have been created from the SO") self.assertTrue(float_is_zero(invoice2.amount_total - so_line_ordered_task_in_project.price_unit * 3, precision_digits=2), 'Sale: invoice generation on timesheets product is wrong') @@ -150,7 +148,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertFalse(timesheet4.timesheet_invoice_id, "The timesheet4 should not be linked to the invoice, since we are in ordered quantity") # validate the first invoice - invoice1.action_invoice_open() + invoice1.post() self.assertEqual(so_line_ordered_global_project.product_uom_qty, invoice_line_1.quantity, "The invoice (ordered) quantity should not change when modifying timesheet") self.assertFalse(timesheet1.timesheet_invoice_id, "The timesheet1 should not be linked to the invoice, since we are in ordered quantity") @@ -226,8 +224,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertFalse(timesheet1.timesheet_invoice_id, "The timesheet1 should not be linked to the invoice yet") # invoice SO - invoice_id1 = sale_order._create_invoices() - invoice1 = self.env['account.invoice'].browse(invoice_id1) + invoice1 = sale_order._create_invoices() self.assertTrue(float_is_zero(invoice1.amount_total - so_line_deliver_global_project.price_unit * 10.5, precision_digits=2), 'Sale: invoice generation on timesheets product is wrong') self.assertEqual(timesheet1.timesheet_invoice_id, invoice1, "The timesheet1 should not be linked to the invoice 1, as we are in delivered quantity (even if invoice is in draft") with self.assertRaises(UserError): # We can not modify timesheet linked to invoice (even draft ones) @@ -248,8 +245,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertFalse(timesheet2.timesheet_invoice_id, "The timesheet2 should not be linked to the invoice yet") # create a second invoice - invoice_id2 = sale_order._create_invoices()[0] - invoice2 = self.env['account.invoice'].browse(invoice_id2) + invoice2 = sale_order._create_invoices()[0] self.assertEqual(len(sale_order.invoice_ids), 2, "A second invoice should have been created from the SO") self.assertEqual(so_line_deliver_global_project.invoice_status, 'invoiced', 'Sale Timesheet: "invoice on delivery" timesheets should set the so line in "to invoice" status when logged') self.assertEqual(sale_order.invoice_status, 'no', 'Sale Timesheet: "invoice on delivery" timesheets should be invoiced completely by now') @@ -296,7 +292,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertFalse(timesheet4.timesheet_invoice_id, "The timesheet4 should not still be linked to the invoice") # validate the second invoice - invoice2.action_invoice_open() + invoice2.post() self.assertEqual(timesheet1.timesheet_invoice_id, invoice1, "The timesheet1 should not be linked to the invoice 1, even after validation") self.assertEqual(timesheet2.timesheet_invoice_id, invoice2, "The timesheet2 should not be linked to the invoice 1, even after validation") @@ -370,8 +366,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): # invoice SO sale_order.order_line.write({'qty_delivered': 5}) - invoice_id1 = sale_order._create_invoices() - invoice1 = self.env['account.invoice'].browse(invoice_id1) + invoice1 = sale_order._create_invoices() for invoice_line in invoice1.invoice_line_ids: self.assertEqual(invoice_line.quantity, 5, "The invoiced quantity should be 5, as manually set on SO lines") @@ -380,7 +375,7 @@ class TestSaleTimesheet(TestCommonSaleTimesheetNoChart): self.assertFalse(timesheet2.timesheet_invoice_id, "The timesheet2 should not be linked to the invoice, since timesheets are used for time tracking in milestone") # validate the invoice - invoice1.action_invoice_open() + invoice1.post() self.assertFalse(timesheet1.timesheet_invoice_id, "The timesheet1 should not be linked to the invoice, even after invoice validation") self.assertFalse(timesheet2.timesheet_invoice_id, "The timesheet2 should not be linked to the invoice, even after invoice validation") diff --git a/addons/sale_timesheet/views/account_invoice_views.xml b/addons/sale_timesheet/views/account_invoice_views.xml index 06cc571b803..fceb01f7446 100644 --- a/addons/sale_timesheet/views/account_invoice_views.xml +++ b/addons/sale_timesheet/views/account_invoice_views.xml @@ -11,8 +11,8 @@ <record id="account_invoice_view_form_inherit_sale_timesheet" model="ir.ui.view"> <field name="name">account.invoice.form.inherit.timesheet</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='button_box']" position="inside"> <button name="%(sale_timesheet.action_timesheet_from_invoice)d" type="action" class="oe_stat_button" icon="fa-calendar" attrs="{'invisible':[('timesheet_count','=', 0)]}"> diff --git a/addons/snailmail/static/tests/chatter_snailmail_tests.js b/addons/snailmail/static/tests/chatter_snailmail_tests.js index dc252017b5a..4b403030a69 100644 --- a/addons/snailmail/static/tests/chatter_snailmail_tests.js +++ b/addons/snailmail/static/tests/chatter_snailmail_tests.js @@ -25,7 +25,7 @@ QUnit.module('Chatter', { before: function () { this.services = mailTestUtils.getMailServices(); this.data = { - 'account.invoice': { + 'account.move': { fields: { display_name: { string: "Displayed name", type: "char" }, foo: {string: "Foo", type: "char", default: "My little Foo Value"}, @@ -88,7 +88,7 @@ QUnit.module('Chatter', { author_id: ["1", "John Doe"], body: 'Message Body', date: "2018-12-11 12:34:00", - model: 'account.invoice', + model: 'account.move', res_id: 1, message_type: 'snailmail', }], @@ -113,7 +113,7 @@ QUnit.test('Sent', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -148,7 +148,7 @@ QUnit.test('Canceled', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -184,7 +184,7 @@ QUnit.test('Pending', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -220,7 +220,7 @@ QUnit.test('No Price Available', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -280,7 +280,7 @@ QUnit.test('Format Error', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -324,7 +324,7 @@ QUnit.test('Credit Error', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -392,7 +392,7 @@ QUnit.test('Trial Error', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, @@ -467,7 +467,7 @@ QUnit.test('Missing Required Fields', async function (assert) { var form = await createView({ View: FormView, - model: 'account.invoice', + model: 'account.move', res_id: 1, data: this.data, services: this.services, diff --git a/addons/snailmail_account/tests/test_pingen_send.py b/addons/snailmail_account/tests/test_pingen_send.py index 2cbda8ac9df..3da39214358 100644 --- a/addons/snailmail_account/tests/test_pingen_send.py +++ b/addons/snailmail_account/tests/test_pingen_send.py @@ -16,7 +16,7 @@ class TestPingenSend(AccountingTestCase): self.sample_invoice.partner_id.vat = "BE000000000" self.letter = self.env['snailmail.letter'].create({ 'partner_id': self.sample_invoice.partner_id.id, - 'model': 'account.invoice', + 'model': 'account.move', 'res_id': self.sample_invoice.id, 'user_id': self.env.user.id, 'company_id': self.sample_invoice.company_id.id, @@ -49,25 +49,22 @@ class TestPingenSend(AccountingTestCase): 'user_type_id': self.env.ref('account.data_account_type_direct_costs').id }) - invoice = self.env['account.invoice'].create({ + invoice = self.env['account.move'].with_context(default_type='out_invoice').create({ + 'type': 'out_invoice', 'partner_id': partner_agrolait.id, 'currency_id': currency.id, 'name': 'invoice to client', 'account_id': account_receivable.id, - 'type': 'out_invoice', - 'date_invoice': '2018-12-11', - }) - - self.env['account.invoice.line'].create({ - 'product_id': product.id, - 'quantity': 1, - 'price_unit': 42, - 'invoice_id': invoice.id, - 'name': 'something', - 'account_id': account_income.id, + 'invoice_date': '2018-12-11', + 'invoice_line_ids': [(0, 0, { + 'product_id': product.id, + 'quantity': 1, + 'price_unit': 42, + 'account_id': account_income.id, + })], }) - invoice.action_invoice_open() + invoice.post() return invoice diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py index de0829cd1d8..58aa0c6c4b1 100644 --- a/addons/snailmail_account/wizard/account_invoice_send.py +++ b/addons/snailmail_account/wizard/account_invoice_send.py @@ -14,7 +14,7 @@ class AccountInvoiceSend(models.TransientModel): snailmail_is_letter = fields.Boolean('Send by Post', help='Allows to send the document by Snailmail (coventional posting delivery service)', default=lambda self: self.env.company.invoice_is_snailmail) snailmail_cost = fields.Float(string='Stamp(s)', compute='_compute_snailmail_cost', readonly=True) invalid_addresses = fields.Integer('Invalid Addresses Count', compute='_compute_invalid_addresses') - invalid_invoice_ids = fields.Many2many('account.invoice', string='Invalid Addresses', compute='_compute_invalid_addresses') + invalid_invoice_ids = fields.Many2many('account.move', string='Invalid Addresses', compute='_compute_invalid_addresses') @api.multi @api.depends('invoice_ids') @@ -44,7 +44,7 @@ class AccountInvoiceSend(models.TransientModel): for invoice in self.invoice_ids: letter = self.env['snailmail.letter'].create({ 'partner_id': invoice.partner_id.id, - 'model': 'account.invoice', + 'model': 'account.move', 'res_id': invoice.id, 'user_id': self.env.user.id, 'company_id': invoice.company_id.id, @@ -52,7 +52,7 @@ class AccountInvoiceSend(models.TransientModel): }) letters |= letter - self.invoice_ids.filtered(lambda inv: not inv.sent).write({'sent': True}) + self.invoice_ids.filtered(lambda inv: not inv.invoice_sent).write({'invoice_sent': True}) if len(self.invoice_ids) == 1: letters._snailmail_print() else: @@ -82,6 +82,6 @@ class AccountInvoiceSend(models.TransientModel): 'name': _('Invalid Addresses'), 'type': 'ir.actions.act_window', 'view_mode': 'kanban,tree,form', - 'res_model': 'account.invoice', + 'res_model': 'account.move', 'domain': [('id', 'in', self.mapped('invalid_invoice_ids').ids)], } diff --git a/addons/stock_account/models/__init__.py b/addons/stock_account/models/__init__.py index a47ce5720ee..e91f43d72be 100644 --- a/addons/stock_account/models/__init__.py +++ b/addons/stock_account/models/__init__.py @@ -2,7 +2,6 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import account_chart_template -from . import account_invoice from . import account_move from . import account_reconciliation_widget from . import product diff --git a/addons/stock_account/models/account_invoice.py b/addons/stock_account/models/account_invoice.py deleted file mode 100644 index 3dd0491cf00..00000000000 --- a/addons/stock_account/models/account_invoice.py +++ /dev/null @@ -1,117 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import api, models, fields - -import logging - -_logger = logging.getLogger(__name__) - - -class AccountInvoice(models.Model): - _inherit = "account.invoice" - - @api.model - def invoice_line_move_line_get(self): - res = super(AccountInvoice, self).invoice_line_move_line_get() - if self.company_id.anglo_saxon_accounting and self.type in ('out_invoice', 'out_refund'): - for i_line in self.invoice_line_ids: - res.extend(self._anglo_saxon_sale_move_lines(i_line)) - return res - - @api.model - def _anglo_saxon_sale_move_lines(self, i_line): - """Return the additional move lines for sales invoices and refunds. - - i_line: An account.invoice.line object. - res: The move line entries produced so far by the parent move_line_get. - """ - inv = i_line.invoice_id - company_currency = inv.company_id.currency_id - price_unit = i_line._get_anglo_saxon_price_unit() - if inv.currency_id != company_currency: - currency = inv.currency_id - amount_currency = i_line._get_price(company_currency, price_unit) - else: - currency = False - amount_currency = False - - return self.env['product.product']._anglo_saxon_sale_move_lines(i_line.name, i_line.product_id, i_line.uom_id, i_line.quantity, price_unit, currency=currency, amount_currency=amount_currency, fiscal_position=inv.fiscal_position_id, account_analytic=i_line.account_analytic_id, analytic_tags=i_line.analytic_tag_ids) - - def _get_last_step_stock_moves(self): - """ To be overridden for customer invoices and vendor bills in order to - return the stock moves related to the invoices in self. - """ - return self.env['stock.move'] - - def _get_products_set(self): - """ Returns a recordset of the products contained in this invoice's lines """ - return self.mapped('invoice_line_ids.product_id') - - def _get_anglosaxon_interim_account(self, product): - """ Returns the interim account used in anglosaxon accounting for - this invoice""" - if self.type in ('out_invoice', 'out_refund'): - return product.product_tmpl_id._get_product_accounts()['stock_output'] - return product.product_tmpl_id.get_product_accounts()['stock_input'] - - def action_move_create(self): - res = super(AccountInvoice, self).action_move_create() - self.filtered(lambda i: i.company_id.anglo_saxon_accounting)._anglo_saxon_reconcile_valuation() - return res - - def _anglo_saxon_reconcile_valuation(self, product=False): - """ Reconciles the entries made in the interim accounts in anglosaxon accounting, - reconciling stock valuation move lines with the invoice's. - """ - for invoice in self: - if invoice.company_id.anglo_saxon_accounting: - stock_moves = invoice._get_last_step_stock_moves() - product_set = product or invoice._get_products_set() - for prod in product_set: - if prod.valuation == 'real_time' and stock_moves: - # We first get the invoices move lines (taking the invoice and the previous ones into account)... - product_interim_account = invoice._get_anglosaxon_interim_account(prod) - to_reconcile = self.env['account.move.line'].search([ - ('move_id', '=', invoice.move_id.id), - ('product_id', '=', prod.id), - ('account_id','=', product_interim_account.id), - ('reconciled','=', False) - ]) - - # And then the stock valuation ones. - product_stock_moves = stock_moves.filtered(lambda s: s.product_id.id == prod.id) - for valuation_line in product_stock_moves.mapped('account_move_ids.line_ids'): - if valuation_line.account_id == product_interim_account and not valuation_line.reconciled: - to_reconcile += valuation_line - - if to_reconcile: - to_reconcile.reconcile() - - -class AccountInvoiceLine(models.Model): - _inherit = "account.invoice.line" - - def _get_anglo_saxon_price_unit(self): - self.ensure_one() - if not self.product_id: - return self.price_unit - return self.product_id._get_anglo_saxon_price_unit(uom=self.uom_id) - - def _get_price(self, company_currency, price_unit): - if self.invoice_id.currency_id.id != company_currency.id: - price = company_currency._convert( - price_unit * self.quantity, - self.invoice_id.currency_id, - self.invoice_id.company_id, - self.invoice_id.date_invoice or fields.Date.today()) - else: - price = price_unit * self.quantity - return self.invoice_id.currency_id.round(price) - - def get_invoice_line_account(self, type, product, fpos, company): - if company.anglo_saxon_accounting and type in ('in_invoice', 'in_refund') and product and product.type == 'product': - accounts = product.product_tmpl_id.get_product_accounts(fiscal_pos=fpos) - if accounts['stock_input']: - return accounts['stock_input'] - return super(AccountInvoiceLine, self).get_invoice_line_account(type, product, fpos, company) diff --git a/addons/stock_account/models/account_move.py b/addons/stock_account/models/account_move.py index 9e2dadf4673..4c1b7f5d843 100644 --- a/addons/stock_account/models/account_move.py +++ b/addons/stock_account/models/account_move.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from odoo import fields, models +from odoo import fields, models, api, _ class AccountMove(models.Model): @@ -9,3 +9,219 @@ class AccountMove(models.Model): stock_move_id = fields.Many2one('stock.move', string='Stock Move') stock_valuation_layer_ids = fields.One2many('stock.valuation.layer', 'account_move_id', string='Stock Valuation Layer') + # ------------------------------------------------------------------------- + # OVERRIDE METHODS + # ------------------------------------------------------------------------- + + @api.multi + def _reverse_move_vals(self, default_values, cancel=True): + # OVERRIDE + # Don't keep anglo-saxon lines if not cancelling an existing invoice. + move_vals = super(AccountMove, self)._reverse_move_vals(default_values, cancel=cancel) + if not cancel: + move_vals['line_ids'] = [vals for vals in move_vals['line_ids'] if not vals[2]['is_anglo_saxon_line']] + return move_vals + + @api.multi + def post(self): + # OVERRIDE + + # Don't change anything on moves used to cancel another ones. + if self._context.get('move_reverse_cancel'): + return super(AccountMove, self).post() + + # Create additional COGS lines for customer invoices. + self.env['account.move.line'].create(self._stock_account_prepare_anglo_saxon_out_lines_vals()) + + # Post entries. + res = super(AccountMove, self).post() + + # Reconcile COGS lines in case of anglo-saxon accounting with perpetual valuation. + self._stock_account_anglo_saxon_reconcile_valuation() + return res + + @api.multi + def button_cancel(self): + # OVERRIDE + res = super(AccountMove, self).button_cancel() + + # Unlink the COGS lines generated during the 'post' method. + self.mapped('line_ids').filtered(lambda line: line.is_anglo_saxon_line).unlink() + return res + + # ------------------------------------------------------------------------- + # COGS METHODS + # ------------------------------------------------------------------------- + + @api.multi + def _stock_account_prepare_anglo_saxon_out_lines_vals(self): + ''' Prepare values used to create the journal items (account.move.line) corresponding to the Cost of Good Sold + lines (COGS) for customer invoices. + + Example: + + Buy a product having a cost of 9 being a storable product and having a perpetual valuation in FIFO. + Sell this product at a price of 10. The customer invoice's journal entries looks like: + + Account | Debit | Credit + --------------------------------------------------------------- + 200000 Product Sales | | 10.0 + --------------------------------------------------------------- + 101200 Account Receivable | 10.0 | + --------------------------------------------------------------- + + This method computes values used to make two additional journal items: + + --------------------------------------------------------------- + 220000 Expenses | 9.0 | + --------------------------------------------------------------- + 101130 Stock Interim Account (Delivered) | | 9.0 + --------------------------------------------------------------- + + Note: COGS are only generated for customer invoices except refund made to cancel an invoice. + + :return: A list of Python dictionary to be passed to env['account.move.line'].create. + ''' + lines_vals_list = [] + for move in self: + if not move.is_sale_document(include_receipts=True) or not move.company_id.anglo_saxon_accounting: + continue + + for line in move.invoice_line_ids: + + # Filter out lines being not eligible for COGS. + if line.product_id.type != 'product' or line.product_id.valuation != 'real_time': + continue + + # Retrieve accounts needed to generate the COGS. + accounts = line.product_id.product_tmpl_id.get_product_accounts(fiscal_pos=move.fiscal_position_id) + debit_interim_account = accounts['stock_output'] + credit_expense_account = accounts['expense'] + if not debit_interim_account or not credit_expense_account: + continue + + # Compute accounting fields. + sign = -1 if move.type == 'out_refund' else 1 + price_unit = line._stock_account_get_anglo_saxon_price_unit() + balance = sign * line.quantity * price_unit + if move.currency_id == move.company_id.currency_id: + currency = False + amount_currency = 0.0 + else: + currency = move.currency_id + price_unit = currency._convert( + price_unit, move.company_id.currency_id, move.company_id, move.invoice_date or move.date) + amount_currency = sign * line.quantity * price_unit + + # Add interim account line. + lines_vals_list.append({ + 'name': line.name[:64], + 'move_id': move.id, + 'product_id': line.product_id.id, + 'product_uom_id': line.product_uom_id.id, + 'quantity': line.quantity, + 'price_unit': price_unit, + 'price_subtotal': amount_currency if currency else balance, + 'debit': balance < 0.0 and -balance or 0.0, + 'credit': balance > 0.0 and balance or 0.0, + 'currency_id': currency and currency.id, + 'amount_currency': -amount_currency, + 'account_id': debit_interim_account.id, + 'analytic_account_id': line.analytic_account_id.id, + 'analytic_tag_ids': [(6, 0, line.analytic_tag_ids.ids)], + 'exclude_from_invoice_tab': True, + 'is_anglo_saxon_line': True, + }) + + # Add expense account line. + lines_vals_list.append({ + 'name': line.name[:64], + 'move_id': move.id, + 'product_id': line.product_id.id, + 'product_uom_id': line.product_uom_id.id, + 'quantity': line.quantity, + 'price_unit': -price_unit, + 'price_subtotal': -amount_currency if currency else -balance, + 'debit': balance > 0.0 and balance or 0.0, + 'credit': balance < 0.0 and -balance or 0.0, + 'currency_id': currency and currency.id, + 'amount_currency': amount_currency, + 'account_id': credit_expense_account.id, + 'analytic_account_id': line.analytic_account_id.id, + 'analytic_tag_ids': [(6, 0, line.analytic_tag_ids.ids)], + 'exclude_from_invoice_tab': True, + 'is_anglo_saxon_line': True, + }) + return lines_vals_list + + def _stock_account_get_last_step_stock_moves(self): + """ To be overridden for customer invoices and vendor bills in order to + return the stock moves related to the invoices in self. + """ + return self.env['stock.move'] + + def _stock_account_anglo_saxon_reconcile_valuation(self, product=False): + """ Reconciles the entries made in the interim accounts in anglosaxon accounting, + reconciling stock valuation move lines with the invoice's. + """ + for move in self: + if not move.is_invoice(): + continue + if not move.company_id.anglo_saxon_accounting: + continue + + stock_moves = move._stock_account_get_last_step_stock_moves() + + if not stock_moves: + continue + + products = product or move.mapped('invoice_line_ids.product_id') + for product in products: + if product.valuation != 'real_time': + continue + + # We first get the invoices move lines (taking the invoice and the previous ones into account)... + product_accounts = product.product_tmpl_id._get_product_accounts() + if move.is_sale_document(): + product_interim_account = product_accounts['stock_output'] + else: + product_interim_account = product_accounts['stock_input'] + + # Search for anglo-saxon lines linked to the product in the journal entry. + product_account_moves = move.line_ids.filtered( + lambda line: line.product_id == product and line.account_id == product_interim_account and not line.reconciled) + + # Search for anglo-saxon lines linked to the product in the stock moves. + product_stock_moves = stock_moves.filtered(lambda stock_move: stock_move.product_id == product) + product_account_moves += product_stock_moves.mapped('account_move_ids.line_ids')\ + .filtered(lambda line: line.account_id == product_interim_account and not line.reconciled) + + # Reconcile. + product_account_moves.reconcile() + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + is_anglo_saxon_line = fields.Boolean(help="Technical field used to retrieve the anglo-saxon lines.") + + @api.multi + def _get_computed_account(self): + # OVERRIDE to use the stock input account by default on vendor bills when dealing + # with anglo-saxon accounting. + self.ensure_one() + if self.product_id.type == 'product' \ + and self.move_id.company_id.anglo_saxon_accounting \ + and self.move_id.is_purchase_document(): + fiscal_position = self.move_id.fiscal_position_id + accounts = self.product_id.product_tmpl_id.get_product_accounts(fiscal_pos=fiscal_position) + if accounts['stock_input']: + return accounts['stock_input'] + return super(AccountMoveLine, self)._get_computed_account() + + @api.multi + def _stock_account_get_anglo_saxon_price_unit(self): + self.ensure_one() + if not self.product_id: + return self.price_unit + return self.product_id._stock_account_get_anglo_saxon_price_unit(uom=self.product_uom_id) diff --git a/addons/stock_account/models/product.py b/addons/stock_account/models/product.py index b3b84a03e06..7cf72bdd49e 100644 --- a/addons/stock_account/models/product.py +++ b/addons/stock_account/models/product.py @@ -547,7 +547,7 @@ class ProductProduct(models.Model): ] return [] - def _get_anglo_saxon_price_unit(self, uom=False): + def _stock_account_get_anglo_saxon_price_unit(self, uom=False): price = self.standard_price if not self or not uom or self.uom_id.id == uom.id: return price or 0.0 diff --git a/addons/stock_account/models/stock_move.py b/addons/stock_account/models/stock_move.py index 809a312dc1a..25c85c218f6 100644 --- a/addons/stock_account/models/stock_move.py +++ b/addons/stock_account/models/stock_move.py @@ -425,7 +425,7 @@ class StockMove(models.Model): def _create_account_move_line(self, credit_account_id, debit_account_id, journal_id, qty, description, svl_id, cost): self.ensure_one() - AccountMove = self.env['account.move'] + AccountMove = self.env['account.move'].with_context(default_journal_id=journal_id) move_lines = self._prepare_account_move_line(qty, cost, credit_account_id, debit_account_id, description) if move_lines: @@ -491,11 +491,11 @@ class StockMove(models.Model): if self.company_id.anglo_saxon_accounting: #eventually reconcile together the invoice and valuation accounting entries on the stock interim accounts - self._get_related_invoices()._anglo_saxon_reconcile_valuation(product=self.product_id) + self._get_related_invoices()._stock_account_anglo_saxon_reconcile_valuation(product=self.product_id) def _get_related_invoices(self): # To be overridden in purchase and sale_stock """ This method is overrided in both purchase and sale_stock modules to adapt to the way they mix stock moves with invoices. """ - return self.env['account.invoice'] + return self.env['account.move'] diff --git a/addons/stock_account/tests/test_anglo_saxon_valuation_reconciliation_common.py b/addons/stock_account/tests/test_anglo_saxon_valuation_reconciliation_common.py index 4da2c2365d6..a7b6d7ad544 100644 --- a/addons/stock_account/tests/test_anglo_saxon_valuation_reconciliation_common.py +++ b/addons/stock_account/tests/test_anglo_saxon_valuation_reconciliation_common.py @@ -13,17 +13,26 @@ class ValuationReconciliationTestCase(AccountingTestCase): def check_reconciliation(self, invoice, picking, full_reconcile=True, operation='purchase'): interim_account_id = operation == 'purchase' and self.input_account.id or self.output_account.id - invoice_line = self.env['account.move.line'].search([('move_id','=', invoice.move_id.id), ('account_id', '=', interim_account_id)]) - valuation_line = picking.move_lines.mapped('account_move_ids.line_ids').filtered(lambda x: x.account_id.id == interim_account_id) + invoice_line = invoice.line_ids.filtered(lambda line: line.account_id.id == interim_account_id) - self.assertEqual(len(invoice_line), 1, "Only one line should have been written by invoice in stock input account") - self.assertEqual(len(valuation_line), 1, "Only one line should have been written for stock valuation in stock input account") - self.assertTrue(valuation_line.reconciled or invoice_line.reconciled, "The valuation and invoice line should have been reconciled together.") + stock_moves = picking.move_lines - if full_reconcile: - self.assertTrue(valuation_line.full_reconcile_id, "The reconciliation should be total at that point.") + valuation_line = stock_moves.mapped('account_move_ids.line_ids').filtered(lambda x: x.account_id.id == interim_account_id) + + if invoice.is_purchase_document() and any(l.is_anglo_saxon_line for l in invoice_line): + self.assertEqual(len(invoice_line), 2, "Only two line2 should have been written by invoice in stock input account") + self.assertTrue(valuation_line.reconciled or invoice_line[0].reconciled or invoice_line[1].reconciled, "The valuation and invoice line should have been reconciled together.") else: - self.assertFalse(valuation_line.full_reconcile_id, "The reconciliation should not be total at that point.") + self.assertEqual(len(invoice_line), 1, "Only one line should have been written by invoice in stock input account") + self.assertTrue(valuation_line.reconciled or invoice_line.reconciled, "The valuation and invoice line should have been reconciled together.") + + if invoice.type not in ('out_refund', 'in_refund'): + self.assertEqual(len(valuation_line), 1, "Only one line should have been written for stock valuation in stock input account") + + if full_reconcile: + self.assertTrue(valuation_line.full_reconcile_id, "The reconciliation should be total at that point.") + else: + self.assertFalse(valuation_line.full_reconcile_id, "The reconciliation should not be total at that point.") def _process_pickings(self, pickings, date=False, quantity=False): if not date: @@ -62,7 +71,7 @@ class ValuationReconciliationTestCase(AccountingTestCase): self.input_account = self.env['account.account'].create({ 'name': 'Test stock in', 'code': 'stock_account_TEST_42', - 'user_type_id': self.env['account.account.type'].search([],limit=1).id, + 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, 'reconcile': True, 'company_id': self.company.id, }) @@ -70,7 +79,7 @@ class ValuationReconciliationTestCase(AccountingTestCase): self.output_account = self.env['account.account'].create({ 'name': 'Test stock out', 'code': 'stock_account_TEST_43', - 'user_type_id': self.env['account.account.type'].search([],limit=1).id, + 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, 'reconcile': True, 'company_id': self.company.id, }) @@ -78,7 +87,7 @@ class ValuationReconciliationTestCase(AccountingTestCase): self.valuation_account = self.env['account.account'].create({ 'name': 'Test stock valuation', 'code': 'stock_account_TEST_44', - 'user_type_id': self.env['account.account.type'].search([],limit=1).id, + 'user_type_id': self.env.ref('account.data_account_type_current_assets').id, 'reconcile': True, 'company_id': self.company.id, }) diff --git a/addons/stock_dropshipping/tests/test_stockvaluation.py b/addons/stock_dropshipping/tests/test_stockvaluation.py index 861c724b144..a90060e5644 100644 --- a/addons/stock_dropshipping/tests/test_stockvaluation.py +++ b/addons/stock_dropshipping/tests/test_stockvaluation.py @@ -66,21 +66,17 @@ class TestStockValuation(AccountingTestCase): self.assertEqual(self.sale_order1.picking_ids.state, 'done') # create the vendor bill - self.vendor_bill1 = self.env['account.invoice'].create({ - 'partner_id': vendor1.id, - 'purchase_id': self.purchase_order1.id, - 'account_id': vendor1.property_account_payable_id.id, - 'type': 'in_invoice', - }) - self.vendor_bill1.purchase_order_change() - self.vendor_bill1.action_invoice_open() + move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) + move_form.partner_id = vendor1 + move_form.purchase_id = self.purchase_order1 + self.vendor_bill1 = move_form.save() + self.vendor_bill1.post() # create the customer invoice - self.customer_invoice1_id = self.sale_order1._create_invoices() - self.customer_invoice1 = self.env['account.invoice'].browse(self.customer_invoice1_id) - self.customer_invoice1.action_invoice_open() + self.customer_invoice1 = self.sale_order1._create_invoices() + self.customer_invoice1.post() - all_amls = self.vendor_bill1.move_id.line_ids + self.customer_invoice1.move_id.line_ids + all_amls = self.vendor_bill1.line_ids + self.customer_invoice1.line_ids if self.sale_order1.picking_ids.move_lines.account_move_ids: all_amls |= self.sale_order1.picking_ids.move_lines.account_move_ids.line_ids return all_amls @@ -288,7 +284,7 @@ class TestStockValuation(AccountingTestCase): return_pick.action_done() self.assertEqual(return_pick.move_lines._is_dropshipped_returned(), True) - all_amls_return = self.vendor_bill1.move_id.line_ids + self.customer_invoice1.move_id.line_ids + all_amls_return = self.vendor_bill1.line_ids + self.customer_invoice1.line_ids if self.sale_order1.picking_ids.mapped('move_lines.account_move_ids'): all_amls_return |= self.sale_order1.picking_ids.mapped('move_lines.account_move_ids.line_ids') diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index c87a6aca455..0cddc887f18 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -3175,7 +3175,7 @@ var BasicModel = AbstractModel.extend({ commands[fieldName].push(x2ManyCommands.link_to(list.res_ids[i])); continue; } - changes = this._generateChanges(relRecord, options); + changes = this._generateChanges(relRecord, _.extend({}, options, {changesOnly: true})); if (!this.isNew(relRecord.id)) { // the subrecord already exists in db commands[fieldName].push(x2ManyCommands.link_to(relRecord.res_id)); diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js index 71cf5ecbd07..9efadaabe30 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -568,7 +568,10 @@ var FormRenderer = BasicRenderer.extend({ } else if (child.tag === 'label') { $tds = self._renderInnerGroupLabel(child); } else { - $tds = $('<td/>').append(self._renderNode(child)); + if (child.tag === 'div' && child.attrs.class !== undefined && child.attrs.class.includes('o_td_label')) + $tds = $('<td class="o_td_label"/>').append(self._renderNode(child)); + else + $tds = $('<td/>').append(self._renderNode(child)); } if (finalColspan > 1) { $tds.last().attr('colspan', finalColspan); diff --git a/addons/web/static/tests/core/py_utils_tests.js b/addons/web/static/tests/core/py_utils_tests.js index fba8017cf01..8de80fbb0d7 100644 --- a/addons/web/static/tests/core/py_utils_tests.js +++ b/addons/web/static/tests/core/py_utils_tests.js @@ -901,20 +901,20 @@ QUnit.module('core', function () { "number": false, "type": "out_invoice", "currency_id": 1, "partner_id": 4, "fiscal_position_id": false, - "date_invoice": false, "date": false, + "invoice_date": false, "date": false, "payment_term_id": false, "reference": false, "account_id": 440, "name": false, "invoice_line_ids": [], "tax_line_ids": [], "amount_untaxed": 0, "amount_tax": 0, "reconciled": false, "amount_total": 0, "state": "draft", - "residual": 0, "company_id": 1, + "amount_residual": 0, "company_id": 1, "date_due": false, "user_id": 1, "partner_bank_id": false, "origin": false, "move_id": false, "comment": false, "payment_ids": [[6, false, []]], "active_id": false, "active_ids": [], - "active_model": "account.invoice", + "active_model": "account.move", "parent": {}} ], "__eval_context": null} }, { @@ -932,17 +932,17 @@ QUnit.module('core', function () { "invoice_line_tax_ids": [[6, false, [1]]], "active_id": false, "active_ids": [], - "active_model": "account.invoice.line", + "active_model": "account.move.line", "parent": { "id": false, "journal_id": 10, "number": false, "type": "out_invoice", "currency_id": 1, "partner_id": 4, "fiscal_position_id": false, - "date_invoice": false, "date": false, + "invoice_date": false, "date": false, "payment_term_id": false, "reference": false, "account_id": 440, "name": false, "tax_line_ids": [], "amount_untaxed": 0, "amount_tax": 0, "reconciled": false, "amount_total": 0, - "state": "draft", "residual": 0, "company_id": 1, + "state": "draft", "amount_residual": 0, "company_id": 1, "date_due": false, "user_id": 1, "partner_bank_id": false, "origin": false, "move_id": false, "comment": false, diff --git a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js index ed38fbbaf03..b32f8478ccf 100644 --- a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js +++ b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js @@ -1676,9 +1676,7 @@ QUnit.module('fields', {}, function () { obj.turtles, [ [4, 2, false], - [1, 2, { turtle_foo: 'blip' }], [4, 3, false], - [1, 3, { turtle_foo: 'kawa' }] ], "should have properly created the x2many command list"); }; @@ -1702,14 +1700,9 @@ QUnit.module('fields', {}, function () { return Promise.resolve({ turtles: [[6, 0, [2, 3]]] }); } if (args.method === 'create') { - // it would be even better if we did not send the current - // unchanged state with the command 1, but this seems more - // difficult. assert.deepEqual(args.args[0].turtles, [ [4, 2, false], - [1, 2, { turtle_foo: 'blip' }], [4, 3, false], - [1, 3, { turtle_foo: 'kawa' }] ], 'should send proper commands to create method'); } return this._super.apply(this, arguments); diff --git a/addons/web/static/tests/fields/relational_fields/field_one2many_tests.js b/addons/web/static/tests/fields/relational_fields/field_one2many_tests.js index 4df25289083..f1f5f2a5e7e 100644 --- a/addons/web/static/tests/fields/relational_fields/field_one2many_tests.js +++ b/addons/web/static/tests/fields/relational_fields/field_one2many_tests.js @@ -7897,7 +7897,7 @@ QUnit.module('fields', {}, function () { data: this.data, arch: '<form string="Partners">' + '<header>' + - '<button name="action_invoice_open" type="object" string="Validate" class="oe_highlight"/>' + + '<button name="post" type="object" string="Validate" class="oe_highlight"/>' + '</header>' + '<field name="turtles">' + '<tree editable="bottom">' + @@ -7915,7 +7915,7 @@ QUnit.module('fields', {}, function () { }, }); - await testUtils.dom.click($('button[name="action_invoice_open"]')); + await testUtils.dom.click($('button[name="post"]')); await testUtils.dom.click(form.$('.o_field_x2many_list_row_add a')); form.destroy(); }); diff --git a/addons/website_crm_partner_assign/report/crm_partner_report.py b/addons/website_crm_partner_assign/report/crm_partner_report.py index de062bdcd59..d78f1b1dd67 100644 --- a/addons/website_crm_partner_assign/report/crm_partner_report.py +++ b/addons/website_crm_partner_assign/report/crm_partner_report.py @@ -24,7 +24,7 @@ class CrmPartnerReportAssign(models.Model): date = fields.Date('Invoice Account Date', readonly=True) _depends = { - 'account.invoice.report': ['date', 'partner_id', 'price_total', 'state', 'type'], + 'account.invoice.report': ['invoice_date', 'partner_id', 'price_subtotal', 'state', 'type'], 'crm.lead': ['partner_assigned_id'], 'res.partner': ['activation', 'country_id', 'date_partnership', 'date_review', 'grade_id', 'parent_id', 'team_id', 'user_id'], @@ -50,8 +50,8 @@ class CrmPartnerReportAssign(models.Model): p.user_id, p.team_id, (SELECT count(id) FROM crm_lead WHERE partner_assigned_id=p.id) AS nbr_opportunities, - i.price_total as turnover, - i.date + i.price_subtotal as turnover, + i.invoice_date FROM res_partner p left join account_invoice_report i diff --git a/addons/website_sale/models/__init__.py b/addons/website_sale/models/__init__.py index e46b59c947a..30184c6f652 100644 --- a/addons/website_sale/models/__init__.py +++ b/addons/website_sale/models/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import account_invoice +from . import account_move from . import crm_team from . import ir_http from . import mail_compose_message diff --git a/addons/website_sale/models/account_invoice.py b/addons/website_sale/models/account_move.py index 7f5c6f7d81f..ce66efc933c 100644 --- a/addons/website_sale/models/account_invoice.py +++ b/addons/website_sale/models/account_move.py @@ -4,8 +4,8 @@ from odoo import fields, models, api -class AccountInvoice(models.Model): - _inherit = 'account.invoice' +class AccountMove(models.Model): + _inherit = 'account.move' website_id = fields.Many2one('website', related='partner_id.website_id', string='Website', help='Website through which this invoice was created.', diff --git a/addons/website_sale/views/account_views.xml b/addons/website_sale/views/account_views.xml index a3870ded3da..1193d41daea 100644 --- a/addons/website_sale/views/account_views.xml +++ b/addons/website_sale/views/account_views.xml @@ -2,10 +2,10 @@ <odoo> <record id="action_invoices_ecommerce" model="ir.actions.act_window"> <field name="name">Invoices</field> - <field name="res_model">account.invoice</field> + <field name="res_model">account.move</field> <field name="view_mode">tree,form</field> <field name="domain">[('team_id.website_ids', '!=', False)]</field> - <field name="view_id" ref="account.invoice_tree"/> + <field name="view_id" ref="account.view_invoice_tree"/> <field name="context">{'type':'out_invoice'}</field> <field name="search_view_id" ref="account.view_account_invoice_filter"/> </record> @@ -20,14 +20,15 @@ <field name="context">{"default_base":'list_price'}</field> </record> - <record id="account_invoice_view_form" model="ir.ui.view"> - <field name="name">account.invoice.form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> + <record id="account_move_view_form" model="ir.ui.view"> + <field name="name">account.move.form.inherit.website_sale</field> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> - <xpath expr="//page[@name='other_info']//field[@name='company_id']" position="after"> - <field name="website_id" groups="website.group_multi_website"/> + <xpath expr="//group[@name='sale_info_group']" position="inside"> + <field name="website_id" + groups="website.group_multi_website"/> </xpath> </field> </record> -</odoo>
\ No newline at end of file +</odoo> diff --git a/addons/website_sale/views/sale_order_views.xml b/addons/website_sale/views/sale_order_views.xml index 8fc33828c1e..16eb7615119 100644 --- a/addons/website_sale/views/sale_order_views.xml +++ b/addons/website_sale/views/sale_order_views.xml @@ -213,8 +213,6 @@ parent="menu_orders" sequence="4"/> - <!-- <menuitem id="menu_orders_invoices" name="Invoices" parent="menu_orders" action="action_invoices_ecommerce" sequence="4"/> --> - <!-- Catalog sub-menus --> <menuitem id="menu_catalog_products" name="Products" action="product_template_action_website" diff --git a/addons/website_sale_digital/controllers/main.py b/addons/website_sale_digital/controllers/main.py index c9708912a67..4b0835f3b9b 100644 --- a/addons/website_sale_digital/controllers/main.py +++ b/addons/website_sale_digital/controllers/main.py @@ -34,7 +34,7 @@ class WebsiteSaleDigital(CustomerPortal): if not 'sale_order' in response.qcontext: return response order = response.qcontext['sale_order'] - invoiced_lines = request.env['account.invoice.line'].sudo().search([('invoice_id', 'in', order.invoice_ids.ids), ('invoice_id.state', '=', 'paid')]) + invoiced_lines = request.env['account.move.line'].sudo().search([('invoice_id', 'in', order.invoice_ids.ids), ('invoice_id.state', '=', 'paid')]) products = invoiced_lines.mapped('product_id') | order.order_line.filtered(lambda r: not r.price_subtotal).mapped('product_id') if not order.amount_total: # in that case, we should add all download links to the products @@ -82,7 +82,7 @@ class WebsiteSaleDigital(CustomerPortal): # Check if the user has bought the associated product res_model = attachment['res_model'] res_id = attachment['res_id'] - purchased_products = request.env['account.invoice.line'].get_digital_purchases() + purchased_products = request.env['account.move.line'].get_digital_purchases() if res_model == 'product.product': if res_id not in purchased_products: diff --git a/addons/website_sale_digital/models/account_invoice.py b/addons/website_sale_digital/models/account_invoice.py index 9a0267f3569..4ca091914c7 100644 --- a/addons/website_sale_digital/models/account_invoice.py +++ b/addons/website_sale_digital/models/account_invoice.py @@ -6,14 +6,14 @@ from odoo import models class AccountInvoiceLine(models.Model): - _inherit = ['account.invoice.line'] + _inherit = ['account.move.line'] def get_digital_purchases(self): partner = self.env.user.partner_id # Get paid invoices purchases = self.sudo().search_read( - domain=[('invoice_id.state', '=', 'paid'), ('invoice_id.partner_id', '=', partner.id)], + domain=[('move_id.invoice_payment_state', '=', 'paid'), ('move_id.partner_id', '=', partner.id)], fields=['product_id'], ) diff --git a/doc/reference/views.rst b/doc/reference/views.rst index 999839da2d0..eb94a707c77 100644 --- a/doc/reference/views.rst +++ b/doc/reference/views.rst @@ -756,7 +756,7 @@ Some classes are defined to render subtotals like in invoice forms: <field name="amount_untaxed"/> <field name="amount_tax"/> <field name="amount_total" class="oe_subtotal_footer_separator"/> - <field name="residual" style="margin-top: 10px"/> + <field name="amount_residual" style="margin-top: 10px"/> </group> Placeholders and Inline Fields diff --git a/odoo/addons/base/models/ir_actions_report.py b/odoo/addons/base/models/ir_actions_report.py index 879079179ba..5f2d47be816 100644 --- a/odoo/addons/base/models/ir_actions_report.py +++ b/odoo/addons/base/models/ir_actions_report.py @@ -177,6 +177,7 @@ class IrActionsReport(models.Model): 'datas': base64.encodestring(buffer.getvalue()), 'res_model': self.model, 'res_id': record.id, + 'type': 'binary', } try: self.env['ir.attachment'].create(attachment_vals) diff --git a/odoo/addons/base/models/ir_sequence.py b/odoo/addons/base/models/ir_sequence.py index 1fb8bf87e25..01caf67a001 100644 --- a/odoo/addons/base/models/ir_sequence.py +++ b/odoo/addons/base/models/ir_sequence.py @@ -190,16 +190,16 @@ class IrSequence(models.Model): number_next = _update_nogap(self, self.number_increment) return self.get_next_char(number_next) - def _get_prefix_suffix(self): + def _get_prefix_suffix(self, date=None, date_range=None): def _interpolate(s, d): return (s % d) if s else '' def _interpolation_dict(): now = range_date = effective_date = datetime.now(pytz.timezone(self._context.get('tz') or 'UTC')) - if self._context.get('ir_sequence_date'): - effective_date = fields.Datetime.from_string(self._context.get('ir_sequence_date')) - if self._context.get('ir_sequence_date_range'): - range_date = fields.Datetime.from_string(self._context.get('ir_sequence_date_range')) + if date or self._context.get('ir_sequence_date'): + effective_date = fields.Datetime.from_string(date or self._context.get('ir_sequence_date')) + if date_range or self._context.get('ir_sequence_date_range'): + range_date = fields.Datetime.from_string(date_range or self._context.get('ir_sequence_date_range')) sequences = { 'year': '%Y', 'month': '%m', 'day': '%d', 'y': '%y', 'doy': '%j', 'woy': '%W', @@ -242,27 +242,25 @@ class IrSequence(models.Model): }) return seq_date_range - def _next(self): + def _next(self, sequence_date=None): """ Returns the next number in the preferred sequence in all the ones given in self.""" if not self.use_date_range: return self._next_do() # date mode - dt = fields.Date.today() - if self._context.get('ir_sequence_date'): - dt = self._context.get('ir_sequence_date') + dt = sequence_date or self._context.get('ir_sequence_date', fields.Date.today()) seq_date = self.env['ir.sequence.date_range'].search([('sequence_id', '=', self.id), ('date_from', '<=', dt), ('date_to', '>=', dt)], limit=1) if not seq_date: seq_date = self._create_date_range_seq(dt) return seq_date.with_context(ir_sequence_date_range=seq_date.date_from)._next() @api.multi - def next_by_id(self): + def next_by_id(self, sequence_date=None): """ Draw an interpolated string using the specified sequence.""" self.check_access_rights('read') - return self._next() + return self._next(sequence_date=sequence_date) @api.model - def next_by_code(self, sequence_code): + def next_by_code(self, sequence_code, sequence_date=None): """ Draw an interpolated string using a sequence with the requested code. If several sequences with the correct code are available to the user (multi-company cases), the one from the user's current company will @@ -283,7 +281,7 @@ class IrSequence(models.Model): _logger.debug("No ir.sequence has been found for code '%s'. Please make sure a sequence is set for current company." % sequence_code) return False seq_id = seq_ids[0] - return seq_id._next() + return seq_id._next(sequence_date=sequence_date) @api.model def get_id(self, sequence_code_or_id, code_or_id='id'): diff --git a/odoo/addons/base/tests/test_mail_examples.py b/odoo/addons/base/tests/test_mail_examples.py index 032d321ff06..9f363d24a78 100644 --- a/odoo/addons/base/tests/test_mail_examples.py +++ b/odoo/addons/base/tests/test_mail_examples.py @@ -26,7 +26,7 @@ EDI_LIKE_HTML_SOURCE = u"""<div style="font-family: 'Lucida Grande', Ubuntu, Ari <strong>REFERENCES</strong><br /> Invoice number: <strong>${object.number}</strong><br /> Invoice total: <strong>${object.amount_total} ${object.currency_id.name}</strong><br /> - Invoice date: ${object.date_invoice}<br /> + Invoice date: ${object.invoice_date}<br /> Order reference: ${object.origin}<br /> Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a> </p> diff --git a/odoo/models.py b/odoo/models.py index 1cd9d17e337..d44bc56a875 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -1522,6 +1522,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): return { 'type': 'ir.actions.act_window', 'res_model': self._name, + 'view_type': 'form', 'view_mode': 'form', 'views': [(view_id, 'form')], 'target': 'current', @@ -5645,6 +5646,9 @@ Fields: if name not in done and snapshot0.has_changed(name) ] + if not env.context.get('recursive_onchanges', True): + todo = [] + # make the snapshot with the final values of record snapshot1 = Snapshot(record, nametree) |
