Files
odoo-usability/sale_stock_usability_akretion/models/sale_order.py
2024-12-31 11:01:01 +01:00

38 lines
1.4 KiB
Python

# Copyright 2015-2024 Akretion France (https://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
from odoo.tools import float_compare, float_round
class SaleOrder(models.Model):
_inherit = 'sale.order'
warehouse_id = fields.Many2one(tracking=True)
incoterm = fields.Many2one(tracking=True)
incoterm_location = fields.Char(tracking=True)
picking_policy = fields.Selection(tracking=True)
def report_qty_to_deliver(self):
# Can be useful for delivery report
self.ensure_one()
res = []
prec = self.env['decimal.precision'].precision_get(
'Product Unit of Measure')
for line in self.order_line:
if (
line.product_id.type == 'consu' and
float_compare(
line.product_uom_qty, line.qty_delivered,
precision_digits=prec) > 0):
qty_to_deliver = float_round(
line.product_uom_qty - line.qty_delivered, precision_digits=prec)
res.append({
'product': line.product_id,
'name': line.name,
'uom': line.product_uom,
'qty_to_deliver': qty_to_deliver,
})
return res