Fix for sending pricelist for existing (assigned) partner
parent
cf5a530b87
commit
a1c233b9f2
|
|
@ -7,6 +7,7 @@ import requests
|
|||
from odoo import tools, api, fields, models, _
|
||||
from odoo.exceptions import ValidationError, UserError
|
||||
|
||||
import ssl
|
||||
|
||||
class PortalAssignCompany(models.TransientModel):
|
||||
_name = 'portal.assign_company'
|
||||
|
|
@ -44,21 +45,36 @@ class PortalAssignCompany(models.TransientModel):
|
|||
'portal_id': lPortal_id,
|
||||
'company_odoo_id': odoo_id
|
||||
}
|
||||
response = requests.post(portal_url + '/api/v1/set-odoo-id/?secret=' + application_id,
|
||||
data=json.dumps(data))
|
||||
if response.status_code != 200:
|
||||
error_content = True
|
||||
error_msg = ""
|
||||
try:
|
||||
error_msg = json.loads(response.content.decode())
|
||||
except Exception:
|
||||
error_content = False
|
||||
|
||||
if error_content and error_msg.get('errors'):
|
||||
raise UserError(_('%s') % (error_msg.get('errors')[0]))
|
||||
else:
|
||||
raise UserError(_('Die Odoo id konnte für den Partner nicht gesetzt werden. '
|
||||
'Status Code: %s, Reason: %s') % (response.status_code, response.reason))
|
||||
try:
|
||||
_create_unverified_https_context = ssl._create_unverified_context
|
||||
except AttributeError:
|
||||
# Legacy Python that doesn't verify HTTPS certificates by default
|
||||
pass
|
||||
else:
|
||||
# Handle target environment that doesn't support HTTPS verification
|
||||
ssl._create_default_https_context = _create_unverified_https_context
|
||||
|
||||
try:
|
||||
response = requests.post(portal_url + '/api/v1/set-odoo-id/?secret=' + application_id,
|
||||
data=json.dumps(data))
|
||||
|
||||
if response.status_code != 200:
|
||||
error_content = True
|
||||
error_msg = ""
|
||||
try:
|
||||
error_msg = json.loads(response.content.decode())
|
||||
except Exception:
|
||||
error_content = False
|
||||
|
||||
if error_content and error_msg.get('errors'):
|
||||
raise UserError(_('%s') % (error_msg.get('errors')[0]))
|
||||
else:
|
||||
raise UserError(_('Die Odoo id konnte für den Partner nicht gesetzt werden. '
|
||||
'Status Code: %s, Reason: %s') % (response.status_code, response.reason))
|
||||
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def button_activate(self):
|
||||
self.ensure_one()
|
||||
|
|
@ -69,7 +85,7 @@ class PortalAssignCompany(models.TransientModel):
|
|||
# Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal
|
||||
# parallel einen Call absetzt, der dann blockieren würde.
|
||||
self.send_to_portal(partner.portal_id, partner.id)
|
||||
partner.write({'portal_pending': False, 'active': True})
|
||||
partner.write({'portal_pending': False, 'portal_pending': False, 'active': True})
|
||||
|
||||
return True
|
||||
|
||||
|
|
@ -88,6 +104,8 @@ class PortalAssignCompany(models.TransientModel):
|
|||
if not self.main_partner_id.portal_id:
|
||||
self.main_partner_id.portal_id = portal_id
|
||||
|
||||
self.env['res.partner'].export_portal_partner_pricelist(self.main_partner_id)
|
||||
|
||||
action = self.env.ref('base.action_partner_form').read()[0]
|
||||
action['res_id'] = self.main_partner_id.id
|
||||
return action
|
||||
|
|
|
|||
Loading…
Reference in New Issue