Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
372 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# -*- coding: utf-8 -*- | ||
# copyright 2019 Camptocamp SA | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
{ | ||
'name': 'Switzerland - ESR account reconcile', | ||
'version': '10.0.1.0.0', | ||
'author': "Camptocamp,Odoo Community Association (OCA)", | ||
'website': 'https://github.com/OCA/l10n-switzerland', | ||
'license': 'AGPL-3', | ||
'summary': 'Adds a second automatic reconciliation button,' | ||
' which is based on the esr', | ||
'depends': [ | ||
'account', | ||
'base_transaction_id', | ||
], | ||
'data': [ | ||
'views/assets.xml', | ||
], | ||
'qweb': [ | ||
'static/src/xml/account_reconciliation.xml', | ||
], | ||
'installable': True, | ||
'auto_install': False, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * l10n_ch_account_reconcile_esr | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 10.0+e\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2019-05-13 14:39+0000\n" | ||
"PO-Revision-Date: 2019-05-13 16:41+0200\n" | ||
"Last-Translator: Timon Tschanz <timon.tschanz@camptocamp.com>\n" | ||
"Language-Team: German\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||
"Language: de\n" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#: model:ir.model,name:l10n_ch_account_reconcile_esr.model_account_bank_statement_line | ||
msgid "Bank Statement Line" | ||
msgstr "Kontoauszugzeile" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "ESR reconciliation" | ||
msgstr "ESR Ausgleich" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "Let odoo try to reconcile entries for the user using esr refs" | ||
msgstr "Versucht zeilen basierent auf der ESR nummer auszugleichen" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:12 | ||
#, python-format | ||
msgid "display: none;" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * l10n_ch_account_reconcile_esr | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 10.0+e\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2019-05-13 14:39+0000\n" | ||
"PO-Revision-Date: 2019-05-13 16:41+0200\n" | ||
"Last-Translator: Timon Tschanz <timon.tschanz@camptocamp.com>\n" | ||
"Language-Team: French\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||
"Language: fr\n" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#: model:ir.model,name:l10n_ch_account_reconcile_esr.model_account_bank_statement_line | ||
msgid "Bank Statement Line" | ||
msgstr "Ligne de relevé bancaire" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "ESR reconciliation" | ||
msgstr "Lettrage BVR" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "Let odoo try to reconcile entries for the user using esr refs" | ||
msgstr "Laisser Odoo essayer de lettrer les entrées pour l'utilisateur avec les références BVR" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:12 | ||
#, python-format | ||
msgid "display: none;" | ||
msgstr "display: none;" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * l10n_ch_account_reconcile_esr | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 10.0+e\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2019-05-13 14:39+0000\n" | ||
"PO-Revision-Date: 2019-05-13 16:41+0200\n" | ||
"Last-Translator: Timon Tschanz <timon.tschanz@camptocamp.com>\n" | ||
"Language-Team: Italian\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||
"Language: it\n" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#: model:ir.model,name:l10n_ch_account_reconcile_esr.model_account_bank_statement_line | ||
msgid "Bank Statement Line" | ||
msgstr "Linea estratto conto" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "ESR reconciliation" | ||
msgstr "Riconciliazione PVR" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "Let odoo try to reconcile entries for the user using esr refs" | ||
msgstr "" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:12 | ||
#, python-format | ||
msgid "display: none;" | ||
msgstr "display: none;" |
43 changes: 43 additions & 0 deletions
43
l10n_ch_account_reconcile_esr/i18n/l10n_ch_account_reconcile_esr.pot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * l10n_ch_account_reconcile_esr | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 10.0+e\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2019-05-13 14:39+0000\n" | ||
"PO-Revision-Date: 2019-05-13 14:39+0000\n" | ||
"Last-Translator: <>\n" | ||
"Language-Team: \n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: \n" | ||
"Plural-Forms: \n" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#: model:ir.model,name:l10n_ch_account_reconcile_esr.model_account_bank_statement_line | ||
msgid "Bank Statement Line" | ||
msgstr "" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "ESR reconciliation" | ||
msgstr "" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:9 | ||
#, python-format | ||
msgid "Let odoo try to reconcile entries for the user using esr refs" | ||
msgstr "" | ||
|
||
#. module: l10n_ch_account_reconcile_esr | ||
#. openerp-web | ||
#: code:addons/l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml:12 | ||
#, python-format | ||
msgid "display: none;" | ||
msgstr "" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import account_bank_statement_line |
113 changes: 113 additions & 0 deletions
113
l10n_ch_account_reconcile_esr/models/account_bank_statement_line.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# -*- coding: utf-8 -*- | ||
# Copyright 2019 Camptocamp SA | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from odoo import models, api | ||
from odoo.exceptions import UserError | ||
|
||
|
||
class AccountBankStatementLine(models.Model): | ||
_inherit = "account.bank.statement.line" | ||
|
||
@api.multi | ||
def auto_reconcile(self): | ||
# If we don't have esr_reconcile we want the default odoo way | ||
if not self.env.context.get('esr_reconcile'): | ||
return super(AccountBankStatementLine, self). auto_reconcile() | ||
# otherwise use esr reconcile | ||
else: | ||
return self.auto_reconcile_esr() | ||
|
||
@api.multi | ||
def auto_reconcile_esr(self): | ||
""" Reconcile the Bank statement line and acount move line | ||
based on only the esr | ||
""" | ||
self.ensure_one() | ||
match_recs = self.env['account.move.line'] | ||
|
||
# customized: dropped unneeded params | ||
params = { | ||
'company_id': self.env.user.company_id.id, | ||
'account_payable_receivable': ( | ||
self.journal_id.default_credit_account_id.id, | ||
self.journal_id.default_debit_account_id.id | ||
), | ||
'partner_id': self.partner_id.id, | ||
'ref': self.name, | ||
'amount': self.amount | ||
} | ||
# Try to get ESR match | ||
if self.name: | ||
sql_query = self._get_common_sql_query_ignore_partner() + \ | ||
" AND aml.transaction_ref = %(ref)s" \ | ||
" AND aml.transaction_ref is not null" \ | ||
" AND aml.amount_residual = %(amount)s ORDER BY" \ | ||
" date_maturity asc, aml.id asc" | ||
self.env.cr.execute(sql_query, params) | ||
match_recs = self.env.cr.dictfetchall() | ||
if len(match_recs) > 1: | ||
return False | ||
# Customizations done. odoo code from here on. | ||
if not match_recs: | ||
return False | ||
|
||
match_recs = self.env['account.move.line'].browse( | ||
[aml.get('id') for aml in match_recs] | ||
) | ||
# Now reconcile | ||
counterpart_aml_dicts = [] | ||
payment_aml_rec = self.env['account.move.line'] | ||
for aml in match_recs: | ||
if aml.account_id.internal_type == 'liquidity': | ||
payment_aml_rec = (payment_aml_rec | aml) | ||
else: | ||
amount = self.amount | ||
counterpart_aml_dicts.append({ | ||
'name': aml.name if aml.name != '/' else aml.move_id.name, | ||
'debit': amount < 0 and -amount or 0, | ||
'credit': amount > 0 and amount or 0, | ||
'move_line': aml | ||
}) | ||
|
||
try: | ||
with self._cr.savepoint(): | ||
counterpart = self.process_reconciliation( | ||
counterpart_aml_dicts=counterpart_aml_dicts, | ||
payment_aml_rec=payment_aml_rec | ||
) | ||
return counterpart | ||
except UserError: | ||
# A configuration / business logic error that makes it impossible | ||
# to auto-reconcile should not be raised | ||
# since automatic reconciliation is just an amenity and the user | ||
# will get the same exception when manually | ||
# reconciling. Other types of exception are (hopefully) | ||
# programmation errors and should cause a stacktrace. | ||
self.invalidate_cache() | ||
self.env['account.move'].invalidate_cache() | ||
self.env['account.move.line'].invalidate_cache() | ||
return False | ||
|
||
def _get_common_sql_query_ignore_partner(self): | ||
""" Selects the account move lines based on account type and company. | ||
Basequery, returns all lines matching filter clause needs to be added. | ||
""" | ||
acc_type = "acc.internal_type IN ('payable', 'receivable')" if ( | ||
self.partner_id or False | ||
) else "acc.reconcile = true" | ||
account_clause = '' | ||
if self.journal_id.default_credit_account_id and \ | ||
self.journal_id.default_debit_account_id: | ||
account_clause = "(aml.statement_id IS NULL AND aml.account_id IN \ | ||
%(account_payable_receivable)s AND aml.payment_id IS NOT NULL) OR" | ||
query = """ | ||
SELECT aml.id | ||
FROM account_move_line aml | ||
JOIN account_account acc ON acc.id = aml.account_id | ||
WHERE aml.company_id = %(company_id)s | ||
AND ({0} ( {1} AND aml.reconciled = false)) | ||
""" | ||
return query.format(account_clause, acc_type) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Timon Tschanz <timon.tschanz@camptocamp.com> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
This addon adds a new auto reconciliation button, which reconciles statement lines | ||
only based on the ESR and hides the original one. This should allow for more acurate matching, though we probably match a bit less. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
To use this module following steps are required: | ||
1. Go to the Bank Statement reconciliation view | ||
2. Press the "Automatic ESR reconciliation" button |
32 changes: 32 additions & 0 deletions
32
l10n_ch_account_reconcile_esr/static/src/js/account_reconciliation.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
odoo.define('specific_account.esr_reconciliation', function (require) { | ||
"use strict"; | ||
|
||
var AccountReconciliation = require('account.reconciliation'); | ||
var core = require('web.core'); | ||
|
||
|
||
// Add a second button to reconcilation widget which only reconciles based on esr. | ||
AccountReconciliation.bankStatementReconciliation.include({ | ||
start: function() { | ||
var self = this; | ||
return $.when(this._super()).then(function(){ | ||
self.$el.find('.js_esr_reconciliation').click(function() { | ||
self.model_bank_statement_line | ||
.call("reconciliation_widget_auto_reconcile", | ||
[self.lines || undefined, self.num_already_reconciled_lines], | ||
{'context': {'esr_reconcile': true}} | ||
) | ||
.then(function(data){ | ||
self.serverPreprocessResultHandler(data); | ||
}) | ||
.then(function(){ | ||
self.$('.js_esr_reconciliation').hide(); | ||
return self.display_reconciliation_propositions(); | ||
}); | ||
|
||
}); | ||
|
||
}); | ||
}, | ||
}); | ||
}); |
15 changes: 15 additions & 0 deletions
15
l10n_ch_account_reconcile_esr/static/src/xml/account_reconciliation.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<templates xml:space="preserve"> | ||
|
||
<!-- abstract or shared templates --> | ||
|
||
<t t-extend="bank_statement_reconciliation"> | ||
<t t-jquery="button.js_automatic_reconciliation" t-operation="after"> | ||
<button class="btn btn-default js_esr_reconciliation pull-right" title="Let odoo try to reconcile entries for the user using esr refs">ESR reconciliation</button> | ||
</t> | ||
<t t-jquery="button.js_automatic_reconciliation" t-operation="attributes"> | ||
<attribute name="style">display: none;</attribute> | ||
</t> | ||
</t> | ||
</templates> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<odoo> | ||
<template id="assets_backend" name="account assets" inherit_id="web.assets_backend"> | ||
<xpath expr="." position="inside"> | ||
<script type="text/javascript" src="/l10n_ch_account_reconcile_esr/static/src/js/account_reconciliation.js"></script> | ||
</xpath> | ||
</template> | ||
</odoo> |