diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index f6787b10..ba6e9d20 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -21,6 +21,7 @@ from odoo.addons.sf_base.commons.common import Common from odoo.exceptions import UserError from io import BytesIO from odoo.exceptions import ValidationError +from dateutil.relativedelta import relativedelta class stockWarehouse(models.Model): @@ -727,6 +728,33 @@ class StockPicking(models.Model): production.workorder_ids.write({'back_button_display': False}) return res + def _prepare_subcontract_mo_vals(self, subcontract_move, bom): + subcontract_move.ensure_one() + group = self.env['procurement.group'].sudo().search([('name', '=', self.name)]) + if not group: + group = self.env['procurement.group'].create({ + 'name': self.name, + 'partner_id': self.partner_id.id, + }) + product = subcontract_move.product_id + warehouse = self._get_warehouse(subcontract_move) + vals = { + 'company_id': subcontract_move.company_id.id, + 'procurement_group_id': group.id, + 'subcontractor_id': subcontract_move.picking_id.partner_id.commercial_partner_id.id, + 'picking_ids': [subcontract_move.picking_id.id], + 'product_id': product.id, + 'product_uom_id': subcontract_move.product_uom.id, + 'bom_id': bom.id, + 'location_src_id': subcontract_move.picking_id.partner_id.with_company(subcontract_move.company_id).property_stock_subcontractor.id, + 'location_dest_id': subcontract_move.picking_id.partner_id.with_company(subcontract_move.company_id).property_stock_subcontractor.id, + 'product_qty': subcontract_move.product_uom_qty, + 'picking_type_id': warehouse.subcontracting_type_id.id, + 'date_planned_start': subcontract_move.date - relativedelta(days=product.produce_delay) + } + return vals + + # 创建 外协出库入单 def create_outcontract_picking(self, workorders, item, sorted_workorders): production = workorders[0].production_id