0

I have the functions as below. But its throwing the error "Cannot read properties of undefined (reading 'newQuoteInventoryCheck')". I have been trying to figure what i did but couldn't solve it. I need some help in understanding and solving the problem.

updateInventory(newData){
    if (newData.id =="" || newData.id == null){ 
        (this.sales_oder.items).forEach(function (items, i) {
                        this.newQuoteInventoryCheck(items.product_id.id, items.quantity, function(uData){
                            if(uData[2]){
                                console.log('success');
                            }
                            else{
                                console.log('failed');
                            }
                        });
        });
    }
}

newQuoteInventoryCheck(newItem, added_quantity, cb){
    Api.get('materials/get/'+newItem).then((data)=>{
        let available_quantity = data.quantity;
        if (added_quantity <= available_quantity){
            cb([newItem,(available_quantity - added_quantity),true]);
        }
        else{
            cb([newItem,0,false]);
           // $('#maxquantityavailable').text('Total quantity available for "'+ data.name+'" in inventory is: '+available_quantity);
           // $('#maximum-quantity-exceeded-modal').modal('show');
            
        }
        return null;
        
    });
}
ruleboy21
  • 5,510
  • 4
  • 17
  • 34
charlie2
  • 150
  • 2
  • 10
  • `this` inside your function is undefined because `this` refers to the current execution context of the function. To point `this` to the topmost function, use arrow function syntax like `() => { ...function body }` – Amir Saleem Mar 22 '22 at 05:28
  • I couldn't solve it. Please help me. – charlie2 Mar 22 '22 at 10:15

0 Answers0