修复进度不更新到bfm的问题,在sf的设置处增加bfm环境选择(正式、测试、开发)
This commit is contained in:
@@ -15,99 +15,148 @@ class StatusChange(models.Model):
|
||||
default_code = fields.Char(string='内部编码')
|
||||
|
||||
def action_confirm(self):
|
||||
# 在原有方法执行前记录日志和执行其他操作
|
||||
logging.info('函数已经执行=============')
|
||||
if self._get_forbidden_state_confirm() & set(self.mapped('state')):
|
||||
raise UserError(_(
|
||||
"It is not allowed to confirm an order in the following states: %s",
|
||||
", ".join(self._get_forbidden_state_confirm()),
|
||||
))
|
||||
logging.info('函数已经执行=============1')
|
||||
for order in self:
|
||||
if order.partner_id in order.message_partner_ids:
|
||||
logging.info('函数已经执行=============2')
|
||||
continue
|
||||
order.message_subscribe([order.partner_id.id])
|
||||
logging.info('函数已经执行=============3')
|
||||
self.write(self._prepare_confirmation_values())
|
||||
|
||||
# Context key 'default_name' is sometimes propagated up to here.
|
||||
# We don't need it and it creates issues in the creation of linked records.
|
||||
context = self._context.copy()
|
||||
context.pop('default_name', None)
|
||||
logging.info('函数已经执行=============4')
|
||||
self.with_context(context)._action_confirm()
|
||||
if self.env.user.has_group('sale.group_auto_done_setting'):
|
||||
logging.info('函数已经执行=============5')
|
||||
self.action_done()
|
||||
# 使用super()来调用原始方法(在本例中为'sale.order'模型的'action_confirm'方法)
|
||||
res = super(StatusChange, self).action_confirm()
|
||||
|
||||
# 原有方法执行后,进行额外的操作(如调用外部API)
|
||||
process_start_time = str(datetime.now())
|
||||
config = self.env['res.config.settings'].get_values()
|
||||
json1 = {
|
||||
'params': {
|
||||
'model_name': 'jikimo.process.order',
|
||||
'field_name': 'name',
|
||||
# 'default_code': 'PO-2022-1214-0022',
|
||||
'default_code': self.default_code,
|
||||
# 'default_code': self.name,
|
||||
'state': '加工中',
|
||||
'process_start_time': process_start_time,
|
||||
},
|
||||
}
|
||||
url1 = 'https://bfm.cs.jikimo.com/api/get/state/get_order'
|
||||
url1 = config['bfm_url'] + '/api/get/state/get_order'
|
||||
requests.post(url1, json=json1, data=None)
|
||||
logging.info('接口已经执行=============')
|
||||
|
||||
return True
|
||||
return res
|
||||
|
||||
def action_cancel(self):
|
||||
""" Cancel SO after showing the cancel wizard when needed. (cfr `_show_cancel_wizard`)
|
||||
|
||||
For post-cancel operations, please only override `_action_cancel`.
|
||||
|
||||
note: self.ensure_one() if the wizard is shown.
|
||||
"""
|
||||
# 在原有方法执行前记录日志和执行其他操作
|
||||
logging.info('函数已经执行=============')
|
||||
cancel_warning = self._show_cancel_wizard()
|
||||
|
||||
# 使用super()来调用原始方法(在本例中为'sale.order'模型的'action_cancel'方法)
|
||||
res = super(StatusChange, self).action_cancel()
|
||||
|
||||
# 原有方法执行后,进行额外的操作(如调用外部API)
|
||||
logging.info('函数已经执行=============2')
|
||||
config = self.env['res.config.settings'].get_values()
|
||||
json1 = {
|
||||
'params': {
|
||||
'model_name': 'jikimo.process.order',
|
||||
'field_name': 'name',
|
||||
'default_code': self.default_code,
|
||||
# 'default_code': self.name,
|
||||
'state': '待派单',
|
||||
},
|
||||
}
|
||||
url1 = 'https://bfm.cs.jikimo.com/api/get/state/cancel_order'
|
||||
url1 = config['bfm_url'] + '/api/get/state/cancel_order'
|
||||
requests.post(url1, json=json1, data=None)
|
||||
if cancel_warning:
|
||||
logging.info('函数已经执行=============3')
|
||||
self.ensure_one()
|
||||
logging.info('函数已经执行=============4')
|
||||
template_id = self.env['ir.model.data']._xmlid_to_res_id(
|
||||
'sale.mail_template_sale_cancellation', raise_if_not_found=False
|
||||
)
|
||||
lang = self.env.context.get('lang')
|
||||
template = self.env['mail.template'].browse(template_id)
|
||||
if template.lang:
|
||||
lang = template._render_lang(self.ids)[self.id]
|
||||
ctx = {
|
||||
'default_use_template': bool(template_id),
|
||||
'default_template_id': template_id,
|
||||
'default_order_id': self.id,
|
||||
'mark_so_as_canceled': True,
|
||||
'default_email_layout_xmlid': "mail.mail_notification_layout_with_responsible_signature",
|
||||
'model_description': self.with_context(lang=lang).type_name,
|
||||
}
|
||||
return {
|
||||
'name': _('Cancel %s', self.type_name),
|
||||
'view_mode': 'form',
|
||||
'res_model': 'sale.order.cancel',
|
||||
'view_id': self.env.ref('sale.sale_order_cancel_view_form').id,
|
||||
'type': 'ir.actions.act_window',
|
||||
'context': ctx,
|
||||
'target': 'new'
|
||||
}
|
||||
else:
|
||||
return self._action_cancel()
|
||||
|
||||
return res
|
||||
|
||||
# def action_confirm(self):
|
||||
# logging.info('函数已经执行=============')
|
||||
# if self._get_forbidden_state_confirm() & set(self.mapped('state')):
|
||||
# raise UserError(_(
|
||||
# "It is not allowed to confirm an order in the following states: %s",
|
||||
# ", ".join(self._get_forbidden_state_confirm()),
|
||||
# ))
|
||||
# logging.info('函数已经执行=============1')
|
||||
# for order in self:
|
||||
# if order.partner_id in order.message_partner_ids:
|
||||
# logging.info('函数已经执行=============2')
|
||||
# continue
|
||||
# order.message_subscribe([order.partner_id.id])
|
||||
# logging.info('函数已经执行=============3')
|
||||
# self.write(self._prepare_confirmation_values())
|
||||
#
|
||||
# # Context key 'default_name' is sometimes propagated up to here.
|
||||
# # We don't need it and it creates issues in the creation of linked records.
|
||||
# context = self._context.copy()
|
||||
# context.pop('default_name', None)
|
||||
# logging.info('函数已经执行=============4')
|
||||
# self.with_context(context)._action_confirm()
|
||||
# if self.env.user.has_group('sale.group_auto_done_setting'):
|
||||
# logging.info('函数已经执行=============5')
|
||||
# self.action_done()
|
||||
# process_start_time = str(datetime.now())
|
||||
# json1 = {
|
||||
# 'params': {
|
||||
# 'model_name': 'jikimo.process.order',
|
||||
# 'field_name': 'name',
|
||||
# # 'default_code': 'PO-2022-1214-0022',
|
||||
# 'default_code': self.default_code,
|
||||
# # 'default_code': self.name,
|
||||
# 'state': '加工中',
|
||||
# 'process_start_time': process_start_time,
|
||||
# },
|
||||
# }
|
||||
# url1 = 'https://bfm.cs.jikimo.com/api/get/state/get_order'
|
||||
# requests.post(url1, json=json1, data=None)
|
||||
# logging.info('接口已经执行=============')
|
||||
#
|
||||
# return True
|
||||
|
||||
|
||||
# def action_cancel(self):
|
||||
# """ Cancel SO after showing the cancel wizard when needed. (cfr `_show_cancel_wizard`)
|
||||
#
|
||||
# For post-cancel operations, please only override `_action_cancel`.
|
||||
#
|
||||
# note: self.ensure_one() if the wizard is shown.
|
||||
# """
|
||||
# logging.info('函数已经执行=============')
|
||||
# cancel_warning = self._show_cancel_wizard()
|
||||
# logging.info('函数已经执行=============2')
|
||||
# json1 = {
|
||||
# 'params': {
|
||||
# 'model_name': 'jikimo.process.order',
|
||||
# 'field_name': 'name',
|
||||
# 'default_code': self.default_code,
|
||||
# # 'default_code': self.name,
|
||||
# 'state': '待派单',
|
||||
# },
|
||||
# }
|
||||
# url1 = 'https://bfm.cs.jikimo.com/api/get/state/cancel_order'
|
||||
# requests.post(url1, json=json1, data=None)
|
||||
# if cancel_warning:
|
||||
# logging.info('函数已经执行=============3')
|
||||
# self.ensure_one()
|
||||
# logging.info('函数已经执行=============4')
|
||||
# template_id = self.env['ir.model.data']._xmlid_to_res_id(
|
||||
# 'sale.mail_template_sale_cancellation', raise_if_not_found=False
|
||||
# )
|
||||
# lang = self.env.context.get('lang')
|
||||
# template = self.env['mail.template'].browse(template_id)
|
||||
# if template.lang:
|
||||
# lang = template._render_lang(self.ids)[self.id]
|
||||
# ctx = {
|
||||
# 'default_use_template': bool(template_id),
|
||||
# 'default_template_id': template_id,
|
||||
# 'default_order_id': self.id,
|
||||
# 'mark_so_as_canceled': True,
|
||||
# 'default_email_layout_xmlid': "mail.mail_notification_layout_with_responsible_signature",
|
||||
# 'model_description': self.with_context(lang=lang).type_name,
|
||||
# }
|
||||
# return {
|
||||
# 'name': _('Cancel %s', self.type_name),
|
||||
# 'view_mode': 'form',
|
||||
# 'res_model': 'sale.order.cancel',
|
||||
# 'view_id': self.env.ref('sale.sale_order_cancel_view_form').id,
|
||||
# 'type': 'ir.actions.act_window',
|
||||
# 'context': ctx,
|
||||
# 'target': 'new'
|
||||
# }
|
||||
# else:
|
||||
# return self._action_cancel()
|
||||
|
||||
|
||||
class FinishStatusChange(models.Model):
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
'views/machine_monitor.xml',
|
||||
'views/machine_info_present.xml',
|
||||
'views/delivery_record.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
|
||||
],
|
||||
'assets': {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from . import ftp_client
|
||||
from . import ftp_operate
|
||||
from . import py2opcua
|
||||
from . import res_config_setting
|
||||
|
||||
36
sf_machine_connect/models/res_config_setting.py
Normal file
36
sf_machine_connect/models/res_config_setting.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
from odoo import api, fields, models, _
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ResBFMConfigSettings(models.TransientModel):
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
bfm_url = fields.Selection(
|
||||
[("https://bfm.cs.jikimo.com", "开发环境(https://bfm.cs.jikimo.com)"),
|
||||
("https://bfm.r.jikimo.com", "测试环境(https://bfm.r.jikimo.com)"),
|
||||
# ("正式环境", "https://bfm.jikimo.com")], string='bfm环境', store=True)
|
||||
("https://bfm.jikimo.com", "正式环境(https://bfm.jikimo.com)")], string='bfm环境', store=True)
|
||||
|
||||
@api.model
|
||||
def get_values(self):
|
||||
"""
|
||||
重载获取参数的方法,参数都存在系统参数中
|
||||
:return:
|
||||
"""
|
||||
values = super(ResBFMConfigSettings, self).get_values()
|
||||
config = self.env['ir.config_parameter'].sudo()
|
||||
bfm_url = config.get_param('bfm_url', default='')
|
||||
|
||||
values.update(
|
||||
bfm_url=bfm_url,
|
||||
)
|
||||
return values
|
||||
|
||||
def set_values(self):
|
||||
super(ResBFMConfigSettings, self).set_values()
|
||||
ir_config = self.env['ir.config_parameter'].sudo()
|
||||
ir_config.set_param("bfm_url", self.bfm_url or "")
|
||||
|
||||
29
sf_machine_connect/views/res_config_settings_views.xml
Normal file
29
sf_machine_connect/views/res_config_settings_views.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="res_config_settings_jd_view_form_inherit" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.jd.view.form.inherit.bpm</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[hasclass('app_settings_block')]/div" position="before">
|
||||
<div>
|
||||
<h2>bfm环境配置</h2>
|
||||
<div class="row mt16 o_settings_container" id="jd_api">
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="text-muted">
|
||||
<label for="bfm_url"/>
|
||||
<field name="bfm_url"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user