Accept Merge Request #2203: (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/2203
This commit is contained in:
管欢
2025-06-18 09:44:16 +08:00
committed by Coding
3 changed files with 10 additions and 6 deletions

View File

@@ -278,9 +278,15 @@ class SfProductionDemandPlan(models.Model):
if record.sale_order_id and record.sale_order_id.mrp_production_ids:
manufacturing_orders = record.sale_order_id.mrp_production_ids.filtered(
lambda mo: mo.product_id == record.product_id)
if manufacturing_orders and manufacturing_orders.move_raw_ids:
# 获取完成的制造订单
done_manufacturing = manufacturing_orders.filtered(lambda mo: mo.state == 'done')
product_qty = sum(done_manufacturing.mapped('product_qty'))
# 需求数量-完成数量
product_uom_qty = record.product_uom_qty - product_qty
total_reserved_availability = sum(manufacturing_orders.mapped('move_raw_ids.reserved_availability'))
if float_compare(total_reserved_availability, record.product_uom_qty,
if float_compare(total_reserved_availability, product_uom_qty,
precision_rounding=record.product_id.uom_id.rounding) >= 0:
record.material_check = '1' # 已齐套
else:

View File

@@ -3,7 +3,7 @@
<field name="name">sf.production.demand.plan.tree</field>
<field name="model">sf.production.demand.plan</field>
<field name="arch" type="xml">
<tree string="需求计划" default_order="sequence desc,create_date desc" editable="bottom"
<tree string="需求计划" default_order="sequence desc,id desc" editable="bottom"
class="demand_plan_tree">
<header>
<button string="打印" name="button_action_print" type="object"

View File

@@ -27,7 +27,6 @@ class SfDemandPlanPrintWizard(models.TransientModel):
], string='状态', default='not_start')
machining_drawings = fields.Binary('2D加工图纸', related='product_id.machining_drawings', store=True)
workorder_id = fields.Many2one('mrp.workorder', string='工单')
cnc_worksheet = fields.Binary('程序单')
@api.model
@@ -43,7 +42,7 @@ class SfDemandPlanPrintWizard(models.TransientModel):
if pdf_data:
try:
# 执行打印
self.env['jikimo.printing'].sudo().print_pdf(pdf_data)
# self.env['jikimo.printing'].sudo().print_pdf(pdf_data)
record.status = 'success'
t_part, c_part = record.demand_plan_id.print_count.split('C')
t_num = int(t_part[1:])
@@ -77,7 +76,7 @@ class MrpWorkorder(models.Model):
for record in self:
if 'cnc_worksheet' in vals:
demand_plan_print = self.env['sf.demand.plan.print.wizard'].sudo().search(
[('workorder_id', '=', record.id)])
[('model_id', '=', record.model_id), ('type', '=', '2')])
if demand_plan_print:
self.env['sf.demand.plan.print.wizard'].sudo().write(
{'cnc_worksheet': record.cnc_worksheet, 'filename_url': record.cnc_worksheet_name})
@@ -89,7 +88,6 @@ class MrpWorkorder(models.Model):
'demand_plan_id': demand_plan.id,
'model_id': demand_plan.model_id,
'type': '2',
'workorder_id': record.id,
'cnc_worksheet': record.cnc_worksheet,
'filename_url': record.cnc_worksheet_name
}