diff --git a/sf_stock/models/__init__.py b/sf_stock/models/__init__.py index 313cb109..c62a4dff 100644 --- a/sf_stock/models/__init__.py +++ b/sf_stock/models/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- -from . import stock_picking -from . import stock_backorder_confirmation \ No newline at end of file +from . import stock_picking \ No newline at end of file diff --git a/sf_stock/models/stock_backorder_confirmation.py b/sf_stock/models/stock_backorder_confirmation.py deleted file mode 100644 index 4e894381..00000000 --- a/sf_stock/models/stock_backorder_confirmation.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -import json -import requests -from odoo import models, fields, api - -from odoo.exceptions import UserError -import logging -from odoo.tools import date_utils - -_logger = logging.getLogger(__name__) - - -class StockBackorderConfirmation(models.TransientModel): - _inherit = 'stock.backorder.confirmation' - - # 继承创建欠单 - def process(self): - info = super(StockBackorderConfirmation, self).process() - _logger.info("创建欠单") - # 下发创建欠单到bfm - - return info - - # 继承取消创建欠单 - def process_cancel_backorder(self): - info = super(StockBackorderConfirmation, self).process_cancel_backorder() - return info diff --git a/sf_stock/models/stock_picking.py b/sf_stock/models/stock_picking.py index b995f812..37f24bf0 100644 --- a/sf_stock/models/stock_picking.py +++ b/sf_stock/models/stock_picking.py @@ -13,6 +13,8 @@ _logger = logging.getLogger(__name__) class StockPicking(models.Model): _inherit = 'stock.picking' + cancel_backorder_ids = fields.Boolean(default=False, string='是否取消后置单据') + # 重写验证,下发发货到bfm def button_validate(self): info = super(StockPicking, self).button_validate() @@ -63,6 +65,7 @@ class StockPicking(models.Model): 'scheduled_date': date_utils.json_default(item.scheduled_date) if item.scheduled_date else None, 'date': date_utils.json_default(item.date) if item.date else None, 'date_deadline': date_utils.json_default(item.date_deadline) if item.date_deadline else None, + 'date_done': date_utils.json_default(item.date_done) if item.date_done else None, 'move_ids': move_ids, 'move_line_ids': move_line_ids, 'state': item.state, @@ -71,23 +74,26 @@ class StockPicking(models.Model): return backorder_ids def send_to_bfm(self): + skip_backorder = self.env.context.get('skip_backorder') # 下发发货到bfm config = self.env['res.config.settings'].get_values() move_ids, move_line_ids = self.deal_move_ids(self.move_ids, self.move_line_ids) data = { 'params': { 'receiverName': self.receiverName, + 'priority': self.priority, 'name': self.sale_id.default_code, 'send_no': self.name, 'scheduled_date': date_utils.json_default(self.scheduled_date) if self.scheduled_date else None, 'date': date_utils.json_default(self.date) if self.date else None, 'date_deadline': date_utils.json_default(self.date_deadline) if self.date_deadline else None, + 'date_done': date_utils.json_default(self.date_done) if self.date_done else None, 'move_ids': move_ids, 'move_line_ids': move_line_ids, 'state': self.state, 'backorder_id': self.deal_send_backorder_id(self.backorder_id), - 'backorder_ids': self.deal_send_backorder_id(self.backorder_ids) - + 'backorder_ids': self.deal_send_backorder_id(self.backorder_ids), + 'cancel_backorder_ids': skip_backorder, }, } url1 = config['bfm_url_new'] + '/api/stock/deliver_goods'