function remove_from_waiter($order_id, $new_quantity)
 {
     $order_id = (int) $order_id;
     $order = new order($order_id);
     $dish_id = $order->data['dishid'];
     if ($dish_id == MOD_ID) {
         $arr_ingreds[] = $order->data['ingredid'];
         $diffquantity = $order->data['quantity'] - $new_quantity;
         $order_id = (int) $order->data['associated_id'];
         $order = new order($order_id);
         $dish_id = $order->data['dishid'];
     } else {
         $order->ingredients_arrays();
         $arr_ingreds = $order->ingredients['contained'];
         $diffquantity = $order->data['quantity'] - $new_quantity;
     }
     if (!$diffquantity) {
         return 0;
     }
     // movements for all the contained ingredients
     foreach ($arr_ingreds as $ingred_id) {
         $stock_id = $this->find_external($ingred_id, TYPE_INGREDIENT);
         // object not found in stock
         if (!$stock_id) {
             continue;
         }
         $mov = new stock_movement();
         $mov_data['obj_id'] = $stock_id;
         $mov_data['dish_id'] = $dish_id;
         $mov_data['dish_quantity'] = $diffquantity;
         $stock = new stock_object($stock_id);
         $ingred_quantity = $stock->get_ingredient_quantity($dish_id);
         $mov_data['quantity'] = $mov_data['dish_quantity'] * $ingred_quantity;
         $mov_data['value'] = $stock->data['value'] * $mov_data['quantity'];
         $mov_data['unit_type'] = $stock->data['unit_type'];
         $mov->silent = true;
         if ($err = $mov->insert($mov_data)) {
             return $err;
         }
     }
     return 0;
 }
function mods_update_ingred_qty($ordid, $ingredid, $value)
{
    $query = "SELECT * FROM `orders` WHERE `associated_id`='" . $ordid . "' AND `ingredid` = '" . $ingredid . "'";
    $res = common_query($query, __FILE__, __LINE__);
    if (!$res) {
        return mysql_errno();
    }
    $arr = mysql_fetch_array($res);
    if (!$arr && $value == 0) {
        return 0;
    } elseif (!$arr && $value != 0) {
        $ord = new order($ordid);
        $ord->ingredients_arrays();
        if (in_array($ingredid, $ord->ingredients['nominal'])) {
            $ord = new order($ordid);
            $operation = 0;
            $err = mods_create_ingreds($ord, $ingredid, $operation);
            if ($err) {
                return ERR_MOD_NOT_CREATED;
            }
            $query = "SELECT * FROM `orders` WHERE `associated_id`='" . $ordid . "' AND `ingredid` = '" . $ingredid . "'";
            $res = common_query($query, __FILE__, __LINE__);
            if (!$res) {
                return mysql_errno();
            }
            $arr = mysql_fetch_array($res);
        }
    }
    $id = (int) $arr['associated_id'];
    $ord = new order($id);
    $ord->ingredients_arrays();
    if ($value == 0 && $arr['operation'] == 0) {
        $query = "DELETE FROM `orders` WHERE `id`='" . $arr['id'] . "'";
        $res = common_query($query, __FILE__, __LINE__);
        if (!$res) {
            return mysql_errno();
        }
    } elseif ($arr['operation'] != -1) {
        $query = "UPDATE `orders` SET `ingred_qty`='" . $value . "' WHERE `id`='" . $arr['id'] . "'";
        $res = common_query($query, __FILE__, __LINE__);
        if (!$res) {
            return mysql_errno();
        }
    }
    return 0;
}