This question has been flagged
1 Reply
9389 Views

I'm try to  generate mrp order, When click the req button . But when I run my code I got this error?

 Traceback (most recent call last):
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 530, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 567, in dispatch
    result = self._call_function(**self.params)
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 303, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\service\model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 300, in checked_call
    return self.endpoint(*a, **kw)
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 796, in __call__
    return self.method(*args, **kw)
  File "D:\Odoo\odoo-v8-osm\openerp\http.py", line 396, in response_wrap
    response = f(*args, **kw)
  File "D:\Odoo\odoo-v8-osm\addons\web\controllers\main.py", line 935, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "D:\Odoo\odoo-v8-osm\addons\web\controllers\main.py", line 927, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\addons\mrp\mrp.py", line 929, in action_produce
    production_qty_uom = uom_obj._compute_qty(cr, uid, production.product_uom.id, production_qty, production.product_id.uom_id.id)
  File "D:\Odoo\odoo-v8-osm\openerp\fields.py", line 817, in __get__
    self.determine_value(record)
  File "D:\Odoo\odoo-v8-osm\openerp\fields.py", line 910, in determine_value
    record._prefetch_field(self)
  File "D:\Odoo\odoo-v8-osm\openerp\api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\models.py", line 3211, in _prefetch_field
    result = records.read(list(fnames), load='_classic_write')
  File "D:\Odoo\odoo-v8-osm\openerp\api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\models.py", line 3156, in read
    self._read_from_database(stored, inherited)
  File "D:\Odoo\odoo-v8-osm\openerp\api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\models.py", line 3279, in _read_from_database
    cr.execute(query_str, [tuple(sub_ids)] + where_params)
  File "D:\Odoo\odoo-v8-osm\openerp\sql_db.py", line 158, in wrapper
    return f(self, *args, **kwargs)
  File "D:\Odoo\odoo-v8-osm\openerp\sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
DataError: invalid input syntax for integer: "product_id"
LINE 2: ...                    WHERE "mrp_production".id IN ('product_i...
                                                             ^
My code

 function openerp_restaurant_reqbill(instance,module){
    var QWeb = instance.web.qweb;
    var _t = instance.web._t;

    module.PosWidget.include({
        build_widgets: function(){
            var self = this;
            this._super();

            if(this.pos.config.iface_raqbill){
                var reqbill = $(QWeb.render('PrintReqButton'));
                reqbill.click(function(){
                    var order = self.pos.get('selectedOrder');
                    if(order.get('orderLines').models.length > 0){
                        var receipt = order.export_for_printing();
                        self.pos.proxy.print_receipt(QWeb.render('BillReceipts',{
                            receipt: receipt, widget: self,
                        }));
                    }
                  self.picking_order();
                });
                reqbill.appendTo(this.$('.control-buttons'));
                this.$('.control-buttons').removeClass('oe_hidden');
            }
        },

        picking_order: function() {
            var self = this;
            var currentOrder = self.pos.get('selectedOrder');
            var a = currentOrder.selected_orderline.collection.models;
            var production_mode = 'consume_produce';
            for(i=0; i< a.length; i++){
                var product_id = (a[i].product.id);
                var product_qty = (a[i].quantity);
                new instance.web.Model("mrp.production").call('action_produce',[('product_id'),('product_qty'),('production_mode')]);
            }
            console.log(currentOrder);
            console.log(a);
            //new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_pos_session_opening']], ['res_id'])
            }
    });

}
Avatar
Discard
Best Answer

Hi,

you have done wrong code inside below line.

new instance.web.Model("mrp.production").call('action_produce',[('product_id'),('product_qty'),('production_mode')])

In this line you have to pass appropriate arguments inside function calling. Your code is going to call function 

def action_produce(self, cr, uid, production_id, production_qty, production_mode, wiz=False, context=None):

So, you have to pass correct argument.

I hope you will resolve your issue.

Avatar
Discard