提交 41b92d36 authored 作者: 贺阳's avatar 贺阳

提单号和转单号统一转格式

上级 f2ac2de9
...@@ -572,13 +572,13 @@ class CcBL(models.Model): ...@@ -572,13 +572,13 @@ class CcBL(models.Model):
for record in self: for record in self:
if record.transfer_bl_no: if record.transfer_bl_no:
# 1. 不能与本单提单号重复 # 1. 不能与本单提单号重复
if record.bl_no and record.transfer_bl_no == record.bl_no: bl_no = self.env['common.common'].sudo().process_match_str(record.bl_no)
transfer_bl_no = self.env['common.common'].sudo().process_match_str(record.transfer_bl_no)
if bl_no and transfer_bl_no == bl_no:
raise ValidationError(_('The Transfer B/L No. cannot be the same as the B/L No.')) raise ValidationError(_('The Transfer B/L No. cannot be the same as the B/L No.'))
# 2. 不能与其他单据的提单号重复 # 2. 不能与其他单据的提单号重复
other = self.env['cc.bl'].search([ other = self.env['cc.bl'].deal_bl_no_and_transfer_bl_no(transfer_bl_no,
('bl_no', '=', record.transfer_bl_no), domain=[('id', '!=', record.id)])
('id', '!=', record.id)
], limit=1)
if other: if other:
raise ValidationError(_('The Transfer B/L No. cannot be the same as the B/L No.')) raise ValidationError(_('The Transfer B/L No. cannot be the same as the B/L No.'))
...@@ -884,15 +884,15 @@ class CcBL(models.Model): ...@@ -884,15 +884,15 @@ class CcBL(models.Model):
:param bl_no: :param bl_no:
:return: :return:
""" """
processed_bl_no = bl_no.replace('-', '').replace(' ', '').lower() processed_bl_no = self.env['common.common'].sudo().process_match_str(bl_no)
# 查询所有提单并处理它们的 bl_no # 查询所有提单并处理它们的 bl_no
domain = [('state', 'in', state_arr)] if state_arr else [] domain = [('state', 'in', state_arr)] if state_arr else []
all_bl_obj = self.env['cc.bl'].sudo().search(domain) all_bl_obj = self.env['cc.bl'].sudo().search(domain)
bl_obj = all_bl_obj.filtered( bl_obj = all_bl_obj.filtered(
lambda r: r.bl_no.replace('-', '').replace(' ', '').lower() == processed_bl_no) # 提单 lambda r: r.bl_no and self.env['common.common'].sudo().process_match_str(r.bl_no) == processed_bl_no) # 提单
return bl_obj return bl_obj
def deal_bl_no_and_transfer_bl_no(self, bl_no, state_arr=[]): def deal_bl_no_and_transfer_bl_no(self, bl_no, state_arr=[], domain=[]):
""" """
优先匹配提单号,匹配不到则匹配转单号 优先匹配提单号,匹配不到则匹配转单号
匹配规则与提单号匹配规则一致:去掉杠和空格,转换为小写 匹配规则与提单号匹配规则一致:去掉杠和空格,转换为小写
...@@ -900,20 +900,21 @@ class CcBL(models.Model): ...@@ -900,20 +900,21 @@ class CcBL(models.Model):
:param state_arr: :param state_arr:
:return: :return:
""" """
processed_bl_no = bl_no.replace('-', '').replace(' ', '').lower() processed_bl_no = self.env['common.common'].sudo().process_match_str(bl_no)
# 查询所有提单并处理它们的 bl_no # 查询所有提单并处理它们的 bl_no
domain = [('state', 'in', state_arr)] if state_arr else [] domain = [('state', 'in', state_arr)] if state_arr else []
domain.extend(domain)
all_bl_obj = self.env['cc.bl'].sudo().search(domain) all_bl_obj = self.env['cc.bl'].sudo().search(domain)
# 优先匹配提单号 # 优先匹配提单号
bl_obj = all_bl_obj.filtered( bl_obj = all_bl_obj.filtered(
lambda r: r.bl_no and r.bl_no.replace('-', '').replace(' ', '').lower() == processed_bl_no) lambda r: r.bl_no and self.env['common.common'].sudo().process_match_str(r.bl_no) == processed_bl_no)
# 如果提单号匹配不到,则匹配转单号 # 如果提单号匹配不到,则匹配转单号
if not bl_obj: if not bl_obj:
bl_obj = all_bl_obj.filtered( bl_obj = all_bl_obj.filtered(
lambda r: r.transfer_bl_no and r.transfer_bl_no.replace('-', '').replace(' ', lambda r: r.transfer_bl_no and self.env['common.common'].sudo().process_match_str(
'').lower() == processed_bl_no) r.transfer_bl_no) == processed_bl_no)
return bl_obj return bl_obj
......
...@@ -93,8 +93,8 @@ class BatchUpdateTransferBlNoWizard(models.TransientModel): ...@@ -93,8 +93,8 @@ class BatchUpdateTransferBlNoWizard(models.TransientModel):
is_error = False is_error = False
for order_item in order_list: for order_item in order_list:
cause_arr = [] cause_arr = []
bl_no = order_item.get('bl_no') bl_no = self.env['common.common'].sudo().process_match_str(order_item.get('bl_no'))
transfer_bl_no = order_item.get('transfer_bl_no') transfer_bl_no = self.env['common.common'].sudo().process_match_str(order_item.get('transfer_bl_no'))
if not bl_no: if not bl_no:
cause_arr.append(_('B/L No is required')) # 提单号必填 cause_arr.append(_('B/L No is required')) # 提单号必填
else: else:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论