Skip to Content
Menu
This question has been flagged
1 Reply
8064 Views

below is my code showing unboundlocalerror 


@api.multi

    def action_apply(self):

        

        self.ensure_one()

        values = {

            'team_id': self.team_id.id,

        }


        if self.partner_id:

            values['partner_id'] = self.partner_id.id


        if self.name == 'merge':

            opportunities = self.with_context(active_test=False).potential_ids.merge_potential()

            if not opportunities.active:

                opportunities.write({'active': True, 'activity_type_id': False, 'lost_reason': False})

            if opportunities.type == "opportunity":

                values.update({'opportunity_ids': opportunities.ids, 'user_ids': [self.user_id.id]})

                self.with_context(active_ids=opportunities.ids)._convert_potential(values)

            elif not self._context.get('no_force_assignation') or not opportunities.user_id:

                values['user_id'] = self.user_id.id

                opportunities.write(values)

        else:

            opportunities = self.env['crm.lead'].browse(self._context.get('active_ids', []))

            potential = self.env['crm.potentials'].create(values)

            team_id = opportunities.team_id.id if opportunities.team_id else False

            customer = opportunities.partner_id if opportunities.partner_id else False

            values = {

                'planned_revenue': opportunities.planned_revenue,

                'probability': opportunities.probability,

                'name': opportunities.name,

                'partner_id': customer.id if customer else False,

                'type': 'potential',

                'date_open': fields.Datetime.now(),

                'email_from': customer and customer.email or opportunities.email_from,

                'phone': customer and customer.phone or opportunities.phone,

                'date_conversion': fields.Datetime.now(),

            }

            if not opportunities.stage_id:

                stage = opportunities._stage_find(team_id=team_id)

                values['stage_id'] = stage.id

                if stage:

                    values['probability'] = stage.probability

            potential = self.env['crm.potentials'].create(values)

        return potential.redirect_potential_view()



my error is:


Odoo Server Error
Traceback (most recent call last):
  File "D:\smoothtel\odoo\odoo\http.py", line 646, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "D:\smoothtel\odoo\odoo\http.py", line 307, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "D:\smoothtel\odoo\odoo\tools\pycompat.py", line 87, in reraise
    raise value
  File "D:\smoothtel\odoo\odoo\http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "D:\smoothtel\odoo\odoo\http.py", line 339, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "D:\smoothtel\odoo\odoo\service\model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "D:\smoothtel\odoo\odoo\http.py", line 332, in checked_call
    result = self.endpoint(*a, **kw)
  File "D:\smoothtel\odoo\odoo\http.py", line 927, in __call__
    return self.method(*args, **kw)
  File "D:\smoothtel\odoo\odoo\http.py", line 512, in response_wrap
    response = f(*args, **kw)
  File "D:\smoothtel\odoo\addons\web\controllers\main.py", line 928, in call_button
    action = self._call_kw(model, method, args, {})
  File "D:\smoothtel\odoo\addons\web\controllers\main.py", line 916, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "D:\smoothtel\odoo\odoo\api.py", line 689, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "D:\smoothtel\odoo\odoo\api.py", line 680, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "D:\smoothtel\odoo\addons\crm\wizard\crm_opportunity_to_potential.py", line 158, in action_apply
    return potential.redirect_potential_view()
UnboundLocalError: local variable 'potential' referenced before assignment
Avatar
Discard
Best Answer


@api.multi

    def action_apply(self):

        self.ensure_one()

        values = {

            'team_id': self.team_id.id,

        }


        if self.partner_id:

            values['partner_id'] = self.partner_id.id


        if self.name == 'merge':

            opportunities = self.with_context(active_test=False).potential_ids.merge_potential()

            if not opportunities.active:

                opportunities.write({'active': True, 'activity_type_id': False, 'lost_reason': False})

            if opportunities.type == "opportunity":

                values.update({'opportunity_ids': opportunities.ids, 'user_ids': [self.user_id.id]})

                self.with_context(active_ids=opportunities.ids)._convert_potential(values)

            elif not self._context.get('no_force_assignation') or not opportunities.user_id:

                values['user_id'] = self.user_id.id

                opportunities.write(values)

        else:

            opportunities = self.env['crm.lead'].browse(self._context.get('active_ids', []))

            potential = self.env['crm.potentials'].create(values)

            team_id = opportunities.team_id.id if opportunities.team_id else False

            customer = opportunities.partner_id if opportunities.partner_id else False

            values = {

                'planned_revenue': opportunities.planned_revenue,

                'probability': opportunities.probability,

                'name': opportunities.name,

                'partner_id': customer.id if customer else False,

                'type': 'potential',

                'date_open': fields.Datetime.now(),

                'email_from': customer and customer.email or opportunities.email_from,

                'phone': customer and customer.phone or opportunities.phone,

                'date_conversion': fields.Datetime.now(),

            }

            if not opportunities.stage_id:

                stage = opportunities._stage_find(team_id=team_id)

                values['stage_id'] = stage.id

                if stage:

                    values['probability'] = stage.probability

        potential = self.env['crm.potentials'].create(values) # potential should be in scope, must have value

        if potential:

            return potential.redirect_potential_view()

        else:

            return [] # return or do any operation


Avatar
Discard
Author

thanks

Welcome

On Mon, 11 Jun 2018, 1:06 p.m. Bhaskar Reddy, <bhaskar@sevate.com> wrote:

thanks

--
Bhaskar Reddy

Sent by Odoo S.A. using Odoo.