From 7ce2f6c7979d1e9974cab903f252ef0364a8d9bd Mon Sep 17 00:00:00 2001 From: liaodanlong Date: Sat, 14 Sep 2024 17:40:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E6=A0=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_mrs_connect/__manifest__.py | 5 ++-- sf_mrs_connect/models/__init__.py | 1 + sf_mrs_connect/models/order_price.py | 29 +++++++++++++++++++++ sf_mrs_connect/models/res_config_setting.py | 5 +++- sf_mrs_connect/security/ir.model.access.csv | 2 +- sf_mrs_connect/views/order_price.xml | 26 ++++++++++++++++++ 6 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 sf_mrs_connect/models/order_price.py create mode 100644 sf_mrs_connect/views/order_price.xml 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