title: ProgrammingError: operator does not exist: integer = boolean - Odoo v9 community
body: <p>I have this method, which should create a new <code>stock.picking</code> from <code>fleet.vehicle.log.services</code></p>
  
  <pre><code>    @api.multi
      def create_picking(self):
      self.ensure_one()
      vals = {
          'x_location_src_id': self.x_location_src_id.id,
          'x_location_dest_id': self.x_location_dest_id.id,
          'product_id': self.product_id.id,  # shouldn't be set on stock.picking, products are handled on it's positions (stock.move)
          'product_uom_qty': self.product_uom_qty  # the same as for product_id
      }
      picking = self.env['stock.picking'].create(vals)
      return picking
  </code></pre>
  
  <p>These fields are declared in the model lilke this:</p>
  
  <pre><code>x_location_src_id = fields.Many2one('stock.location', string=u'Ubicacion Origen de Productos', required=True,
                                     readonly=False, 
                                     help="Location where the system will look for components.")
  x_location_dest_id = fields.Many2one('stock.location', string=u'Ubicacion Destino de Productos', required=True,
                                      readonly=False, default=_static_location,
                                      help="Location where the system will look for components.")
  product_id = fields.Many2one('product.template', "Producto")
  product_uom_qty = fields.Float(string='Quantity', digits=dp.get_precision('Product Unit of Measure'), required=True, default=1.0)
  stock_picking = fields.Many2one("stock.picking", "Picking",) # required=True
  </code></pre>
  
  <p>And then I have the button on view, which calls <code>create_picking</code> method</p>
  
  <pre><code>    &lt;record model='ir.ui.view' id='fleet_vehicle_log_services_form_inherit'&gt;
          &lt;field name='name'&gt;fleet.vehicle.log.services.form&lt;/field&gt;
          &lt;field name='model'&gt;fleet.vehicle.log.services&lt;/field&gt;
          &lt;field name='inherit_id' ref='fleet.fleet_vehicle_log_services_form'/&gt;
          &lt;field name="priority"&gt;90&lt;/field&gt;
          &lt;field name='arch' type='xml'&gt;
              &lt;xpath expr="//form//sheet//group[1]" position="before"&gt;
                  &lt;div class="oe_title"&gt;
              &lt;label for="name" class="oe_edit_only" /&gt;
              &lt;h1&gt;
                  &lt;field name="name" /&gt;
              &lt;/h1&gt;
              &lt;/div&gt;
              &lt;/xpath&gt;
              &lt;xpath expr="//form/sheet/group" position="after"&gt;
                  &lt;group string="Ubicaciones de Productos" col="2"&gt;
                  &lt;group&gt;&lt;field name="stock_picking"/&gt;&lt;/group&gt;
                  &lt;group string="Datos del picking"&gt;
                      &lt;button name="create_picking" string="Crear Picking" type="object" class="oe_highlight"/&gt;
                          &lt;tree decoration-info="state == 'draft'" decoration-muted="state in ('cancel','done')" decoration-danger="state in ('confirmed','waiting')" string="Products to Consume"&gt;
                              &lt;field name="product_id"/&gt;
                              &lt;field name="product_uom_qty"/&gt;
                              &lt;field name="x_location_src_id"/&gt;
                              &lt;field name="x_location_dest_id"/&gt;
                              &lt;field name="state" invisible="1"/&gt;
                          &lt;/tree&gt;
                  &lt;/group&gt;
                &lt;/group&gt;
              &lt;/xpath&gt;
          &lt;/field&gt;
      &lt;/record&gt;
  </code></pre>
  
  <p>Every time I click on it, it throws me this:</p>
  
  <pre><code>Traceback (most recent call last):
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 648, in _handle_exception
  return super(JsonRequest, self)._handle_exception(exception)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 685, in dispatch
  result = self._call_function(**self.params)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 321, in _call_function
  return checked_call(self.db, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/service/model.py", line 118, in wrapper
  return f(dbname, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 314, in checked_call
  result = self.endpoint(*a, **kw)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 964, in __call__
  return self.method(*args, **kw)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 514, in response_wrap
  response = f(*args, **kw)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/web/controllers/main.py", line 892, in call_button
  action = self._call_kw(model, method, args, {})
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/web/controllers/main.py", line 880, in _call_kw
  return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 250, in wrapper
  return old_api(self, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 381, in old_api
  result = method(recs, *args, **kwargs)
  File "/home/kristian/odoov9/danisan/fleet_stock/models/fleet_vehicle_services.py", line 216, in create_picking
  picking = self.env['stock.picking'].create(vals)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 248, in wrapper
  return new_api(self, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 490, in new_api
  result = method(self._model, cr, uid, *args, **old_kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/stock/stock.py", line 804, in create
  vals['name'] = self.pool.get('ir.sequence').next_by_id(cr, user, sequence_id, context=context)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 250, in wrapper
  return old_api(self, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 381, in old_api
  result = method(recs, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/base/ir/ir_sequence.py", line 259, in next_by_id
  return self._next()
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/base/ir/ir_sequence.py", line 245, in _next
  return self._next_do()
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/base/ir/ir_sequence.py", line 187, in _next_do
  number_next = _update_nogap(self, self.number_increment)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/base/ir/ir_sequence.py", line 61, in _update_nogap
  self.env.cr.execute("SELECT number_next FROM %s WHERE id=%s FOR UPDATE NOWAIT" % (self._table, self.id))
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/sql_db.py", line 141, in wrapper
  return f(self, *args, **kwargs)
  File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/sql_db.py", line 220, in execute
  res = self._obj.execute(query, params)
  ProgrammingError: operator does not exist: integer = boolean
  </code></pre>
  
  <p>LINE 1: SELECT number_next FROM ir_sequence WHERE id=False FOR UPDAT...
                                                      ^
      HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.</p>
  
  <p>I guess there is an error with sequence, some required field missing to create the picking?</p>
  
  <p>Also, suppose this picking is created, how do I know or specify it should be an <code>OUT</code> type one?</p>