提交 847e9d52 authored 作者: 贺阳's avatar 贺阳

增加导出的向导

上级 37bf0f2d
from . import export_bl_and_package_xlsx
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
batch_input_ship_package_status_wizard_group_user,batch_input_ship_package_status_wizard_group_user,ccs_base.model_batch_input_ship_package_status_wizard,base.group_user,1,1,1,1
export_bl_big_package_xlsx_wizard_group_user,export_bl_big_package_xlsx_wizard_group_user,ccs_base.model_export_bl_big_package_xlsx_wizard,base.group_user,1,1,1,1
......
# -*- coding: utf-8 -*-
from . import batch_input_ship_package_statu_wizard
# from . import push_result
from . import export_bl_big_package_xlsx_wizard
# from . import again_push_wizard
# from . import parcel_exception_wizard
# from . import big_bag_pickup_wizard
......
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, api, fields
from odoo.exceptions import Warning, ValidationError
class ExportBlBigPackageXlsxWizard(models.TransientModel):
_name = 'export.bl.big.package.xlsx.wizard'
_description = '导出报关文件'
# 增加选择类型字段, 按节点和按面单号(多条)
select_type = fields.Selection([
('yes', 'YES'),
('no', 'NO')
], string='Whether to export in Big packages')
# 批量更新小包状态
def submit(self):
# 确认数据
if not self.is_ok:
raise ValidationError('请确认以上数据正确.')
parcels = self.get_process_package()
if not parcels:
raise ValidationError('没有找到要更新的小包.')
# 判断异常状态是否选择了异常原因
reason_obj = self.env['cc.node.exception.reason'].search([('code_id', '=', self.update_status.id)])
if reason_obj and not self.node_exception_reason_id:
raise ValidationError('请选择异常原因!')
# 更新状态
parcels.write(
{'state': self.update_status.id, 'node_exception_reason_id': self.node_exception_reason_id.id,
'process_time': self.process_time, 'state_explain': self.state_explain, 'is_sync': False})
# 生成sns日志
# self.bl_id.message_post(body='%s更新为%s' % (self.current_status.name or '', self.update_status.name or ''))
# 跳转显示本次更新状态的小包
return {
'name': '更新小包状态',
'type': 'ir.actions.act_window',
'res_model': 'cc.ship.package',
'view_mode': 'tree,form',
'domain': [('id', 'in', parcels.ids)],
}
def export_order_big_package_xls_action(self):
error_order = []
for item in self:
item.ship_package_ids
parcel_ids = item.big_package_ids.mapped('ship_package_ids')
if not parcel_ids:
error_order.append(item.master_business_no)
continue
good_parcels = parcel_ids.filtered(lambda x: x.item_text)
if len(good_parcels) == 0:
error_order.append(item.master_business_no)
if error_order:
raise ValidationError(f"{','.join(error_order)},没有任何商品信息可导出报关数据")
arr = [item.id for item in self]
return {
'type': 'ir.actions.act_url',
'url': '/export/flight_package/xls/%s/%s' % (arr,self.select_type),
'target': 'new',
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论