[ADD]pw_sale_total_qty
This commit is contained in:
40
pw_sale_total_qty/models/sale_order.py
Normal file
40
pw_sale_total_qty/models/sale_order.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
|
||||
class SaleOrder(models.Model):
|
||||
_inherit = 'sale.order'
|
||||
|
||||
pw_total_product_uom_qty = fields.Float(string="Total Demand Qty", compute='_compute_pw_total_product_uom_qty')
|
||||
pw_total_qty_delivered = fields.Float(string="Total Delivered Qty", compute='_compute_pw_total_qty_delivered')
|
||||
pw_total_qty_invoiced = fields.Float(string="Total Invoiced Qty", compute='_compute_pw_total_qty_invoiced')
|
||||
pw_remaining_delivery = fields.Float(string="Pending Delivery Qty", compute="_compute_pw_remaining_delivery")
|
||||
pw_remaining_invoice = fields.Float(string="Pending Invoice Qty", compute="_compute_pw_remaining_invoice")
|
||||
|
||||
@api.depends('order_line.product_uom_qty')
|
||||
def _compute_pw_total_product_uom_qty(self):
|
||||
for order in self:
|
||||
order.pw_total_product_uom_qty = sum(order.order_line.mapped('product_uom_qty'))
|
||||
|
||||
@api.depends('order_line.qty_delivered')
|
||||
def _compute_pw_total_qty_delivered(self):
|
||||
for order in self:
|
||||
order.pw_total_qty_delivered = sum(order.order_line.mapped('qty_delivered'))
|
||||
|
||||
@api.depends('order_line.qty_invoiced')
|
||||
def _compute_pw_total_qty_invoiced(self):
|
||||
for order in self:
|
||||
order.pw_total_qty_invoiced = sum(order.order_line.mapped('qty_invoiced'))
|
||||
|
||||
@api.depends('order_line.product_uom_qty', 'order_line.qty_delivered')
|
||||
def _compute_pw_remaining_delivery(self):
|
||||
for order in self:
|
||||
delivery_qty = sum(order.order_line.filtered(lambda x: x.product_id.type != 'service').mapped('product_uom_qty'))
|
||||
delivered_qty = sum(order.order_line.mapped('qty_delivered'))
|
||||
order.pw_remaining_delivery = delivery_qty - delivered_qty
|
||||
|
||||
@api.depends('pw_total_product_uom_qty', 'pw_total_qty_invoiced')
|
||||
def _compute_pw_remaining_invoice(self):
|
||||
for order in self:
|
||||
order.pw_remaining_invoice = order.pw_total_product_uom_qty - order.pw_total_qty_invoiced
|
Reference in New Issue
Block a user