Files
sale-tools/sale_outstanding/models/sale.py
clementthomas f0db28ab8a [IMP] sale_outstanding: computation of sum_pending_work
management of "ordered_timesheet" service products
2023-04-25 10:31:33 +02:00

22 lines
1.1 KiB
Python

from odoo import _, api, fields, models
class SaleOrder(models.Model):
_inherit = "sale.order"
@api.depends("order_line.qty_delivered", "order_line.qty_invoiced", "order_line.qty_to_invoice", "order_line.price_unit")
def _compute_sum_outstanding(self):
for order in self:
lines_outstanding = order.order_line.mapped(lambda r:(r.qty_to_invoice * r.price_unit))
order["sum_outstanding"] = sum(lines_outstanding)
@api.depends("order_line.qty_delivered", "order_line.product_uom_qty", "order_line.price_unit")
def _compute_sum_pending_work(self):
for order in self:
lines_pending_work = order.order_line.mapped(lambda r:((r.product_uom_qty - r.qty_delivered) * r.price_unit) if not r.product_id or r.product_id.service_policy != 'ordered_timesheet' else 0)
order["sum_pending_work"] = sum(lines_pending_work)
sum_outstanding = fields.Monetary(_("Outstanding Untaxed"), readonly=True, store=True, compute="_compute_sum_outstanding")
sum_pending_work = fields.Monetary(_("To Do Untaxed"), readonly=True, store=True, compute="_compute_sum_pending_work")