托盘打印出条形码功能
This commit is contained in:
@@ -7,6 +7,9 @@ import qrcode
|
||||
|
||||
from io import BytesIO
|
||||
from odoo import api, fields, models
|
||||
import barcode
|
||||
from barcode.writer import ImageWriter
|
||||
from pystrich.code128 import Code128Encoder
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
@@ -17,8 +20,8 @@ class Tray(models.Model):
|
||||
_description = '托盘'
|
||||
|
||||
production_id = fields.Many2one('mrp.production', string='制造订单',
|
||||
related='workorder_id.production_id')
|
||||
workorder_id = fields.Many2one('mrp.workorder', string="工单")
|
||||
)
|
||||
|
||||
qr_image = fields.Binary(string="托盘二维码", compute='compute_qr_image')
|
||||
|
||||
@api.depends('code')
|
||||
@@ -27,22 +30,31 @@ class Tray(models.Model):
|
||||
if not item.code:
|
||||
item.qr_image = False
|
||||
continue
|
||||
qr = qrcode.QRCode(
|
||||
version=1,
|
||||
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
||||
box_size=10,
|
||||
border=4,
|
||||
)
|
||||
qr.add_data(item.code)
|
||||
qr.make(fit=True)
|
||||
img = qr.make_image()
|
||||
# 根据code动态生成二维码图片
|
||||
# qr = qrcode.QRCode(
|
||||
# version=1,
|
||||
# error_correction=qrcode.constants.ERROR_CORRECT_L,
|
||||
# box_size=10,
|
||||
# border=4,
|
||||
# )
|
||||
# qr.add_data(item.code)
|
||||
# qr.make(fit=True)
|
||||
# img = qr.make_image()
|
||||
# 生成条形码文件
|
||||
# bar = barcode.get("ean13", "123456789102", writer=ImageWriter())
|
||||
# a = bar.get_fullcode()
|
||||
# b = bar.save('occ')
|
||||
# 生成条形码图片
|
||||
partner_encoder = Code128Encoder(item.code)
|
||||
# 转换bytes流
|
||||
temp = BytesIO()
|
||||
img.save(temp, format='PNG')
|
||||
partner_encoder.save(temp)
|
||||
# img.save(temp, format='PNG')
|
||||
qr_image = base64.b64encode(temp.getvalue())
|
||||
item.qr_image = qr_image
|
||||
|
||||
|
||||
'''
|
||||
'''
|
||||
工单绑定托盘信息
|
||||
'''
|
||||
|
||||
@@ -58,6 +70,23 @@ class MrpWorkOrder(models.Model):
|
||||
tray_state = fields.Selection(
|
||||
string='托盘状态',
|
||||
related='tray_id.state')
|
||||
# def get_tray_info(self):
|
||||
|
||||
|
||||
@api.depends('tray_id')
|
||||
def updateTrayState(self):
|
||||
|
||||
for item in self:
|
||||
if item.tray_code == False:
|
||||
continue
|
||||
trayInfo = self.env['sf.tray'].sudo.search([('code', '=', item.tray_code)])
|
||||
if trayInfo:
|
||||
trayInfo.update(
|
||||
{
|
||||
'production_id': item.production_id,
|
||||
'state': "占用",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
'''
|
||||
|
||||
Reference in New Issue
Block a user