function availability($from_date, $to_date, $asset_id)
{
    $e_from = getDTEpoch("{$from_date} 0:00:00");
    $e_to = getDTEpoch("{$to_date} 23:59:59");
    $row = "";
    for ($i = $e_from; $i < $e_to; $i += SECONDS_IN_DAY) {
        for ($j = 0; $j < 5; $j++) {
            if (inWorkshop($asset_id, date("Y-m-d", $i))) {
                $color = WORKSHOP;
            } elseif (isHired($asset_id, date("Y-m-d", $i))) {
                $color = HIRED_OUT;
            } elseif (isBooked($asset_id, date("Y-m-d", $i))) {
                $color = BOOKED;
            } else {
                $color = AVAILABLE;
            }
            $row .= "<td bgcolor='{$color}'></td>";
        }
    }
    return $row;
}
function isHiredd($asset_id, $date = false)
{
    if (!$date) {
        $date = date("Y-m-d");
    }
    $sql = "SELECT hire_invitems.id, hours, weeks, serial, serial2,\r\n\t\t\t\tprinted, done, extract('epoch' FROM from_date) AS e_from,\r\n\t\t\t\textract('epoch' FROM to_date) AS e_to, return_time\r\n\t\t\tFROM hire.hire_invitems\r\n\t\t\t\tLEFT JOIN hire.hire_invoices\r\n\t\t\t\t\tON hire_invitems.invid = hire_invoices.invid\r\n\t\t\t\tLEFT JOIN cubit.assets\r\n\t\t\t\t\tON hire_invitems.asset_id = assets.id\r\n\t\t\t\tLEFT JOIN hire.assets_hired\r\n\t\t\t\t\tON hire_invitems.id = assets_hired.item_id\r\n\t\t\tWHERE hire_invitems.asset_id='{$asset_id}'";
    $item_rslt = db_exec($sql) or errDie("Unable to retrieve items.");
    // Check if item in workshop
    if (inWorkshop($asset_id, $date)) {
        return true;
    }
    while ($item_data = pg_fetch_array($item_rslt)) {
        if (!isSerialized($asset_id) && $item_data["serial2"] > 0) {
            return false;
        }
        if ($item_data["printed"] == "n" || $item_data["done"] == "n") {
            continue;
        }
        if (!empty($item_data["hours"])) {
            $to_date = hiredDate($item_data["id"], "U") + HOURS * $item_data["hours"];
        } elseif (!empty($item_data["weeks"])) {
            $to_date = hiredDate($item_data["id"], "U") + WEEKS * $item_data["weeks"];
        } else {
            $to_date = $item_data["e_to"];
        }
        $date = getDTEpoch("{$date} 0:00:00");
        if ($date >= $item_data["e_from"] && !$item_data["return_time"] && $date <= time()) {
            return true;
        }
        if ($date >= $item_data["e_from"] && $date <= $to_date) {
            return true;
        }
    }
    return false;
}