提交 1239e8f6 authored 作者: 贺阳's avatar 贺阳

增加批量推送通过文件

上级 1bd2ab63
......@@ -45,8 +45,10 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
next_code_ids = fields.Many2many('cc.node', 'node_next_node_wizard_rel', 'node_id', 'next_node_id', 'Next Node',
related='current_status.next_code_ids')
update_status = fields.Many2one('cc.node', 'Update Node')
select_tracking_no = fields.Text('Select TrackingNo', help='A TrackingNo no is one line')
exclude_tracking_no = fields.Text('Exclude TrackingNo', help='A TrackingNo no is one line')
select_tracking_no = fields.Text('Select TrackingNo',
help='A TrackingNo no is one line,separate multiple tracking numbers with line breaks')
exclude_tracking_no = fields.Text('Exclude TrackingNo',
help='A TrackingNo no is one line,separate multiple tracking numbers with line breaks')
update_package_count = fields.Integer('Select Package Count', compute='_compute_update_package_count')
......@@ -97,7 +99,7 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
if self.select_type == 'tracking_no':
if self.select_tracking_no:
tracking_no_list = self.select_tracking_no.split(',')
tracking_no_list = self.select_tracking_no.split('\n')
tracking_no_list = [i.strip() for i in tracking_no_list if i.strip()]
parcels = self.env['cc.ship.package'].search(
[('bl_id', '=', self.bl_id.id), ('tracking_no', 'in', tracking_no_list)])
......
......@@ -11,6 +11,13 @@
<field name="arch" type="xml">
<form string="更新包裹进度">
<sheet>
<!-- <group>-->
<!-- <div>-->
<!-- <span style="color:red">-->
<!-- </span>-->
<!-- </div>-->
<!-- </group>-->
<group>
<field name="bl_id" required="1"/>
<field name="select_type" required="1"/>
......@@ -18,9 +25,12 @@
attrs="{'invisible':[('select_type','=','tracking_no')],'required':[('select_type','=','node')]}"
domain="[('node_type','=','package')]"/>
<field name="next_code_ids" invisible="1"/>
<field name="exclude_tracking_no" placeholder="多个单号 换行隔开"
<!-- 多个单号 用换行进行分隔-->
<field name="exclude_tracking_no"
placeholder="Separate multiple tracking numbers with line breaks"
attrs="{'invisible':[('select_type','=','tracking_no')]}"/>
<field name="select_tracking_no" placeholder="多个单号用‘,’符隔开"
<field name="select_tracking_no"
placeholder="Separate multiple tracking numbers with line breaks"
attrs="{'invisible':[('select_type','=','node')],'required':[('select_type','=','tracking_no')]}"/>
<field name="update_package_count"/>
<separator/>
......
......@@ -68,14 +68,15 @@ class CcClearanceFile(models.Model):
request_id = response_data['requestID']
code = response_data['code']
self.env['ao.tt.api.log'].sudo().create_api_log(self.file_name or '', '清关文件回传:' + error_msg, '', code,
request_id, source='推出')
request_id, source='推出')
return error_msg
else:
# 清关文件回传成功
self.is_upload = True
self.upload_time = datetime.now()
request_id = response_data['requestID']
self.env['ao.tt.api.log'].sudo().create_api_log(self.file_name or '', '', '', 0, request_id, source='推出')
self.env['ao.tt.api.log'].sudo().create_api_log(self.file_name or '', '', '', 0, request_id,
source='推出')
return ''
# 重载action_upload方法
......@@ -141,8 +142,9 @@ class CcShipPackage(models.Model):
for record in self:
record.is_sync = True
self.env['cc.ship.package.sync.log'].sudo().create_sync_log(record.id, 'Tiktok', record.state.tk_code,
record.state_explain,
record.process_time.strftime('%Y-%m-%d %H:%M:%S'))
record.state_explain,
record.process_time.strftime(
'%Y-%m-%d %H:%M:%S'))
def get_callback_track_data(self):
"""小包上传数据."""
......@@ -177,17 +179,19 @@ class CcShipPackage(models.Model):
request_id = response_data['requestID']
code = response_data['code']
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '小包状态轨迹回传:' + error_msg, '',
code,
request_id, source='推出')
code,
request_id, source='推出')
return error_msg
else:
# 清关文件回传成功
self.is_sync = True
self.env['cc.ship.package.sync.log'].sudo().create_sync_log(self.id, 'Tiktok', self.state.tk_code,
self.state_explain,
self.process_time.strftime('%Y-%m-%d %H:%M:%S'))
self.state_explain,
self.process_time.strftime(
'%Y-%m-%d %H:%M:%S'))
request_id = response_data['requestID']
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '', '', 0, request_id, source='推出')
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '', '', 0, request_id,
source='推出')
return ''
......@@ -214,3 +218,11 @@ class CcBl(models.Model):
for package in ship_packages:
package.callback_track()
return True
def batch_action_sync(self):
"""
批量回传通过文件
"""
for item in self:
for line in item.cc_attachment_ids:
line.action_sync()
......@@ -2,7 +2,7 @@
<odoo>
<data>
<!-- # 继承ccs_base模块的ee视图,增加tt_code字段在列表中-->
<!-- # 继承ccs_base模块的ee视图,增加tt_code字段在列表中-->
<record model="ir.ui.view" id="tree_cc_bl_view_inherit">
<field name="name">tree_cc_bl_view_inherit</field>
<field name="model">cc.bl</field>
......@@ -23,13 +23,17 @@
<!-- # header之间增加一个按钮,调用自定义的方法-->
<header position="inside">
<button name="callback_track" string="Sync Package Status" type="object"/>
<button name="batch_action_sync" string="Sync Package Attachment" type="object"/>
</header>
<button name="action_show_ship_package" position="replace">
<button name="action_show_ship_package" type="object"
class="oe_stat_button" icon="fa-box">
<div class="o_stat_info">
Not Sync: <field name="unsync_package_count" widget="badge" decoration-danger="1 == 1"/> / All:<field name="bl_ship_package_qty"/>
Not Sync:
<field name="unsync_package_count" widget="badge" decoration-danger="1 == 1"/>
/ All:
<field name="bl_ship_package_qty"/>
<span class="o_stat_text">Ship Packages</span>
</div>
</button>
......@@ -39,7 +43,7 @@
</record>
<!-- # 继承ccs_base模块的cc_ship_package_view.xml视图,增加is_sync字段在列表中-->
<!-- # 继承ccs_base模块的cc_ship_package_view.xml视图,增加is_sync字段在列表中-->
<record model="ir.ui.view" id="tree_cc_ship_package_view_inherit">
<field name="name">tree_cc_ship_package_view_inherit</field>
<field name="model">cc.ship.package</field>
......@@ -51,12 +55,12 @@
</field>
<tree position="attributes">
<attribute name="decoration-danger">is_sync == False</attribute>
<attribute name="decoration-danger">is_sync == False</attribute>
</tree>
</field>
</record>
<!-- # 继承ccs_base模块的search_cc_ship_package_view视图,装置加未同步的筛选条件-->
<!-- # 继承ccs_base模块的search_cc_ship_package_view视图,装置加未同步的筛选条件-->
<record model="ir.ui.view" id="search_cc_ship_package_view_inherit">
<field name="name">search_cc_ship_package_view_inherit</field>
<field name="model">cc.ship.package</field>
......@@ -68,7 +72,7 @@
</field>
</record>
# 继承ccs_base模块的form_cc_ship_package_view视图,增加同步日志列表在notebook中
# 继承ccs_base模块的form_cc_ship_package_view视图,增加同步日志列表在notebook中
<record model="ir.ui.view" id="form_cc_ship_package_view_inherit">
<field name="name">form_cc_ship_package_view_inherit</field>
<field name="model">cc.ship.package</field>
......@@ -83,7 +87,5 @@
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -33,7 +33,7 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
for item in self:
exclude_tracking_no = ''
if item.ship_package_ids:
exclude_tracking_no = ','.join([line.tracking_no for line in item.ship_package_ids])
exclude_tracking_no = '\n'.join([line.tracking_no for line in item.ship_package_ids])
item.exclude_tracking_no = exclude_tracking_no
ship_package_ids = fields.Many2many('cc.ship.package', '_update_state_package_wizard_rel', 'wizard_id',
......@@ -52,7 +52,7 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
package_model = self.env['cc.ship.package']
if item.select_type == 'tracking_no':
if item.select_tracking_no:
tracking_no_list = item.select_tracking_no.split(',')
tracking_no_list = item.select_tracking_no.split('\n')
tracking_no_list = [i.strip() for i in tracking_no_list if i.strip()]
package_obj = package_model.search(
[('bl_id', '=', item.bl_id.id), ('tracking_no', 'in', tracking_no_list)])
......@@ -95,7 +95,7 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
else:
if len(self.ship_package_ids) > 0:
raise ValidationError(
'单号[%s]不能更新' % ','.join([package.tracking_no for package in self.ship_package_ids]))
'单号[%s]不能更新' % '\n'.join([package.tracking_no for package in self.ship_package_ids]))
obj = super(BatchInputShipPackageStatusWizard, self).submit()
# 生成sns日志
self.bl_id.message_post(body='[%s]%s更新为[%s]%s' % (
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论