提交 9ba5f382 authored 作者: 贺阳's avatar 贺阳

接口传语言 根据语言返回错误信息

上级 543edc4a
......@@ -2,7 +2,7 @@
import math
import re
from odoo import http, fields, exceptions,_
from odoo import http, fields, exceptions, _
from odoo.http import request
import logging
import json
......@@ -10,6 +10,15 @@ import random
_logger = logging.getLogger(__name__)
bill_noexist_msg_dic = {
'en': 'Bill of lading does not exist',
'zh': '提单不存在'
}
bill_null_msg_dic = {
'en': 'The bill of lading number cannot be empty',
'zh': '提单号不能为空'
}
class OrderController(http.Controller):
"""
......@@ -24,6 +33,18 @@ class OrderController(http.Controller):
res = {'state': 201, 'message': ''}
kwargs = json.loads(request.httprequest.data)
logging.info('api_cc_login kwargs:%s' % kwargs)
# system_user = request.env['res.users'].sudo().search(
# [('login', '=', 'Odoobat'), '|', ('active', '=', False), ('active', '=', True)])
pda_lang = kwargs.get('pda_lang') or 'zh'
error_msg_dic = {
'en': 'Login name and password cannot be empty',
'zh': '登录名、密码不能为空'
}
exceptions_msg_dic = {
'en': 'Wrong login/password',
'zh': '错误的登录名或密码'
}
# system_user = system_user.with_context(lang=lang)
try:
if kwargs.get('login') and kwargs.get('password'):
uid = request.session.authenticate(request.session.db, kwargs['login'], kwargs['password'])
......@@ -35,11 +56,11 @@ class OrderController(http.Controller):
res['state'] = 200
else:
res['state'] = 202
res['message'] = _('Login name and password cannot be empty') # 登录名、密码不能为空
res['message'] = error_msg_dic[pda_lang] # _('Login name and password cannot be empty') # 登录名、密码不能为空
except exceptions.AccessDenied as e:
if e.args == exceptions.AccessDenied().args:
res['message'] = _("Wrong login/password") # 错误的登录名或密码
res['message'] = exceptions_msg_dic[pda_lang] # _("Wrong login/password") # 错误的登录名或密码
else:
res['message'] = e.args[0]
logging.info('api_cc_login error:%s' % res)
......@@ -53,24 +74,32 @@ class OrderController(http.Controller):
:return:
"""
kwargs = json.loads(request.httprequest.data)
pda_lang = kwargs.get('pda_lang') or 'zh'
res = {'state': 201, 'message': ''}
try:
logging.info('bl_info kwargs:%s' % kwargs)
if kwargs.get('bl_no'):
bl_no = kwargs['bl_no']
bl_obj = request.env['cc.bl'].sudo().search([('bl_no', '=', bl_no)]) # 提单
if bl_obj:
res['bl_info'] = bl_obj.search_bl_info()
res['bl_info'] = bl_obj.search_bl_info(pda_lang=pda_lang)
res['state'] = 200
else:
res['state'] = 404
res['message'] = _('Bill of lading does not exist') # 提单不存在
res['message'] = bill_noexist_msg_dic[pda_lang] # _('Bill of lading does not exist') # 提单不存在
else:
res['state'] = 202
res['message'] = _('The bill of lading number cannot be empty') # 提单号不能为空
res['message'] = bill_null_msg_dic[
pda_lang] # _('The bill of lading number cannot be empty') # 提单号不能为空
except Exception as e:
exceptions_msg_dic = {
'en': 'System parsing error, the reason for the error is %s' % e,
'zh': '系统解析错误,错误原因是%s' % e
}
logging.info('bl_info error:%s' % e)
res['message'] = _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
res['message'] = exceptions_msg_dic[
pda_lang] # _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
logging.info('res:%s' % res)
return res
......@@ -82,6 +111,7 @@ class OrderController(http.Controller):
:return:
"""
kwargs = json.loads(request.httprequest.data)
pda_lang = kwargs.get('pda_lang') or 'zh'
res = {'state': 201, 'message': ''}
try:
logging.info('update_big_package_tally_detail kw:%s' % kwargs)
......@@ -113,18 +143,34 @@ class OrderController(http.Controller):
else:
error_no_arr.append(big_package_no)
if len(error_no_arr) > 0:
res['message'] = _('Big package number [%s] does not exist',
','.join(list(set(error_no_arr)))) # 大包号[%s]不存在
error_no_str = ','.join(list(set(error_no_arr)))
noexist_msg_dic = {
'en': 'Big package number [%s] does not exist' % error_no_str,
'zh': '大包号[%s]不存在' % error_no_str
}
res['message'] = noexist_msg_dic[
pda_lang] # _('Big package number [%s] does not exist',','.join(list(set(error_no_arr)))) # 大包号[%s]不存在
else:
res['state'] = 200
# if len(tally_no_arr) > 0:
# res['message'] = '大包号[%s]已理货,无需重新理货!' % ','.join(list(set(tally_no_arr)))
else:
res['message'] = _('Bill of lading does not exist') # 提单不存在
res['message'] = bill_noexist_msg_dic[pda_lang] # 提单不存在
else:
res['message'] = _('The bill of lading number and package data cannot be empty') # 提单号和大包数据不能为空
null_msg_dic = {
'en': 'The bill of lading number and package data cannot be empty',
'zh': '提单号和大包数据不能为空'
}
res['message'] = null_msg_dic[
pda_lang] # _('The bill of lading number and package data cannot be empty') # 提单号和大包数据不能为空
except Exception as e:
logging.info('update_big_package_tally_detail error:%s' % e)
res['message'] = _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
exceptions_msg_dic = {
'en': 'System parsing error, the reason for the error is %s' % e,
'zh': '系统解析错误,错误原因是%s' % e
}
res['message'] = exceptions_msg_dic[
pda_lang] # _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
logging.info('res:%s' % res)
return res
......@@ -5,7 +5,7 @@ from datetime import datetime
from lxml import etree
import pytz
from odoo import models, fields, api, tools
from odoo import models, fields, api, tools, _
from odoo.exceptions import ValidationError, Warning
......@@ -67,7 +67,8 @@ class CcClearanceFile(models.Model):
error_msg = response_data['msg']
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,
self.env['ao.tt.api.log'].sudo().create_api_log(self.file_name or '', '清关文件回传:' + error_msg, '',
code,
request_id, source='推出')
return error_msg
else:
......@@ -178,7 +179,8 @@ class CcShipPackage(models.Model):
error_msg = response_data['msg']
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, '',
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '小包状态轨迹回传:' + error_msg,
'',
code,
request_id, source='推出')
return error_msg
......@@ -239,7 +241,7 @@ class CcBl(models.Model):
'domain': [('bl_id', '=', self.id), ('is_sync', '=', False)],
}
def search_bl_info(self):
def search_bl_info(self, pda_lang=False):
"""
查询提单信息
"""
......@@ -247,7 +249,7 @@ class CcBl(models.Model):
'bl_no': self.bl_no or '', # 提单号
'scan_big_package_qty': self.tally_big_package_qty,
# 已扫大包数量
'big_package_arr': [big_package_item.search_big_package_info() for big_package_item in
'big_package_arr': [big_package_item.search_big_package_info(pda_lang=pda_lang) for big_package_item in
self.big_package_ids],
# 大包信息
}
......@@ -260,13 +262,23 @@ class CcBigPackage(models.Model):
# 模型描述
_description = 'Big Package'
def search_big_package_info(self):
def search_big_package_info(self, pda_lang=False):
"""
查询大包信息
"""
state_arr = {'unprocessed_goods': '未理货', 'checked_goods': '已理货'}
unprocessed_goods_msg_dic = {
'en': 'Unprocessed goods',
'zh': '未理货'
}
checked_goods_msg_dic = {
'en': 'Checked goods',
'zh': '已理货'
}
state_arr = {'unprocessed_goods': unprocessed_goods_msg_dic[pda_lang],
'checked_goods': checked_goods_msg_dic[pda_lang]} # 未理货/已理货
vals = {
'tally_state': state_arr[self.tally_state] or '', # 理货状态
'tally_state_label': state_arr[self.tally_state] or '', # 理货状态显示名称
'tally_state': self.tally_state or '', # 理货状态系统KEY
'tally_user_id': self.tally_user_id.id or 0, # 理货人id
'tally_user_name': self.tally_user_id.name or '', # 理货人名称
'tally_time': self.tally_time or '',
......@@ -282,8 +294,7 @@ class CcBigPackage(models.Model):
"""
if self.tally_state == 'unprocessed_goods':
if kwargs.get('tally_state'):
state_arr = {'未理货': 'unprocessed_goods', '已理货': 'checked_goods'}
self.tally_state = state_arr[kwargs['tally_state']]
self.tally_state = kwargs['tally_state']
if kwargs.get('tally_user_id'):
self.tally_user_id = kwargs['tally_user_id']
if kwargs.get('tally_time'):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论