提交 cd42e1bd authored 作者: 贺阳's avatar 贺阳

邮件的用户取值

上级 b9e0d5f2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# © <2016> <ToproERP hy> # © <2016> <ToproERP hy>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import datetime
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError, Warning
import logging
import json
import xlrd
import base64 import base64
import pdfplumber import json
from io import BytesIO import logging
from datetime import datetime, timedelta
import re import re
from datetime import datetime, timedelta
from io import BytesIO
import pdfplumber
import xlrd
from odoo import models
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
import html import html
...@@ -106,8 +107,9 @@ class OrderStateChangeRule(models.Model): ...@@ -106,8 +107,9 @@ class OrderStateChangeRule(models.Model):
return data_arr return data_arr
def upload_cds_attachment(self, bl_obj, name, data): def upload_cds_attachment(self, bl_obj, name, data):
file_obj = self.env['cc.clearance.file'].sudo().search([('file_name', '=', '海关CDS申报单(import和授权方式检查拉齐等)'), file_obj = self.env['cc.clearance.file'].sudo().search(
('bl_id', '=', bl_obj.id)], limit=1) [('file_name', '=', '海关CDS申报单(import和授权方式检查拉齐等)'),
('bl_id', '=', bl_obj.id)], limit=1)
file_obj.file = base64.encodebytes(data) file_obj.file = base64.encodebytes(data)
file_obj.attachment_name = name file_obj.attachment_name = name
file_obj.is_upload = False file_obj.is_upload = False
...@@ -116,7 +118,7 @@ class OrderStateChangeRule(models.Model): ...@@ -116,7 +118,7 @@ class OrderStateChangeRule(models.Model):
def upload_pod_attachment(self, bl_obj, name, data): def upload_pod_attachment(self, bl_obj, name, data):
"""尾程交接POD(待大包数量和箱号) 文件上传与同步""" """尾程交接POD(待大包数量和箱号) 文件上传与同步"""
file_objs = self.env['cc.clearance.file'].sudo().search([('file_name', '=', '尾程交接POD(待大包数量和箱号)'), file_objs = self.env['cc.clearance.file'].sudo().search([('file_name', '=', '尾程交接POD(待大包数量和箱号)'),
('bl_id', 'in', bl_obj.ids)]) ('bl_id', 'in', bl_obj.ids)])
# 最大重试次数 # 最大重试次数
max_retries = 2 max_retries = 2
...@@ -165,7 +167,8 @@ class OrderStateChangeRule(models.Model): ...@@ -165,7 +167,8 @@ class OrderStateChangeRule(models.Model):
timezone_offset = self.env['common.common'].sudo().get_time_zone(tz) timezone_offset = self.env['common.common'].sudo().get_time_zone(tz)
# print(timezone_offset) # print(timezone_offset)
utc_time = local_time - timedelta(hours=int(timezone_offset)) utc_time = local_time - timedelta(hours=int(timezone_offset))
sql = "select id from cc_bl where UPPER(REPLACE(REPLACE(REPLACE(bl_no, ' ', ''), '-', ''), '/', '')) = '{0}' order by create_date desc limit 1".format(order_no.replace(' ', '').replace('-', '').replace('/', '')) sql = "select id from cc_bl where UPPER(REPLACE(REPLACE(REPLACE(bl_no, ' ', ''), '-', ''), '/', '')) = '{0}' order by create_date desc limit 1".format(
order_no.replace(' ', '').replace('-', '').replace('/', ''))
self._cr.execute(sql) self._cr.execute(sql)
result = self._cr.fetchall() result = self._cr.fetchall()
bl_obj = self.env['cc.bl'].sudo().search([('id', '=', result[0][0])]) if result else False bl_obj = self.env['cc.bl'].sudo().search([('id', '=', result[0][0])]) if result else False
...@@ -177,7 +180,9 @@ class OrderStateChangeRule(models.Model): ...@@ -177,7 +180,9 @@ class OrderStateChangeRule(models.Model):
if redis_conn == 'no': if redis_conn == 'no':
raise ValidationError('未连接redis') raise ValidationError('未连接redis')
else: else:
redis_conn.lpush('mail_push_package_list', json.dumps({'id': bl_obj.id, 'utc_time': utc_time.strftime("%Y-%m-%d %H:%M:%S")})) redis_conn.lpush('mail_push_package_list', json.dumps(
{'id': bl_obj.id, 'user_login': users_obj.login,
'utc_time': utc_time.strftime("%Y-%m-%d %H:%M:%S")}))
except Exception as err: except Exception as err:
logging.error('fetch_mail_dlv_attachment--error:%s' % str(err)) logging.error('fetch_mail_dlv_attachment--error:%s' % str(err))
...@@ -254,7 +259,8 @@ class OrderStateChangeRule(models.Model): ...@@ -254,7 +259,8 @@ class OrderStateChangeRule(models.Model):
# 调整时区 # 调整时区
utc_time = local_time - timedelta(hours=timezone_offset) utc_time = local_time - timedelta(hours=timezone_offset)
sql = "select id from cc_bl where UPPER(REPLACE(REPLACE(REPLACE(bl_no, ' ', ''), '-', ''), '/', '')) = '{0}' " \ sql = "select id from cc_bl where UPPER(REPLACE(REPLACE(REPLACE(bl_no, ' ', ''), '-', ''), '/', '')) = '{0}' " \
"and transport_tool_name='{1}' order by create_date desc limit 1".format(order_no.replace(' ', '').replace('-', '').replace('/', ''), voyage_name) "and transport_tool_name='{1}' order by create_date desc limit 1".format(
order_no.replace(' ', '').replace('-', '').replace('/', ''), voyage_name)
self._cr.execute(sql) self._cr.execute(sql)
result = self._cr.fetchall() result = self._cr.fetchall()
print(result) print(result)
...@@ -265,7 +271,8 @@ class OrderStateChangeRule(models.Model): ...@@ -265,7 +271,8 @@ class OrderStateChangeRule(models.Model):
if redis_conn == 'no': if redis_conn == 'no':
raise ValidationError('未连接redis') raise ValidationError('未连接redis')
else: else:
redis_conn.lpush('mail_push_package_list', json.dumps({'id': bl_obj.id, 'utc_time': utc_time.strftime("%Y-%m-%d %H:%M:%S")})) redis_conn.lpush('mail_push_package_list', json.dumps(
{'id': bl_obj.id, 'utc_time': utc_time.strftime("%Y-%m-%d %H:%M:%S")}))
except Exception as err: except Exception as err:
logging.error('fetch_mail_dlv--error:%s' % str(err)) logging.error('fetch_mail_dlv--error:%s' % str(err))
......
...@@ -741,7 +741,8 @@ class CcBl(models.Model): ...@@ -741,7 +741,8 @@ class CcBl(models.Model):
logging.warning(f"Attempt {i + 1}/{max_retries} failed. Retrying...") logging.warning(f"Attempt {i + 1}/{max_retries} failed. Retrying...")
return False return False
def mail_auto_push(self, mail_time=False, ship_packages=[], action_type='tally', mail_db_user='', pda_db_user=''): def mail_auto_push(self, mail_time=False, ship_packages=[], action_type='tally', mail_db_user='邮件接收',
pda_db_user='pda'):
self = self.with_context(dict(self._context, is_mail=True)) self = self.with_context(dict(self._context, is_mail=True))
for item in self: for item in self:
try: try:
......
...@@ -40,7 +40,8 @@ class Order_dispose(object): ...@@ -40,7 +40,8 @@ class Order_dispose(object):
bl_record = bl_obj.browse(data['id']) bl_record = bl_obj.browse(data['id'])
# utc_time = datetime.strptime(data['utc_time'], "%Y-%m-%d %H:%M:%S") # utc_time = datetime.strptime(data['utc_time'], "%Y-%m-%d %H:%M:%S")
utc_time = data.get('utc_time') utc_time = data.get('utc_time')
bl_record.mail_auto_push(utc_time, ship_packages, action_type, config.db_user, config.pda_db_user) user_login = data.get('user_login')
bl_record.mail_auto_push(utc_time, ship_packages, action_type, user_login, config.pda_db_user)
except Exception as ex: except Exception as ex:
logging.error('mail_auto_push error:%s' % str(ex)) logging.error('mail_auto_push error:%s' % str(ex))
return res_data return res_data
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论