处理 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') @api.depends('order_line.purchase_line_ids.order_id')
def _compute_purchase_order_count(self): def _compute_purchase_order_count(self):
for order in self: for order in self:
order.purchase_order_count = len(order._get_purchase_orders().filtered( order.purchase_order_count = len(order._get_sale_to_purchase('outsourcing'))
lambda po: po.purchase_type not in ['outsourcing'])) order.consignment_purchase_order_count = len(order._get_sale_to_purchase_1('outsourcing'))
order.consignment_purchase_order_count = len(order._get_sale_to_purchase('outsourcing'))
def action_view_purchase_orders(self): def action_view_purchase_orders(self):
""" """
采购 采购
""" """
self.ensure_one() self.ensure_one()
purchase_order_ids = self._get_purchase_orders().filtered( purchase_order_ids = self._get_sale_to_purchase('outsourcing')
lambda po: po.purchase_type not in ['outsourcing']).ids
action = { action = {
'res_model': 'purchase.order', 'res_model': 'purchase.order',
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
@@ -222,12 +220,20 @@ class ReSaleOrder(models.Model):
}) })
return action 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): def action_view_consignment_purchase_orders(self):
""" """
委外加工 委外加工
""" """
self.ensure_one() 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 = { action = {
'res_model': 'purchase.order', 'res_model': 'purchase.order',
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
@@ -245,7 +251,7 @@ class ReSaleOrder(models.Model):
}) })
return action 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( purchase_order_ids = self._get_purchase_orders().filtered(
lambda po: po.purchase_type == purchase_type).ids lambda po: po.purchase_type == purchase_type).ids