Accept Merge Request #2247: (feature/齐套检查与下达生产 -> develop)

Merge Request: 需求计划修改

Created By: @管欢
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @管欢
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2247
This commit is contained in:
管欢
2025-06-23 14:26:02 +08:00
committed by Coding

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