diff --git a/sf_mrs_connect/__manifest__.py b/sf_mrs_connect/__manifest__.py
index 3ccd3ac4..1ea4f693 100644
--- a/sf_mrs_connect/__manifest__.py
+++ b/sf_mrs_connect/__manifest__.py
@@ -10,11 +10,12 @@
""",
'category': 'sf',
'website': 'https://www.sf.cs.jikimo.com',
- 'depends': ['sf_base', 'base_setup'],
+ 'depends': ['sf_base', 'base_setup','sf_bf_connect'],
'data': [
'data/ir_cron_data.xml',
'security/ir.model.access.csv',
- 'views/res_config_settings_views.xml'
+ 'views/res_config_settings_views.xml',
+ 'views/order_price.xml',
],
'demo': [
],
diff --git a/sf_mrs_connect/models/__init__.py b/sf_mrs_connect/models/__init__.py
index 2f84348c..f01fb4fe 100644
--- a/sf_mrs_connect/models/__init__.py
+++ b/sf_mrs_connect/models/__init__.py
@@ -1,3 +1,4 @@
from . import ftp_operate
from . import res_config_setting
from . import sync_common
+from . import order_price
\ No newline at end of file
diff --git a/sf_mrs_connect/models/order_price.py b/sf_mrs_connect/models/order_price.py
new file mode 100644
index 00000000..d5841bf7
--- /dev/null
+++ b/sf_mrs_connect/models/order_price.py
@@ -0,0 +1,29 @@
+from odoo import fields, models, api
+
+
+class OrderPrice(models.Model):
+ _name = 'order.price'
+ _description = '订单价格对比'
+ sale_order_id = fields.Many2one('sale.order', '销售订单')
+ bfm_order_name = fields.Char(related="sale_order_id.default_code", string='bfm订单号')
+ sale_order_name = fields.Char(related="sale_order_id.name", string='销售订单号')
+ currency_id = fields.Many2one(
+ related='sale_order_id.currency_id', string='货币', store=True)
+ sale_order_amount_total = fields.Monetary(related="sale_order_id.amount_total", tracking=4, string='销售订单金额')
+ bfm_amount_total = fields.Float(string='价格合计', compute='_compute_bfm_amount_total', store=True)
+
+ def is_float(self,value):
+ try:
+ float(value)
+ return True
+ except ValueError:
+ return False
+ @api.depends('sale_order_id.remark')
+ def _compute_bfm_amount_total(self):
+ for record in self:
+ amount_total = 0
+ for line in record.sale_order_id.order_line:
+ # 判断remark是否存在并且是否是数字
+ if line.remark and self.is_float(line.remark):
+ amount_total += float(line.remark)
+ record.bfm_amount_total = amount_total
\ No newline at end of file
diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py
index 04693fa7..c6f19502 100644
--- a/sf_mrs_connect/models/res_config_setting.py
+++ b/sf_mrs_connect/models/res_config_setting.py
@@ -184,7 +184,10 @@ class ResConfigSettings(models.TransientModel):
new_price = res_order_lines_map.get(str(index))
if order_line:
# 修改单价
- order_line.write({'remark': new_price})
+ order_line.write({'remark': new_price*order_line.product_uom_qty})
+ order_price = self.env['order.price'].sudo().search([('sale_order_id', '=',need_change_sale_order.id )])
+ if not order_price:
+ self.env['order.price'].sudo().create({'sale_order_id':need_change_sale_order.id})
else:
logging.error('同步销售订单价格失败 {}'.format(response.text))
raise UserError('同步销售订单价格失败')
diff --git a/sf_mrs_connect/security/ir.model.access.csv b/sf_mrs_connect/security/ir.model.access.csv
index 0ed43a62..60d5cea5 100644
--- a/sf_mrs_connect/security/ir.model.access.csv
+++ b/sf_mrs_connect/security/ir.model.access.csv
@@ -1,7 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sf_static_resource_datasync,sf_static_resource_datasync,model_sf_static_resource_datasync,base.group_user,1,1,1,1
-
+access_order_price,order.price,model_order_price,base.group_user,1,1,1,1
diff --git a/sf_mrs_connect/views/order_price.xml b/sf_mrs_connect/views/order_price.xml
new file mode 100644
index 00000000..ea80b7b4
--- /dev/null
+++ b/sf_mrs_connect/views/order_price.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ bfm订单价格对比
+ order.price
+ tree,form
+
+
+ order.price.list
+ order.price
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_plan/models/custom_plan.py b/sf_plan/models/custom_plan.py
index ddd3bcc5..fb8176fe 100644
--- a/sf_plan/models/custom_plan.py
+++ b/sf_plan/models/custom_plan.py
@@ -75,16 +75,21 @@ class sf_production_plan(models.Model):
if self.date_planned_start:
self.date_planned_finished = self.date_planned_start + timedelta(hours=1)
- #处理计划状态非代排程,计划结束时间为空的数据处理
+ #处理计划状态非待排程,计划结束时间为空的数据处理
def deal_no_date_planned_finished(self):
plans = self.env['sf.production.plan'].search(
[('date_planned_finished', '=', False), ('state', 'in', ['processing', 'done', 'finished'])])
for item in plans:
if item.date_planned_start:
item.date_planned_finished = item.date_planned_start + timedelta(hours=1)
- if not item.order_deadline and item.date_planned_start:
- item.order_deadline = item.date_planned_start + timedelta(days=7)
+ # 处理计划订单截止时间为空的数据
+ def deal_no_order_deadline(self):
+ plans = self.env['sf.production.plan'].sudo().search(
+ [('order_deadline', '=', False)])
+ for item in plans:
+ if item.date_planned_start:
+ item.order_deadline = item.date_planned_start + timedelta(days=7)
@api.model
def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None):
diff --git a/sf_tool_management/models/functional_cutting_tool_model.py b/sf_tool_management/models/functional_cutting_tool_model.py
index fe2c68c5..39048bfd 100644
--- a/sf_tool_management/models/functional_cutting_tool_model.py
+++ b/sf_tool_management/models/functional_cutting_tool_model.py
@@ -3,4 +3,4 @@ from odoo import models, fields
class SyncFunctionalCuttingToolModel(models.Model):
_inherit = 'sf.functional.cutting.tool.model'
- cutting_tool_type_ids = fields.Many2many('sf.cutting.tool.type', string='适用刀具物料类型', required=True)
\ No newline at end of file
+ cutting_tool_type_ids = fields.Many2many('sf.cutting.tool.type', string='适用刀具物料类型')
\ No newline at end of file
diff --git a/sf_tool_management/views/tool_views.xml b/sf_tool_management/views/tool_views.xml
index 24379b9a..d483e1a3 100644
--- a/sf_tool_management/views/tool_views.xml
+++ b/sf_tool_management/views/tool_views.xml
@@ -8,7 +8,7 @@
-
+