提交 007e8bae authored 作者: 伍姿英's avatar 伍姿英

Merge branch 'release/V2.5.1'

......@@ -60,7 +60,7 @@ class ExportBlAndPackageXlsx(http.Controller):
sheet1.write(good_index, 26, good_item.item_name_en or '') # ITEM DESCRIPTION
sheet1.write(good_index, 27, good_item.export_hs_code or '') # ITEM HS CODE
sheet1.write(good_index, 28, good_item.quantity) # ITEM QUANTITY
sheet1.write(good_index, 29, good_item.quantity_unit or '') # UNIT VALUE
sheet1.write(good_index, 29, good_item.quantity_unit or '') # UNITS
sheet1.write(good_index, 30, good_item.item_total_price) # TOTAL VALUE
sheet1.write(good_index, 31, good_item.item_vat or '') # VAT
sheet1.write(good_index, 32, '') # SKU NUMBER
......@@ -112,7 +112,7 @@ class ExportBlAndPackageXlsx(http.Controller):
sheet1.write(index, 26, u'ITEM DESCRIPTION', font_style) # ITEM DESCRIPTION
sheet1.write(index, 27, u'ITEM HS CODE', font_style) # ITEM HS CODE
sheet1.write(index, 28, u'ITEM QUANTITY', font_style) # ITEM QUANTITY
sheet1.write(index, 29, u'UNIT VALUE', font_style) # UNIT VALUE
sheet1.write(index, 29, u'UNITS', font_style) # UNITS
sheet1.write(index, 30, u'TOTAL VALUE', font_style) # TOTAL VALUE
sheet1.write(index, 31, u'VAT', font_style) # VAT
sheet1.write(index, 32, u'ONLINE SELLING PLACE', font_style) # ONLINE SELLING PLACE
......
# 导入odoo
import ast
import base64
# 导入日志
import logging
from datetime import timedelta
import pytz
import re
import xlrd
from datetime import timedelta, datetime
from odoo import models, fields, api, _
from odoo.exceptions import UserError
from pygtrans import Translate
# 获取日志
_logger = logging.getLogger(__name__)
......@@ -1068,18 +1064,6 @@ class CcBL(models.Model):
# print(wizard_obj.get_order())
wizard_obj.submit()
def try_callback_track(self, max_retries=3, ship_package_ids=[]):
""" 封装的重试逻辑 """
for i in range(max_retries):
if not ship_package_ids:
is_ok = self.callback_track()
else:
is_ok = self.package_callback_func(ship_package_ids)
if is_ok:
return True
logging.warning(f"Attempt {i + 1}/{max_retries} failed. Retrying...")
return False
# 增加一个清关进度的业务对象,继承自models.Model, 用于管理业务数据.业务数据包括提单号、清关节点(业务对象)、进度日期、进度描述、更新人
class CcProgress(models.Model):
......
# -*- coding: utf-8 -*-
import aiohttp
import asyncio
import certifi
import json
import logging
import math
import random
import re
import ssl
import threading
from datetime import datetime, timedelta
from odoo import http, fields, exceptions, _
from odoo import http, exceptions
# from odoo.addons.queue_job import job
from odoo.http import request
......@@ -170,21 +162,21 @@ class OrderController(http.Controller):
tally_time = package_item.get('tally_time')
if (action_type == 'tally' and package_item.get('tally_state') == 'checked_goods') or (
action_type == 'handover' and package_item.get(
'tally_state') == 'handover_completed'):
'tally_state') == 'handover_completed'):
if package_type == 'ship':
ship_packages.append({
'id': package_obj.id,
'id': [package_obj.id],
'tally_time': tally_time})
else:
for package in package_obj:
ship_packages += [{
'id': ship_package.id,
'tally_time': tally_time} for ship_package in
package.ship_package_ids if
(
action_type == 'tally' and package.tally_state == 'unprocessed_goods') or (
action_type == 'handover' and package.tally_state in (
'unprocessed_goods', 'checked_goods'))] # 小包
if (
action_type == 'tally' and package.tally_state == 'unprocessed_goods') or (
action_type == 'handover' and package.tally_state in (
'unprocessed_goods', 'checked_goods')):
ship_packages.append({
'id': package.ship_package_ids.ids,
'tally_time': tally_time
}) # 小包
package_obj.update_big_package_info(action_type=action_type,
tally_state=package_item.get('tally_state'),
tally_user_id=package_item.get(
......
# -*- coding: utf-8 -*-
# Part of SmartGo. See LICENSE file for full copyright and licensing details.
from datetime import datetime
import logging
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError, Warning
import logging
......
......@@ -40,7 +40,6 @@ class TT(models.Model):
param_json_str = json.dumps(param_json, ensure_ascii=False)
# print(param_json_str)
sign = self.make_sign(app_key, app_secret, version, timestamp, param_json_str)
print(f"sign={sign}") # 输出生成的签名值
return sign
......
......@@ -157,13 +157,11 @@ class BatchInputShipPackageStatusWizard(models.TransientModel):
bl_obj.message_post(body=_('[%s]%sUpdate to[%s]%s') % (
self.current_status.tk_code or '', self.current_status.name or '', self.update_status.tk_code or '',
self.update_status.name or ''), author_id=public_user.id,
email_from=public_user.display_name)
email_from=public_user.display_name)
else:
bl_obj.message_post(body=_('[%s]%sUpdate to[%s]%s') % (
self.current_status.tk_code or '', self.current_status.name or '', self.update_status.tk_code or '',
self.update_status.name or ''))
# 如果提单有小包变成了清关开始,提单状态变为清关中
if bl_obj.state == 'draft' and bl_obj.ship_package_ids.filtered(
lambda line: line.state.tk_code == 'cb_imcustoms_start'):
bl_obj.ccing_func()
# 如果提单有小包变成了清关开始,提单状态变为清关中;如果提单所有小包的清关节点变成“是完成节点”,则该提单状态变成已完成
bl_obj.change_state_by_ship_package()
return obj
......@@ -28,16 +28,19 @@ redis_options = dict(
# )
# product
# db_ip = "172.18.183.214"
# db_port = "9169"
# db_name = "air_order"
# db_user = "admin"
# db_password = "YHB1408ups"
# db_ip = "172.104.182.220"
# db_port = "8269"
# db_name = "ccs"
# db_user = "YJ@yizuo.com"
# db_password = "yizuo123"
#
# redis_options = dict(
# host='172.18.183.214',
# host='some-redis',
# port=32768,
# password='top123',
# # password='top123',
# decode_responses=True,
# db=3
# db=2
# )
pda_db_user = "pda"
pda_db_password = "2025"
# coding=utf-8
import json
import logging
import odoorpc
import redis
import requests
import time
from datetime import datetime
from requests.adapters import HTTPAdapter
import config
......@@ -25,6 +22,9 @@ class Order_dispose(object):
# rpc连接
self.odoo_db = odoorpc.ODOO(config.db_ip, port=config.db_port)
self.odoo_db.login(config.db_name, config.db_user, config.db_password)
# pda用户
self.pda_odoo_db = odoorpc.ODOO(config.db_ip, port=config.db_port)
self.pda_odoo_db.login(config.db_name, config.pda_db_user, config.pda_db_password)
def order_data(self, data):
res_data = []
......@@ -33,7 +33,10 @@ class Order_dispose(object):
logging.info('mail_push_data: %s', data)
ship_packages = eval(data['ship_packages']) if data.get('ship_packages') else [] # 小包
action_type = data.get('action_type') # 类型
utc_time = data.get('utc_time')
bl_obj = self.odoo_db.env['cc.bl']
if action_type and not utc_time:
bl_obj = self.pda_odoo_db.env['cc.bl']
bl_record = bl_obj.browse(data['id'])
# utc_time = datetime.strptime(data['utc_time'], "%Y-%m-%d %H:%M:%S")
utc_time = data.get('utc_time')
......@@ -57,5 +60,4 @@ try:
logging.error(e)
continue
except Exception as e:
logging.error("登录失败")
logging.error(e)
logging.error("登录失败:%s" % e)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论