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; }