diff --git a/sf_demand_plan/models/sf_production_demand_plan.py b/sf_demand_plan/models/sf_production_demand_plan.py
index 79fcb99b..1e1459d3 100644
--- a/sf_demand_plan/models/sf_production_demand_plan.py
+++ b/sf_demand_plan/models/sf_production_demand_plan.py
@@ -196,11 +196,14 @@ class SfProductionDemandPlan(models.Model):
else:
line.model_long = None
- @api.depends('product_id.model_long', 'product_id.model_width', 'product_id.model_height')
+ @api.depends('product_id.model_long', 'product_id.model_width', 'product_id.model_height', 'product_id.blank_type')
def _compute_embryo_long(self):
for line in self:
if line.product_id:
- line.embryo_long = f"{round(line.product_id.model_long, 3)}*{round(line.product_id.model_width, 3)}*{round(line.product_id.model_height, 3)}"
+ if line.product_id.blank_type == '圆料':
+ line.embryo_long = f"Ø{round(line.product_id.model_width, 3)}*{round(line.product_id.model_long, 3)}"
+ else:
+ line.embryo_long = f"{round(line.product_id.model_long, 3)}*{round(line.product_id.model_width, 3)}*{round(line.product_id.model_height, 3)}"
else:
line.embryo_long = None
@@ -399,29 +402,30 @@ class SfProductionDemandPlan(models.Model):
outsourcing_purchase_request.extend(pr_ids.ids)
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_数量
- total_product_qty = sum(line.product_qty for line in bom_line_ids)
- bom_product_ids = bom_line_ids.mapped('product_id')
- product_purchase_orders = self.env['purchase.order'].sudo().search([
- ('state', 'in', ('purchase', 'done')),
- ('order_line.product_id', 'in', bom_product_ids.ids)
- ])
- # 购订单_数量
- total_outsourcing_purchase_quantity = sum(
- sum(
- order.order_line.filtered(
- lambda line: line.product_id in bom_product_ids
- ).mapped('product_qty')
+ if bom_line_ids:
+ # BOM_数量
+ total_product_qty = sum(line.product_qty for line in bom_line_ids)
+ bom_product_ids = bom_line_ids.mapped('product_id')
+ product_purchase_orders = self.env['purchase.order'].sudo().search([
+ ('state', 'in', ('purchase', 'done')),
+ ('order_line.product_id', 'in', bom_product_ids.ids)
+ ])
+ # 购订单_数量
+ total_outsourcing_purchase_quantity = sum(
+ sum(
+ order.order_line.filtered(
+ 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,
- precision_rounding=record.product_id.uom_id.rounding) == -1:
- purchase_request = self.env['purchase.request'].sudo().search(
- [('line_ids.product_id', 'in', bom_product_ids.ids),
- ('line_ids.purchase_state', 'not in', ('purchase', 'done')), ('state', '!=', 'done')])
- outsourcing_purchase_request.extend(purchase_request.ids)
+ quantity = total_outsourcing_purchase_quantity / total_product_qty
+ if float_compare(quantity, record.product_uom_qty,
+ precision_rounding=record.product_id.uom_id.rounding) == -1:
+ purchase_request = self.env['purchase.request'].sudo().search(
+ [('line_ids.product_id', 'in', bom_product_ids.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)
if outsourcing_purchase_request:
record.hide_action_purchase_orders = True
diff --git a/sf_demand_plan/views/demand_plan.xml b/sf_demand_plan/views/demand_plan.xml
index 24a2707e..5b9c425a 100644
--- a/sf_demand_plan/views/demand_plan.xml
+++ b/sf_demand_plan/views/demand_plan.xml
@@ -28,7 +28,7 @@
-
+