修改sf下发欠单,bfm接收下发欠单,及处理发货单的关系
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from . import stock_picking
|
from . import stock_picking
|
||||||
|
from . import stock_backorder_confirmation
|
||||||
27
sf_stock/models/stock_backorder_confirmation.py
Normal file
27
sf_stock/models/stock_backorder_confirmation.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# -*- 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
|
||||||
@@ -5,6 +5,7 @@ from odoo import models, fields, api
|
|||||||
|
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
import logging
|
import logging
|
||||||
|
from odoo.tools import date_utils
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -15,22 +16,64 @@ class StockPicking(models.Model):
|
|||||||
# 重写验证,下发发货到bfm
|
# 重写验证,下发发货到bfm
|
||||||
def button_validate(self):
|
def button_validate(self):
|
||||||
info = super(StockPicking, self).button_validate()
|
info = super(StockPicking, self).button_validate()
|
||||||
if self.picking_type_id.code == 'outgoing':
|
if self.picking_type_code == 'outgoing':
|
||||||
self.send_to_bfm()
|
self.send_to_bfm()
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
def deal_move_ids(self, send_move_ids):
|
||||||
|
move_ids = [] # 本次发货单
|
||||||
|
if send_move_ids:
|
||||||
|
for item in send_move_ids:
|
||||||
|
val = {
|
||||||
|
'name': item.product_id.upload_model_file.display_name,
|
||||||
|
'quantity_done': item.quantity_done,
|
||||||
|
'date': date_utils.json_default(item.date) if item.date else None,
|
||||||
|
'description_picking': item.description_picking,
|
||||||
|
'date_deadline': date_utils.json_default(item.date_deadline) if item.date_deadline else None,
|
||||||
|
'product_uom_qty': item.product_uom_qty,
|
||||||
|
'sequence': item.sequence,
|
||||||
|
'price_unit': item.price_unit,
|
||||||
|
'priority': item.priority
|
||||||
|
}
|
||||||
|
move_ids.append(val)
|
||||||
|
return move_ids
|
||||||
|
|
||||||
|
def deal_send_backorder_id(self, backorder_ids1):
|
||||||
|
backorder_ids = []
|
||||||
|
if backorder_ids1:
|
||||||
|
for item in backorder_ids1:
|
||||||
|
val = {
|
||||||
|
'receiverName': item.receiverName,
|
||||||
|
'name': item.sale_id.default_code,
|
||||||
|
'send_no': item.name,
|
||||||
|
'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,
|
||||||
|
'move_ids': self.deal_move_ids(item.move_ids),
|
||||||
|
}
|
||||||
|
backorder_ids.append(val)
|
||||||
|
return backorder_ids
|
||||||
|
|
||||||
def send_to_bfm(self):
|
def send_to_bfm(self):
|
||||||
# 下发发货到bfm
|
# 下发发货到bfm
|
||||||
config = self.env['res.config.settings'].get_values()
|
config = self.env['res.config.settings'].get_values()
|
||||||
json1 = {
|
|
||||||
|
data = {
|
||||||
'params': {
|
'params': {
|
||||||
'name': self.origin,
|
'receiverName': self.receiverName,
|
||||||
|
'name': self.sale_id.default_code,
|
||||||
'send_no': self.name,
|
'send_no': self.name,
|
||||||
'qty_done': self.move_line_ids.qty_done,
|
'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,
|
||||||
|
'move_ids': self.deal_move_ids(self.move_ids),
|
||||||
|
'backorder_id': self.deal_send_backorder_id(self.backorder_id),
|
||||||
|
'backorder_ids': self.deal_send_backorder_id(self.backorder_ids)
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
url1 = config['bfm_url_new'] + '/api/stock/deliver_goods'
|
url1 = config['bfm_url_new'] + '/api/stock/deliver_goods'
|
||||||
r = requests.post(url1, json=json1, data=None)
|
r = requests.post(url1, json=data, data=None)
|
||||||
if r.status_code == 200:
|
if r.status_code == 200:
|
||||||
result = json.loads(r.json()['result'])
|
result = json.loads(r.json()['result'])
|
||||||
if result['code'] != 200:
|
if result['code'] != 200:
|
||||||
|
|||||||
Reference in New Issue
Block a user