需求计划修改

This commit is contained in:
guanhuan
2025-06-23 13:59:37 +08:00
parent 9ad06b4361
commit 0d76d1a7d3

View File

@@ -403,29 +403,30 @@ class SfProductionDemandPlan(models.Model):
outsourcing_purchase_request.extend(pr_ids.ids) outsourcing_purchase_request.extend(pr_ids.ids)
if record.supply_method == 'outsourcing' and not record.sale_order_line_id.is_incoming_material: if record.supply_method == 'outsourcing' and not record.sale_order_line_id.is_incoming_material:
bom_line_ids = record.product_id.bom_ids.bom_line_ids bom_line_ids = record.product_id.bom_ids.bom_line_ids
# BOM_数量 if bom_line_ids:
total_product_qty = sum(line.product_qty for line in bom_line_ids) # BOM_数量
bom_product_ids = bom_line_ids.mapped('product_id') total_product_qty = sum(line.product_qty for line in bom_line_ids)
product_purchase_orders = self.env['purchase.order'].sudo().search([ bom_product_ids = bom_line_ids.mapped('product_id')
('state', 'in', ('purchase', 'done')), product_purchase_orders = self.env['purchase.order'].sudo().search([
('order_line.product_id', 'in', bom_product_ids.ids) ('state', 'in', ('purchase', 'done')),
]) ('order_line.product_id', 'in', bom_product_ids.ids)
# 购订单_数量 ])
total_outsourcing_purchase_quantity = sum( # 购订单_数量
sum( total_outsourcing_purchase_quantity = sum(
order.order_line.filtered( sum(
lambda line: line.product_id in bom_product_ids order.order_line.filtered(
).mapped('product_qty') lambda line: line.product_id in bom_product_ids
).mapped('product_qty')
)
for order in product_purchase_orders
) )
for order in product_purchase_orders quantity = total_outsourcing_purchase_quantity / total_product_qty
) if float_compare(quantity, record.product_uom_qty,
quantity = total_outsourcing_purchase_quantity / total_product_qty precision_rounding=record.product_id.uom_id.rounding) == -1:
if float_compare(quantity, record.product_uom_qty, purchase_request = self.env['purchase.request'].sudo().search(
precision_rounding=record.product_id.uom_id.rounding) == -1: [('line_ids.product_id', 'in', bom_product_ids.ids),
purchase_request = self.env['purchase.request'].sudo().search( ('line_ids.purchase_state', 'not in', ('purchase', 'done')), ('state', '!=', 'done')])
[('line_ids.product_id', 'in', bom_product_ids.ids), outsourcing_purchase_request.extend(purchase_request.ids)
('line_ids.purchase_state', 'not in', ('purchase', 'done')), ('state', '!=', 'done')])
outsourcing_purchase_request.extend(purchase_request.ids)
record.outsourcing_purchase_request = json.dumps(outsourcing_purchase_request) record.outsourcing_purchase_request = json.dumps(outsourcing_purchase_request)
if outsourcing_purchase_request: if outsourcing_purchase_request:
record.hide_action_purchase_orders = True record.hide_action_purchase_orders = True