diff --git a/addons/account/models/account_bank_statement.py b/addons/account/models/account_bank_statement.py index 553b6080cc6..b63543a6b0f 100644 --- a/addons/account/models/account_bank_statement.py +++ b/addons/account/models/account_bank_statement.py @@ -517,6 +517,8 @@ class AccountBankStatementLine(models.Model): partner_type = 'supplier' else: partner_type = 'customer' + if not partner_type and self.env.context.get('default_partner_type'): + partner_type = self.env.context['default_partner_type'] currency = self.journal_id.currency_id or self.company_id.currency_id payment_methods = (total > 0) and self.journal_id.inbound_payment_method_ids or self.journal_id.outbound_payment_method_ids return { diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py index dfc2b605790..72ea7718c08 100644 --- a/addons/account/models/account_payment.py +++ b/addons/account/models/account_payment.py @@ -496,14 +496,14 @@ class account_payment(models.Model): @api.onchange('payment_type') def _onchange_payment_type(self): - if not self.invoice_ids: + if not self.invoice_ids and not self.partner_type: # Set default partner type for the payment type if self.payment_type == 'inbound': self.partner_type = 'customer' elif self.payment_type == 'outbound': self.partner_type = 'supplier' - else: - self.partner_type = False + elif self.payment_type not in ('inbound', 'outbound'): + self.partner_type = False # Set payment method domain res = self._onchange_journal() if not res.get('domain', {}): diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml index 5523f98d85a..40755b20e45 100644 --- a/addons/account/views/account_payment_view.xml +++ b/addons/account/views/account_payment_view.xml @@ -92,8 +92,8 @@ - - + + diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 1c1a4bbe840..8303f2ec7ae 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -975,7 +975,7 @@ class PosOrder(models.Model): self.env['account.bank.statement.line'].with_context(context).create(args) self.amount_paid = sum(payment.amount for payment in self.statement_ids) return args.get('statement_id', False) - + def _prepare_refund_order_data(self, current_session=None): """ Prepare data for the creation of refund order based on the current order's data. Inheritance may inject its own data here @@ -999,7 +999,7 @@ class PosOrder(models.Model): 'amount_total': -self.amount_total, 'amount_paid': 0, } - + @api.multi def refund(self): """Create a copy of order for refund order""" @@ -1245,10 +1245,10 @@ class ReportSaleDetails(models.AbstractModel): SELECT aj.name, sum(amount) total FROM account_bank_statement_line AS absl, account_bank_statement AS abs, - account_journal AS aj + account_journal AS aj WHERE absl.statement_id = abs.id - AND abs.journal_id = aj.id - AND absl.id IN %s + AND abs.journal_id = aj.id + AND absl.id IN %s GROUP BY aj.name """, (tuple(st_line_ids),)) payments = self.env.cr.dictfetchall() diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py index 502536c785f..d7a7f77c7fc 100644 --- a/addons/point_of_sale/models/pos_session.py +++ b/addons/point_of_sale/models/pos_session.py @@ -282,7 +282,7 @@ class PosSession(models.Model): # Close CashBox for session in self: company_id = session.config_id.company_id.id - ctx = dict(self.env.context, force_company=company_id, company_id=company_id) + ctx = dict(self.env.context, force_company=company_id, company_id=company_id, default_partner_type='customer') for st in session.statement_ids: if abs(st.difference) > st.journal_id.amount_authorized_diff: # The pos manager can close statements with maximums.