修改接口授权后,没有赋予用户的bug,导致无法获取公司,增加替换sf销售订单行产品名称的模块

This commit is contained in:
胡尧
2025-06-13 17:53:57 +08:00
parent 0ef6fe73f3
commit f53e34aeb4
6 changed files with 62 additions and 7 deletions

View File

@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import models

View File

@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
{
'name': 'Jikimo_test_generate_product_name',
'version': '',
'summary': """ Jikimo_test_generate_product_name Summary """,
'author': '',
'website': '',
'category': '',
'depends': ['sf_manufacturing'],
'data': [
],
'application': True,
'installable': True,
'auto_install': False,
'license': 'LGPL-3',
}

View File

@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import product_template

View File

@@ -0,0 +1,21 @@
from odoo import models
class ProductTemplate(models.Model):
_inherit = 'product.template'
def generate_product_name(self, order_id, item, i):
"""生成成品名称"""
# 3D文件名去掉后缀截取前40个字符+“-”+模型ID
product_name = '%s-%s' % ('.'.join(item['model_name'].split('.')[:-1])[:40], item['model_id'])
return product_name
def generate_embryo_name(self, order_id, item, materials_id, materials_type_id, embryo_redundancy_id, i):
"""生成坯料名称"""
embryo_name = '%s-%s-%s [%s %s-%s * %s * %s]' % ('R',
order_id.name, i, materials_id.name, materials_type_id.name,
self.format_float(item['model_long'] + embryo_redundancy_id.long),
self.format_float(item['model_width'] + embryo_redundancy_id.width),
self.format_float(item['model_height'] + embryo_redundancy_id.height))
return embryo_name

View File

@@ -2,7 +2,7 @@
import logging
from datetime import datetime, timedelta
import hashlib
from odoo import models
from odoo import models, SUPERUSER_ID
from odoo.http import request
__author__ = 'jinling.yang'
@@ -48,5 +48,7 @@ class Http(models.AbstractModel):
_logger.info('sf_secret_key:%s' % factory_secret.sf_secret_key)
if check_sf_str != datas['HTTP_CHECKSTR']:
raise AuthenticationError('数据校验不通过')
# 设置管理员用户
request.update_env(user=SUPERUSER_ID)
else:
raise AuthenticationError('请求参数中无token')

View File

@@ -890,8 +890,9 @@ class ResProductMo(models.Model):
embryo_redundancy_id = item.get('embryo_redundancy')
if not embryo_redundancy_id:
raise UserError('请先配置模型类型内的坯料冗余')
product_name = self.generate_product_name(order_id, item, i)
vals = {
'name': '%s-%s-%s' % ('P', order_id.name, i),
'name': product_name,
'model_long': self.format_float(item['model_long'] + embryo_redundancy_id.long),
'model_width': self.format_float(item['model_width'] + embryo_redundancy_id.width),
'model_height': self.format_float(item['model_height'] + embryo_redundancy_id.height),
@@ -1012,12 +1013,9 @@ class ResProductMo(models.Model):
if not embryo_redundancy_id:
raise UserError('请先配置模型类型内的坯料冗余')
logging.info('no_bom_copy_product_supplier-vals:%s' % supplier)
embryo_name = self.generate_embryo_name(order_id, item, materials_id, materials_type_id, embryo_redundancy_id, i)
vals = {
'name': '%s-%s-%s [%s %s-%s * %s * %s]' % ('R',
order_id.name, i, materials_id.name, materials_type_id.name,
self.format_float(item['model_long'] + embryo_redundancy_id.long),
self.format_float(item['model_width'] + embryo_redundancy_id.width),
self.format_float(item['model_height'] + embryo_redundancy_id.height)),
'name': embryo_name,
'length': self.format_float(item['model_long'] + embryo_redundancy_id.long),
'width': self.format_float(item['model_width'] + embryo_redundancy_id.width),
'height': self.format_float(item['model_height'] + embryo_redundancy_id.height),
@@ -1119,7 +1117,19 @@ class ResProductMo(models.Model):
# 增加产品表面积
def generate_product_name(self, order_id, item, i):
"""生成成品名称"""
product_name = '%s-%s-%s' % ('P', order_id.name, i),
return product_name
def generate_embryo_name(self, order_id, item, materials_id, materials_type_id, embryo_redundancy_id, i):
"""生成坯料名称"""
embryo_name = '%s-%s-%s [%s %s-%s * %s * %s]' % ('R',
order_id.name, i, materials_id.name, materials_type_id.name,
self.format_float(item['model_long'] + embryo_redundancy_id.long),
self.format_float(item['model_width'] + embryo_redundancy_id.width),
self.format_float(item['model_height'] + embryo_redundancy_id.height))
return embryo_name
class ResProductFixture(models.Model):
_inherit = 'product.template'