Merge branch 'master' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into release/release1.0
# Conflicts: # sf_base/__init__.py # sf_base/__manifest__.py # sf_base/commons/__init__.py # sf_base/commons/common.py # sf_base/models/__init__.py # sf_base/models/base.py # sf_base/models/common.py # sf_base/security/group_security.xml # sf_base/security/ir.model.access.csv # sf_base/views/base_view.xml # sf_base/views/common_view.xml # sf_base/views/menu_view.xml # sf_bf_connect/__init__.py # sf_bf_connect/__manifest__.py # sf_bf_connect/controllers/__init__.py # sf_bf_connect/controllers/controllers.py # sf_bf_connect/models/__init__.py # sf_bf_connect/models/http.py # sf_bf_connect/models/models.py # sf_bf_connect/models/process_status.py # sf_bf_connect/views/res_partner_view.xml # sf_dlm/__manifest__.py # sf_dlm/data/product_data.xml # sf_dlm/models/__init__.py # sf_dlm/models/product_supplierinfo.py # sf_dlm/views/product_template_view.xml # sf_machine_connect/__init__.py # sf_machine_connect/__manifest__.py # sf_machine_connect/models/__init__.py # sf_machine_connect/models/ftp_client.py # sf_machine_connect/models/ftp_operate.py # sf_machine_connect/models/py2opcua.py # sf_machine_connect/security/ir.model.access.csv # sf_machine_connect/views/SfWorkOrderBarcodes.xml # sf_machine_connect/views/WorkCenterBarcodes.xml # sf_machine_connect/views/compensation.xml # sf_machine_connect/views/default_delivery.xml # sf_machine_connect/views/delivery_record.xml # sf_machine_connect/views/ftp_button.xml # sf_machine_connect/views/machine_info_present.xml # sf_machine_connect/views/machine_monitor.xml # sf_machine_connect/wizard/__init__.py # sf_machine_connect/wizard/action_up.py # sf_manufacturing/__init__.py # sf_manufacturing/__manifest__.py # sf_manufacturing/models/__init__.py # sf_manufacturing/models/model_type.py # sf_manufacturing/models/mrp_maintenance.py # sf_manufacturing/models/mrp_production.py # sf_manufacturing/models/mrp_routing_workcenter.py # sf_manufacturing/models/mrp_workcenter.py # sf_manufacturing/models/mrp_workorder.py # sf_manufacturing/models/res_user.py # sf_manufacturing/models/stock.py # sf_manufacturing/security/group_security.xml # sf_manufacturing/security/ir.model.access.csv # sf_manufacturing/views/model_type_view.xml # sf_manufacturing/views/mrp_routing_workcenter_view.xml # sf_manufacturing/views/mrp_workcenter_views.xml # sf_manufacturing/views/mrp_workorder_view.xml # sf_mrs_connect/__init__.py # sf_mrs_connect/__manifest__.py # sf_mrs_connect/controllers/controllers.py # sf_mrs_connect/data/ir_cron_data.xml # sf_mrs_connect/models/__init__.py # sf_mrs_connect/models/ftp_operate.py # sf_mrs_connect/models/res_config_setting.py # sf_mrs_connect/models/sync_common.py # sf_mrs_connect/views/res_config_settings_views.xml # sf_sale/__init__.py # sf_sale/__manifest__.py # sf_sale/models/__init__.py # sf_sale/models/sale_order.py # sf_sale/views/sale_order_view.xml # yizuo_login_background_and_styles/__manifest__.py # yizuo_login_background_and_styles/controllers/main.py # yizuo_login_background_and_styles/models/login_image.py # yizuo_login_background_and_styles/models/res_config_settings.py
This commit is contained in:
59
sf_manufacturing/models/tray.py
Normal file
59
sf_manufacturing/models/tray.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of SmartGo. See LICENSE file for full copyright and licensing details.
|
||||
import base64
|
||||
from io import BytesIO
|
||||
from odoo import api, fields, models, SUPERUSER_ID, _
|
||||
from pystrich.code128 import Code128Encoder
|
||||
|
||||
|
||||
class Tray(models.Model):
|
||||
_inherit = 'sf.tray'
|
||||
_description = '托盘'
|
||||
qr_image = fields.Binary(string="托盘二维码", compute='compute_qr_image')
|
||||
production_id = fields.Many2one('mrp.production', string='制造订单',
|
||||
related='workorder_id.production_id'
|
||||
)
|
||||
workorder_id = fields.Many2one('mrp.workorder', string="工单"
|
||||
)
|
||||
|
||||
@api.onchange('production_id')
|
||||
def updateTrayState(self):
|
||||
if self.workorder_id != False and self.create_date != False:
|
||||
|
||||
self.state = '占用'
|
||||
else:
|
||||
self.state = '空闲'
|
||||
|
||||
def unclamp(self):
|
||||
self.workorder_id = False
|
||||
self.production_id = False
|
||||
self.state = '空闲'
|
||||
|
||||
@api.depends('code')
|
||||
def compute_qr_image(self):
|
||||
for item in self:
|
||||
if not item.code:
|
||||
item.qr_image = False
|
||||
continue
|
||||
# 根据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()
|
||||
partner_encoder.save(temp)
|
||||
# img.save(temp, format='PNG')
|
||||
qr_image = base64.b64encode(temp.getvalue())
|
||||
item.qr_image = qr_image
|
||||
Reference in New Issue
Block a user