diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py
index 1f73121ffed..5f6a06308f3 100644
--- a/addons/point_of_sale/models/pos_config.py
+++ b/addons/point_of_sale/models/pos_config.py
@@ -5,6 +5,27 @@ import uuid
from odoo import api, fields, models, _
from odoo.exceptions import UserError
+
+class AccountCashboxLine(models.Model):
+ _inherit = 'account.cashbox.line'
+
+ default_pos_id = fields.Many2one('pos.config', string='This cashbox line is used by default when opening or closing a balance for this point of sale')
+
+class AccountBankStmtCashWizard(models.Model):
+ _inherit = 'account.bank.statement.cashbox'
+
+ @api.model
+ def default_get(self, fields):
+ vals = super(AccountBankStmtCashWizard, self).default_get(fields)
+ config_id = self.env.context.get('default_pos_id')
+ if config_id:
+ lines = self.env['account.cashbox.line'].search([('default_pos_id', '=', config_id)])
+ if self.env.context.get('balance', False) == 'start':
+ vals['cashbox_lines_ids'] = [[0, 0, {'coin_value': line.coin_value, 'number': line.number, 'subtotal': line.subtotal}] for line in lines]
+ else:
+ vals['cashbox_lines_ids'] = [[0, 0, {'coin_value': line.coin_value, 'number': 0, 'subtotal': 0.0}] for line in lines]
+ return vals
+
class PosConfig(models.Model):
_name = 'pos.config'
@@ -92,6 +113,7 @@ class PosConfig(models.Model):
help="The product used to encode the customer tip. Leave empty if you do not accept tips.")
fiscal_position_ids = fields.Many2many('account.fiscal.position', string='Fiscal Positions')
default_fiscal_position_id = fields.Many2one('account.fiscal.position', string='Default Fiscal Position')
+ default_cashbox_lines_ids = fields.One2many('account.cashbox.line', 'default_pos_id', string='Default Balance')
@api.depends('journal_id.currency_id', 'journal_id.company_id.currency_id')
def _compute_currency(self):
diff --git a/addons/point_of_sale/views/pos_config_view.xml b/addons/point_of_sale/views/pos_config_view.xml
index 77f30c9830f..22c7f04f93e 100644
--- a/addons/point_of_sale/views/pos_config_view.xml
+++ b/addons/point_of_sale/views/pos_config_view.xml
@@ -44,7 +44,6 @@
-
@@ -54,6 +53,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/point_of_sale/views/pos_session_view.xml b/addons/point_of_sale/views/pos_session_view.xml
index 4cf44bbf1f3..c5e070251f8 100644
--- a/addons/point_of_sale/views/pos_session_view.xml
+++ b/addons/point_of_sale/views/pos_session_view.xml
@@ -52,14 +52,14 @@
class="oe_stat_button"
attrs="{'invisible':['|', ('cash_control', '=', False), ('state', '!=', 'opening_control')]}"
icon="fa-money"
- type="action" context="{'balance': 'start', 'bank_statement_id': cash_register_id}">
+ type="action" context="{'balance': 'start', 'bank_statement_id': cash_register_id, 'default_pos_id': config_id}">
Set Opening Balance