forked from Mapan/odoo17e
23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import fields, models
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
def get_total_due(self, pos_currency):
|
|
pos_payments = self.env['pos.order'].search([
|
|
('partner_id', '=', self.id), ('state', '=', 'paid'),
|
|
('session_id.state', '!=', 'closed')]).mapped('payment_ids')
|
|
total_settled = sum(pos_payments.filtered_domain(
|
|
[('payment_method_id.type', '=', 'pay_later')]).mapped('amount'))
|
|
self_sudo = self
|
|
group_pos_user = self.env.ref('point_of_sale.group_pos_user')
|
|
if group_pos_user in self.env.user.groups_id:
|
|
self_sudo = self.sudo() # allow POS users without accounting rights to settle dues
|
|
if self.env.company.currency_id.id != pos_currency:
|
|
pos_currency = self.env['res.currency'].browse(pos_currency)
|
|
return self.env.company.currency_id._convert(self_sudo.total_due, pos_currency, self.env.company, fields.Date.today()) + total_settled
|
|
return self_sudo.total_due + total_settled
|