From 800a963aafb69577485fcbce2c5a0e040a2656aa Mon Sep 17 00:00:00 2001 From: ps-tubtim Date: Tue, 24 Mar 2020 11:11:14 +0700 Subject: [PATCH] [IMP] account_check_deposit: black, isort --- account_check_deposit/__manifest__.py | 43 ++- account_check_deposit/data/sequence.xml | 7 +- .../models/account_deposit.py | 278 +++++++++++------- .../models/account_move_line.py | 4 +- account_check_deposit/models/res_company.py | 26 +- .../models/res_config_settings.py | 10 +- account_check_deposit/report/report.xml | 21 +- .../report/report_checkdeposit.xml | 191 +++++++----- .../security/check_deposit_security.xml | 12 +- .../tests/test_check_deposit.py | 258 ++++++++-------- .../views/account_deposit_view.xml | 194 ++++++------ .../views/account_move_line_view.xml | 6 +- .../views/res_config_settings_views.xml | 46 ++- 13 files changed, 614 insertions(+), 482 deletions(-) diff --git a/account_check_deposit/__manifest__.py b/account_check_deposit/__manifest__.py index 1a645e2c1..96664ef33 100644 --- a/account_check_deposit/__manifest__.py +++ b/account_check_deposit/__manifest__.py @@ -6,29 +6,24 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': 'Account Check Deposit', - 'version': '12.0.1.0.0', - 'category': 'Accounting', - 'license': 'AGPL-3', - 'summary': 'Manage deposit of checks to the bank', - 'author': "Odoo Community Association (OCA)," - "Akretion," - "Tecnativa", - 'website': 'https://github.com/OCA/account-financial-tools/tree/12.0/' - 'account_check_deposit', - 'depends': [ - 'account', + "name": "Account Check Deposit", + "version": "13.0.1.0.0", + "category": "Accounting", + "license": "AGPL-3", + "summary": "Manage deposit of checks to the bank", + "author": "Akretion, Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/account-financial-tools", + "depends": ["account"], + "development_status": "Mature", + "data": [ + "security/ir.model.access.csv", + "security/check_deposit_security.xml", + "data/sequence.xml", + "views/account_deposit_view.xml", + "views/account_move_line_view.xml", + "views/res_config_settings_views.xml", + "report/report.xml", + "report/report_checkdeposit.xml", ], - 'development_status': 'Mature', - 'data': [ - 'security/ir.model.access.csv', - 'security/check_deposit_security.xml', - 'data/sequence.xml', - 'views/account_deposit_view.xml', - 'views/account_move_line_view.xml', - 'views/res_config_settings_views.xml', - 'report/report.xml', - 'report/report_checkdeposit.xml', - ], - 'installable': True, + "installable": True, } diff --git a/account_check_deposit/data/sequence.xml b/account_check_deposit/data/sequence.xml index 836181b86..19fda568c 100644 --- a/account_check_deposit/data/sequence.xml +++ b/account_check_deposit/data/sequence.xml @@ -1,18 +1,15 @@ - + - - Account Check Deposit account.check.deposit DEP 3 - + - diff --git a/account_check_deposit/models/account_deposit.py b/account_check_deposit/models/account_deposit.py index 7d38d6a91..04c8f1ae2 100644 --- a/account_check_deposit/models/account_deposit.py +++ b/account_check_deposit/models/account_deposit.py @@ -7,19 +7,23 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import _, api, fields, models +from odoo.exceptions import UserError, ValidationError + import odoo.addons.decimal_precision as dp -from odoo.exceptions import ValidationError, UserError class AccountCheckDeposit(models.Model): _name = "account.check.deposit" _description = "Account Check Deposit" - _order = 'deposit_date desc' + _order = "deposit_date desc" @api.depends( - 'company_id', 'currency_id', 'check_payment_ids.debit', - 'check_payment_ids.amount_currency', - 'move_id.line_ids.reconciled') + "company_id", + "currency_id", + "check_payment_ids.debit", + "check_payment_ids.amount_currency", + "move_id.line_ids.reconciled", + ) def _compute_check_deposit(self): for deposit in self: total = 0.0 @@ -40,62 +44,94 @@ class AccountCheckDeposit(models.Model): reconcile = True deposit.total_amount = total deposit.is_reconcile = reconcile - deposit.currency_none_same_company_id =\ - currency_none_same_company_id + deposit.currency_none_same_company_id = currency_none_same_company_id deposit.check_count = count - name = fields.Char(string='Name', size=64, readonly=True, default='/') + name = fields.Char(string="Name", size=64, readonly=True, default="/") check_payment_ids = fields.One2many( - 'account.move.line', 'check_deposit_id', string='Check Payments', - states={'done': [('readonly', '=', True)]}) + comodel_name="account.move.line", + inverse_name="check_deposit_id", + string="Check Payments", + states={"done": [("readonly", "=", True)]}, + ) deposit_date = fields.Date( - string='Deposit Date', required=True, - states={'done': [('readonly', '=', True)]}, - default=fields.Date.context_today) + string="Deposit Date", + required=True, + states={"done": [("readonly", "=", True)]}, + default=fields.Date.context_today, + ) journal_id = fields.Many2one( - 'account.journal', string='Journal', - domain=[('type', '=', 'bank'), ('bank_account_id', '=', False)], - required=True, states={'done': [('readonly', '=', True)]}) + comodel_name="account.journal", + string="Journal", + domain=[("type", "=", "bank"), ("bank_account_id", "=", False)], + required=True, + states={"done": [("readonly", "=", True)]}, + ) journal_default_account_id = fields.Many2one( - 'account.account', related='journal_id.default_debit_account_id', - string='Default Debit Account of the Journal') + comodel_name="account.account", + related="journal_id.default_debit_account_id", + string="Default Debit Account of the Journal", + ) currency_id = fields.Many2one( - 'res.currency', string='Currency', required=True, - states={'done': [('readonly', '=', True)]}) + comodel_name="res.currency", + string="Currency", + required=True, + states={"done": [("readonly", "=", True)]}, + ) currency_none_same_company_id = fields.Many2one( - 'res.currency', compute='_compute_check_deposit', store=True, - string='Currency (False if same as company)') + comodel_name="res.currency", + compute="_compute_check_deposit", + store=True, + string="Currency (False if same as company)", + ) state = fields.Selection( - [ - ('draft', 'Draft'), - ('done', 'Done'), - ], string='Status', default='draft', readonly=True) + selection=[("draft", "Draft"), ("done", "Done")], + string="Status", + default="draft", + readonly=True, + ) move_id = fields.Many2one( - 'account.move', string='Journal Entry', readonly=True) + comodel_name="account.move", string="Journal Entry", readonly=True + ) bank_journal_id = fields.Many2one( - 'account.journal', string='Bank Account', required=True, + comodel_name="account.journal", + string="Bank Account", + required=True, domain="[('company_id', '=', company_id), ('type', '=', 'bank'), " "('bank_account_id', '!=', False)]", - states={'done': [('readonly', '=', True)]}) + states={"done": [("readonly", "=", True)]}, + ) line_ids = fields.One2many( - 'account.move.line', related='move_id.line_ids', - string='Lines', readonly=True) + comodel_name="account.move.line", + related="move_id.line_ids", + string="Lines", + readonly=True, + ) company_id = fields.Many2one( - 'res.company', string='Company', required=True, - states={'done': [('readonly', '=', True)]}, - default=lambda self: self.env['res.company']._company_default_get()) + comodel_name="res.company", + string="Company", + required=True, + states={"done": [("readonly", "=", True)]}, + default=lambda self: self.env["res.company"]._company_default_get(), + ) total_amount = fields.Float( - compute='_compute_check_deposit', - string="Total Amount", readonly=True, store=True, - digits=dp.get_precision('Account')) + compute="_compute_check_deposit", + string="Total Amount", + readonly=True, + store=True, + digits=dp.get_precision("Account"), + ) check_count = fields.Integer( - compute='_compute_check_deposit', readonly=True, store=True, - string="Number of Checks") + compute="_compute_check_deposit", + readonly=True, + store=True, + string="Number of Checks", + ) is_reconcile = fields.Boolean( - compute='_compute_check_deposit', readonly=True, store=True, - string="Reconcile") + compute="_compute_check_deposit", readonly=True, store=True, string="Reconcile" + ) - @api.constrains('currency_id', 'check_payment_ids', 'company_id') + @api.constrains("currency_id", "check_payment_ids", "company_id") def _check_deposit(self): for deposit in self: deposit_currency = deposit.currency_id @@ -103,30 +139,45 @@ class AccountCheckDeposit(models.Model): for line in deposit.check_payment_ids: if line.currency_id: raise ValidationError( - _("The check with amount %s and reference '%s' " + _( + "The check with amount %s and reference '%s' " "is in currency %s but the deposit is in " - "currency %s.") % ( - line.debit, line.ref or '', + "currency %s." + ) + % ( + line.debit, + line.ref or "", line.currency_id.name, - deposit_currency.name)) + deposit_currency.name, + ) + ) else: for line in deposit.check_payment_ids: if line.currency_id != deposit_currency: raise ValidationError( - _("The check with amount %s and reference '%s' " + _( + "The check with amount %s and reference '%s' " "is in currency %s but the deposit is in " - "currency %s.") % ( - line.debit, line.ref or '', + "currency %s." + ) + % ( + line.debit, + line.ref or "", line.currency_id.name, - deposit_currency.name)) + deposit_currency.name, + ) + ) def unlink(self): for deposit in self: - if deposit.state == 'done': + if deposit.state == "done": raise UserError( - _("The deposit '%s' is in valid state, so you must " - "cancel it before deleting it.") - % deposit.name) + _( + "The deposit '%s' is in valid state, so you must " + "cancel it before deleting it." + ) + % deposit.name + ) return super(AccountCheckDeposit, self).unlink() def backtodraft(self): @@ -138,78 +189,87 @@ class AccountCheckDeposit(models.Model): if line.reconciled: line.remove_move_reconcile() deposit.move_id.unlink() - deposit.write({'state': 'draft'}) + deposit.write({"state": "draft"}) return True @api.model def create(self, vals): - if vals.get('name', '/') == '/': - vals['name'] = self.env['ir.sequence'].\ - with_context(ir_sequence_date=vals.get('deposit_date')).\ - next_by_code('account.check.deposit') + if vals.get("name", "/") == "/": + vals["name"] = ( + self.env["ir.sequence"] + .with_context(ir_sequence_date=vals.get("deposit_date")) + .next_by_code("account.check.deposit") + ) return super(AccountCheckDeposit, self).create(vals) @api.model def _prepare_account_move_vals(self, deposit): - if ( - deposit.company_id.check_deposit_offsetting_account == - 'bank_account'): + if deposit.company_id.check_deposit_offsetting_account == "bank_account": journal_id = deposit.bank_journal_id.id else: journal_id = deposit.journal_id.id move_vals = { - 'journal_id': journal_id, - 'date': deposit.deposit_date, - 'ref': _('Check Deposit %s') % deposit.name, + "journal_id": journal_id, + "date": deposit.deposit_date, + "ref": _("Check Deposit %s") % deposit.name, } return move_vals @api.model def _prepare_move_line_vals(self, line): - assert (line.debit > 0), 'Debit must have a value' + assert line.debit > 0, "Debit must have a value" return { - 'name': _('Check Deposit - Ref. Check %s') % line.ref, - 'credit': line.debit, - 'debit': 0.0, - 'account_id': line.account_id.id, - 'partner_id': line.partner_id.id, - 'currency_id': line.currency_id.id or False, - 'amount_currency': line.amount_currency * -1, + "name": _("Check Deposit - Ref. Check %s") % line.ref, + "credit": line.debit, + "debit": 0.0, + "account_id": line.account_id.id, + "partner_id": line.partner_id.id, + "currency_id": line.currency_id.id or False, + "amount_currency": line.amount_currency * -1, } @api.model def _prepare_counterpart_move_lines_vals( - self, deposit, total_debit, total_amount_currency): + self, deposit, total_debit, total_amount_currency + ): company = deposit.company_id if not company.check_deposit_offsetting_account: - raise UserError(_( - "You must configure the 'Check Deposit Offsetting Account' " - "on the Accounting Settings page")) - if company.check_deposit_offsetting_account == 'bank_account': + raise UserError( + _( + "You must configure the 'Check Deposit Offsetting Account' " + "on the Accounting Settings page" + ) + ) + if company.check_deposit_offsetting_account == "bank_account": if not deposit.bank_journal_id.default_debit_account_id: - raise UserError(_( - "Missing 'Default Debit Account' on bank journal '%s'") - % deposit.bank_journal_id.name) + raise UserError( + _("Missing 'Default Debit Account' on bank journal '%s'") + % deposit.bank_journal_id.name + ) account_id = deposit.bank_journal_id.default_debit_account_id.id - elif company.check_deposit_offsetting_account == 'transfer_account': + elif company.check_deposit_offsetting_account == "transfer_account": if not company.check_deposit_transfer_account_id: - raise UserError(_( - "Missing 'Check Deposit Offsetting Account' on the " - "company '%s'.") % company.name) + raise UserError( + _( + "Missing 'Check Deposit Offsetting Account' on the " + "company '%s'." + ) + % company.name + ) account_id = company.check_deposit_transfer_account_id.id return { - 'name': _('Check Deposit %s') % deposit.name, - 'debit': total_debit, - 'credit': 0.0, - 'account_id': account_id, - 'partner_id': False, - 'currency_id': deposit.currency_none_same_company_id.id or False, - 'amount_currency': total_amount_currency, + "name": _("Check Deposit %s") % deposit.name, + "debit": total_debit, + "credit": 0.0, + "account_id": account_id, + "partner_id": False, + "currency_id": deposit.currency_none_same_company_id.id or False, + "amount_currency": total_amount_currency, } def validate_deposit(self): - am_obj = self.env['account.move'] - move_line_obj = self.env['account.move.line'] + am_obj = self.env["account.move"] + move_line_obj = self.env["account.move.line"] for deposit in self: move_vals = self._prepare_account_move_vals(deposit) move = am_obj.create(move_vals) @@ -220,37 +280,42 @@ class AccountCheckDeposit(models.Model): total_debit += line.debit total_amount_currency += line.amount_currency line_vals = self._prepare_move_line_vals(line) - line_vals['move_id'] = move.id + line_vals["move_id"] = move.id move_line = move_line_obj.with_context( - check_move_validity=False).create(line_vals) + check_move_validity=False + ).create(line_vals) to_reconcile_lines.append(line + move_line) # Create counter-part counter_vals = self._prepare_counterpart_move_lines_vals( - deposit, total_debit, total_amount_currency) - counter_vals['move_id'] = move.id + deposit, total_debit, total_amount_currency + ) + counter_vals["move_id"] = move.id move_line_obj.create(counter_vals) if deposit.company_id.check_deposit_post_move: move.post() - deposit.write({'state': 'done', 'move_id': move.id}) + deposit.write({"state": "done", "move_id": move.id}) for reconcile_lines in to_reconcile_lines: reconcile_lines.reconcile() return True - @api.onchange('company_id') + @api.onchange("company_id") def onchange_company_id(self): if self.company_id: - bank_journals = self.env['account.journal'].search([ - ('company_id', '=', self.company_id.id), - ('type', '=', 'bank'), - ('bank_account_id', '!=', False)]) + bank_journals = self.env["account.journal"].search( + [ + ("company_id", "=", self.company_id.id), + ("type", "=", "bank"), + ("bank_account_id", "!=", False), + ] + ) if len(bank_journals) == 1: self.bank_journal_id = bank_journals[0] else: self.bank_journal_id = False - @api.onchange('journal_id') + @api.onchange("journal_id") def onchange_journal_id(self): if self.journal_id: if self.journal_id.currency_id: @@ -259,7 +324,6 @@ class AccountCheckDeposit(models.Model): self.currency_id = self.journal_id.company_id.currency_id def get_report(self): - report = self.env.ref( - 'account_check_deposit.report_account_check_deposit') + report = self.env.ref("account_check_deposit.report_account_check_deposit") action = report.report_action(self) return action diff --git a/account_check_deposit/models/account_move_line.py b/account_check_deposit/models/account_move_line.py index 0c3384303..16e4d6def 100644 --- a/account_check_deposit/models/account_move_line.py +++ b/account_check_deposit/models/account_move_line.py @@ -13,7 +13,5 @@ class AccountMoveLine(models.Model): _inherit = "account.move.line" check_deposit_id = fields.Many2one( - 'account.check.deposit', - string='Check Deposit', - copy=False, + comodel_name="account.check.deposit", string="Check Deposit", copy=False, ) diff --git a/account_check_deposit/models/res_company.py b/account_check_deposit/models/res_company.py index cedfe3fe2..6a657cfa6 100644 --- a/account_check_deposit/models/res_company.py +++ b/account_check_deposit/models/res_company.py @@ -9,15 +9,21 @@ from odoo import fields, models class ResCompany(models.Model): - _inherit = 'res.company' + _inherit = "res.company" - check_deposit_offsetting_account = fields.Selection([ - ('bank_account', 'Bank Account'), - ('transfer_account', 'Transfer Account'), - ], string='Check Deposit Offsetting Account', default='bank_account') + check_deposit_offsetting_account = fields.Selection( + selection=[ + ("bank_account", "Bank Account"), + ("transfer_account", "Transfer Account"), + ], + string="Check Deposit Offsetting Account", + default="bank_account", + ) check_deposit_transfer_account_id = fields.Many2one( - 'account.account', string='Transfer Account for Check Deposits', - ondelete='restrict', copy=False, - domain=[('reconcile', '=', True), ('deprecated', '=', False)]) - check_deposit_post_move = fields.Boolean( - string='Post Move for Check Deposits') + comodel_name="account.account", + string="Transfer Account for Check Deposits", + ondelete="restrict", + copy=False, + domain=[("reconcile", "=", True), ("deprecated", "=", False)], + ) + check_deposit_post_move = fields.Boolean(string="Post Move for Check Deposits") diff --git a/account_check_deposit/models/res_config_settings.py b/account_check_deposit/models/res_config_settings.py index 8dfcb28fd..4049988c3 100644 --- a/account_check_deposit/models/res_config_settings.py +++ b/account_check_deposit/models/res_config_settings.py @@ -6,16 +6,14 @@ from odoo import fields, models class ResConfigSettings(models.TransientModel): - _inherit = 'res.config.settings' + _inherit = "res.config.settings" check_deposit_offsetting_account = fields.Selection( - readonly=False, - related='company_id.check_deposit_offsetting_account', + related="company_id.check_deposit_offsetting_account", readonly=False ) check_deposit_transfer_account_id = fields.Many2one( - related='company_id.check_deposit_transfer_account_id', - readonly=False, + related="company_id.check_deposit_transfer_account_id", readonly=False ) check_deposit_post_move = fields.Boolean( - related='company_id.check_deposit_post_move', readonly=False, + related="company_id.check_deposit_post_move", readonly=False ) diff --git a/account_check_deposit/report/report.xml b/account_check_deposit/report/report.xml index 4f34b62b5..b6120242d 100644 --- a/account_check_deposit/report/report.xml +++ b/account_check_deposit/report/report.xml @@ -1,20 +1,17 @@ - - + - - - - diff --git a/account_check_deposit/report/report_checkdeposit.xml b/account_check_deposit/report/report_checkdeposit.xml index 9a7cc7da2..46f7a451d 100644 --- a/account_check_deposit/report/report_checkdeposit.xml +++ b/account_check_deposit/report/report_checkdeposit.xml @@ -1,89 +1,118 @@ - - + - - - diff --git a/account_check_deposit/security/check_deposit_security.xml b/account_check_deposit/security/check_deposit_security.xml index 150b6a01a..1151b0ef9 100644 --- a/account_check_deposit/security/check_deposit_security.xml +++ b/account_check_deposit/security/check_deposit_security.xml @@ -1,17 +1,15 @@ - - + - - Check Deposit multi-company - - ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + + ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] - diff --git a/account_check_deposit/tests/test_check_deposit.py b/account_check_deposit/tests/test_check_deposit.py index 922810823..2e330db28 100644 --- a/account_check_deposit/tests/test_check_deposit.py +++ b/account_check_deposit/tests/test_check_deposit.py @@ -2,29 +2,28 @@ # Copyright 2018 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.addons.account.tests.account_test_classes\ - import AccountingTestCase import time +from odoo.addons.account.tests.account_test_classes import AccountingTestCase + class TestPayment(AccountingTestCase): - def setUp(self): super(TestPayment, self).setUp() - self.register_payments_model = self.env['account.register.payments'] - self.payment_model = self.env['account.payment'] - self.journal_model = self.env['account.journal'] - self.account_account_model = self.env['account.account'] - self.invoice_model = self.env['account.invoice'] - self.invoice_line_model = self.env['account.invoice.line'] - self.acc_bank_stmt_model = self.env['account.bank.statement'] - self.acc_bank_stmt_line_model = self.env['account.bank.statement.line'] - self.res_partner_bank_model = self.env['res.partner.bank'] - self.check_deposit_model = self.env['account.check.deposit'] + self.register_payments_model = self.env["account.register.payments"] + self.payment_model = self.env["account.payment"] + self.journal_model = self.env["account.journal"] + self.account_model = self.env["account.account"] + self.invoice_model = self.env["account.invoice"] + self.invoice_line_model = self.env["account.invoice.line"] + self.acc_bank_stmt_model = self.env["account.bank.statement"] + self.acc_bank_stmt_line_model = self.env["account.bank.statement.line"] + self.res_partner_bank_model = self.env["res.partner.bank"] + self.check_deposit_model = self.env["account.check.deposit"] self.partner_agrolait = self.env.ref("base.res_partner_2") self.currency_eur_id = self.env.ref("base.EUR").id - self.main_company = self.env.ref('base.main_company') + self.main_company = self.env.ref("base.main_company") self.env.cr.execute( """UPDATE res_company SET currency_id = %s WHERE id = %s""", @@ -32,123 +31,141 @@ class TestPayment(AccountingTestCase): ) self.product = self.env.ref("product.product_product_4") self.payment_method_manual_in = self.env.ref( - "account.account_payment_method_manual_in") + "account.account_payment_method_manual_in" + ) self.payment_method_manual_out = self.env.ref( - "account.account_payment_method_manual_out") + "account.account_payment_method_manual_out" + ) # check if those accounts exist otherwise create them - self.account_receivable = self.account_account_model.search( - [('code', '=', '411100')], limit=1) + self.account_receivable = self.account_model.search( + [("code", "=", "411100")], limit=1 + ) if not self.account_receivable: - self.account_receivable = self.account_account_model.create( - {"code": '411100', - "name": "Debtors - (test)", - "reconcile": True, - "user_type_id": - self.ref('account.data_account_type_receivable') - }) + self.account_receivable = self.account_model.create( + { + "code": "411100", + "name": "Debtors - (test)", + "reconcile": True, + "user_type_id": self.ref("account.data_account_type_receivable"), + } + ) - self.account_revenue = self.account_account_model.search( - [('code', '=', '707100')], limit=1) + self.account_revenue = self.account_model.search( + [("code", "=", "707100")], limit=1 + ) if not self.account_revenue: - self.account_revenue = self.account_account_model.create( - {"code": '707100', - "name": "Product Sales - (test)", - "user_type_id": - self.ref('account.data_account_type_revenue') - }) + self.account_revenue = self.account_model.create( + { + "code": "707100", + "name": "Product Sales - (test)", + "user_type_id": self.ref("account.data_account_type_revenue"), + } + ) - self.received_check_account_id = self.account_account_model.search( - [('code', '=', '511200')], limit=1) + self.received_check_account_id = self.account_model.search( + [("code", "=", "511200")], limit=1 + ) if self.received_check_account_id: if not self.received_check_account_id.reconcile: self.received_check_account_id.reconcile = True else: - self.received_check_account_id = self.account_account_model.create( - {"code": '511200', - "name": "Received check - (test)", - "reconcile": True, - "user_type_id": - self.ref('account.data_account_type_liquidity') - }) - self.main_company.check_deposit_account_id = \ - self.account_account_model.search( - [('code', '=', '511201')], limit=1) + self.received_check_account_id = self.account_model.create( + { + "code": "511200", + "name": "Received check - (test)", + "reconcile": True, + "user_type_id": self.ref("account.data_account_type_liquidity"), + } + ) + self.main_company.check_deposit_account_id = self.account_model.search( + [("code", "=", "511201")], limit=1 + ) if not self.main_company.check_deposit_account_id: - self.main_company.check_deposit_account_id = \ - self.account_account_model.create( - {"code": '511201', - "name": "Check deposited in bank - (test)", - "reconcile": True, - "user_type_id": - self.ref('account.data_account_type_liquidity') - }) - self.bank_account_id = self.account_account_model.search( - [('code', '=', '512001')], limit=1) + self.main_company.check_deposit_account_id = self.account_model.create( + { + "code": "511201", + "name": "Check deposited in bank - (test)", + "reconcile": True, + "user_type_id": self.ref("account.data_account_type_liquidity"), + } + ) + self.bank_account_id = self.account_model.search( + [("code", "=", "512001")], limit=1 + ) if not self.bank_account_id: - self.bank_account_id = self.account_account_model.create( - {"code": '512001', - "name": "Bank - (test)", - "reconcile": True, - "user_type_id": - self.ref('account.data_account_type_liquidity') - }) + self.bank_account_id = self.account_model.create( + { + "code": "512001", + "name": "Bank - (test)", + "reconcile": True, + "user_type_id": self.ref("account.data_account_type_liquidity"), + } + ) - self.check_journal = self.journal_model.search( - [('code', '=', 'CHK')], limit=1) + self.check_journal = self.journal_model.search([("code", "=", "CHK")], limit=1) if not self.check_journal: self.check_journal = self.journal_model.create( - {'name': 'received check', 'type': 'bank', 'code': 'CHK'}) - self.check_journal.default_debit_account_id = \ - self.received_check_account_id - self.check_journal.default_credit_account_id = \ - self.received_check_account_id - self.bank_journal = self.journal_model.search( - [('code', '=', 'BNK1')], limit=1) + {"name": "received check", "type": "bank", "code": "CHK"} + ) + self.check_journal.default_debit_account_id = self.received_check_account_id + self.check_journal.default_credit_account_id = self.received_check_account_id + self.bank_journal = self.journal_model.search([("code", "=", "BNK1")], limit=1) if not self.bank_journal: self.bank_journal = self.journal_model.create( - {'name': 'Bank', 'type': 'bank', 'code': 'BNK1'}) + {"name": "Bank", "type": "bank", "code": "BNK1"} + ) self.bank_journal.default_debit_account_id = self.bank_account_id self.bank_journal.default_credit_account_id = self.bank_account_id self.partner_bank_id = self.res_partner_bank_model.search( - [('partner_id', '=', self.main_company.partner_id.id)], limit=1) + [("partner_id", "=", self.main_company.partner_id.id)], limit=1 + ) if not self.partner_bank_id: self.partner_bank_id = self.res_partner_bank_model.create( - {"acc_number": 'SI56 1910 0000 0123 438 584', - "partner_id": self.main_company.partner_id.id, - }) + { + "acc_number": "SI56 1910 0000 0123 438 584", + "partner_id": self.main_company.partner_id.id, + } + ) self.bank_journal.bank_account_id = self.partner_bank_id.id - def create_invoice(self, amount=100, inv_type='out_invoice', currency_id=None): + def create_invoice(self, amount=100, inv_type="out_invoice", currency_id=None): """ Returns an open invoice """ - invoice = self.invoice_model.create({ - 'partner_id': self.partner_agrolait.id, - 'currency_id': currency_id, - 'name': inv_type == 'out_invoice' and - 'invoice to client' or 'invoice to supplier', - 'account_id': self.account_receivable.id, - 'type': inv_type, - 'date_invoice': time.strftime('%Y-%m-%d'), - }) - self.invoice_line_model.create({ - 'product_id': self.product.id, - 'quantity': 1, - 'price_unit': amount, - 'invoice_id': invoice.id, - 'name': 'something', - 'account_id': self.account_revenue.id, - }) + invoice = self.invoice_model.create( + { + "partner_id": self.partner_agrolait.id, + "currency_id": currency_id, + "name": inv_type == "out_invoice" + and "invoice to client" + or "invoice to supplier", + "account_id": self.account_receivable.id, + "type": inv_type, + "date_invoice": time.strftime("%Y-%m-%d"), + } + ) + self.invoice_line_model.create( + { + "product_id": self.product.id, + "quantity": 1, + "price_unit": amount, + "invoice_id": invoice.id, + "name": "something", + "account_id": self.account_revenue.id, + } + ) invoice.action_invoice_open() return invoice def create_check_deposit(self, move_lines): """ Returns an validated check deposit """ - check_deposit = self.check_deposit_model.create({ - 'journal_id': self.bank_journal.id, - 'bank_journal_id': self.bank_journal.id, - 'deposit_date': time.strftime('%Y-%m-%d'), - 'currency_id': self.currency_eur_id, - }) + check_deposit = self.check_deposit_model.create( + { + "journal_id": self.bank_journal.id, + "bank_journal_id": self.bank_journal.id, + "deposit_date": time.strftime("%Y-%m-%d"), + "currency_id": self.currency_eur_id, + } + ) for move_line in move_lines: move_line.check_deposit_id = check_deposit check_deposit.validate_deposit() @@ -157,38 +174,35 @@ class TestPayment(AccountingTestCase): def test_full_payment_process(self): """ Create a payment for on invoice by check, post it and create check deposit""" - inv_1 = self.create_invoice( - amount=100, currency_id=self.currency_eur_id) - inv_2 = self.create_invoice( - amount=200, currency_id=self.currency_eur_id) + inv_1 = self.create_invoice(amount=100, currency_id=self.currency_eur_id) + inv_2 = self.create_invoice(amount=200, currency_id=self.currency_eur_id) - ctx = { - 'active_model': 'account.invoice', - 'active_ids': [ - inv_1.id, - inv_2.id]} - register_payments = self.register_payments_model.with_context( - ctx).create({ - 'payment_date': time.strftime('%Y-%m-%d'), - 'journal_id': self.check_journal.id, - 'payment_method_id': self.payment_method_manual_in.id, - }) + ctx = {"active_model": "account.invoice", "active_ids": [inv_1.id, inv_2.id]} + register_payments = self.register_payments_model.with_context(ctx).create( + { + "payment_date": time.strftime("%Y-%m-%d"), + "journal_id": self.check_journal.id, + "payment_method_id": self.payment_method_manual_in.id, + } + ) register_payments.create_payments() payment = self.payment_model.search([], order="id desc", limit=1) self.assertAlmostEquals(payment.amount, 300) - self.assertEqual(payment.state, 'posted') - self.assertEqual(inv_1.state, 'paid') - self.assertEqual(inv_2.state, 'paid') + self.assertEqual(payment.state, "posted") + self.assertEqual(inv_1.state, "paid") + self.assertEqual(inv_2.state, "paid") check_aml = payment.move_line_ids.filtered( - lambda r: r.account_id == self.received_check_account_id) + lambda r: r.account_id == self.received_check_account_id + ) check_deposit = self.create_check_deposit([check_aml]) liquidity_aml = check_deposit.move_id.line_ids.filtered( - lambda r: r.account_id != self.received_check_account_id) + lambda r: r.account_id != self.received_check_account_id + ) self.assertEqual(check_deposit.total_amount, 300) self.assertEqual(liquidity_aml.debit, 300) - self.assertEqual(check_deposit.move_id.state, 'draft') - self.assertEqual(check_deposit.state, 'done') + self.assertEqual(check_deposit.move_id.state, "draft") + self.assertEqual(check_deposit.state, "done") diff --git a/account_check_deposit/views/account_deposit_view.xml b/account_check_deposit/views/account_deposit_view.xml index b1a79da76..05ac80972 100644 --- a/account_check_deposit/views/account_deposit_view.xml +++ b/account_check_deposit/views/account_deposit_view.xml @@ -1,4 +1,4 @@ - + - - account.check.deposit
-
-
- - - - - + + + + + - - - - - + + + + + - + context="{'currency': currency_id, + 'journal_id': journal_id}" + > - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -88,59 +103,70 @@
- account.check.deposit.tree account.check.deposit - - - - - - - - - - + + + + + + + + + + - account.check.deposit.search account.check.deposit - - - + + + - - - - + + + + - Checks Deposits account.check.deposit tree,form - - - +
diff --git a/account_check_deposit/views/account_move_line_view.xml b/account_check_deposit/views/account_move_line_view.xml index 84635e024..446d24e08 100644 --- a/account_check_deposit/views/account_move_line_view.xml +++ b/account_check_deposit/views/account_move_line_view.xml @@ -1,13 +1,10 @@ - - + - - account.move.line @@ -17,5 +14,4 @@ - diff --git a/account_check_deposit/views/res_config_settings_views.xml b/account_check_deposit/views/res_config_settings_views.xml index 5fe09306a..fdc5ba21f 100644 --- a/account_check_deposit/views/res_config_settings_views.xml +++ b/account_check_deposit/views/res_config_settings_views.xml @@ -1,48 +1,62 @@ - + - res.config.settings.view.form.account_check_deposit res.config.settings - +

Check Deposits

-
-
+
+
-
-
-
+
+
-
-
+
-
-