34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from collections import defaultdict
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.tools import OrderedSet
|
|
|
|
|
|
# _get_surface_technics_purchase_ids
|
|
class PurchaseOrder(models.Model):
|
|
_inherit = 'purchase.order'
|
|
def button_confirm(self):
|
|
super().button_confirm()
|
|
workorders = self.env['mrp.workorder'].search([('purchase_id', '=', self.id)])
|
|
for workorder in workorders:
|
|
if workorder.routing_type == '表面工艺' and workorder.is_subcontract is True:
|
|
move_out = workorder.move_subcontract_workorder_ids[1]
|
|
# move_out = self.env['stock.move'].search(
|
|
# [('location_id', '=', self.env['stock.location'].search(
|
|
# [('barcode', 'ilike', 'WH-PREPRODUCTION')]).id),
|
|
# ('location_dest_id', '=', self.env['stock.location'].search(
|
|
# [('barcode', 'ilike', 'VL-SPOC')]).id),
|
|
# ('origin', '=', self.production_id.name), ('state', 'not in', ['cancel', 'done'])])
|
|
for mo in move_out:
|
|
if mo.state != 'done':
|
|
mo.write({'state': 'assigned', 'production_id': False})
|
|
if not mo.move_line_ids:
|
|
self.env['stock.move.line'].create(mo.get_move_line(workorder.production_id, workorder))
|
|
return True
|
|
class PurchaseOrderLine(models.Model):
|
|
_inherit = 'purchase.order.line'
|
|
part_number = fields.Char('零件图号', related='product_id.part_number', readonly=True)
|