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

I get an error for forbidden opcode (s) when I run:



class TestComputed(models.Model):
  _name = "test.computed"
  x_quarter = fields.Char(string='Quarter', compute='_get_appraisal_quarter')
  @api.depends('create_date')
  def _get_appraisal_quarter(self):
    for row in self:
      createdate = datetime.strptime(row.create_date,'%d-%m-%Y')
      month = createdate.strftime('%m')
      year = createdate.strftime('%Y')
      if 0         row.x_quarter = 'Q1 ' + str(year)
      elif 4         row.x_quarter = 'Q2 ' + str(year)
      elif 7         row.x_quarter = 'Q3 ' + str(year)
      elif 10         row.x_quarter = 'Q4 ' + str(year)
      else:
        row.x_quarter = 'NA'
Avatar
Discard
Best Answer

Hi,

Please try using below code

class TestComputed(models.Model):

  _name = "test.computed"


    date_field = fields.Date(string='Date')

    quarter_date = fields.Char(string='Quarter and Year', compute='_compute_quarter')


    @api.depends('date_field')

    def _compute_quarter(self):

        for row in self:

            date = row.date_field

            if date:

                year = date.year

                month = date.month

                if month in (1, 2, 3):

                    row.quarter_date = 'Q1 ' + str(year)

                elif month in (4, 5, 6):

                    row.quarter_date = 'Q2 ' + str(year)

                elif month in (7, 8, 9):

                    row.quarter_date = 'Q3 ' + str(year)

                elif month in (10, 11, 12):

                    row.quarter_date = 'Q4 ' + str(year)

                else:

                    row.quarter_date = 'NA'

            else:

                row.quarter_date = 'NA'


Hope it helps

Avatar
Discard
Related Posts Replies Views Activity
1
Dec 19
6159
0
Sep 17
3769
3
Sep 24
1317
0
Dec 23
1273
1
Jan 23
2018