处理 sf-销售-委外的按钮关联订单数据显示不全 问题

This commit is contained in:
yuxianghui
2025-05-22 11:35:53 +08:00
parent a2b2faaa95
commit e9fc78186e

View File

@@ -194,17 +194,15 @@ class ReSaleOrder(models.Model):
@api.depends('order_line.purchase_line_ids.order_id')
def _compute_purchase_order_count(self):
for order in self:
order.purchase_order_count = len(order._get_purchase_orders().filtered(
lambda po: po.purchase_type not in ['outsourcing']))
order.consignment_purchase_order_count = len(order._get_sale_to_purchase('outsourcing'))
order.purchase_order_count = len(order._get_sale_to_purchase('outsourcing'))
order.consignment_purchase_order_count = len(order._get_sale_to_purchase_1('outsourcing'))
def action_view_purchase_orders(self):
"""
采购
"""
self.ensure_one()
purchase_order_ids = self._get_purchase_orders().filtered(
lambda po: po.purchase_type not in ['outsourcing']).ids
purchase_order_ids = self._get_sale_to_purchase('outsourcing')
action = {
'res_model': 'purchase.order',
'type': 'ir.actions.act_window',
@@ -222,12 +220,20 @@ class ReSaleOrder(models.Model):
})
return action
def _get_sale_to_purchase(self, purchase_type):
"""查询满足条件的采购订单"""
purchase_order_ids = self._get_purchase_orders().filtered(
lambda po: po.purchase_type not in ['outsourcing']).ids
order_ids = self.env['purchase.order'].sudo().search(
[('origin', '=', self.name), ('purchase_type', '!=', purchase_type)]).ids
return list(set(purchase_order_ids) | set(order_ids))
def action_view_consignment_purchase_orders(self):
"""
委外加工
"""
self.ensure_one()
outsourcing_purchase_order_ids = self._get_sale_to_purchase('outsourcing')
outsourcing_purchase_order_ids = self._get_sale_to_purchase_1('outsourcing')
action = {
'res_model': 'purchase.order',
'type': 'ir.actions.act_window',
@@ -245,7 +251,7 @@ class ReSaleOrder(models.Model):
})
return action
def _get_sale_to_purchase(self, purchase_type):
def _get_sale_to_purchase_1(self, purchase_type):
"""查询满足条件的采购订单"""
purchase_order_ids = self._get_purchase_orders().filtered(
lambda po: po.purchase_type == purchase_type).ids