提交 cde63e51 authored 作者: 贺阳's avatar 贺阳

1、按托盘理货和交货的接口

上级 24b04c21
...@@ -24,10 +24,10 @@ class CcPallet(models.Model): ...@@ -24,10 +24,10 @@ class CcPallet(models.Model):
'express_company_name': self.express_company_id.name,#快递公司名称 'express_company_name': self.express_company_id.name,#快递公司名称
'usage_state': self.usage_state,#使用状态 unused未使用 used已使用 'usage_state': self.usage_state,#使用状态 unused未使用 used已使用
'print_state': self.print_state,#打印状态 unprinted未打印 printed已打印 'print_state': self.print_state,#打印状态 unprinted未打印 printed已打印
'sorting_time': self.sorting_time,#托盘理货时间 'sorting_time': str(self.sorting_time) if self.sorting_time else '',#托盘理货时间
'delivery_time': self.delivery_time,#托盘交货时间 'delivery_time': str(self.delivery_time) if self.delivery_time else '',#托盘交货时间
'package_count': self.package_count,#大包数量 'package_count': self.package_count,#大包数量
'partner_id': self.partner_id.id,#使用客户id 'partner_id': self.partner_id.id,#使用客户id
'partner_name': self.partner_id.name,#使用客户名称 'partner_name': self.partner_id.name,#使用客户名称
'delivery_plate_number': self.delivery_plate_number,#托盘交付车牌号 'delivery_plate_number': self.delivery_plate_number or '',#托盘交付车牌号
} }
\ No newline at end of file
...@@ -9,6 +9,7 @@ from odoo import models, fields, api, _ ...@@ -9,6 +9,7 @@ from odoo import models, fields, api, _
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
class CcPallet(models.Model): class CcPallet(models.Model):
# 模型名称 # 模型名称
_name = 'cc.pallet' _name = 'cc.pallet'
...@@ -73,7 +74,7 @@ class CcPallet(models.Model): ...@@ -73,7 +74,7 @@ class CcPallet(models.Model):
pallet.delivery_time = False pallet.delivery_time = False
# 托盘号(年月+4位数,不能重复生成) # 托盘号(年月+4位数,不能重复生成)
name = fields.Char(string=_('Pallet Number'), copy=False,help=_('Pallet number format: YYYYMM + 4 digits')) name = fields.Char(string=_('Pallet Number'), copy=False, help=_('Pallet number format: YYYYMM + 4 digits'))
# 托盘归属快递 # 托盘归属快递
express_company_id = fields.Many2one('cc.last.mile.provider', string=_('Express Company'), index=True) express_company_id = fields.Many2one('cc.last.mile.provider', string=_('Express Company'), index=True)
# 使用状态 # 使用状态
...@@ -103,11 +104,15 @@ class CcPallet(models.Model): ...@@ -103,11 +104,15 @@ class CcPallet(models.Model):
# 托盘交付车牌号 # 托盘交付车牌号
delivery_plate_number = fields.Char(string=_('Delivery Plate Number')) delivery_plate_number = fields.Char(string=_('Delivery Plate Number'))
def update_pallet_info(self, **kwargs):
"""更新托盘信息"""
if kwargs.get('delivery_plate_number', ''):
self.delivery_plate_number = kwargs['delivery_plate_number']
# 当大包关联到托盘时,自动更新使用状态 # 当大包关联到托盘时,自动更新使用状态
def update_usage_state(self,success_package,usage_date): def update_usage_state(self, success_package, usage_date):
"""更新托盘使用状态""" """更新托盘使用状态"""
for pallet in self: for pallet in self:
if pallet.package_ids:
pallet.usage_state = 'used' pallet.usage_state = 'used'
# 关联大包到托盘 # 关联大包到托盘
pallet.package_ids = [(4, package_id.id, 0) for package_id in success_package] pallet.package_ids = [(4, package_id.id, 0) for package_id in success_package]
...@@ -121,13 +126,13 @@ class CcPallet(models.Model): ...@@ -121,13 +126,13 @@ class CcPallet(models.Model):
related_packages = package.bl_id.big_package_ids.filtered( related_packages = package.bl_id.big_package_ids.filtered(
lambda p: p.pallet_number == new_pallet_number) # 查找对应提单下相同托盘号的所有大包 lambda p: p.pallet_number == new_pallet_number) # 查找对应提单下相同托盘号的所有大包
warning_package_arr = [related_package.big_package_no for related_package in related_packages if warning_package_arr = [related_package.big_package_no for related_package in related_packages if
related_package.pallet_usage_date != usage_date] str(related_package.pallet_usage_date) != usage_date]
if warning_package_arr: if warning_package_arr:
raise ValidationError( raise ValidationError(
_('Big Package No :%s ,The same bill of lading, same pallet number, and usage date must be consistent!') % ( _('Big Package No :%s ,The same bill of lading, same pallet number, and usage date must be consistent!') % (
'\n'.join(warning_package_arr))) # 大包号关联的同一提单,同一托盘号,使用日期必须一致 '\n'.join(warning_package_arr))) # 大包号关联的同一提单,同一托盘号,使用日期必须一致
# 更新大包的托盘信息 # 更新大包的托盘信息
package.update_pallet_info(new_pallet_number, usage_date,pallet.id) package.update_pallet_info(new_pallet_number, usage_date, pallet.id)
if old_pallet_number: if old_pallet_number:
# %s %s更改了托盘号,由%s变更为%s,托盘使用日期%s变更为%s # %s %s更改了托盘号,由%s变更为%s,托盘使用日期%s变更为%s
...@@ -145,9 +150,6 @@ class CcPallet(models.Model): ...@@ -145,9 +150,6 @@ class CcPallet(models.Model):
body = _('%s at %s associated %d packages to pallet %s') % ( body = _('%s at %s associated %d packages to pallet %s') % (
self.env.user.name, fields.Datetime.now(), len(success_package), pallet.name) self.env.user.name, fields.Datetime.now(), len(success_package), pallet.name)
pallet.message_post(body=body) pallet.message_post(body=body)
else:
pallet.usage_state = 'unused'
def action_print_labels(self): def action_print_labels(self):
"""打印标签动作""" """打印标签动作"""
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论