需求计划下达计划
This commit is contained in:
@@ -22,5 +22,22 @@ class MrpProduction(models.Model):
|
|||||||
|
|
||||||
def _get_purchase_request(self):
|
def _get_purchase_request(self):
|
||||||
"""获取跟制造订单相关的采购申请单(根据采购申请单行项目的产品匹配)"""
|
"""获取跟制造订单相关的采购申请单(根据采购申请单行项目的产品匹配)"""
|
||||||
pr_ids = self.env['purchase.request'].sudo().search([('line_ids.demand_plan_line_id', 'in', self.demand_plan_line_id.ids)])
|
pr_ids = self.env['purchase.request'].sudo().search(
|
||||||
|
[('line_ids.demand_plan_line_id', 'in', self.demand_plan_line_id.ids)])
|
||||||
return pr_ids
|
return pr_ids
|
||||||
|
|
||||||
|
@api.depends('procurement_group_id', 'procurement_group_id.stock_move_ids.group_id')
|
||||||
|
def _compute_picking_ids(self):
|
||||||
|
for order in self:
|
||||||
|
if order.product_id.product_tmpl_id.single_manufacturing == True and not order.is_remanufacture:
|
||||||
|
first_order = self.env['mrp.production'].search(
|
||||||
|
[('demand_plan_line_id', '=', order.demand_plan_line_id.id), ('product_id', '=', order.product_id.id)], limit=1, order='id asc')
|
||||||
|
order.picking_ids = self.env['stock.picking'].search([
|
||||||
|
('group_id', '=', first_order.procurement_group_id.id), ('group_id', '!=', False),
|
||||||
|
])
|
||||||
|
order.delivery_count = len(first_order.picking_ids)
|
||||||
|
else:
|
||||||
|
order.picking_ids = self.env['stock.picking'].search([
|
||||||
|
('group_id', '=', order.procurement_group_id.id), ('group_id', '!=', False),
|
||||||
|
])
|
||||||
|
order.delivery_count = len(order.picking_ids)
|
||||||
|
|||||||
@@ -178,6 +178,16 @@ class SfProductionDemandPlan(models.Model):
|
|||||||
if line_ids:
|
if line_ids:
|
||||||
raise ValidationError(_("计划量不能小于等于0"))
|
raise ValidationError(_("计划量不能小于等于0"))
|
||||||
|
|
||||||
|
@api.constrains('new_supply_method')
|
||||||
|
def _check_new_supply_method(self):
|
||||||
|
product_name = []
|
||||||
|
for line in self:
|
||||||
|
if line.new_supply_method == 'purchase' and line.is_incoming_material:
|
||||||
|
product_name.append(line.product_id.display_name)
|
||||||
|
if product_name:
|
||||||
|
unique_product_names = list(set(product_name))
|
||||||
|
raise UserError('当前(%s)产品为客供料,不能选择外购' % ','.join(unique_product_names))
|
||||||
|
|
||||||
@api.depends('new_supply_method')
|
@api.depends('new_supply_method')
|
||||||
def _compute_custom_made_type(self):
|
def _compute_custom_made_type(self):
|
||||||
DemandPlan = self.env['sf.production.demand.plan'].sudo()
|
DemandPlan = self.env['sf.production.demand.plan'].sudo()
|
||||||
|
|||||||
@@ -44,7 +44,8 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
if productions:
|
if productions:
|
||||||
# 修改需求计划中的程序工时
|
# 修改需求计划中的程序工时
|
||||||
demand_plan = request.env['sf.production.demand.plan'].with_user(
|
demand_plan = request.env['sf.production.demand.plan'].with_user(
|
||||||
request.env.ref("base.user_admin")).search([('model_id', '=', ret['folder_name'])])
|
request.env.ref("base.user_admin")).search(
|
||||||
|
[('model_id', '=', ret['folder_name']), ('new_supply_method', '=', 'custom_made')])
|
||||||
if demand_plan and ret['total_estimated_time']:
|
if demand_plan and ret['total_estimated_time']:
|
||||||
demand_plan.write(
|
demand_plan.write(
|
||||||
{'processing_time': ret['total_estimated_time']})
|
{'processing_time': ret['total_estimated_time']})
|
||||||
|
|||||||
Reference in New Issue
Block a user