1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/pos_settle_due/models/res_partner.py
2024-12-10 09:04:09 +07:00

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