From 73c3e06900129236d88d6919d3598379fd11838a Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Tue, 2 Jan 2024 17:25:49 +0800
Subject: [PATCH 1/3] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E6=89=80?=
=?UTF-8?q?=E4=BB=A5=E5=A4=B9=E5=85=B7=E7=89=A9=E6=96=99=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E8=BD=AC=E6=8E=A5=E6=9D=BF=E5=A4=B9=E5=85=B7=E4=B8=BA=E8=BD=AC?=
=?UTF-8?q?=E6=8E=A5=E6=9D=BF(=E9=94=81=E6=9D=BF)=E5=A4=B9=E5=85=B7?=
=?UTF-8?q?=EF=BC=9B2=E3=80=81=E4=BC=98=E5=8C=96=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E5=88=80=E5=85=B7=E5=AE=89=E5=85=A8=E5=BA=93=E5=AD=98=E8=A7=A6?=
=?UTF-8?q?=E5=8F=91=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD=E5=88=80=E5=85=B7?=
=?UTF-8?q?=E7=BB=84=E8=A3=85=E5=8D=95=E6=97=B6=E9=87=8D=E5=A4=8D=E8=A7=A6?=
=?UTF-8?q?=E5=8F=91=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B3=E3=80=81?=
=?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD=E5=88=80=E5=85=B7=E5=AE=89?=
=?UTF-8?q?=E5=85=A8=E5=BA=93=E5=AD=98=E6=A8=A1=E5=9E=8B=E7=9B=B8=E5=85=B3?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=8F=AA=E6=9C=89=E5=9C=A8=E5=88=9B=E5=BB=BA?=
=?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=EF=BC=8C=E5=85=B6=E4=BB=96=E6=97=B6=E5=80=99=E6=98=AF=E5=8F=AA?=
=?UTF-8?q?=E8=AF=BB=EF=BC=9B4=E3=80=81=E4=BC=98=E5=8C=96=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=E5=88=80=E5=85=B7=E7=BB=84=E8=A3=85=E5=8D=95=E7=BB=84?=
=?UTF-8?q?=E8=A3=85=E5=AE=8C=E6=88=90=E5=90=8E=E5=8A=9F=E8=83=BD=E5=88=80?=
=?UTF-8?q?=E5=85=B7=E5=85=A5=E5=BA=93=E4=BD=8D=E7=BD=AE=E4=B8=8D=E6=98=AF?=
=?UTF-8?q?=E5=88=80=E5=85=B7=E6=88=BF=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_base/models/basic_parameters_fixture.py | 2 +-
sf_base/models/fixture.py | 4 +-
sf_base/views/fixture_view.xml | 2 +-
sf_tool_management/models/base.py | 50 ++++++++++++--------
sf_tool_management/views/tool_base_views.xml | 27 +++++++----
sf_tool_management/wizard/wizard.py | 2 +
6 files changed, 53 insertions(+), 34 deletions(-)
diff --git a/sf_base/models/basic_parameters_fixture.py b/sf_base/models/basic_parameters_fixture.py
index 0dfb4b6d..57d55bde 100644
--- a/sf_base/models/basic_parameters_fixture.py
+++ b/sf_base/models/basic_parameters_fixture.py
@@ -59,7 +59,7 @@ class BasicParametersFixture(models.Model):
magnetic_field_height = fields.Float('磁场高度(mm)', digits=(16, 2))
magnetic_pole_plate_grinding_allowance = fields.Float('磁极板磨削余量(mm)', digits=(16, 2))
- # '转接板夹具' 字段
+ # '转接板(锁板)夹具' 字段
screw_size = fields.Float('螺牙大小(mm)', digits=(16, 2))
via_hole_diameter = fields.Float('过孔直径(mm)', digits=(16, 2))
diff --git a/sf_base/models/fixture.py b/sf_base/models/fixture.py
index 91aec75e..d6455550 100644
--- a/sf_base/models/fixture.py
+++ b/sf_base/models/fixture.py
@@ -45,7 +45,7 @@ class FixtureModel(models.Model):
magnet_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='磁吸夹具基本参数')
adapter_board_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
- string='转接板夹具基本参数')
+ string='转接板(锁板)夹具基本参数')
scroll_chuck_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='三爪卡盘基本参数')
@@ -67,7 +67,7 @@ class FixtureModel(models.Model):
if fixture_material_id:
if self.fixture_material_id.name == "气动夹具":
code = self._get_code("JKM-C-JJWL-QDJJ-")
- elif self.fixture_material_id.name == "转接板夹具":
+ elif self.fixture_material_id.name == "转接板(锁板)夹具":
code = self._get_code("JKM-C-JJWL-ZJJJ-")
elif self.fixture_material_id.name == "磁吸夹具":
code = self._get_code("JKM-C-JJWL-CXJJ-")
diff --git a/sf_base/views/fixture_view.xml b/sf_base/views/fixture_view.xml
index 15f43fb1..0a7d1e8e 100644
--- a/sf_base/views/fixture_view.xml
+++ b/sf_base/views/fixture_view.xml
@@ -341,7 +341,7 @@
+ attrs="{'invisible': [('fixture_material_type', '!=', '转接板(锁板)夹具')]}">
diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index e1d1010b..9f5721a5 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
+import re
from datetime import timedelta
-
from odoo import fields, models, api
from odoo import SUPERUSER_ID
from odoo.exceptions import ValidationError
@@ -234,6 +234,7 @@ class FunctionalToolWarning(models.Model):
class StockMoveLine(models.Model):
_inherit = 'stock.move.line'
_description = '功能刀具出入库记录'
+ _order = 'install_tool_time desc'
functional_tool_name_id = fields.Many2one('sf.functional.tool.assembly', string='功能刀具名称')
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', store=True,
@@ -253,11 +254,11 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
_name = 'sf.real.time.distribution.of.functional.tools'
_description = '功能刀具安全库存'
- name = fields.Char('功能刀具名称')
- sf_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型',
+ name = fields.Char('功能刀具名称', readonly=False)
+ sf_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=False,
group_expand='_read_mrs_cutting_tool_type_ids', store=True)
- diameter = fields.Integer(string='刀具直径(mm)')
- knife_tip_r_angle = fields.Float(string='刀尖R角(mm)')
+ diameter = fields.Integer(string='刀具直径(mm)', readonly=False)
+ knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', readonly=False)
tool_stock_num = fields.Integer(string='刀具房数量')
side_shelf_num = fields.Integer(string='线边刀库数量')
on_tool_stock_num = fields.Integer(string='机内刀库数量')
@@ -266,10 +267,10 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
max_stock_num = fields.Integer('最高库存量')
batch_replenishment_num = fields.Integer('批次补货量', readonly=True, compute='_compute_batch_replenishment_num')
unit = fields.Char('单位')
- image = fields.Binary('图片')
+ image = fields.Binary('图片', readonly=False)
- coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精')
- whether_standard_knife = fields.Boolean(string='是否标准刀', default=True)
+ coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
+ whether_standard_knife = fields.Boolean(string='是否标准刀', default=True, readonly=False)
# 能力特征信息
suitable_machining_method_ids = fields.Many2many(
'maintenance.equipment.image', 'rel_machining_product_template_distribution', '适合加工方式',
@@ -299,7 +300,7 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
@api.constrains('min_stock_num', 'max_stock_num')
def _check_stock_num(self):
for obj in self:
- if obj.min_stock_num > obj.min_stock_num:
+ if obj.min_stock_num > obj.max_stock_num:
raise ValidationError('【最低安全库存】不能高于【最高安全库存】!!!')
@api.model
@@ -326,31 +327,31 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
if tool.tool_stock_total < tool.min_stock_num:
tool.batch_replenishment_num = tool.max_stock_num - tool.tool_stock_total
# 根据判断创建功能刀具组装单
- if not tool.sf_functional_tool_assembly_ids:
+ if not tool.sf_functional_tool_assembly_ids and re.match(r'^\d+$', str(tool.id)):
for i in range(tool.batch_replenishment_num):
- tool.create_functional_tool_assembly()
+ tool.create_functional_tool_assembly(tool)
print(i, ": ", tool.sf_functional_tool_assembly_ids)
else:
tool.batch_replenishment_num = 0
- def create_functional_tool_assembly(self):
+ def create_functional_tool_assembly(self, tool):
"""
创建功能刀具组装单
"""
- functional_tool_assembly = self.env['sf.functional.tool.assembly'].sudo().create({
- 'functional_tool_name': self.name,
- 'functional_tool_type_id': self.sf_cutting_tool_type_id.id,
- 'functional_tool_diameter': self.diameter,
- 'knife_tip_r_angle': self.knife_tip_r_angle,
- 'coarse_middle_thin': self.coarse_middle_thin,
+ functional_tool_assembly = tool.env['sf.functional.tool.assembly'].sudo().create({
+ 'functional_tool_name': tool.name,
+ 'functional_tool_type_id': tool.sf_cutting_tool_type_id.id,
+ 'functional_tool_diameter': tool.diameter,
+ 'knife_tip_r_angle': tool.knife_tip_r_angle,
+ 'coarse_middle_thin': tool.coarse_middle_thin,
'loading_task_source': '2',
'use_tool_time': fields.Datetime.now() + timedelta(hours=4),
'applicant': '系统自动',
'apply_time': fields.Datetime.now(),
- 'whether_standard_knife': self.whether_standard_knife,
+ 'whether_standard_knife': tool.whether_standard_knife,
'reason_for_applying': '安全库存',
})
- self.sf_functional_tool_assembly_ids = [(4, functional_tool_assembly.id)]
+ tool.sf_functional_tool_assembly_ids = [(4, functional_tool_assembly.id)]
def estimate_functional_tool_assembly_ids(self, tool):
"""
@@ -394,6 +395,15 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
vals['sf_functional_cutting_tool_entity_ids'] = sf_functional_cutting_tool_entity_ids.ids
self.env['sf.real.time.distribution.of.functional.tools'].create(vals)
+ status_create = fields.Boolean('是否是新增状态', default=True)
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ vals['status_create'] = False
+ records = super(RealTimeDistributionOfFunctionalTools, self).create(vals_list)
+ return records
+
class MachineTableToolChangingApply(models.Model):
_name = 'sf.machine.table.tool.changing.apply'
diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml
index 86c42c92..42bb103b 100644
--- a/sf_tool_management/views/tool_base_views.xml
+++ b/sf_tool_management/views/tool_base_views.xml
@@ -310,22 +310,29 @@
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
@@ -366,7 +373,7 @@
-
+
@@ -1162,7 +1169,7 @@
-
+
@@ -1173,7 +1180,7 @@
ir.actions.act_window
sf.functional.tool.assembly
tree,form,search
-
+
{'search_default_no_assemble_status':1}
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index 89b9f854..f98da62e 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -537,6 +537,8 @@ class StockPicking(models.Model):
self.env['stock.move.line'].create({
'picking_id': picking_id.id,
'product_id': stock_lot.product_id.id,
+ 'location_id': picking_id.location_id.id,
+ 'location_dest_id': picking_id.location_dest_id.id,
'lot_id': stock_lot.id,
'qty_done': 1,
'functional_tool_name_id': functional_tool_assembly.id
From ec9435bb82673f52be7ad5467a40ff357c5f3b43 Mon Sep 17 00:00:00 2001
From: "jinling.yang"
Date: Tue, 2 Jan 2024 17:42:06 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE?=
=?UTF-8?q?=E5=92=8C=E9=87=87=E8=B4=AD=E7=9A=84=E9=83=A8=E5=88=86bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_quality/security/ir.model.access.csv | 10 +++++-----
sf_sale/models/sale_order.py | 24 +++++++++++++++++++++---
sf_sale/security/group_security.xml | 2 +-
sf_sale/security/ir.model.access.csv | 4 ++++
sf_sale/views/purchase_order_view.xml | 3 +++
sf_sale/views/res_partner_view.xml | 3 ++-
sf_sale/views/sale_order_view.xml | 5 ++---
7 files changed, 38 insertions(+), 13 deletions(-)
diff --git a/sf_quality/security/ir.model.access.csv b/sf_quality/security/ir.model.access.csv
index a26c135b..dbcd31ee 100644
--- a/sf_quality/security/ir.model.access.csv
+++ b/sf_quality/security/ir.model.access.csv
@@ -1,6 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_quality_point_group_quality,quality_point_group_quality,quality.model_quality_point,sf_base.group_quality,1,1,1,0
-access_quality_point_group_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,0,0
+access_quality_point_group_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,1,0
access_quality_point_group_plan_dispatch,quality_point_group_plan_dispatch,quality.model_quality_point,sf_base.group_plan_dispatch,1,0,0,0
access_quality_point_group_plan_director,quality_point_group_plan_director,quality.model_quality_point,sf_base.group_plan_director,1,0,0,0
access_quality_point_group_sf_equipment_user,quality_point_group_sf_equipment_user,quality.model_quality_point,sf_base.group_sf_equipment_user,1,0,0,0
@@ -30,8 +30,8 @@ access_quality_alert_group_sf_mrp_manager,quality_alert_group_sf_mrp_manager,qua
access_quality_alert_group_equipment_user,quality_alert_group_equipment_user,quality.model_quality_alert,sf_maintenance.sf_group_equipment_user,1,0,0,0
access_quality_alert_group_equipment_manager,quality_alert_group_equipment_manager,quality.model_quality_alert,sf_maintenance.sf_group_equipment_manager,1,0,0,0
-access_quality_alert_team_group_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,1,1,0
-access_quality_alert_team_group_quality_director,quality_alert_team_group_quality_director,quality.model_quality_alert_team,sf_base.group_quality_director,1,1,0,0
+access_quality_alert_team_group_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,0,0,0
+access_quality_alert_team_group_quality_director,quality_alert_team_group_quality_director,quality.model_quality_alert_team,sf_base.group_quality_director,1,1,1,0
access_quality_alert_team_group_plan_dispatch,quality_alert_team_group_plan_dispatch,quality.model_quality_alert_team,sf_base.group_plan_dispatch,1,0,0,0
access_quality_alert_team_group_plan_director,quality_alert_team_group_plan_director,quality.model_quality_alert_team,sf_base.group_plan_director,1,0,0,0
access_quality_alert_team_group_sf_equipment_user,quality_alert_team_group_sf_equipment_user,quality.model_quality_alert_team,sf_base.group_sf_equipment_user,1,0,0,0
@@ -51,13 +51,13 @@ access_product_template_group_equipment_user,product_template_group_equipment_us
access_product_template_group_equipment_manager,product_template_group_equipment_manager,product.model_product_template,sf_maintenance.sf_group_equipment_manager,1,0,0,0
access_quality_alert_stage_group_quality,quality_alert_stage_group_quality,quality.model_quality_alert_stage,sf_base.group_quality,1,0,0,0
-access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,0,0,0
+access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,1,1,0
access_quality_point_test_type_group_quality,quality_point_test_type_group_quality,quality.model_quality_point_test_type,sf_base.group_quality,1,0,0,0
access_quality_point_test_type_group_quality_director,quality_point_test_type_group_quality_director,quality.model_quality_point_test_type,sf_base.group_quality_director,1,0,0,0
access_quality_tag_group_quality,quality_tag_group_quality,quality.model_quality_tag,sf_base.group_quality,1,0,0,0
-access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,0,0,0
+access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,1,1,0
access_quality_reason_type_group_quality,quality_reason_group_quality,quality.model_quality_reason,sf_base.group_quality,1,0,0,0
access_quality_reason_type_group_quality_director,quality_reason_group_quality_director,quality.model_quality_reason,sf_base.group_quality_director,1,0,0,0
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index 8cbcbb31..e1d0bad0 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -86,6 +86,7 @@ class ResaleOrderLine(models.Model):
_inherit = 'sale.order.line'
model_glb_file = fields.Binary('模型的glb文件')
+ check_status = fields.Selection(related='order_id.check_status')
class RePurchaseOrder(models.Model):
@@ -144,17 +145,31 @@ class ResPartnerToSale(models.Model):
else:
domain = [('id', '=', False)]
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
+ elif self._context.get('is_supplier'):
+ if self.env.user.has_group('sf_base.group_purchase_director'):
+ domain = [('supplier_rank', '>', 0)]
+ elif self.env.user.has_group('sf_base.group_purchase'):
+ customer = self.env['res.partner'].search(
+ [('supplier_rank', '>', 0), ('user_id', '=', self.env.user.id)])
+ if customer:
+ ids = [t.id for t in customer]
+ domain = [('id', 'in', ids)]
+ else:
+ domain = [('id', '=', False)]
+ return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
return super()._name_search(name, args, operator, limit, name_get_uid)
@api.onchange('user_id')
def _get_salesman(self):
if self.customer_rank > 0:
- self.user_id = self.env.user.id
+ if self.env.user.has_group('sf_base.group_sale_salemanager'):
+ self.user_id = self.env.user.id
@api.onchange('purchase_user_id')
def _get_purchaseman(self):
if self.supplier_rank > 0:
- self.purchase_user_id = self.env.user.id
+ if self.env.user.has_group('sf_base.group_purchase'):
+ self.purchase_user_id = self.env.user.id
class ResUserToSale(models.Model):
@@ -166,7 +181,10 @@ class ResUserToSale(models.Model):
if self.env.user.has_group('sf_base.group_sale_director'):
domain = []
elif self.env.user.has_group('sf_base.group_sale_salemanager'):
- domain = [('id', '=', self.env.user.id)]
+ if self.id != self.env.user.id:
+ domain = [('id', '=', self.id)]
+ else:
+ domain = [('id', '=', self.env.user.id)]
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
elif self._context.get('supplier_rank'):
if self.env.user.has_group('sf_base.group_purchase_director'):
diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml
index 431b872b..f5d080ef 100644
--- a/sf_sale/security/group_security.xml
+++ b/sf_sale/security/group_security.xml
@@ -32,7 +32,7 @@
销售经理查看自己的客户
- [('user_id','=',user.id),('customer_rank','>',0)]
+ [('user_id', '=', user.id),('customer_rank', '>', 0)]
diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv
index 9489a6cc..8c6e1dc3 100644
--- a/sf_sale/security/ir.model.access.csv
+++ b/sf_sale/security/ir.model.access.csv
@@ -29,6 +29,8 @@ access_mrp_bom_group_sale_salemanager,mrp_bom_group_sale_salemanager,mrp.model_m
access_mrp_bom_group_sale_director,mrp_bom_group_sale_director,mrp.model_mrp_bom,sf_base.group_sale_director,1,0,0,0
access_mrp_bom_group_purchase,mrp_bom_group_purchase,mrp.model_mrp_bom,sf_base.group_purchase,1,0,0,0
access_mrp_bom_group_purchase_director,mrp_bom_group_purchase_director,mrp.model_mrp_bom,sf_base.group_purchase_director,1,0,0,0
+access_mrp_bom_group_quality,mrp_bom_group_quality,mrp.model_mrp_bom,sf_base.group_quality,1,0,0,0
+access_mrp_bom_group_quality_director,mrp_bom_group_quality_director,mrp.model_mrp_bom,sf_base.group_quality_director,1,0,0,0
access_stock_move_group_sale_salemanager,stock_move_group_sale_salemanager,stock.model_stock_move,sf_base.group_sale_salemanager,1,0,0,0
access_stock_move_group_sale_director,stock_move_group_sale_director,stock.model_stock_move,sf_base.group_sale_director,1,0,0,0
access_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,0,0,0
@@ -67,3 +69,5 @@ access_purchase_order_wizard_group_purchase,purchase_order_wizard_group_purchase
access_purchase_order_wizard_group_purchase_director,purchase_order_wizard_group_purchase_director,model_purchase_order_wizard,sf_base.group_purchase_director,1,1,1,0
access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team.model_crm_tag,sf_base.group_sale_salemanager,1,0,0,0
access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0
+access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,1,1,0
+access_res_partner_group_purchase_director,res_partner_group_purchase_director,base.model_res_partner,sf_base.group_purchase_director,1,1,1,0
diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml
index 93b59032..51dfaf63 100644
--- a/sf_sale/views/purchase_order_view.xml
+++ b/sf_sale/views/purchase_order_view.xml
@@ -6,6 +6,9 @@
purchase.order
+
+
+
diff --git a/sf_sale/views/res_partner_view.xml b/sf_sale/views/res_partner_view.xml
index 2ab384eb..284bf29d 100644
--- a/sf_sale/views/res_partner_view.xml
+++ b/sf_sale/views/res_partner_view.xml
@@ -6,6 +6,7 @@
res.partner
+
@@ -42,7 +43,7 @@
+ attrs="{'required' : [('customer_rank','>', 0)]}"/>
1
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index d1f0dfb8..db94b2c9 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -36,8 +36,7 @@
attrs="{'invisible': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
- {'invisible': ['|',('check_status', '!=', 'approved'),('schedule_status',
- 'not in', ['to schedule',False])]}
+ {'invisible': [('check_status', '=', False)]}
@@ -63,7 +62,7 @@
+ string="模型文件" attrs="{'readonly': [('state', 'in', ['draft'])]}"/>
{'readonly': [('state', 'in', ['cancel','sale'])]}
From 45e8e380db9d691fbc7d202afddf9387a854f3cc Mon Sep 17 00:00:00 2001
From: "jinling.yang"
Date: Wed, 3 Jan 2024 11:42:23 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE?=
=?UTF-8?q?=E8=B4=A8=E9=87=8F=E9=87=87=E8=B4=ADbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_sale/security/group_security.xml | 3 ++-
sf_sale/security/ir.model.access.csv | 3 +++
sf_sale/views/res_partner_view.xml | 7 ++++++-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml
index f5d080ef..c6af4225 100644
--- a/sf_sale/security/group_security.xml
+++ b/sf_sale/security/group_security.xml
@@ -64,8 +64,9 @@
采购总监查看所有的订单
- [(1,'=',1),('check_status','!=', False]
+ [(1,'=',1)]
+
diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv
index 8c6e1dc3..682d6531 100644
--- a/sf_sale/security/ir.model.access.csv
+++ b/sf_sale/security/ir.model.access.csv
@@ -71,3 +71,6 @@ access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team.
access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0
access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,1,1,0
access_res_partner_group_purchase_director,res_partner_group_purchase_director,base.model_res_partner,sf_base.group_purchase_director,1,1,1,0
+access_sale_advance_payment_inv_group_sale_salemanager,sale_advance_payment_inv_group_sale_salemanager,sale.model_sale_advance_payment_inv,sf_base.group_sale_salemanager,1,1,1,0
+access_sale_advance_payment_inv_group_sale_director,sale_advance_payment_inv_group_sale_director,sale.model_sale_advance_payment_inv,sf_base.group_sale_director,1,1,1,0
+
diff --git a/sf_sale/views/res_partner_view.xml b/sf_sale/views/res_partner_view.xml
index 284bf29d..c7bb79af 100644
--- a/sf_sale/views/res_partner_view.xml
+++ b/sf_sale/views/res_partner_view.xml
@@ -6,7 +6,9 @@
res.partner
-
+
@@ -70,6 +72,9 @@
res.partner
+
+ false
+