summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFlorian Gilbert <flg@odoo.com>2019-08-22 10:03:26 +0000
committerFlorian Gilbert <flg@odoo.com>2019-09-25 11:26:02 +0000
commitab483a3a6610a09391ec00e9c1c49489ca4a4f12 (patch)
tree0882cebae27345110d8049970e37eaa3fea11991 /addons
parent02dfe1e8e789ee783f58f667efdf47c017585298 (diff)
[IMP] account: Add restrict mode and normal mode for account move.
This commit deletes account_cancel module and squash it into account. The 'update_posted' field is changed by 'restrict_mode_hash_table' field. If 'restrict_mode_hash_table' is true, you have a hash chain on your account journal. These hash chains prove the inalterability of your accounting. l10n_fr_certification module is deleted and all hashing method are moved in account module. Now, you can download a PDF report about your inalterability in the company settings. If you have l10n_fr or l10n_post_cert installed you have more information on this report like the inalterability of pos orders, etc. Task ID: 2039160
Diffstat (limited to 'addons')
-rw-r--r--addons/account/__manifest__.py3
-rw-r--r--addons/account/models/account.py37
-rw-r--r--addons/account/models/account_bank_statement.py7
-rw-r--r--addons/account/models/account_move.py125
-rw-r--r--addons/account/models/account_payment.py16
-rw-r--r--addons/account/models/company.py81
-rw-r--r--addons/account/report/__init__.py1
-rw-r--r--addons/account/report/account_hash_integrity_templates.py22
-rw-r--r--addons/account/report/account_hash_integrity_templates.xml106
-rw-r--r--addons/account/tests/test_account_move_partner_count.py1
-rw-r--r--addons/account/tests/test_account_move_tax_lock_date.py32
-rw-r--r--addons/account/tests/test_payment.py22
-rw-r--r--addons/account/tests/test_reconciliation.py2
-rw-r--r--addons/account/views/account_move_views.xml35
-rw-r--r--addons/account/views/account_payment_view.xml5
-rw-r--r--addons/account/views/account_report.xml10
-rw-r--r--addons/account/views/account_view.xml4
-rw-r--r--addons/account_cancel/__init__.py4
-rw-r--r--addons/account_cancel/__manifest__.py32
-rw-r--r--addons/account_cancel/i18n/account_cancel.pot46
-rw-r--r--addons/account_cancel/i18n/af.po50
-rw-r--r--addons/account_cancel/i18n/am.po50
-rw-r--r--addons/account_cancel/i18n/ar.po52
-rw-r--r--addons/account_cancel/i18n/az.po43
-rw-r--r--addons/account_cancel/i18n/bg.po50
-rw-r--r--addons/account_cancel/i18n/bn.po51
-rw-r--r--addons/account_cancel/i18n/bs.po47
-rw-r--r--addons/account_cancel/i18n/ca.po50
-rw-r--r--addons/account_cancel/i18n/cs.po51
-rw-r--r--addons/account_cancel/i18n/da.po49
-rw-r--r--addons/account_cancel/i18n/de.po50
-rw-r--r--addons/account_cancel/i18n/el.po48
-rw-r--r--addons/account_cancel/i18n/en_AU.po52
-rw-r--r--addons/account_cancel/i18n/en_GB.po50
-rw-r--r--addons/account_cancel/i18n/es.po51
-rw-r--r--addons/account_cancel/i18n/es_AR.po50
-rw-r--r--addons/account_cancel/i18n/es_BO.po50
-rw-r--r--addons/account_cancel/i18n/es_CL.po50
-rw-r--r--addons/account_cancel/i18n/es_CO.po50
-rw-r--r--addons/account_cancel/i18n/es_CR.po50
-rw-r--r--addons/account_cancel/i18n/es_DO.po50
-rw-r--r--addons/account_cancel/i18n/es_EC.po50
-rw-r--r--addons/account_cancel/i18n/es_PE.po50
-rw-r--r--addons/account_cancel/i18n/es_PY.po50
-rw-r--r--addons/account_cancel/i18n/es_VE.po50
-rw-r--r--addons/account_cancel/i18n/et.po48
-rw-r--r--addons/account_cancel/i18n/eu.po50
-rw-r--r--addons/account_cancel/i18n/fa.po48
-rw-r--r--addons/account_cancel/i18n/fi.po49
-rw-r--r--addons/account_cancel/i18n/fo.po50
-rw-r--r--addons/account_cancel/i18n/fr.po50
-rw-r--r--addons/account_cancel/i18n/fr_CA.po50
-rw-r--r--addons/account_cancel/i18n/gl.po50
-rw-r--r--addons/account_cancel/i18n/gu.po47
-rw-r--r--addons/account_cancel/i18n/he.po46
-rw-r--r--addons/account_cancel/i18n/hi.po52
-rw-r--r--addons/account_cancel/i18n/hr.po51
-rw-r--r--addons/account_cancel/i18n/hu.po52
-rw-r--r--addons/account_cancel/i18n/hy.po51
-rw-r--r--addons/account_cancel/i18n/id.po50
-rw-r--r--addons/account_cancel/i18n/is.po48
-rw-r--r--addons/account_cancel/i18n/it.po51
-rw-r--r--addons/account_cancel/i18n/ja.po47
-rw-r--r--addons/account_cancel/i18n/ka.po50
-rw-r--r--addons/account_cancel/i18n/kab.po50
-rw-r--r--addons/account_cancel/i18n/kk.po51
-rw-r--r--addons/account_cancel/i18n/km.po46
-rw-r--r--addons/account_cancel/i18n/ko.po50
-rw-r--r--addons/account_cancel/i18n/lb.po46
-rw-r--r--addons/account_cancel/i18n/ln.po51
-rw-r--r--addons/account_cancel/i18n/lo.po50
-rw-r--r--addons/account_cancel/i18n/lt.po54
-rw-r--r--addons/account_cancel/i18n/lv.po50
-rw-r--r--addons/account_cancel/i18n/mk.po50
-rw-r--r--addons/account_cancel/i18n/mn.po51
-rw-r--r--addons/account_cancel/i18n/nb.po51
-rw-r--r--addons/account_cancel/i18n/ne.po47
-rw-r--r--addons/account_cancel/i18n/nl.po52
-rw-r--r--addons/account_cancel/i18n/nl_BE.po50
-rw-r--r--addons/account_cancel/i18n/pl.po51
-rw-r--r--addons/account_cancel/i18n/pt.po50
-rw-r--r--addons/account_cancel/i18n/pt_BR.po54
-rw-r--r--addons/account_cancel/i18n/ro.po47
-rw-r--r--addons/account_cancel/i18n/ru.po51
-rw-r--r--addons/account_cancel/i18n/sk.po47
-rw-r--r--addons/account_cancel/i18n/sl.po47
-rw-r--r--addons/account_cancel/i18n/sq.po50
-rw-r--r--addons/account_cancel/i18n/sr.po47
-rw-r--r--addons/account_cancel/i18n/sr@latin.po47
-rw-r--r--addons/account_cancel/i18n/sv.po50
-rw-r--r--addons/account_cancel/i18n/ta.po51
-rw-r--r--addons/account_cancel/i18n/th.po49
-rw-r--r--addons/account_cancel/i18n/tr.po50
-rw-r--r--addons/account_cancel/i18n/uk.po50
-rw-r--r--addons/account_cancel/i18n/vi.po53
-rw-r--r--addons/account_cancel/i18n/zh_CN.po51
-rw-r--r--addons/account_cancel/i18n/zh_HK.po52
-rw-r--r--addons/account_cancel/i18n/zh_TW.po51
-rw-r--r--addons/account_cancel/models/__init__.py4
-rw-r--r--addons/account_cancel/models/account_bank_statement.py14
-rw-r--r--addons/account_cancel/views/account_payment_view.xml13
-rw-r--r--addons/account_cancel/views/account_views.xml66
-rw-r--r--addons/l10n_fr/__init__.py17
-rw-r--r--addons/l10n_fr/__manifest__.py6
-rw-r--r--addons/l10n_fr/models/__init__.py2
-rw-r--r--addons/l10n_fr/models/l10n_fr.py9
-rw-r--r--addons/l10n_fr_certification/__init__.py21
-rw-r--r--addons/l10n_fr_certification/__manifest__.py31
-rw-r--r--addons/l10n_fr_certification/data/account_move.xml27
-rw-r--r--addons/l10n_fr_certification/models/__init__.py4
-rw-r--r--addons/l10n_fr_certification/models/account.py192
-rw-r--r--addons/l10n_fr_certification/models/res_company.py65
-rw-r--r--addons/l10n_fr_certification/static/description/icon.pngbin562 -> 0 bytes
-rw-r--r--addons/l10n_fr_certification/views/res_config.xml18
-rw-r--r--addons/l10n_fr_pos_cert/__init__.py4
-rw-r--r--addons/l10n_fr_pos_cert/__manifest__.py4
-rw-r--r--addons/l10n_fr_pos_cert/data/pos_inalterability.xml18
-rw-r--r--addons/l10n_fr_pos_cert/models/pos.py61
-rw-r--r--addons/l10n_fr_pos_cert/models/res_company.py19
-rw-r--r--addons/l10n_fr_pos_cert/views/account_views.xml2
-rw-r--r--addons/l10n_fr_pos_cert/views/pos_inalterability_menuitem.xml4
-rw-r--r--addons/l10n_fr_sale_closing/__init__.py9
-rw-r--r--addons/l10n_fr_sale_closing/__manifest__.py2
-rw-r--r--addons/l10n_fr_sale_closing/models/account_closing.py8
-rw-r--r--addons/l10n_fr_sale_closing/models/res_company.py38
-rw-r--r--addons/l10n_mx/views/account_views.xml2
-rw-r--r--addons/membership/models/account_move.py18
-rw-r--r--addons/membership/tests/test_membership.py3
-rw-r--r--addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py1
129 files changed, 529 insertions, 4625 deletions
diff --git a/addons/account/__manifest__.py b/addons/account/__manifest__.py
index 1670fd3bc62..f7544acca7b 100644
--- a/addons/account/__manifest__.py
+++ b/addons/account/__manifest__.py
@@ -61,7 +61,8 @@ You could use this simplified accounting in case you work with an (external) acc
'views/digest_views.xml',
'wizard/account_invoice_send_views.xml',
'views/account_tax_report_views.xml',
- 'views/report_statement.xml'
+ 'views/report_statement.xml',
+ 'report/account_hash_integrity_templates.xml'
],
'demo': [
'demo/account_demo.xml',
diff --git a/addons/account/models/account.py b/addons/account/models/account.py
index fb8c6d9cb2c..b3d45dc26f6 100644
--- a/addons/account/models/account.py
+++ b/addons/account/models/account.py
@@ -638,8 +638,8 @@ class AccountJournal(models.Model):
ondelete='restrict')
default_debit_account_id = fields.Many2one('account.account', string='Default Debit Account',
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]", help="It acts as a default account for debit amount", ondelete='restrict')
- 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")
+ restrict_mode_hash_table = fields.Boolean(string="Lock Posted Entries with Hash",
+ help="If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.")
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',
@@ -694,6 +694,8 @@ class AccountJournal(models.Model):
journal_group_ids = fields.Many2many('account.journal.group', domain="[('company_id', '=', company_id)]", string="Journal Groups")
+ secure_sequence_id = fields.Many2one('ir.sequence', help='Sequence to use to ensure the securisation of data', readonly=True, copy=False)
+
_sql_constraints = [
('code_company_uniq', 'unique (code, name, company_id)', 'The code and name of the journal must be unique per company !'),
]
@@ -860,6 +862,11 @@ class AccountJournal(models.Model):
raise UserError(_("The partners of the journal's company and the related bank account mismatch."))
if 'alias_name' in vals:
journal._update_mail_alias(vals)
+ if 'restrict_mode_hash_table' in vals and not vals.get('restrict_mode_hash_table'):
+ journal_entry = self.env['account.move'].search([('journal_id', '=', self.id), ('state', '=', 'posted'), ('secure_sequence_number', '!=', 0)], limit=1)
+ if len(journal_entry) > 0:
+ field_string = self._fields['restrict_mode_hash_table'].get_description(self.env)['string']
+ raise UserError(_("You cannot modify the field %s of a journal that already has accounting entries.") % field_string)
result = super(AccountJournal, self).write(vals)
# Create the bank_account_id if necessary
@@ -882,6 +889,10 @@ class AccountJournal(models.Model):
pending_payments = draft_moves.mapped('line_ids.payment_id')
pending_payments.mapped('move_line_ids.move_id').post()
pending_payments.mapped('reconciled_invoice_ids').filtered(lambda x: x.state == 'in_payment').write({'state': 'paid'})
+ for record in self:
+ if record.restrict_mode_hash_table and not record.secure_sequence_id:
+ record._create_secure_sequence(['secure_sequence_id'])
+
return result
@api.model
@@ -1073,6 +1084,28 @@ class AccountJournal(models.Model):
action_vals['view_mode'] = 'tree,form'
return action_vals
+ def _create_secure_sequence(self, sequence_fields):
+ """This function creates a no_gap sequence on each journal in self that will ensure
+ a unique number is given to all posted account.move in such a way that we can always
+ find the previous move of a journal entry on a specific journal.
+ """
+ for journal in self:
+ vals_write = {}
+ for seq_field in sequence_fields:
+ if not journal[seq_field]:
+ vals = {
+ 'name': _('Securisation of %s - %s') % (seq_field, journal.name),
+ 'code': 'SECUR%s-%s' % (journal.id, seq_field),
+ 'implementation': 'no_gap',
+ 'prefix': '',
+ 'suffix': '',
+ 'padding': 0,
+ 'company_id': journal.company_id.id}
+ seq = self.env['ir.sequence'].create(vals)
+ vals_write[seq_field] = seq.id
+ if vals_write:
+ journal.write(vals_write)
+
class ResPartnerBank(models.Model):
_inherit = "res.partner.bank"
diff --git a/addons/account/models/account_bank_statement.py b/addons/account/models/account_bank_statement.py
index 8ddf1b6000a..7799968263d 100644
--- a/addons/account/models/account_bank_statement.py
+++ b/addons/account/models/account_bank_statement.py
@@ -332,6 +332,9 @@ class AccountBankStatement(models.Model):
statement.name = st_number
statement.state = 'open'
+ def button_reopen(self):
+ self.state = 'open'
+
def action_bank_reconcile_bank_statements(self):
self.ensure_one()
bank_stmt_lines = self.mapped('line_ids')
@@ -445,9 +448,9 @@ class AccountBankStatementLine(models.Model):
if aml_to_cancel:
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()
+ moves_to_cancel.button_cancel()
+ moves_to_cancel.with_context(force_delete=True).unlink()
if payment_to_cancel:
payment_to_cancel.unlink()
diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index 131ca0f3a53..2bfe746fbce 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -10,6 +10,8 @@ from datetime import date
from itertools import groupby, chain
from stdnum.iso7064 import mod_97_10
from itertools import zip_longest
+from hashlib import sha256
+from json import dumps
import json
import re
@@ -18,6 +20,9 @@ import psycopg2
_logger = logging.getLogger(__name__)
+#forbidden fields
+INTEGRITY_HASH_MOVE_FIELDS = ['date', 'journal_id', 'company_id']
+INTEGRITY_HASH_LINE_FIELDS = ['debit', 'credit', 'account_id', 'partner_id']
class AccountMove(models.Model):
_name = "account.move"
@@ -168,8 +173,7 @@ class AccountMove(models.Model):
domain="[('company_id', '=', company_id)]",
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)]},
+ invoice_user_id = fields.Many2one('res.users', copy=False, tracking=True,
string='Salesperson',
default=lambda self: self.env.user)
user_id = fields.Many2one(string='User', related='invoice_user_id',
@@ -184,8 +188,7 @@ class AccountMove(models.Model):
states={'draft': [('readonly', False)]})
invoice_date_due = fields.Date(string='Due Date', readonly=True, index=True, copy=False,
states={'draft': [('readonly', False)]})
- invoice_payment_ref = fields.Char(string='Payment Reference', index=True, copy=False, readonly=True,
- states={'draft': [('readonly', False)]},
+ invoice_payment_ref = fields.Char(string='Payment Reference', index=True, copy=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.")
@@ -201,7 +204,7 @@ class AccountMove(models.Model):
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)]}, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
+ domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
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.')
@@ -244,6 +247,11 @@ class AccountMove(models.Model):
help="Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.")
# Technical field to hide Reconciled Entries stat button
has_reconciled_entries = fields.Boolean(compute="_compute_has_reconciled_entries")
+ # ==== Hash Fields ====
+ restrict_mode_hash_table = fields.Boolean(related='journal_id.restrict_mode_hash_table')
+ secure_sequence_number = fields.Integer(string="Inalteralbility No Gap Sequence #", readonly=True, copy=False)
+ inalterable_hash = fields.Char(string="Inalterability Hash", readonly=True, copy=False)
+ string_to_hash = fields.Char(compute='_compute_string_to_hash', readonly=True)
# -------------------------------------------------------------------------
# ONCHANGE METHODS
@@ -1502,12 +1510,29 @@ class AccountMove(models.Model):
def write(self, vals):
not_paid_invoices = self.filtered(lambda move: move.is_invoice(include_receipts=True) and move.invoice_payment_state not in ('paid', 'in_payment'))
+ for move in self:
+ if (move.restrict_mode_hash_table and move.state == "posted" and set(vals).intersection(INTEGRITY_HASH_MOVE_FIELDS)):
+ raise UserError(_("You cannot edit the following fields due to restrict mode being activated on the journal: %s.") % ', '.join(INTEGRITY_HASH_MOVE_FIELDS))
+ if (move.restrict_mode_hash_table and move.inalterable_hash and 'inalterable_hash' in vals) or (move.secure_sequence_number and 'secure_sequence_number' in vals):
+ raise UserError(_('You cannot overwrite the values ensuring the inalterability of the accounting.'))
+ if (move.name != '/' and 'journal_id' in vals and move.journal_id.id != vals['journal_id']):
+ raise UserError(_('You cannot edit the journal of an account move if it has been posted once.'))
+ if 'date' in vals and move.date != vals['date']:
+ move._check_move_consistency(check_balanced=False)
+
if self._move_autocomplete_invoice_lines_write(vals):
res = True
else:
vals.pop('invoice_line_ids', None)
res = super(AccountMove, self.with_context(check_move_validity=False)).write(vals)
+ if ('state' in vals and vals.get('state') == 'posted') and self.restrict_mode_hash_table:
+ for move in self.filtered(lambda m: not(m.secure_sequence_number or m.inalterable_hash)):
+ new_number = move.journal_id.secure_sequence_id.next_by_id()
+ vals_hashing = {'secure_sequence_number': new_number,
+ 'inalterable_hash': move._get_new_hash(new_number)}
+ res |= super(AccountMove, move).write(vals_hashing)
+
# 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.
@@ -1520,8 +1545,8 @@ class AccountMove(models.Model):
def unlink(self):
for move in self:
- # check the lock date + check if some entries are reconciled
- move.line_ids._update_check()
+ if move.name != '/' and not self._context.get('force_delete'):
+ raise UserError(_("You cannot delete an entry which has been posted once."))
move.line_ids.unlink()
return super(AccountMove, self).unlink()
@@ -2000,11 +2025,6 @@ class AccountMove(models.Model):
return lines.reconcile()
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'})
-
- def button_cancel(self):
self._check_tax_lock_date()
AccountMoveLine = self.env['account.move.line']
excluded_move_ids = []
@@ -2014,21 +2034,20 @@ class AccountMove(models.Model):
for move in self:
if move in move.line_ids.mapped('full_reconcile_id.exchange_move_id'):
- raise UserError(_('You cannot cancel an exchange difference journal entry.'))
+ raise UserError(_('You cannot reset to draft an exchange difference journal entry.'))
if move.tax_cash_basis_rec_id:
- raise UserError(_('You cannot cancel a tax cash basis journal entry.'))
- if not move.journal_id.update_posted and move.id not in excluded_move_ids:
- raise UserError(_('You cannot modify a posted entry of this journal.\nFirst you should set the journal to allow cancelling entries.'))
+ raise UserError(_('You cannot reset to draft a tax cash basis journal entry.'))
+ if move.restrict_mode_hash_table and move.state == 'posted' and move.id not in excluded_move_ids:
+ raise UserError(_('You cannot modify a posted entry of this journal because it is in strict mode.'))
# We remove all the analytics entries for this journal
move.mapped('line_ids.analytic_line_ids').unlink()
- if self.ids:
- self.check_access_rights('write')
- self.check_access_rule('write')
- 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_fiscalyear_lock_date()
self.mapped('line_ids').remove_move_reconcile()
+ self.write({'state': 'draft'})
+
+ def button_cancel(self):
+ self.write({'state': 'cancel'})
return True
def action_invoice_sent(self):
@@ -2060,6 +2079,51 @@ class AccountMove(models.Model):
'context': ctx,
}
+ def _get_new_hash(self, secure_seq_number):
+ """ Returns the hash to write on journal entries when they get posted"""
+ self.ensure_one()
+ #get the only one exact previous move in the securisation sequence
+ prev_move = self.search([('state', '=', 'posted'),
+ ('company_id', '=', self.company_id.id),
+ ('journal_id', '=', self.journal_id.id),
+ ('secure_sequence_number', '!=', 0),
+ ('secure_sequence_number', '=', int(secure_seq_number) - 1)])
+ if prev_move and len(prev_move) != 1:
+ raise UserError(
+ _('An error occured when computing the inalterability. Impossible to get the unique previous posted journal entry.'))
+
+ #build and return the hash
+ return self._compute_hash(prev_move.inalterable_hash if prev_move else u'')
+
+ def _compute_hash(self, previous_hash):
+ """ Computes the hash of the browse_record given as self, based on the hash
+ of the previous record in the company's securisation sequence given as parameter"""
+ self.ensure_one()
+ hash_string = sha256((previous_hash + self.string_to_hash).encode('utf-8'))
+ return hash_string.hexdigest()
+
+ def _compute_string_to_hash(self):
+ def _getattrstring(obj, field_str):
+ field_value = obj[field_str]
+ if obj._fields[field_str].type == 'many2one':
+ field_value = field_value.id
+ return str(field_value)
+
+ for move in self:
+ values = {}
+ for field in INTEGRITY_HASH_MOVE_FIELDS:
+ values[field] = _getattrstring(move, field)
+
+ for line in move.line_ids:
+ for field in INTEGRITY_HASH_LINE_FIELDS:
+ k = 'line_%d_%s' % (line.id, field)
+ values[k] = _getattrstring(line, field)
+ #make the json serialization canonical
+ # (https://tools.ietf.org/html/draft-staykov-hu-json-canonical-form-00)
+ move.string_to_hash = dumps(values, sort_keys=True,
+ ensure_ascii=True, indent=None,
+ separators=(',',':'))
+
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
@@ -2282,11 +2346,11 @@ class AccountMoveLine(models.Model):
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 #", copy=False, index=True)
+ full_reconcile_id = fields.Many2one('account.full.reconcile', string="Matching #", copy=False, index=True, readonly=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.')
+ help='Debit journal items that are matched with this journal item.', readonly=True)
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.')
+ help='Credit journal items that are matched with this journal item.', readonly=True)
# ==== Analytic fields ====
analytic_line_ids = fields.One2many('account.analytic.line', 'move_id', string='Analytic lines')
@@ -2847,8 +2911,6 @@ class AccountMoveLine(models.Model):
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 == 'posted':
- 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:
@@ -2970,8 +3032,13 @@ class AccountMoveLine(models.Model):
# 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:
+ for line in self:
+ if line.parent_state == 'posted':
+ if line.move_id.restrict_mode_hash_table and set(vals).intersection(INTEGRITY_HASH_LINE_FIELDS):
+ raise UserError(_("You cannot edit the following fields due to restrict mode being activated on the journal: %s.") % ', '.join(INTEGRITY_HASH_LINE_FIELDS))
+ if any(key in vals for key in ('tax_ids', 'tax_line_ids')):
+ raise UserError(_('You cannot modify the taxes related to a posted journal item, you should reset the journal entry to draft to do so.'))
+ if 'statement_line_id' in vals and line.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')):
diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py
index 6b4dd3a1078..f15e1539ed1 100644
--- a/addons/account/models/account_payment.py
+++ b/addons/account/models/account_payment.py
@@ -441,16 +441,7 @@ class account_payment(models.Model):
payment.write({'state': 'posted'})
def cancel(self):
- for rec in self:
- for move in rec.move_line_ids.mapped('move_id'):
- if rec.reconciled_invoice_ids:
- move.line_ids.remove_move_reconcile()
- if move.state != 'draft':
- move.button_cancel()
- move.unlink()
- rec.write({
- 'state': 'cancelled',
- })
+ self.write({'state': 'cancelled'})
def unlink(self):
if any(bool(rec.move_line_ids) for rec in self):
@@ -703,7 +694,10 @@ class account_payment(models.Model):
return True
def action_draft(self):
- return self.write({'state': 'draft'})
+ moves = self.mapped('move_line_ids.move_id')
+ moves.filtered(lambda move: move.state == 'posted').button_draft()
+ moves.with_context(force_delete=True).unlink()
+ self.write({'state': 'draft'})
def _get_invoice_payment_amount(self, inv):
"""
diff --git a/addons/account/models/company.py b/addons/account/models/company.py
index e40265d4f64..7116dafff8c 100644
--- a/addons/account/models/company.py
+++ b/addons/account/models/company.py
@@ -6,7 +6,7 @@ from dateutil.relativedelta import relativedelta
from odoo import fields, models, api, _
from odoo.exceptions import ValidationError, UserError, RedirectWarning
-from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT
+from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT, format_date
from odoo.tools.float_utils import float_round, float_is_zero
from odoo.tools import date_utils
from odoo.tests.common import Form
@@ -553,3 +553,82 @@ class ResCompany(models.Model):
"Please go to Account Configuration and select or install a fiscal localization.")
raise RedirectWarning(msg, action.id, _("Go to the configuration panel"))
return account
+
+ @api.model
+ def _action_check_hash_integrity(self):
+ return self.env.ref('account.action_report_account_hash_integrity').report_action(self.id)
+
+ def _check_hash_integrity(self):
+ """Checks that all posted moves have still the same data as when they were posted
+ and raises an error with the result.
+ """
+ def build_move_info(move):
+ return(move.name, move.inalterable_hash, fields.Date.to_string(move.date))
+
+ journals = self.env['account.journal'].search([('company_id', '=', self.id)])
+ results_by_journal = {
+ 'results': [],
+ 'printing_date': format_date(self.env, fields.Date.to_string(fields.Date.today()))
+ }
+
+ for journal in journals:
+ rslt = {
+ 'journal_name': journal.name,
+ 'journal_code': journal.code,
+ 'restricted_by_hash_table': journal.restrict_mode_hash_table and 'V' or 'X',
+ 'msg_cover': '',
+ 'first_hash': 'None',
+ 'first_move_name': 'None',
+ 'first_move_date': 'None',
+ 'last_hash': 'None',
+ 'last_move_name': 'None',
+ 'last_move_date': 'None',
+ }
+ if not journal.restrict_mode_hash_table:
+ rslt.update({'msg_cover': _('This journal is not in strict mode.')})
+ results_by_journal['results'].append(rslt)
+ continue
+
+ all_moves_count = self.env['account.move'].search_count([('state', '=', 'posted'), ('journal_id', '=', journal.id)])
+ moves = self.env['account.move'].search([('state', '=', 'posted'), ('journal_id', '=', journal.id),
+ ('secure_sequence_number', '!=', 0)], order="secure_sequence_number ASC")
+ if not moves:
+ rslt.update({
+ 'msg_cover': _('There isn\'t any journal entry flagged for data inalterability yet for this journal.'),
+ })
+ results_by_journal['results'].append(rslt)
+ continue
+
+ previous_hash = u''
+ start_move_info = []
+ hash_corrupted = False
+ for move in moves:
+ if move.inalterable_hash != move._compute_hash(previous_hash=previous_hash):
+ rslt.update({'msg_cover': _('Corrupted data on journal entry with id %s.') % move.id})
+ results_by_journal['results'].append(rslt)
+ hash_corrupted = True
+ break
+ if not previous_hash:
+ #save the date and sequence number of the first move hashed
+ start_move_info = build_move_info(move)
+ previous_hash = move.inalterable_hash
+ end_move_info = build_move_info(move)
+
+ if hash_corrupted:
+ continue
+
+ rslt.update({
+ 'first_move_name': start_move_info[0],
+ 'first_hash': start_move_info[1],
+ 'first_move_date': format_date(self.env, start_move_info[2]),
+ 'last_move_name': end_move_info[0],
+ 'last_hash': end_move_info[1],
+ 'last_move_date': format_date(self.env, end_move_info[2]),
+ })
+ if len(moves) == all_moves_count:
+ rslt.update({'msg_cover': _('All entries are hashed.')})
+ else:
+ rslt.update({'msg_cover': _('Entries are hashed from %s (%s)') % (start_move_info[0], format_date(self.env, start_move_info[2]))})
+ results_by_journal['results'].append(rslt)
+
+ return results_by_journal
diff --git a/addons/account/report/__init__.py b/addons/account/report/__init__.py
index 0082db0381a..085f3cea256 100644
--- a/addons/account/report/__init__.py
+++ b/addons/account/report/__init__.py
@@ -4,3 +4,4 @@
from . import account_invoice_report
from . import account_journal
from . import account_aged_partner_balance
+from . import account_hash_integrity_templates
diff --git a/addons/account/report/account_hash_integrity_templates.py b/addons/account/report/account_hash_integrity_templates.py
new file mode 100644
index 00000000000..fe246841522
--- /dev/null
+++ b/addons/account/report/account_hash_integrity_templates.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models
+
+
+class ReportAccountHashIntegrity(models.AbstractModel):
+ _name = 'report.account.report_hash_integrity'
+ _description = 'Get hash integrity result as PDF.'
+
+ @api.model
+ def _get_report_values(self, docids, data=None):
+ if data:
+ data.update(self.env.company._check_hash_integrity())
+ else:
+ data = self.env.company._check_hash_integrity()
+ return {
+ 'doc_ids' : docids,
+ 'doc_model' : self.env['res.company'],
+ 'data' : data,
+ 'docs' : self.env['res.company'].browse(self.env.company.id),
+ }
diff --git a/addons/account/report/account_hash_integrity_templates.xml b/addons/account/report/account_hash_integrity_templates.xml
new file mode 100644
index 00000000000..14716749395
--- /dev/null
+++ b/addons/account/report/account_hash_integrity_templates.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<odoo>
+ <data>
+ <template id="report_hash_integrity">
+ <t t-call="web.html_container">
+ <t t-foreach="docs" t-as="company">
+ <t t-call="web.external_layout">
+ <div class="page">
+ <div class="row" id="hash_header">
+ <div class="col-12">
+ <br/>
+ <h2>Hash Integrity Result - <span t-esc="data['printing_date']"/></h2>
+ <br/>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-12" id="hash_config_review">
+ <br/>
+ <h3>Configuration review</h3>
+ <br/>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-12">
+ <table class="table table-bordered" style="table-layout: fixed" id="hash_config_table">
+ <thead style="display: table-row-group">
+ <tr>
+ <th class="text-center" style="width: 30%" scope="col">Journal</th>
+ <th class="text-center" style="width: 20%" scope="col">Inalterability check</th>
+ <th class="text-center" style="width: 50%" scope="col">Coverage</th>
+ </tr>
+ </thead>
+ <tbody>
+ <t t-foreach="data['results']" t-as="result">
+ <tr>
+ <td>
+ [<span t-esc="result['journal_code']"/>] <span t-esc="result['journal_name']"/>
+ </td>
+ <td class="text-center"><span t-esc="result['restricted_by_hash_table']"/></td>
+ <td><span t-esc="result['msg_cover']"/></td>
+ </tr>
+ </t>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <t t-if="any(result['first_hash'] != 'None' for result in data['results'])">
+ <div class="row" style="page-break-before:always;">
+ <div class="col-12" id="hash_data_consistency">
+ <br/>
+ <h3>Data consistency check</h3>
+ <br/>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-12" id="hash_data_consistency_table">
+ <table class="table table-bordered" style="table-layout: fixed">
+ <thead style="display: table-row-group">
+ <tr>
+ <th class="text-center" style="width: 20%" scope="col">Journal</th>
+ <th class="text-center" style="width: 20%" scope="col">First Hash</th>
+ <th class="text-center" style="width: 20%" scope="col">First Entry</th>
+ <th class="text-center" style="width: 20%" scope="col">Last Hash</th>
+ <th class="text-center" style="width: 20%" scope="col">Last Entry</th>
+ </tr>
+ </thead>
+ <tbody>
+ <t t-foreach="data['results']" t-as="result">
+ <t t-if="result['first_hash'] != 'None'">
+ <tr>
+ <td><span t-esc="result['journal_code']"/></td>
+ <td><span t-esc="result['first_hash']"/></td>
+ <td>
+ <span t-esc="result['first_move_name']"/> <br/>
+ <span t-esc="result['first_move_date']"/>
+ </td>
+ <td><span t-esc="result['last_hash']"/></td>
+ <td>
+ <span t-esc="result['last_move_name']"/> <br/>
+ <span t-esc="result['last_move_date']"/>
+ </td>
+ </tr>
+ </t>
+ </t>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="row" id="hash_last_div">
+ <div class="col-12" id="hash_chain_compliant">
+ <br/>
+ <h6>
+ The hash chain is compliant: it is not possible to alter the
+ data without breaking the hash chain for subsequent parts.
+ </h6>
+ <br/>
+ </div>
+ </div>
+ </t>
+ </div>
+ </t>
+ </t>
+ </t>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/account/tests/test_account_move_partner_count.py b/addons/account/tests/test_account_move_partner_count.py
index 68527cf7572..203c4dc0493 100644
--- a/addons/account/tests/test_account_move_partner_count.py
+++ b/addons/account/tests/test_account_move_partner_count.py
@@ -45,6 +45,7 @@ class TestAccountMovePartnerCount(TransactionCase):
with self.registry.cursor() as cr:
env = self.env(cr=cr)
move = self.move.with_env(env)
+ move.name = '/'
move.state = 'draft'
move.unlink()
self.journal.with_env(env).unlink()
diff --git a/addons/account/tests/test_account_move_tax_lock_date.py b/addons/account/tests/test_account_move_tax_lock_date.py
index 280536e6b46..efd383cb815 100644
--- a/addons/account/tests/test_account_move_tax_lock_date.py
+++ b/addons/account/tests/test_account_move_tax_lock_date.py
@@ -19,12 +19,11 @@ class TestTaxBlockDate(AccountingTestCase):
self.company = self.env.company
company_id = self.company.id
- last_day_month = date.today()
- self.last_day_month = last_day_month.replace(day=monthrange(last_day_month.year, last_day_month.month)[1])
- first_day_month = date.today()
- self.first_day_month = first_day_month.replace(day=1)
- middle_day_month = date.today()
- middle_day_month = middle_day_month.replace(day=15)
+ last_day_previous_month = date.today()
+ last_day_previous_month = last_day_previous_month.replace(month=last_day_previous_month.month-1)
+ self.last_day_previous_month = last_day_previous_month.replace(day=monthrange(last_day_previous_month.year, last_day_previous_month.month)[1])
+ self.first_day_previous_month = self.last_day_previous_month.replace(day=1)
+ middle_day_previous_month = self.last_day_previous_month.replace(day=15)
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]
@@ -34,7 +33,7 @@ class TestTaxBlockDate(AccountingTestCase):
self.move = {
'name': '/',
'journal_id': self.sale_journal_id.id,
- 'date': middle_day_month,
+ 'date': middle_day_previous_month,
'line_ids': [(0, 0, {
'name': 'foo',
'debit': 10,
@@ -50,7 +49,7 @@ class TestTaxBlockDate(AccountingTestCase):
self.move_no_tax = {
'name': '/',
'journal_id': self.sale_journal_id.id,
- 'date': middle_day_month,
+ 'date': middle_day_previous_month,
'line_ids': [(0, 0, {
'name': 'foo',
'debit': 10,
@@ -67,32 +66,31 @@ class TestTaxBlockDate(AccountingTestCase):
before the tax lock date.
"""
# Posting after the lock date is always allowed
- self.company.tax_lock_date = self.first_day_month
+ self.company.tax_lock_date = self.first_day_previous_month
# copy() because mail.thread modifies the dictionary given to create
move_after_lock = self.env['account.move'].create(self.move.copy())
move_after_lock.post()
# Posting before the tax lock date is allowed only if the move doesn't contain any tax
- self.user_id.company_id.tax_lock_date = self.last_day_month
+ self.user_id.company_id.tax_lock_date = self.last_day_previous_month
move_before_lock_no_tax = self.env['account.move'].create(self.move_no_tax)
move_before_lock_no_tax.post()
# Posting before the tax lock date is not allowed for moves impacting the tax report
- self.user_id.company_id.tax_lock_date = self.last_day_month
+ self.user_id.company_id.tax_lock_date = self.last_day_previous_month
with self.assertRaises(UserError):
self.env['account.move'].create(self.move.copy())
- def test_tax_lock_date_cancel(self):
- """ Checks that it is not possible to cancel an entry posted before the
+ def test_tax_lock_date_reset_to_draft(self):
+ """ Checks that it is not possible to reset to draft an entry posted before the
tax lock date if it impacts the tax report. """
- self.sale_journal_id.update_posted = True
move = self.env['account.move'].create(self.move)
move.post()
move_no_tax = self.env['account.move'].create(self.move_no_tax)
move_no_tax.post()
- self.user_id.company_id.tax_lock_date = self.last_day_month
+ self.user_id.company_id.tax_lock_date = self.last_day_previous_month
- move_no_tax.button_cancel()
+ move_no_tax.button_draft()
with self.assertRaises(UserError):
- move.button_cancel()
+ move.button_draft()
diff --git a/addons/account/tests/test_payment.py b/addons/account/tests/test_payment.py
index 557a482d34f..953d6c1754c 100644
--- a/addons/account/tests/test_payment.py
+++ b/addons/account/tests/test_payment.py
@@ -428,9 +428,7 @@ class TestPayment(AccountingTestCase):
# The invoice should now be paid
self.assertEqual(invoice.invoice_payment_state, 'paid', "Invoice should be in 'paid' state after having reconciled the two payments with a bank statement")
- def test_payment_cancel_keep_name(self):
- self.bank_journal_euro.update_posted = True
-
+ def test_payment_draft_keep_name(self):
payment = self.payment_model.create({
'payment_type': 'inbound',
'payment_method_id': self.payment_method_manual_in.id,
@@ -447,18 +445,14 @@ class TestPayment(AccountingTestCase):
name = payment.move_line_ids.mapped('move_id').name
self.assertTrue(name)
- payment.cancel()
- self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.action_draft()
+ self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.post()
self.assertEqual(len(payment.move_line_ids.mapped('move_id')), 1)
self.assertEqual(name, payment.move_line_ids.mapped('move_id').name)
- def test_payment_transfer_cancel_keep_names(self):
- self.bank_journal_euro.update_posted = True
- self.cash_journal_euro.update_posted = True
-
+ def test_payment_transfer_draft_keep_names(self):
payment = self.payment_model.create({
'payment_type': 'transfer',
'payment_method_id': self.payment_method_manual_out.id,
@@ -487,9 +481,8 @@ class TestPayment(AccountingTestCase):
self.assertEqual(reconciled_lines.mapped('move_id'), all_moves)
reconciled_lines.remove_move_reconcile()
- payment.cancel()
- self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.action_draft()
+ self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.post()
self.assertEqual(len(payment.move_line_ids.mapped('move_id')), 2)
@@ -502,9 +495,7 @@ class TestPayment(AccountingTestCase):
self.assertEqual(name, move.name)
self.assertEqual(transfer_name, transfer_move.name)
- def test_payment_cancel_to_transfer(self):
- self.bank_journal_euro.update_posted = True
-
+ def test_payment_draft_to_transfer(self):
payment = self.payment_model.create({
'payment_type': 'inbound',
'payment_method_id': self.payment_method_manual_in.id,
@@ -521,9 +512,8 @@ class TestPayment(AccountingTestCase):
name = payment.move_line_ids.mapped('move_id').name
self.assertTrue(name)
- payment.cancel()
- self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.action_draft()
+ self.assertFalse(payment.move_line_ids.mapped('move_id'))
payment.write({
'payment_type': 'transfer',
diff --git a/addons/account/tests/test_reconciliation.py b/addons/account/tests/test_reconciliation.py
index 94e5e69bee4..91c52a22c85 100644
--- a/addons/account/tests/test_reconciliation.py
+++ b/addons/account/tests/test_reconciliation.py
@@ -1506,7 +1506,7 @@ class TestReconciliationExec(TestReconciliation):
partner = self.env['res.partner'].create({'name': 'UncertainPartner'})
currency = self.env.company.currency_id
invoice = self.create_invoice_partner(currency_id=currency.id, partner_id=partner.id)
- journal = self.env['account.journal'].create({'name': 'Bank', 'type': 'bank', 'code': 'THE', 'update_posted':True})
+ journal = self.env['account.journal'].create({'name': 'Bank', 'type': 'bank', 'code': 'THE', 'restrict_mode_hash_table':False})
statement = self.make_payment(invoice, journal, 50)
st_line = statement.line_ids
diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml
index 12aace1ff9b..2def26b8cb3 100644
--- a/addons/account/views/account_move_views.xml
+++ b/addons/account/views/account_move_views.xml
@@ -27,7 +27,7 @@
<field name="account_id" options="{'no_create': True}" domain="[('company_id', '=', company_id)]" attrs="{'readonly':[('parent_state','=','posted')]}"/>
<field name="debit" attrs="{'readonly':[('parent_state','=','posted')]}"/>
<field name="credit" attrs="{'readonly':[('parent_state','=','posted')]}"/>
- <field name="quantity"/>
+ <field name="quantity" attrs="{'readonly':[('parent_state','=','posted')]}"/>
</group>
<group string="Accounting Documents">
<field name="move_id" attrs="{'readonly':[('parent_state','=','posted')]}"/>
@@ -68,8 +68,10 @@
<field name="blocked"/>
</group>
<group string="Analytic" groups="analytic.group_analytic_accounting,analytic.group_analytic_tags">
- <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="analytic_account_id" groups="analytic.group_analytic_accounting"
+ attrs="{'readonly':[('parent_state','=','posted')]}"/>
+ <field name="analytic_tag_ids" groups="analytic.group_analytic_tags"
+ widget="many2many_tags"/>
</group>
</group>
</page>
@@ -138,7 +140,7 @@
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
<field name="journal_id" options='{"no_open":True}'/>
<field name="move_id" optional="show"/>
- <field name="account_id" options="{'no_open': True, 'no_create': True}" domain="[('company_id', '=', company_id)]" groups="account.group_account_user" attrs="{'readonly':[('parent_state','=','posted')]}"/>
+ <field name="account_id" options="{'no_open': True, 'no_create': True}" domain="[('company_id', '=', company_id)]" groups="account.group_account_user"/>
<field name="partner_id" optional="show"/>
<field name="statement_id" invisible="1"/>
<field name="ref" optional="show"/>
@@ -507,6 +509,10 @@
<button name="action_duplicate" string="Duplicate" type="object" groups="account.group_account_invoice"
attrs="{'invisible': [('type', '!=', 'entry')]}"/>
<!-- Cancel -->
+ <button name="button_cancel" string="Cancel Entry" type="object" groups="account.group_account_invoice"
+ attrs="{'invisible' : ['|', ('id', '=', False), ('state', '!=', 'draft')]}"/>
+ <button name="button_draft" string="Reset to Draft" type="object" groups="account.group_account_invoice"
+ attrs="{'invisible' : ['|', ('restrict_mode_hash_table', '=', True), ('state', 'not in', ('posted', 'cancel'))]}"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted"/>
</header>
<!-- Invoice outstanding credits -->
@@ -557,6 +563,7 @@
<field name="invoice_sequence_number_next" invisible="1"/>
<field name="invoice_has_matching_suspense_amount" invisible="1"/>
<field name="has_reconciled_entries" invisible="1"/>
+ <field name="restrict_mode_hash_table" invisible="1"/>
<div>
<!-- Invoice draft header -->
@@ -642,7 +649,8 @@
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)]"/>
+ domain="[('type', '=?', invoice_filter_type_domain)]"
+ attrs="{'readonly': [('name', '!=', '/')]}"/>
<field name="company_id" groups="base.group_multi_company"/>
@@ -866,6 +874,7 @@
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="inalterable_hash" groups="base.group_no_one,account.group_account_user"/>
<field name="invoice_cash_rounding_id" groups="account.group_cash_rounding"/>
<field name="invoice_source_email"
widget="email"
@@ -874,9 +883,10 @@
<group string="Payments"
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_payment_ref" attrs="{'readonly': [('state', '=', 'paid'), ('type', 'in', ('in_invoice', 'in_refund'))]}"/>
<field name="invoice_partner_bank_id"
- domain="[('partner_id', '=', bank_partner_id)]"/>
+ domain="[('partner_id', '=', bank_partner_id)]"
+ attrs="{'readonly': [('state', '=', 'paid')]}"/>
</group>
</group>
</page>
@@ -893,6 +903,7 @@
</group>
<group>
<field name="company_id" groups="base.group_multi_company" required="1"/>
+ <field name="inalterable_hash" groups="base.group_no_one,account.group_account_user"/>
</group>
</group>
</page>
@@ -1279,6 +1290,16 @@ if records:
</field>
</record>
+ <record model="ir.actions.server" id="action_check_hash_integrity">
+ <field name="name">Data Inalterability Check</field>
+ <field name="model_id" ref="account.model_res_company"/>
+ <field name="type">ir.actions.server</field>
+ <field name="state">code</field>
+ <field name="code">
+ action = env.company._action_check_hash_integrity()
+ </field>
+ </record>
+
<!-- MENUS -->
<menuitem
diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml
index 3f879df6da3..7242a091a2f 100644
--- a/addons/account/views/account_payment_view.xml
+++ b/addons/account/views/account_payment_view.xml
@@ -126,8 +126,9 @@
<form string="Register Payment">
<header>
<button name="post" class="oe_highlight" states="draft" string="Confirm" type="object"/>
- <button name="action_draft" class="oe_highlight" states="cancelled" string="Set To Draft" type="object"/>
- <field name="state" widget="statusbar" statusbar_visible="draft,posted,reconciled"/>
+ <button name="action_draft" class="btn btn-secondary" states="posted" string="Reset To Draft" type="object"/>
+ <button name="cancel" attrs="{'invisible': [('state', 'in', ('cancelled', 'posted'))]}" string="Cancel" type="object"/>
+ <field name="state" widget="statusbar" statusbar_visible="draft,posted,reconciled,cancelled"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml
index 86f2281424d..11d6e792f47 100644
--- a/addons/account/views/account_report.xml
+++ b/addons/account/views/account_report.xml
@@ -75,5 +75,15 @@
report_type="qweb-pdf"
/>
+ <report
+ id="action_report_account_hash_integrity"
+ model="res.company"
+ string="Hash integrity result PDF"
+ report_type="qweb-pdf"
+ name="account.report_hash_integrity"
+ file="account.report_hash_integrity"
+ menu="False"
+ />
+
</data>
</odoo>
diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml
index 39865207430..86e8dfff114 100644
--- a/addons/account/views/account_view.xml
+++ b/addons/account/views/account_view.xml
@@ -319,6 +319,7 @@
<div class="text-muted" colspan="2">Keep empty for no control</div>
<field name="type_control_ids" widget="many2many_tags"/>
<field name="account_control_ids" widget="many2many_tags"/>
+ <field name="restrict_mode_hash_table" groups="account.group_account_user"/>
</group>
<group string="Payment Method Types" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}">
<field name="inbound_payment_method_ids" widget="many2many_checkboxes"/>
@@ -640,6 +641,7 @@ action = model.setting_init_bank_account_action()
<field name="all_lines_reconciled" invisible="1" />
<button name="action_bank_reconcile_bank_statements" string="Reconcile" type="object" class="oe_highlight" attrs="{'invisible':['|','|',('all_lines_reconciled','=',True),('line_ids','=',[]),('state', '!=', 'open')]}"/>
<button name="check_confirm_bank" string="Validate" type="object" class="oe_highlight" attrs="{'invisible':['|','|',('all_lines_reconciled','=',False),('line_ids','=',[]),('state', '!=', 'open')]}"/>
+ <button name="button_reopen" states="confirm" string="Reset to New" type="object"/>
<button name="%(action_cash_box_out)d" string="Take Money In/Out" type="action" class="oe_highlight" attrs="{'invisible': [('journal_type','!=','cash')]}"/>
<field name="state" widget="statusbar" statusbar_visible="open,confirm"/>
</header>
@@ -698,6 +700,8 @@ action = model.setting_init_bank_account_action()
<field name="account_number" optional="hidden"/>
<field name="amount_currency" optional="hidden"/>
<field name="currency_id" optional="hidden"/>
+ <field name="state" invisible="1"/>
+ <button name="button_cancel_reconciliation" attrs="{'invisible': ['|',('journal_entry_ids', '=', []), ('state', '=', 'confirm')]}" string="Revert reconciliation" type="object" icon="fa-undo"/>
</tree>
</field>
</page>
diff --git a/addons/account_cancel/__init__.py b/addons/account_cancel/__init__.py
deleted file mode 100644
index dc5e6b693d1..00000000000
--- a/addons/account_cancel/__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_cancel/__manifest__.py b/addons/account_cancel/__manifest__.py
deleted file mode 100644
index fa213f0e26e..00000000000
--- a/addons/account_cancel/__manifest__.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-{
- 'name': 'Cancel Journal Entries',
- 'version': '1.1',
- 'category': 'Accounting',
- 'description': """
-Allows canceling accounting entries.
-====================================
-
-This module adds a checkbox on the accounting journals to allow the cancellation of journal entries.
-
-This checkbox is only visible on the accounting journals when the debug mode is active.
-
-If this checkbox is set to TRUE, it allows users to cancel journal entries.
-
-The accounting entry that is cancelled can then be modified and reposted or deleted.
-
-It also operates on invoices, bank statements, payments ...
-
-Be careful with this module as it has audit implications. Cancelling accounting entries is not authorized in all countries.
-""",
- 'depends': ['account'],
- 'data': [
- 'views/account_payment_view.xml',
- 'views/account_views.xml'
- ],
- 'demo': [],
- 'installable': True,
- 'auto_install': False,
-}
diff --git a/addons/account_cancel/i18n/account_cancel.pot b/addons/account_cancel/i18n/account_cancel.pot
deleted file mode 100644
index a37e5e72b61..00000000000
--- a/addons/account_cancel/i18n/account_cancel.pot
+++ /dev/null
@@ -1,46 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-12 11:32+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/af.po b/addons/account_cancel/i18n/af.po
deleted file mode 100644
index c937a3c0d02..00000000000
--- a/addons/account_cancel/i18n/af.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+0000\n"
-"Last-Translator: Martin Trigaux <mat@odoo.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Kanselleer"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/am.po b/addons/account_cancel/i18n/am.po
deleted file mode 100644
index 77a9b12ae23..00000000000
--- a/addons/account_cancel/i18n/am.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "መሰረዝ"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/ar.po b/addons/account_cancel/i18n/ar.po
deleted file mode 100644
index 283226811d2..00000000000
--- a/addons/account_cancel/i18n/ar.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Mustafa Rawi <mustafa@cubexco.com>, 2019
-# Martin Trigaux, 2019
-# hoxhe Aits <hoxhe0@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: hoxhe Aits <hoxhe0@gmail.com>, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "كشف الحساب البنكي"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "إلغاء"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "إلغاء القيد"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "إعادة التعيين لحالة مسودة"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "إعادة تعيين إلى جديد"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "عكس التسوية"
diff --git a/addons/account_cancel/i18n/az.po b/addons/account_cancel/i18n/az.po
deleted file mode 100644
index 12efd5df142..00000000000
--- a/addons/account_cancel/i18n/az.po
+++ /dev/null
@@ -1,43 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/bg.po b/addons/account_cancel/i18n/bg.po
deleted file mode 100644
index f1d99da29e7..00000000000
--- a/addons/account_cancel/i18n/bg.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Откажи"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/bn.po b/addons/account_cancel/i18n/bn.po
deleted file mode 100644
index e4f4f9cc5dd..00000000000
--- a/addons/account_cancel/i18n/bn.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+0000\n"
-"Last-Translator: Martin Trigaux\n"
-"Language-Team: Bengali (http://www.transifex.com/odoo/odoo-9/language/bn/)\n"
-"Language: bn\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "বাতিল"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr "চালান বাতিল"
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/bs.po b/addons/account_cancel/i18n/bs.po
deleted file mode 100644
index 154fd751ad9..00000000000
--- a/addons/account_cancel/i18n/bs.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Boško Stojaković <bluesoft83@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Boško Stojaković <bluesoft83@gmail.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Izvod banke"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Otkaži"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Otkaži unos"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Resetuj na novi"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/ca.po b/addons/account_cancel/i18n/ca.po
deleted file mode 100644
index b5fb775e3bd..00000000000
--- a/addons/account_cancel/i18n/ca.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Josep Sànchez <papapep@gmx.com>, 2018
-# RGB Consulting <odoo@rgbconsulting.com>, 2018
-# Quim - eccit <quim@eccit.com>, 2018
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-08-24 09:15+0000\n"
-"Last-Translator: Quim - eccit <quim@eccit.com>, 2018\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Extracte bancari"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Cancel·la l'apunt"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Restablir a nou"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/cs.po b/addons/account_cancel/i18n/cs.po
deleted file mode 100644
index 12d91b11046..00000000000
--- a/addons/account_cancel/i18n/cs.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# trendspotter <j.podhorecky@volny.cz>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: trendspotter <j.podhorecky@volny.cz>, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Výpis z bankovního účtu"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Zrušit"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Zrušit položku"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Nastavit na návrh"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Obnovit"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Vrátit vyúčtování"
diff --git a/addons/account_cancel/i18n/da.po b/addons/account_cancel/i18n/da.po
deleted file mode 100644
index 1ab03a5edda..00000000000
--- a/addons/account_cancel/i18n/da.po
+++ /dev/null
@@ -1,49 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Sanne Kristensen <sanne@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-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Kontoudtog"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annuller"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Fortryd indtastning"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Nulstil til ny"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Ophæv udligning"
diff --git a/addons/account_cancel/i18n/de.po b/addons/account_cancel/i18n/de.po
deleted file mode 100644
index e0b1928d8ba..00000000000
--- a/addons/account_cancel/i18n/de.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Martin Trigaux, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankauszug"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Abbrechen Buchung"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Zurücksetzen"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Zurück auf Neu"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Abstimmung rückgängig machen "
diff --git a/addons/account_cancel/i18n/el.po b/addons/account_cancel/i18n/el.po
deleted file mode 100644
index 99c55035479..00000000000
--- a/addons/account_cancel/i18n/el.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Kostas Goutoudis <goutoudis@gmail.com>, 2018
-# Costas Pittalis <cpittalis@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Costas Pittalis <cpittalis@gmail.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Κατάσταση Κίνησης Τραπεζικού Λογαριασμού"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Ακύρωση"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Ακύρωση Καταχώρησης"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Επαναφορά σε Νέο"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Επαναφορά συμφωνίας"
diff --git a/addons/account_cancel/i18n/en_AU.po b/addons/account_cancel/i18n/en_AU.po
deleted file mode 100644
index 1b2743839b7..00000000000
--- a/addons/account_cancel/i18n/en_AU.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancel"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/en_GB.po b/addons/account_cancel/i18n/en_GB.po
deleted file mode 100644
index 16f9799ec2b..00000000000
--- a/addons/account_cancel/i18n/en_GB.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancel"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es.po b/addons/account_cancel/i18n/es.po
deleted file mode 100644
index 77b701368a0..00000000000
--- a/addons/account_cancel/i18n/es.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# Jimmy Ramos <jimmybanegas93@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Jimmy Ramos <jimmybanegas93@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Extracto bancario"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Cancelar Asiento"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Cambiar a borrador"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Reestablecer a Nuevo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Revertir Conciliación"
diff --git a/addons/account_cancel/i18n/es_AR.po b/addons/account_cancel/i18n/es_AR.po
deleted file mode 100644
index 2ed1fd61153..00000000000
--- a/addons/account_cancel/i18n/es_AR.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_BO.po b/addons/account_cancel/i18n/es_BO.po
deleted file mode 100644
index 89f2f7e0556..00000000000
--- a/addons/account_cancel/i18n/es_BO.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_CL.po b/addons/account_cancel/i18n/es_CL.po
deleted file mode 100644
index f42e4c078e2..00000000000
--- a/addons/account_cancel/i18n/es_CL.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+0000\n"
-"Last-Translator: Martin Trigaux <mat@odoo.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_CO.po b/addons/account_cancel/i18n/es_CO.po
deleted file mode 100644
index 1108ecbb8dc..00000000000
--- a/addons/account_cancel/i18n/es_CO.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_CR.po b/addons/account_cancel/i18n/es_CR.po
deleted file mode 100644
index 3c6ce478afa..00000000000
--- a/addons/account_cancel/i18n/es_CR.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_DO.po b/addons/account_cancel/i18n/es_DO.po
deleted file mode 100644
index d398667d945..00000000000
--- a/addons/account_cancel/i18n/es_DO.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_EC.po b/addons/account_cancel/i18n/es_EC.po
deleted file mode 100644
index a1cb88393c3..00000000000
--- a/addons/account_cancel/i18n/es_EC.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_PE.po b/addons/account_cancel/i18n/es_PE.po
deleted file mode 100644
index 9c79d84eca2..00000000000
--- a/addons/account_cancel/i18n/es_PE.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_PY.po b/addons/account_cancel/i18n/es_PY.po
deleted file mode 100644
index 22920c25c7b..00000000000
--- a/addons/account_cancel/i18n/es_PY.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/es_VE.po b/addons/account_cancel/i18n/es_VE.po
deleted file mode 100644
index 4a5396c6aed..00000000000
--- a/addons/account_cancel/i18n/es_VE.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/et.po b/addons/account_cancel/i18n/et.po
deleted file mode 100644
index 0910ce724ee..00000000000
--- a/addons/account_cancel/i18n/et.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Egon Raamat <egon@avalah.ee>, 2018
-# Eneli Õigus <enelioigus@gmail.com>, 2018
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-08-24 09:15+0000\n"
-"Last-Translator: Eneli Õigus <enelioigus@gmail.com>, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Pangaväljavõte"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Tühista"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Tühista kanne"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Lähtesta Uueks"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Taasta ühendamine/sobitamine"
diff --git a/addons/account_cancel/i18n/eu.po b/addons/account_cancel/i18n/eu.po
deleted file mode 100644
index b767efa90ac..00000000000
--- a/addons/account_cancel/i18n/eu.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Ezeztatu"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/fa.po b/addons/account_cancel/i18n/fa.po
deleted file mode 100644
index 18e116a662d..00000000000
--- a/addons/account_cancel/i18n/fa.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 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-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "صورت حساب بانک"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "لغو"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "لغو ورودی داده"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "بازنشانی به جدید"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "برگشت اصلاح"
diff --git a/addons/account_cancel/i18n/fi.po b/addons/account_cancel/i18n/fi.po
deleted file mode 100644
index 54351412bc0..00000000000
--- a/addons/account_cancel/i18n/fi.po
+++ /dev/null
@@ -1,49 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Kari Lindgren <kari.lindgren@emsystems.fi>, 2018
-# Tuomo Aura <tuomo.aura@web-veistamo.fi>, 2018
-# Veikko Väätäjä <veikko.vaataja@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Veikko Väätäjä <veikko.vaataja@gmail.com>, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Pankin tiliote"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Peruuta"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Peruuta kirjaus"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Palauta uudeksi"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/fo.po b/addons/account_cancel/i18n/fo.po
deleted file mode 100644
index 65e76cebfe5..00000000000
--- a/addons/account_cancel/i18n/fo.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Strika"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/fr.po b/addons/account_cancel/i18n/fr.po
deleted file mode 100644
index 72f5306c912..00000000000
--- a/addons/account_cancel/i18n/fr.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Cécile Collart <cco@odoo.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Cécile Collart <cco@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Relevé bancaire"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annuler"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Annuler une entrée"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Remettre en brouillon"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Remettre à l'état nouveau"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Annuler le lettrage"
diff --git a/addons/account_cancel/i18n/fr_CA.po b/addons/account_cancel/i18n/fr_CA.po
deleted file mode 100644
index 25784e84eec..00000000000
--- a/addons/account_cancel/i18n/fr_CA.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annuler"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/gl.po b/addons/account_cancel/i18n/gl.po
deleted file mode 100644
index 687d442eb7b..00000000000
--- a/addons/account_cancel/i18n/gl.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/gu.po b/addons/account_cancel/i18n/gu.po
deleted file mode 100644
index b0792ce4f13..00000000000
--- a/addons/account_cancel/i18n/gu.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Divya Pandya <dia@odoo.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Divya Pandya <dia@odoo.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "બેન્ક સ્ટેટમેન્ટ"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "રદ કરો"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/he.po b/addons/account_cancel/i18n/he.po
deleted file mode 100644
index 79ddc80f2d7..00000000000
--- a/addons/account_cancel/i18n/he.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Yihya Hugirat <hugirat@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Yihya Hugirat <hugirat@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "הצהרה בנקאית"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "בטל"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "בטל רשומה"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "החזר למצב 'חדש'"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "בטל התאמה"
diff --git a/addons/account_cancel/i18n/hi.po b/addons/account_cancel/i18n/hi.po
deleted file mode 100644
index 1f969b48a96..00000000000
--- a/addons/account_cancel/i18n/hi.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Turkesh Patel <turkesh4friends@gmail.com>, 2016
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2016-06-02 11:00+0000\n"
-"Last-Translator: Turkesh Patel <turkesh4friends@gmail.com>\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "रद्द"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr "रद्द चालान"
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/hr.po b/addons/account_cancel/i18n/hr.po
deleted file mode 100644
index 7e8d53189af..00000000000
--- a/addons/account_cancel/i18n/hr.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Bole <bole@dajmi5.com>, 2019
-# Vladimir Olujić <olujic.vladimir@storm.hr>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Vladimir Olujić <olujic.vladimir@storm.hr>, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Izvod banke"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Odustani"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Otkaži unos"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Vrati u nacrt"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Postavi na novi"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Otkaži zatvaranje"
diff --git a/addons/account_cancel/i18n/hu.po b/addons/account_cancel/i18n/hu.po
deleted file mode 100644
index 81dc51cb365..00000000000
--- a/addons/account_cancel/i18n/hu.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# krnkris, 2019
-# gezza <geza.nagy@oregional.hu>, 2019
-# Ákos Nagy <akos.nagy@oregional.hu>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankkivonat"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Mégse"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Tétel visszavonása"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Visszaállítás piszkozat állapotba"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Visszaállítás új változatra"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Egyeztetés visszafordítása"
diff --git a/addons/account_cancel/i18n/hy.po b/addons/account_cancel/i18n/hy.po
deleted file mode 100644
index 393f512b28c..00000000000
--- a/addons/account_cancel/i18n/hy.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+0000\n"
-"Last-Translator: Martin Trigaux\n"
-"Language-Team: Armenian (http://www.transifex.com/odoo/odoo-9/language/hy/)\n"
-"Language: hy\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Հրաժարվել"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/id.po b/addons/account_cancel/i18n/id.po
deleted file mode 100644
index fe0dc0d9d99..00000000000
--- a/addons/account_cancel/i18n/id.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Bonny Useful <bonny.useful@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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+0000\n"
-"Last-Translator: Bonny Useful <bonny.useful@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Pernyataan Bank"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Batal"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Batalkan Entry"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr "Batalkan Invoice"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Reset ke Baru"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Kembalikan rekonsiliasi"
diff --git a/addons/account_cancel/i18n/is.po b/addons/account_cancel/i18n/is.po
deleted file mode 100644
index 932db3ebf1d..00000000000
--- a/addons/account_cancel/i18n/is.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# 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-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Reikningsyfirlit banka"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Hætta við"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Cancel Entry"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/it.po b/addons/account_cancel/i18n/it.po
deleted file mode 100644
index 4610f773fa4..00000000000
--- a/addons/account_cancel/i18n/it.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Sergio Zanchetta <primes2h@gmail.com>, 2019
-# Martin Trigaux, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Martin Trigaux, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Estratto conto bancario"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annulla"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Annulla registrazione"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Reimposta a bozza"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Reimposta a nuovo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Annulla riconciliazione"
diff --git a/addons/account_cancel/i18n/ja.po b/addons/account_cancel/i18n/ja.po
deleted file mode 100644
index 3398c68459c..00000000000
--- a/addons/account_cancel/i18n/ja.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Yoshi Tashiro <tashiro@roomsfor.hk>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Yoshi Tashiro <tashiro@roomsfor.hk>, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "銀行取引明細書"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "取消"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "記帳取消"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "新規にリセット"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/ka.po b/addons/account_cancel/i18n/ka.po
deleted file mode 100644
index 40d1258f011..00000000000
--- a/addons/account_cancel/i18n/ka.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "შეწყვეტა"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/kab.po b/addons/account_cancel/i18n/kab.po
deleted file mode 100644
index 142f5782a50..00000000000
--- a/addons/account_cancel/i18n/kab.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Sefsex"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/kk.po b/addons/account_cancel/i18n/kk.po
deleted file mode 100644
index 7fc28e3abc4..00000000000
--- a/addons/account_cancel/i18n/kk.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Бас тарту"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/km.po b/addons/account_cancel/i18n/km.po
deleted file mode 100644
index e58a4193a28..00000000000
--- a/addons/account_cancel/i18n/km.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Sengtha Chay <sengtha@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Sengtha Chay <sengtha@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "របាយការណ៍ធនាគារ"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "លុបចោល"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/ko.po b/addons/account_cancel/i18n/ko.po
deleted file mode 100644
index 555e5da9761..00000000000
--- a/addons/account_cancel/i18n/ko.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Goh Gangtai <gangtai.goh@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-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "예금거래 명세서"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "취소"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "분개 취소"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "신규로 재설정"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "조정 되돌리기"
diff --git a/addons/account_cancel/i18n/lb.po b/addons/account_cancel/i18n/lb.po
deleted file mode 100644
index 99caa004497..00000000000
--- a/addons/account_cancel/i18n/lb.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Language-Team: Luxembourgish (https://www.transifex.com/odoo/teams/41243/lb/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Language: lb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/ln.po b/addons/account_cancel/i18n/ln.po
deleted file mode 100644
index 40655757493..00000000000
--- a/addons/account_cancel/i18n/ln.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+0000\n"
-"Last-Translator: Martin Trigaux\n"
-"Language-Team: Lingala (http://www.transifex.com/odoo/odoo-9/language/ln/)\n"
-"Language: ln\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Tika"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/lo.po b/addons/account_cancel/i18n/lo.po
deleted file mode 100644
index 65cfefc5060..00000000000
--- a/addons/account_cancel/i18n/lo.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "ຍົກເລີອກ"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/lt.po b/addons/account_cancel/i18n/lt.po
deleted file mode 100644
index e626fcfcd25..00000000000
--- a/addons/account_cancel/i18n/lt.po
+++ /dev/null
@@ -1,54 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# vaalds <vaalds@gmail.com>, 2019
-# Silvija Butko <silvija.butko@gmail.com>, 2019
-# Audrius Palenskis <audrius.palenskis@gmail.com>, 2019
-# Linas Versada <linaskrisiukenas@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Linas Versada <linaskrisiukenas@gmail.com>, 2019\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=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Banko išrašas"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Atšaukti"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Atšaukti įrašą"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Atkurti kaip juodraštį"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Atkurti kaip naują"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Grąžinti sudengimą"
diff --git a/addons/account_cancel/i18n/lv.po b/addons/account_cancel/i18n/lv.po
deleted file mode 100644
index b2bee68f580..00000000000
--- a/addons/account_cancel/i18n/lv.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Atcelt"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/mk.po b/addons/account_cancel/i18n/mk.po
deleted file mode 100644
index 1134b251ca7..00000000000
--- a/addons/account_cancel/i18n/mk.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Откажи"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/mn.po b/addons/account_cancel/i18n/mn.po
deleted file mode 100644
index ab8d63466fa..00000000000
--- a/addons/account_cancel/i18n/mn.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2019
-# Martin Trigaux, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Martin Trigaux, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Касс, харилцахын хуулга"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Цуцлах"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Гүйлгээ цуцлах"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Ноорог болгох"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Шинэ болгох"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Тулгалт салгах"
diff --git a/addons/account_cancel/i18n/nb.po b/addons/account_cancel/i18n/nb.po
deleted file mode 100644
index 4326d9cc37b..00000000000
--- a/addons/account_cancel/i18n/nb.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# Marius Stedjan <marius@stedjan.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Marius Stedjan <marius@stedjan.com>, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Kontoutskrift"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Avbryt"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Avbryt oppføring"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Tilbakestill til utkast"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Tilbakestill til ny"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Reverser avstemning"
diff --git a/addons/account_cancel/i18n/ne.po b/addons/account_cancel/i18n/ne.po
deleted file mode 100644
index f5e5682c78b..00000000000
--- a/addons/account_cancel/i18n/ne.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.saas~18\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-20 09:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/nl.po b/addons/account_cancel/i18n/nl.po
deleted file mode 100644
index a6605d8050f..00000000000
--- a/addons/account_cancel/i18n/nl.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Yenthe Van Ginneken <yenthespam@gmail.com>, 2019
-# Martin Trigaux, 2019
-# Erwin van der Ploeg <erwin@odooexperts.nl>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Erwin van der Ploeg <erwin@odooexperts.nl>, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankafschrift"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annuleren"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Annuleer boeking"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Terugzetten naar concept"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Terugzetten naar nieuw"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Aflettering ongedaan maken"
diff --git a/addons/account_cancel/i18n/nl_BE.po b/addons/account_cancel/i18n/nl_BE.po
deleted file mode 100644
index 57c48841e40..00000000000
--- a/addons/account_cancel/i18n/nl_BE.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Annuleren"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/pl.po b/addons/account_cancel/i18n/pl.po
deleted file mode 100644
index 57787ed931e..00000000000
--- a/addons/account_cancel/i18n/pl.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Judyta Kaźmierczak <judyta.kazmierczak@openglobe.pl>, 2019
-# Piotr Cierkosz <piotr.w.cierkosz@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Piotr Cierkosz <piotr.w.cierkosz@gmail.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Wyciąg Bankowy"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Anuluj"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Anuluj Wpis"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Przywróć do projektu"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Zamień na \"Nową\""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Cofnij rekoncyliację"
diff --git a/addons/account_cancel/i18n/pt.po b/addons/account_cancel/i18n/pt.po
deleted file mode 100644
index 0d73a084ed5..00000000000
--- a/addons/account_cancel/i18n/pt.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Manuela Silva <inactive+h_manuela_rodsilva@transifex.com>, 2018
-# MS, 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-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Extrato Bancário"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Cancelar Movimento"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Repor para Novo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Reverter reconciliação"
diff --git a/addons/account_cancel/i18n/pt_BR.po b/addons/account_cancel/i18n/pt_BR.po
deleted file mode 100644
index 386792827a2..00000000000
--- a/addons/account_cancel/i18n/pt_BR.po
+++ /dev/null
@@ -1,54 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# Maicon Grahl <maicongrahl@hotmail.com>, 2019
-# Mateus Lopes <mateus1@gmail.com>, 2019
-# Cesar Silveira <cesar.consultant@gmail.com>, 2019
-# grazziano <gra.negocia@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: grazziano <gra.negocia@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Extrato Bancário"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Cancelar Lançamento"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Voltar para Provisório"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Reiniciar para Novo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Reverter reconciliação"
diff --git a/addons/account_cancel/i18n/ro.po b/addons/account_cancel/i18n/ro.po
deleted file mode 100644
index 433eef76fcb..00000000000
--- a/addons/account_cancel/i18n/ro.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# 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-18 09:49+0000\n"
-"PO-Revision-Date: 2016-08-05 12:55+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Extras bancă"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Anulează"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Anulează înregistrarea"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Resetează la Nou"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Întoarceți reconcilierea"
diff --git a/addons/account_cancel/i18n/ru.po b/addons/account_cancel/i18n/ru.po
deleted file mode 100644
index 60dca5afb10..00000000000
--- a/addons/account_cancel/i18n/ru.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# Vasiliy Korobatov <korobatov@gmail.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Vasiliy Korobatov <korobatov@gmail.com>, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Банковская выписка"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Отменить"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Отменить проводку"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Переместить в черновики"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Сброс к Новый"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Отменить сверку"
diff --git a/addons/account_cancel/i18n/sk.po b/addons/account_cancel/i18n/sk.po
deleted file mode 100644
index 07885e434e8..00000000000
--- a/addons/account_cancel/i18n/sk.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Jaroslav Bosansky <jaro.bosansky@ekoenergo.sk>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Jaroslav Bosansky <jaro.bosansky@ekoenergo.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankový výpis"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Zrušiť"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Zrušiť vstup"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Resetovať na Nové"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/sl.po b/addons/account_cancel/i18n/sl.po
deleted file mode 100644
index 4df623af98e..00000000000
--- a/addons/account_cancel/i18n/sl.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.saas~18\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-20 09:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/sq.po b/addons/account_cancel/i18n/sq.po
deleted file mode 100644
index f690c1b1049..00000000000
--- a/addons/account_cancel/i18n/sq.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# 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:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Anullo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/sr.po b/addons/account_cancel/i18n/sr.po
deleted file mode 100644
index fd17e451730..00000000000
--- a/addons/account_cancel/i18n/sr.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Đorđe Cvijanović <cdorde@gmail.com>, 2018
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Đorđe Cvijanović <cdorde@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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankovni izveštaj"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Otkaži"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Otkaži stavku"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/sr@latin.po b/addons/account_cancel/i18n/sr@latin.po
deleted file mode 100644
index e5fd41166a8..00000000000
--- a/addons/account_cancel/i18n/sr@latin.po
+++ /dev/null
@@ -1,47 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.saas~18\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-20 09:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+0000\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/sv.po b/addons/account_cancel/i18n/sv.po
deleted file mode 100644
index e0de6449b9e..00000000000
--- a/addons/account_cancel/i18n/sv.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Anders Wallenquist <anders.wallenquist@vertel.se>, 2018
-# lasch a <bmail440@gmail.com>, 2018
-# Haojun Zou <apollo_zhj@msn.com>, 2018
-# Chrille Hedberg <hedberg.chrille@gmail.com>, 2018
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Chrille Hedberg <hedberg.chrille@gmail.com>, 2018\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bankkontoutdrag"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Avbryt"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Avbryt post"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Återgå till ny"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Återställ sammanfogning"
diff --git a/addons/account_cancel/i18n/ta.po b/addons/account_cancel/i18n/ta.po
deleted file mode 100644
index 587457613bb..00000000000
--- a/addons/account_cancel/i18n/ta.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2016-02-05 09:02+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "ரத்து"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/th.po b/addons/account_cancel/i18n/th.po
deleted file mode 100644
index 58bf23edb3c..00000000000
--- a/addons/account_cancel/i18n/th.po
+++ /dev/null
@@ -1,49 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2018
-# Khwunchai Jaengsawang <khwunchai.j@ku.th>, 2018
-# Pornvibool Tippayawat <pornvibool.t@gmail.com>, 2018
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~11.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-08-24 09:15+0000\n"
-"Last-Translator: Pornvibool Tippayawat <pornvibool.t@gmail.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "รายการเดินบัญชีธนาคาร"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "ยกเลิก"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "ยกเลิกการบันทึก"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "ตั้งให้เป็นฉบับใหม่"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr ""
diff --git a/addons/account_cancel/i18n/tr.po b/addons/account_cancel/i18n/tr.po
deleted file mode 100644
index dac60baa341..00000000000
--- a/addons/account_cancel/i18n/tr.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Murat Kaplan <muratk@projetgrup.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Murat Kaplan <muratk@projetgrup.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Banka Hesap Özeti"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "İptal"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Kaydı İptal Et"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Taslağa Ayarla"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Yeni Olarak Ayarla"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Uzlaştırmayı Geri Al"
diff --git a/addons/account_cancel/i18n/uk.po b/addons/account_cancel/i18n/uk.po
deleted file mode 100644
index 2fc92c66d00..00000000000
--- a/addons/account_cancel/i18n/uk.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Martin Trigaux, 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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Банківська виписка"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Скасувати"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Скасувати запис"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Зробити чернеткою"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Зробити новим"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Скасувати узгодження"
diff --git a/addons/account_cancel/i18n/vi.po b/addons/account_cancel/i18n/vi.po
deleted file mode 100644
index 11743f38588..00000000000
--- a/addons/account_cancel/i18n/vi.po
+++ /dev/null
@@ -1,53 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# fanha99 <fanha99@hotmail.com>, 2019
-# Nancy Momoland <thanhnguyen.icsc@gmail.com>, 2019
-# Duy BQ <duybq86@gmail.com>, 2019
-# Chinh Chinh <trinhttp@trobz.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: Chinh Chinh <trinhttp@trobz.com>, 2019\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "Bảng kê ngân hàng"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "Hủy"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "Hủy bút toán"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "Đưa về dự thảo"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "Đặt lại về Mới"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "Hoàn nguyên đối chiếu"
diff --git a/addons/account_cancel/i18n/zh_CN.po b/addons/account_cancel/i18n/zh_CN.po
deleted file mode 100644
index 11cdb2dea23..00000000000
--- a/addons/account_cancel/i18n/zh_CN.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# inspur qiuguodong <qiuguodong@inspur.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+0000\n"
-"Last-Translator: inspur qiuguodong <qiuguodong@inspur.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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "银行对账单"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "取消日期"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "取消分录"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "重置为草稿"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "重置为草稿"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "撤销核对"
diff --git a/addons/account_cancel/i18n/zh_HK.po b/addons/account_cancel/i18n/zh_HK.po
deleted file mode 100644
index 9ce67bd84f3..00000000000
--- a/addons/account_cancel/i18n/zh_HK.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-18 14:07+0000\n"
-"PO-Revision-Date: 2015-09-07 15:52+0000\n"
-"Last-Translator: Martin Trigaux\n"
-"Language-Team: Chinese (Hong Kong) (http://www.transifex.com/odoo/odoo-9/"
-"language/zh_HK/)\n"
-"Language: zh_HK\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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "取消"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_form_cancel_inherit
-#: model_terms:ir.ui.view,arch_db:account_cancel.invoice_supplier_cancel_form_inherit
-msgid "Cancel Invoice"
-msgstr ""
-
-#. module: account_cancel
-#: code:addons/account_cancel/models/account_bank_statement.py:28
-#, python-format
-msgid "Please set the bank statement to New before canceling."
-msgstr ""
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr ""
diff --git a/addons/account_cancel/i18n/zh_TW.po b/addons/account_cancel/i18n/zh_TW.po
deleted file mode 100644
index 2988989d879..00000000000
--- a/addons/account_cancel/i18n/zh_TW.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_cancel
-#
-# Translators:
-# Martin Trigaux, 2019
-# 敬雲 林 <chingyun@yuanchih-consult.com>, 2019
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server saas~12.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-12 11:32+0000\n"
-"PO-Revision-Date: 2019-08-26 09:08+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_cancel
-#: model:ir.model,name:account_cancel.model_account_bank_statement
-msgid "Bank Statement"
-msgstr "銀行對帳單"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.payment_cancel_form_inherit
-msgid "Cancel"
-msgstr "取消"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Cancel Entry"
-msgstr "取消分錄"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.view_move_form_inherit_account_cancel
-msgid "Reset to Draft"
-msgstr "重置為草稿"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_draft_form_inherit
-msgid "Reset to New"
-msgstr "重設為草稿"
-
-#. module: account_cancel
-#: model_terms:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
-msgid "Revert reconciliation"
-msgstr "取消沖銷"
diff --git a/addons/account_cancel/models/__init__.py b/addons/account_cancel/models/__init__.py
deleted file mode 100644
index 062a533e8c2..00000000000
--- a/addons/account_cancel/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_bank_statement
diff --git a/addons/account_cancel/models/account_bank_statement.py b/addons/account_cancel/models/account_bank_statement.py
deleted file mode 100644
index e6673fe9de4..00000000000
--- a/addons/account_cancel/models/account_bank_statement.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from odoo import models, api, _
-from odoo.exceptions import UserError
-
-
-class BankStatement(models.Model):
- _inherit = 'account.bank.statement'
-
- def button_draft(self):
- self.state = 'open'
-
-
diff --git a/addons/account_cancel/views/account_payment_view.xml b/addons/account_cancel/views/account_payment_view.xml
deleted file mode 100644
index c942328d4ac..00000000000
--- a/addons/account_cancel/views/account_payment_view.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<odoo>
- <record id="view_account_payment_form" model="ir.ui.view">
- <field name="name">account.payment.form.inherit.account.cancel</field>
- <field name="model">account.payment</field>
- <field name="inherit_id" ref="account.view_account_payment_form"/>
- <field name="arch" type="xml">
- <xpath expr="//field[@name='state']" position="attributes">
- <attribute name="statusbar_visible" separator="," add="cancelled"/>
- </xpath>
- </field>
- </record>
-</odoo>
diff --git a/addons/account_cancel/views/account_views.xml b/addons/account_cancel/views/account_views.xml
deleted file mode 100644
index 2a6162a64f9..00000000000
--- a/addons/account_cancel/views/account_views.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<odoo>
- <record id="view_account_journal_form_inherit" model="ir.ui.view">
- <field name="name">account.journal.form</field>
- <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='loss_account_id']/parent::group" position="attributes">
- <attribute name="attrs">{'invisible': 0}</attribute>
- </xpath>
- <field name="loss_account_id" position="after">
- <field name="update_posted" groups="base.group_no_one"/>
- </field>
- </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>
- <field name="inherit_id" ref="account.view_bank_statement_form"/>
- <field name="arch" type="xml">
- <xpath expr="//button[@name='check_confirm_bank']" position="after">
- <button name="button_draft" states="confirm" string="Reset to New" type="object"/>
- </xpath>
- </field>
- </record>
-
- <record id="bank_statement_cancel_form_inherit" model="ir.ui.view">
- <field name="name">bank.statement.cancel.form.inherit</field>
- <field name="model">account.bank.statement</field>
- <field name="inherit_id" ref="account.view_bank_statement_form"/>
- <field name="arch" type="xml">
- <field name="line_ids" position="attributes">
- <attribute name="options">{'reload_on_button': true}</attribute>
- </field>
- <xpath expr="//field[@name='bank_account_id']" position="after">
- <field name="state" invisible="1"/>
- <button name="button_cancel_reconciliation" attrs="{'invisible': ['|',('journal_entry_ids', '=', []), ('state', '=', 'confirm')]}" string="Revert reconciliation" type="object" icon="fa-undo"/>
- </xpath>
- </field>
- </record>
-
- <record id="payment_cancel_form_inherit" model="ir.ui.view">
- <field name="name">payment.cancel.form.inherit</field>
- <field name="model">account.payment</field>
- <field name="inherit_id" ref="account.view_account_payment_form"/>
- <field name="arch" type="xml">
- <xpath expr="//header/field[@name='state']" position="before">
- <button name="cancel" attrs="{'invisible': [('state', 'in', ['draft','cancelled'])]}" string="Cancel" type="object"/>
- </xpath>
- </field>
- </record>
-
- <record id="view_move_form_inherit_account_cancel" model="ir.ui.view">
- <field name="name">account.move.form.inherit</field>
- <field name="model">account.move</field>
- <field name="inherit_id" ref="account.view_move_form"/>
- <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>
-
-</odoo>
diff --git a/addons/l10n_fr/__init__.py b/addons/l10n_fr/__init__.py
index 779ab9a056c..06ef5f89ea3 100644
--- a/addons/l10n_fr/__init__.py
+++ b/addons/l10n_fr/__init__.py
@@ -4,8 +4,25 @@
# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr
from . import models
+from odoo import api, SUPERUSER_ID
+def _l10n_fr_post_init_hook(cr, registry):
+ _preserve_tag_on_taxes(cr, registry)
+ _setup_inalterability(cr, registry)
def _preserve_tag_on_taxes(cr, registry):
from odoo.addons.account.models.chart_template import preserve_existing_tags_on_taxes
preserve_existing_tags_on_taxes(cr, registry, 'l10n_fr')
+
+def _setup_inalterability(cr, registry):
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ # enable ping for this module
+ env['publisher_warranty.contract'].update_notification(cron_mode=True)
+
+ fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', env['res.company']._get_unalterable_country())])
+ if fr_companies:
+ fr_companies._create_secure_sequence(['l10n_fr_closing_sequence_id'])
+
+ for fr_company in fr_companies:
+ fr_journals = env['account.journal'].search([('company_id', '=', fr_company.id)])
+ fr_journals.filtered(lambda x: not x.secure_sequence_id)._create_secure_sequence(['secure_sequence_id'])
diff --git a/addons/l10n_fr/__manifest__.py b/addons/l10n_fr/__manifest__.py
index a017f58ae59..4b10e78820d 100644
--- a/addons/l10n_fr/__manifest__.py
+++ b/addons/l10n_fr/__manifest__.py
@@ -46,6 +46,10 @@ configuration of their taxes and fiscal positions manually.
'data/account_fiscal_position_template_data.xml',
'data/account_reconcile_model_template.xml',
'data/account_chart_template_configure_data.xml',
+ 'data/account_sale_closure_cron.xml',
+ 'views/account_sale_closure.xml',
+ 'security/ir.model.access.csv',
+ 'security/account_closing_intercompany.xml',
],
- 'post_init_hook': '_preserve_tag_on_taxes',
+ 'post_init_hook': '_l10n_fr_post_init_hook',
}
diff --git a/addons/l10n_fr/models/__init__.py b/addons/l10n_fr/models/__init__.py
index b7f9ad64022..a8fff1c9bc8 100644
--- a/addons/l10n_fr/models/__init__.py
+++ b/addons/l10n_fr/models/__init__.py
@@ -3,3 +3,5 @@
from . import l10n_fr
from . import account_chart_template
+from . import res_company
+from . import account_closing
diff --git a/addons/l10n_fr/models/l10n_fr.py b/addons/l10n_fr/models/l10n_fr.py
index 16d7709ab11..9d6fee4ef9b 100644
--- a/addons/l10n_fr/models/l10n_fr.py
+++ b/addons/l10n_fr/models/l10n_fr.py
@@ -1,14 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from odoo import fields, models, api, _
-from odoo import fields, models
-
-
-class ResCompany(models.Model):
- _inherit = 'res.company'
-
- siret = fields.Char(related='partner_id.siret', string='SIRET', size=14, readonly=False)
- ape = fields.Char(string='APE')
class ResPartner(models.Model):
_inherit = 'res.partner'
diff --git a/addons/l10n_fr_certification/__init__.py b/addons/l10n_fr_certification/__init__.py
deleted file mode 100644
index 75a45103471..00000000000
--- a/addons/l10n_fr_certification/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from . import models
-from odoo import api, SUPERUSER_ID
-from .models.res_company import UNALTERABLE_COUNTRIES
-
-
-def _setup_inalterability(cr, registry):
- env = api.Environment(cr, SUPERUSER_ID, {})
- # enable ping for this module
- env['publisher_warranty.contract'].update_notification(cron_mode=True)
-
- fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', UNALTERABLE_COUNTRIES)])
- if fr_companies:
- # create the securisation sequence per company
- fr_companies._create_secure_sequence(['l10n_fr_secure_sequence_id'])
-
- #reset the update_posted field on journals
- journals = env['account.journal'].search([('company_id', 'in', fr_companies.ids)])
- journals.write({'update_posted': False})
diff --git a/addons/l10n_fr_certification/__manifest__.py b/addons/l10n_fr_certification/__manifest__.py
deleted file mode 100644
index 1ab48584f26..00000000000
--- a/addons/l10n_fr_certification/__manifest__.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-{
- 'name': 'France - VAT Anti-Fraud Certification (CGI 286 I-3 bis)',
- 'version': '1.0',
- 'category': 'Accounting',
- 'description': """
-This add-on brings the technical requirements of the French regulation CGI art. 286, I. 3° bis that stipulates certain criteria concerning the inalterability, security, storage and archiving of data related to sales to private individuals (B2C).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-The module adds following features:
-
- Inalterability: deactivation of all the ways to cancel or modify key data, invoices and journal entries
-
- Security: chaining algorithm to verify the inalterability
-
- Storage: automatic sales closings with computation of both period and cumulative totals (daily, monthly, annually)
-
- Access to download the mandatory Certificate of Conformity delivered by Odoo SA (only for Odoo Enterprise users)
-""",
- 'depends': ['l10n_fr'],
- 'installable': True,
- 'auto_install': False,
- 'application': False,
- 'data': [
- 'data/account_move.xml',
- 'views/res_config.xml',
- ],
- 'post_init_hook': '_setup_inalterability',
-}
diff --git a/addons/l10n_fr_certification/data/account_move.xml b/addons/l10n_fr_certification/data/account_move.xml
deleted file mode 100644
index a551cb7f080..00000000000
--- a/addons/l10n_fr_certification/data/account_move.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<odoo>
- <record model="ir.actions.server" id="action_check_hash_integrity">
- <field name="name">Data Inalterability Check</field>
- <field name="model_id" ref="account.model_account_move"/>
- <field name="type">ir.actions.server</field>
- <field name="state">code</field>
- <field name="code">
- action = env['account.move']._check_hash_integrity(env.company.id)
- </field>
- </record>
-
- <record model="ir.actions.server" id="odoo_french_certification">
- <field name="name">Get the certification now!</field>
- <field name="type">ir.actions.server</field>
- <field name="model_id" ref="account.model_res_company"/>
- <field name="state">code</field>
- <field name="code">
-db_uuid = env['ir.config_parameter'].sudo().get_param('database.uuid')
-action = {"type": "ir.actions.act_url",
- "url": "https://www.odoo.com/my/contract/french-certification/db/" + db_uuid,
- "target": "new",}
- </field>
- </record>
-
- <menuitem action="action_check_hash_integrity" id="menu_check_move_integrity_reporting" parent="l10n_fr.account_reports_fr_statements_menu" sequence="90"/>
-
-</odoo>
diff --git a/addons/l10n_fr_certification/models/__init__.py b/addons/l10n_fr_certification/models/__init__.py
deleted file mode 100644
index 6950f8f5fc9..00000000000
--- a/addons/l10n_fr_certification/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 res_company
-from . import account
diff --git a/addons/l10n_fr_certification/models/account.py b/addons/l10n_fr_certification/models/account.py
deleted file mode 100644
index 93f57c7b648..00000000000
--- a/addons/l10n_fr_certification/models/account.py
+++ /dev/null
@@ -1,192 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from hashlib import sha256
-from json import dumps
-
-from odoo import models, api, fields
-from odoo.tools.translate import _
-from odoo.exceptions import UserError
-
-
-#forbidden fields
-MOVE_FIELDS = ['date', 'journal_id', 'company_id']
-LINE_FIELDS = ['debit', 'credit', 'account_id', 'partner_id']
-
-
-class AccountMove(models.Model):
- _inherit = "account.move"
-
- # TO DO in master : refactor hashing algo to go into a mixin
-
- l10n_fr_secure_sequence_number = fields.Integer(string="Inalteralbility No Gap Sequence #", readonly=True, copy=False)
- l10n_fr_hash = fields.Char(string="Inalterability Hash", readonly=True, copy=False)
- l10n_fr_string_to_hash = fields.Char(compute='_compute_string_to_hash', readonly=True, store=False)
-
- def _get_new_hash(self, secure_seq_number):
- """ Returns the hash to write on journal entries when they get posted"""
- self.ensure_one()
- #get the only one exact previous move in the securisation sequence
- prev_move = self.search([('state', '=', 'posted'),
- ('company_id', '=', self.company_id.id),
- ('l10n_fr_secure_sequence_number', '!=', 0),
- ('l10n_fr_secure_sequence_number', '=', int(secure_seq_number) - 1)])
- if prev_move and len(prev_move) != 1:
- raise UserError(
- _('An error occured when computing the inalterability. Impossible to get the unique previous posted journal entry.'))
-
- #build and return the hash
- return self._compute_hash(prev_move.l10n_fr_hash if prev_move else u'')
-
- def _compute_hash(self, previous_hash):
- """ Computes the hash of the browse_record given as self, based on the hash
- of the previous record in the company's securisation sequence given as parameter"""
- self.ensure_one()
- hash_string = sha256((previous_hash + self.l10n_fr_string_to_hash).encode('utf-8'))
- return hash_string.hexdigest()
-
- def _compute_string_to_hash(self):
- def _getattrstring(obj, field_str):
- field_value = obj[field_str]
- if obj._fields[field_str].type == 'many2one':
- field_value = field_value.id
- return str(field_value)
-
- for move in self:
- values = {}
- for field in MOVE_FIELDS:
- values[field] = _getattrstring(move, field)
-
- for line in move.line_ids:
- for field in LINE_FIELDS:
- k = 'line_%d_%s' % (line.id, field)
- values[k] = _getattrstring(line, field)
- #make the json serialization canonical
- # (https://tools.ietf.org/html/draft-staykov-hu-json-canonical-form-00)
- move.l10n_fr_string_to_hash = dumps(values, sort_keys=True,
- ensure_ascii=True, indent=None,
- separators=(',',':'))
-
- def write(self, vals):
- has_been_posted = False
- for move in self:
- if move.company_id._is_accounting_unalterable():
- # write the hash and the secure_sequence_number when posting an account.move
- if vals.get('state') == 'posted':
- has_been_posted = True
-
- # restrict the operation in case we are trying to write a forbidden field
- if (move.state == "posted" and set(vals).intersection(MOVE_FIELDS)):
- raise UserError(_("According to the French law, you cannot modify a journal entry in order for its posted data to be updated or deleted. Unauthorized field: %s.") % ', '.join(MOVE_FIELDS))
- # restrict the operation in case we are trying to overwrite existing hash
- if (move.l10n_fr_hash and 'l10n_fr_hash' in vals) or (move.l10n_fr_secure_sequence_number and 'l10n_fr_secure_sequence_number' in vals):
- raise UserError(_('You cannot overwrite the values ensuring the inalterability of the accounting.'))
- res = super(AccountMove, self).write(vals)
- # write the hash and the secure_sequence_number when posting an account.move
- if has_been_posted:
- for move in self.filtered(lambda m: m.company_id._is_accounting_unalterable() and
- not (m.l10n_fr_secure_sequence_number or m.l10n_fr_hash)):
- new_number = move.company_id.l10n_fr_secure_sequence_id.next_by_id()
- vals_hashing = {'l10n_fr_secure_sequence_number': new_number,
- 'l10n_fr_hash': move._get_new_hash(new_number)}
- res |= super(AccountMove, move).write(vals_hashing)
- return res
-
- def button_cancel(self):
- #by-pass the normal behavior/message that tells people can cancel a posted journal entry
- #if the journal allows it.
- if self.company_id._is_accounting_unalterable():
- raise UserError(_('You cannot modify a posted journal entry. This ensures its inalterability.'))
- super(AccountMove, self).button_cancel()
-
- @api.model
- def _check_hash_integrity(self, company_id):
- """Checks that all posted moves have still the same data as when they were posted
- and raises an error with the result.
- """
- def build_move_info(move):
- entry_reference = _('(ref.: %s)')
- move_reference_string = move.ref and entry_reference % move.ref or ''
- return [move.name, move_reference_string]
-
- moves = self.search([('state', '=', 'posted'),
- ('company_id', '=', company_id),
- ('l10n_fr_secure_sequence_number', '!=', 0)],
- order="l10n_fr_secure_sequence_number ASC")
-
- if not moves:
- raise UserError(_('There isn\'t any journal entry flagged for data inalterability yet for the company %s. This mechanism only runs for journal entries generated after the installation of the module France - Certification CGI 286 I-3 bis.') % self.env.company.name)
- previous_hash = u''
- start_move_info = []
- for move in moves:
- if move.l10n_fr_hash != move._compute_hash(previous_hash=previous_hash):
- raise UserError(_('Corrupted data on journal entry with id %s.') % move.id)
- if not previous_hash:
- #save the date and sequence number of the first move hashed
- start_move_info = build_move_info(move)
- previous_hash = move.l10n_fr_hash
- end_move_info = build_move_info(move)
-
- report_dict = {'start_move_name': start_move_info[0],
- 'start_move_ref': start_move_info[1],
- 'end_move_name': end_move_info[0],
- 'end_move_ref': end_move_info[1]}
-
- # Raise on success
- raise UserError(_('''Successful test !
-
- The journal entries are guaranteed to be in their original and inalterable state
- From: %(start_move_name)s %(start_move_ref)s
- To: %(end_move_name)s %(end_move_ref)s
-
- For this report to be legally meaningful, please download your certification from your customer account on Odoo.com (Only for Odoo Enterprise users).'''
- ) % report_dict)
-
-
-class AccountMoveLine(models.Model):
- _inherit = "account.move.line"
-
- def write(self, vals):
- # restrict the operation in case we are trying to write a forbidden field
- if set(vals).intersection(LINE_FIELDS):
- if any(l.company_id._is_accounting_unalterable() and l.move_id.state == 'posted' for l in self):
- raise UserError(_("According to the French law, you cannot modify a journal item in order for its posted data to be updated or deleted. Unauthorized field: %s.") % ', '.join(LINE_FIELDS))
- return super(AccountMoveLine, self).write(vals)
-
-
-class AccountJournal(models.Model):
- _inherit = "account.journal"
-
- @api.onchange('update_posted')
- def _onchange_update_posted(self):
- if self.update_posted and self.company_id._is_accounting_unalterable():
- field_string = self._fields['update_posted'].get_description(self.env)['string']
- raise UserError(_("According to the French law, you cannot modify a journal in order for its posted data to be updated or deleted. Unauthorized field: %s.") % field_string)
-
- def _is_journal_alterable(self):
- self.ensure_one()
- critical_domain = [('journal_id', '=', self.id),
- '|', ('l10n_fr_hash', '!=', False),
- '&', ('l10n_fr_secure_sequence_number', '!=', False),
- ('l10n_fr_secure_sequence_number', '!=', 0)]
- if self.env['account.move'].search(critical_domain):
- raise UserError(_('It is not permitted to disable the data inalterability in this journal (%s) since journal entries have already been protected.') % (self.name, ))
- return True
-
- def write(self, vals):
- # restrict the operation in case we are trying to write a forbidden field
- for journal in self:
- if journal.company_id._is_accounting_unalterable():
- if vals.get('update_posted'):
- field_string = journal._fields['update_posted'].get_description(self.env)['string']
- raise UserError(_("According to the French law, you cannot modify a journal in order for its posted data to be updated or deleted. Unauthorized field: %s.") % field_string)
- return super(AccountJournal, self).write(vals)
-
- @api.model
- def create(self, vals):
- # restrict the operation in case we are trying to set a forbidden field
- if self.company_id._is_accounting_unalterable():
- if vals.get('update_posted'):
- field_string = self._fields['update_posted'].get_description(self.env)['string']
- raise UserError(_("According to the French law, you cannot modify a journal in order for its posted data to be updated or deleted. Unauthorized field: %s.") % field_string)
- return super(AccountJournal, self).create(vals)
diff --git a/addons/l10n_fr_certification/models/res_company.py b/addons/l10n_fr_certification/models/res_company.py
deleted file mode 100644
index 56dabe11355..00000000000
--- a/addons/l10n_fr_certification/models/res_company.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from odoo import fields, models, api
-
-UNALTERABLE_COUNTRIES = ['FR', 'MF', 'MQ', 'NC', 'PF', 'RE', 'GF', 'GP', 'TF']
-
-
-class ResCompany(models.Model):
- _inherit = 'res.company'
-
- # To do in master : refactor to set sequences more generic
-
- l10n_fr_secure_sequence_id = fields.Many2one('ir.sequence', 'Sequence to use to ensure the securisation of data', readonly=True)
-
- @api.model
- def create(self, vals):
- company = super(ResCompany, self).create(vals)
- #when creating a new french company, create the securisation sequence as well
- if company._is_accounting_unalterable():
- sequence_fields = ['l10n_fr_secure_sequence_id']
- company._create_secure_sequence(sequence_fields)
- return company
-
- def write(self, vals):
- res = super(ResCompany, self).write(vals)
- #if country changed to fr, create the securisation sequence
- for company in self:
- if company._is_accounting_unalterable():
- sequence_fields = ['l10n_fr_secure_sequence_id']
- company._create_secure_sequence(sequence_fields)
- # fiscalyear_lock_date can't be set to a prior date
- if 'fiscalyear_lock_date' in vals or 'period_lock_date' in vals:
- self._check_lock_dates(vals)
- return res
-
- def _create_secure_sequence(self, sequence_fields):
- """This function creates a no_gap sequence on each companies in self that will ensure
- a unique number is given to all posted account.move in such a way that we can always
- find the previous move of a journal entry.
- """
- for company in self:
- vals_write = {}
- for seq_field in sequence_fields:
- if not company[seq_field]:
- vals = {
- 'name': 'French Securisation of ' + seq_field + ' - ' + company.name,
- 'code': 'FRSECUR',
- 'implementation': 'no_gap',
- 'prefix': '',
- 'suffix': '',
- 'padding': 0,
- 'company_id': company.id}
- seq = self.env['ir.sequence'].create(vals)
- vals_write[seq_field] = seq.id
- if vals_write:
- company.write(vals_write)
-
- def _is_vat_french(self):
- return self.vat and self.vat.startswith('FR') and len(self.vat) == 13
-
- def _is_accounting_unalterable(self):
- if not self.vat and not self.country_id:
- return False
- return self.country_id and self.country_id.code in UNALTERABLE_COUNTRIES or self._is_vat_french()
diff --git a/addons/l10n_fr_certification/static/description/icon.png b/addons/l10n_fr_certification/static/description/icon.png
deleted file mode 100644
index bbcaa4fcce7..00000000000
--- a/addons/l10n_fr_certification/static/description/icon.png
+++ /dev/null
Binary files differ
diff --git a/addons/l10n_fr_certification/views/res_config.xml b/addons/l10n_fr_certification/views/res_config.xml
deleted file mode 100644
index 7f95850cbc0..00000000000
--- a/addons/l10n_fr_certification/views/res_config.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<odoo>
- <record id="view_general_fr_inalterability_inherit_config" model="ir.ui.view">
- <field name="name">Inalterability settings</field>
- <field name="model">res.config.settings</field>
- <field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
- <field name="arch" type="xml">
- <xpath expr="//field[@name='company_id']" position="before">
- <h2>Data Inalterability</h2>
- <div>
- <div>
- <button name="%(l10n_fr_certification.action_check_hash_integrity)d" type="action" string="Data Inalterability Check" class="oe_link"/>
- <button name="%(l10n_fr_certification.odoo_french_certification)d" type="action" string="Get the certification now!" class="oe_link"/>
- </div>
- </div>
- </xpath>
- </field>
- </record>
-</odoo>
diff --git a/addons/l10n_fr_pos_cert/__init__.py b/addons/l10n_fr_pos_cert/__init__.py
index eae875db876..4059582d30c 100644
--- a/addons/l10n_fr_pos_cert/__init__.py
+++ b/addons/l10n_fr_pos_cert/__init__.py
@@ -3,7 +3,6 @@
from . import models
from odoo import api, SUPERUSER_ID
-from ..l10n_fr_certification.models.res_company import UNALTERABLE_COUNTRIES
def _setup_inalterability(cr, registry):
@@ -11,7 +10,6 @@ def _setup_inalterability(cr, registry):
# enable ping for this module
env['publisher_warranty.contract'].update_notification(cron_mode=True)
- fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', UNALTERABLE_COUNTRIES)])
+ fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', env['res.company']._get_unalterable_country())])
if fr_companies:
- # create the securisation sequence per company
fr_companies._create_secure_sequence(['l10n_fr_pos_cert_sequence_id'])
diff --git a/addons/l10n_fr_pos_cert/__manifest__.py b/addons/l10n_fr_pos_cert/__manifest__.py
index 385cd2a1438..521c19a6783 100644
--- a/addons/l10n_fr_pos_cert/__manifest__.py
+++ b/addons/l10n_fr_pos_cert/__manifest__.py
@@ -23,10 +23,10 @@ The module adds following features:
""",
'depends': ['l10n_fr_sale_closing', 'point_of_sale'],
'installable': True,
- 'auto_install': False,
+ 'auto_install': True,
'application': False,
'data': [
- 'data/pos_inalterability.xml',
+ 'views/pos_inalterability_menuitem.xml',
'views/account_views.xml',
],
'post_init_hook': '_setup_inalterability',
diff --git a/addons/l10n_fr_pos_cert/data/pos_inalterability.xml b/addons/l10n_fr_pos_cert/data/pos_inalterability.xml
deleted file mode 100644
index 39d1f59c699..00000000000
--- a/addons/l10n_fr_pos_cert/data/pos_inalterability.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<odoo>
-
- <menuitem id="pos_fr_statements_menu" name="French Statements" parent="point_of_sale.menu_point_rep" sequence="9" />
-
- <menuitem action="l10n_fr_sale_closing.action_list_view_account_sale_closing" id="menu_account_closing" parent="pos_fr_statements_menu" sequence="90"/>
-
- <record model="ir.actions.server" id="action_check_hash_integrity_pos_orders">
- <field name="name">Pos Orders Inalterability Check</field>
- <field name="model_id" ref="point_of_sale.model_pos_order"/>
- <field name="type">ir.actions.server</field>
- <field name="state">code</field>
- <field name="code">
-action = env['pos.order']._check_hash_integrity(env.company.id)
- </field>
- </record>
-
- <menuitem action="action_check_hash_integrity_pos_orders" id="menu_check_pos_order_integrity" parent="pos_fr_statements_menu" sequence="90"/>
-</odoo> \ No newline at end of file
diff --git a/addons/l10n_fr_pos_cert/models/pos.py b/addons/l10n_fr_pos_cert/models/pos.py
index 43aa57453d4..8f53c3dd1ef 100644
--- a/addons/l10n_fr_pos_cert/models/pos.py
+++ b/addons/l10n_fr_pos_cert/models/pos.py
@@ -3,7 +3,6 @@
from datetime import datetime, timedelta
from hashlib import sha256
from json import dumps
-import pytz
from odoo import models, api, fields
from odoo.fields import Datetime
@@ -11,19 +10,6 @@ from odoo.tools.translate import _, _lt
from odoo.exceptions import UserError
-def ctx_tz(record, field):
- res_lang = None
- ctx = record._context
- tz_name = pytz.timezone(ctx.get('tz') or record.env.user.tz)
- timestamp = Datetime.from_string(record[field])
- if ctx.get('lang'):
- res_lang = record.env['res.lang']._lang_get(ctx['lang'])
- if res_lang:
- timestamp = pytz.utc.localize(timestamp, is_dst=False)
- return datetime.strftime(timestamp.astimezone(tz_name), res_lang.date_format + ' ' + res_lang.time_format)
- return Datetime.context_timestamp(record, timestamp)
-
-
class pos_config(models.Model):
_inherit = 'pos.config'
@@ -91,7 +77,7 @@ class pos_order(models.Model):
if obj._fields[field_str].type == 'many2one':
field_value = field_value.id
if obj._fields[field_str].type in ['many2many', 'one2many']:
- field_value = field_value.ids
+ field_value = field_value.sorted().ids
return str(field_value)
for order in self:
@@ -134,51 +120,6 @@ class pos_order(models.Model):
res |= super(pos_order, order).write(vals_hashing)
return res
- @api.model
- def _check_hash_integrity(self, company_id):
- """Checks that all posted or invoiced pos orders have still the same data as when they were posted
- and raises an error with the result.
- """
- def build_order_info(order):
- entry_reference = _('(Receipt ref.: %s)')
- order_reference_string = order.pos_reference and entry_reference % order.pos_reference or ''
- return [ctx_tz(order, 'date_order'), order.l10n_fr_secure_sequence_number, order.name, order_reference_string, ctx_tz(order, 'write_date')]
-
- orders = self.search([('state', 'in', ['paid', 'done', 'invoiced']),
- ('company_id', '=', company_id),
- ('l10n_fr_secure_sequence_number', '!=', 0)],
- order="l10n_fr_secure_sequence_number ASC")
-
- if not orders:
- raise UserError(_('There isn\'t any order flagged for data inalterability yet for the company %s. This mechanism only runs for point of sale orders generated after the installation of the module France - Certification CGI 286 I-3 bis. - POS') % self.env.company.name)
- previous_hash = u''
- start_order_info = []
- for order in orders:
- if order.l10n_fr_hash != order._compute_hash(previous_hash=previous_hash):
- raise UserError(_('Corrupted data on point of sale order with id %s.') % order.id)
- previous_hash = order.l10n_fr_hash
-
- orders_sorted_date = orders.sorted(lambda o: o.date_order)
- start_order_info = build_order_info(orders_sorted_date[0])
- end_order_info = build_order_info(orders_sorted_date[-1])
-
- report_dict = {'start_order_name': start_order_info[2],
- 'start_order_ref': start_order_info[3],
- 'start_order_date': start_order_info[0],
- 'end_order_name': end_order_info[2],
- 'end_order_ref': end_order_info[3],
- 'end_order_date': end_order_info[0]}
-
- # Raise on success
- raise UserError(_('''Successful test !
-
- The point of sale orders are guaranteed to be in their original and inalterable state
- From: %(start_order_name)s %(start_order_ref)s recorded on %(start_order_date)s
- To: %(end_order_name)s %(end_order_ref)s recorded on %(end_order_date)s
-
- For this report to be legally meaningful, please download your certification from your customer account on Odoo.com (Only for Odoo Enterprise users).'''
- ) % report_dict)
-
class PosOrderLine(models.Model):
_inherit = "pos.order.line"
diff --git a/addons/l10n_fr_pos_cert/models/res_company.py b/addons/l10n_fr_pos_cert/models/res_company.py
index 651c5815148..74dae578af3 100644
--- a/addons/l10n_fr_pos_cert/models/res_company.py
+++ b/addons/l10n_fr_pos_cert/models/res_company.py
@@ -1,6 +1,23 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import models, api, fields
+from odoo import models, api, fields, _
+from odoo.exceptions import UserError
+from datetime import datetime
+from odoo.fields import Datetime
+import pytz
+
+
+def ctx_tz(record, field):
+ res_lang = None
+ ctx = record._context
+ tz_name = pytz.timezone(ctx.get('tz') or record.env.user.tz)
+ timestamp = Datetime.from_string(record[field])
+ if ctx.get('lang'):
+ res_lang = record.env['res.lang']._lang_get(ctx['lang'])
+ if res_lang:
+ timestamp = pytz.utc.localize(timestamp, is_dst=False)
+ return datetime.strftime(timestamp.astimezone(tz_name), res_lang.date_format + ' ' + res_lang.time_format)
+ return Datetime.context_timestamp(record, timestamp)
class ResCompany(models.Model):
diff --git a/addons/l10n_fr_pos_cert/views/account_views.xml b/addons/l10n_fr_pos_cert/views/account_views.xml
index bfe6100061f..27d4d2e9d9b 100644
--- a/addons/l10n_fr_pos_cert/views/account_views.xml
+++ b/addons/l10n_fr_pos_cert/views/account_views.xml
@@ -23,4 +23,4 @@
</field>
</record>
-</odoo> \ No newline at end of file
+</odoo>
diff --git a/addons/l10n_fr_pos_cert/views/pos_inalterability_menuitem.xml b/addons/l10n_fr_pos_cert/views/pos_inalterability_menuitem.xml
new file mode 100644
index 00000000000..4f05afcb99f
--- /dev/null
+++ b/addons/l10n_fr_pos_cert/views/pos_inalterability_menuitem.xml
@@ -0,0 +1,4 @@
+<odoo>
+ <menuitem id="pos_fr_statements_menu" name="French Statements" parent="point_of_sale.menu_point_rep" sequence="9" />
+ <menuitem action="l10n_fr.action_list_view_account_sale_closing" id="menu_account_closing" parent="pos_fr_statements_menu" sequence="90"/>
+</odoo> \ No newline at end of file
diff --git a/addons/l10n_fr_sale_closing/__init__.py b/addons/l10n_fr_sale_closing/__init__.py
index d8e1ab76276..83ec5d17fde 100644
--- a/addons/l10n_fr_sale_closing/__init__.py
+++ b/addons/l10n_fr_sale_closing/__init__.py
@@ -2,7 +2,6 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
from odoo import api, SUPERUSER_ID
-from ..l10n_fr_certification.models.res_company import UNALTERABLE_COUNTRIES
def _setup_inalterability(cr, registry):
@@ -10,7 +9,7 @@ def _setup_inalterability(cr, registry):
# enable ping for this module
env['publisher_warranty.contract'].update_notification(cron_mode=True)
- fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', UNALTERABLE_COUNTRIES)])
- if fr_companies:
- # create the securisation sequence per company
- fr_companies._create_secure_sequence(['l10n_fr_closing_sequence_id'])
+ fr_companies = env['res.company'].search([('partner_id.country_id.code', 'in', env['res.company']._get_unalterable_country())])
+ for fr_company in fr_companies:
+ fr_journals = env['account.journal'].search([('company_id', '=', fr_company.id)])
+ fr_journals.filtered(lambda x: not x.secure_sequence_id)._create_secure_sequence(['l10n_fr_closing_sequence_id'])
diff --git a/addons/l10n_fr_sale_closing/__manifest__.py b/addons/l10n_fr_sale_closing/__manifest__.py
index 0cc3a6ab010..a6247127e70 100644
--- a/addons/l10n_fr_sale_closing/__manifest__.py
+++ b/addons/l10n_fr_sale_closing/__manifest__.py
@@ -14,7 +14,7 @@ The module adds following features:
Storage: automatic sales closings with computation of both period and cumulative totals (daily, monthly, annually)
""",
- 'depends': ['l10n_fr_certification'],
+ 'depends': ['l10n_fr'],
'installable': True,
'auto_install': True,
'application': False,
diff --git a/addons/l10n_fr_sale_closing/models/account_closing.py b/addons/l10n_fr_sale_closing/models/account_closing.py
index 636cf754750..c498c978ea7 100644
--- a/addons/l10n_fr_sale_closing/models/account_closing.py
+++ b/addons/l10n_fr_sale_closing/models/account_closing.py
@@ -47,13 +47,13 @@ class AccountClosing(models.Model):
if first_move_sequence_number is not False and first_move_sequence_number is not None:
params['first_move_sequence_number'] = first_move_sequence_number
- query += '''AND m.l10n_fr_secure_sequence_number > %(first_move_sequence_number)s'''
+ query += '''AND m.secure_sequence_number > %(first_move_sequence_number)s'''
elif date_start:
#the first time we compute the closing, we consider only from the installation of the module
params['date_start'] = date_start
query += '''AND m.date >= %(date_start)s'''
- query += " ORDER BY m.l10n_fr_secure_sequence_number DESC) "
+ query += " ORDER BY m.secure_sequence_number DESC) "
query += '''SELECT array_agg(move_id) AS move_ids,
array_agg(line_id) AS line_ids,
sum(balance) AS balance
@@ -85,7 +85,7 @@ class AccountClosing(models.Model):
date_start = previous_closing.create_date
cumulative_total += previous_closing.cumulative_total
- aml_aggregate = self._query_for_aml(company, first_move.l10n_fr_secure_sequence_number, date_start)
+ aml_aggregate = self._query_for_aml(company, first_move.secure_sequence_number, date_start)
total_interval = aml_aggregate['balance'] or 0
cumulative_total += total_interval
@@ -98,7 +98,7 @@ class AccountClosing(models.Model):
return {'total_interval': total_interval,
'cumulative_total': cumulative_total,
'last_move_id': last_move.id,
- 'last_move_hash': last_move.l10n_fr_hash,
+ 'last_move_hash': last_move.inalterable_hash,
'date_closing_stop': interval_dates['date_stop'],
'date_closing_start': date_start,
'name': interval_dates['name_interval'] + ' - ' + interval_dates['date_stop'][:10]}
diff --git a/addons/l10n_fr_sale_closing/models/res_company.py b/addons/l10n_fr_sale_closing/models/res_company.py
index a18ec1b8082..4088a1afac4 100644
--- a/addons/l10n_fr_sale_closing/models/res_company.py
+++ b/addons/l10n_fr_sale_closing/models/res_company.py
@@ -1,13 +1,27 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import fields, models, api
+from odoo import fields, models, api, _
class ResCompany(models.Model):
_inherit = 'res.company'
l10n_fr_closing_sequence_id = fields.Many2one('ir.sequence', 'Sequence to use to build sale closings', readonly=True)
+ siret = fields.Char(related='partner_id.siret', string='SIRET', size=14, readonly=False)
+ ape = fields.Char(string='APE')
+
+ @api.model
+ def _get_unalterable_country(self):
+ return ['FR', 'MF', 'MQ', 'NC', 'PF', 'RE', 'GF', 'GP', 'TF'] # These codes correspond to France and DOM-TOM.
+
+ def _is_vat_french(self):
+ return self.vat and self.vat.startswith('FR') and len(self.vat) == 13
+
+ def _is_accounting_unalterable(self):
+ if not self.vat and not self.country_id:
+ return False
+ return self.country_id and self.country_id.code in self._get_unalterable_country()
@api.model
def create(self, vals):
@@ -26,3 +40,25 @@ class ResCompany(models.Model):
sequence_fields = ['l10n_fr_closing_sequence_id']
company._create_secure_sequence(sequence_fields)
return res
+
+ def _create_secure_sequence(self, sequence_fields):
+ """This function creates a no_gap sequence on each company in self that will ensure
+ a unique number is given to all posted account.move in such a way that we can always
+ find the previous move of a journal entry on a specific journal.
+ """
+ for company in self:
+ vals_write = {}
+ for seq_field in sequence_fields:
+ if not company[seq_field]:
+ vals = {
+ 'name': _('Securisation of %s - %s') % (seq_field, company.name),
+ 'code': 'FRSECURE%s-%s' % (company.id, seq_field),
+ 'implementation': 'no_gap',
+ 'prefix': '',
+ 'suffix': '',
+ 'padding': 0,
+ 'company_id': company.id}
+ seq = self.env['ir.sequence'].create(vals)
+ vals_write[seq_field] = seq.id
+ if vals_write:
+ company.write(vals_write)
diff --git a/addons/l10n_mx/views/account_views.xml b/addons/l10n_mx/views/account_views.xml
index 0069bba303c..1becc7d5360 100644
--- a/addons/l10n_mx/views/account_views.xml
+++ b/addons/l10n_mx/views/account_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">
- <field name="update_posted" position="attributes">
+ <field name="restrict_mode_hash_table" position="attributes">
<attribute name="groups" eval=""/>
</field>
</field>
diff --git a/addons/membership/models/account_move.py b/addons/membership/models/account_move.py
index 06db8a82ce9..1db7edd8bf5 100644
--- a/addons/membership/models/account_move.py
+++ b/addons/membership/models/account_move.py
@@ -12,19 +12,21 @@ class AccountMove(models.Model):
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})
+ for move in self:
+ if move.type == 'out_invoice':
+ self.env['membership.membership_line'].search([
+ ('account_invoice_line', 'in', move.mapped('invoice_line_ids').ids)
+ ]).write({'date_cancel': False})
return res
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()})
+ for move in self:
+ if move.type == 'out_invoice':
+ self.env['membership.membership_line'].search([
+ ('account_invoice_line', 'in', move.mapped('invoice_line_ids').ids)
+ ]).write({'date_cancel': fields.Date.today()})
return res
def write(self, vals):
diff --git a/addons/membership/tests/test_membership.py b/addons/membership/tests/test_membership.py
index 0e68b039deb..d315983138c 100644
--- a/addons/membership/tests/test_membership.py
+++ b/addons/membership/tests/test_membership.py
@@ -83,9 +83,6 @@ class TestMembership(TestMembershipCommon):
# subscribes to a membership
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.journal_id.update_posted = True
-
def patched_today(*args, **kwargs):
return fields.Date.to_date('2019-01-01')
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 3d205a995ec..55635f523a5 100644
--- a/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py
+++ b/addons/purchase_stock/tests/test_anglo_saxon_valuation_reconciliation.py
@@ -71,7 +71,6 @@ class TestValuationReconciliation(ValuationReconciliationTestCase):
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.button_cancel()
def test_invoice_shipment(self):