# -*- coding: utf-8 -*- # Part of YiZuo. See LICENSE file for full copyright and licensing details. import logging from odoo.exceptions import UserError, ValidationError from datetime import datetime from odoo import models, api, fields, _ class ProductionWizard(models.TransientModel): _name = 'sf.production.wizard' _description = '制造订单向导' production_id = fields.Many2one('mrp.production', string='制造订单号') is_reprogramming = fields.Boolean(string='申请重新编程', default=True) is_remanufacture = fields.Boolean(string='重新生成制造订单', default=True) def confirm(self): if self.is_reprogramming is True: self.production_id.update_programming_state() self.production_id.action_cancel() self.production_id.detection_result_ids.write({'handle_result': '已处理'}) self.production_id.write({'state': 'cancel', 'scrap_ids': [(0, 0, { 'name': self.env['ir.sequence'].next_by_code('stock.scrap') or _('New'), 'product_id': self.production_id.product_id.id, 'scrap_qty': 1, 'lot_id': self.production_id.move_line_raw_ids.lot_id.id, 'location_id': self.production_id.move_raw_ids.filtered(lambda x: x.state not in ( 'done', 'cancel')) and self.production_id.location_src_id.id or self.production_id.location_dest_id.id, 'scrap_location_id': self.env['stock.scrap']._get_default_scrap_location_id(), 'state': 'done'})]})