修复进度不更新到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):
|
||||
|
||||
Reference in New Issue
Block a user