function merci_incomplete_reservations_for_item_nid in MERCI (Manage Equipment Reservations, Checkout and Inventory) 7.2
Same name and namespace in other branches
- 6.2 includes/database.inc \merci_incomplete_reservations_for_item_nid()
@todo Please document this function.
See also
1 call to merci_incomplete_reservations_for_item_nid()
- merci_validate_default_availability in includes/
api.inc - Validates the state change of a reservable item.
File
- includes/
database.inc, line 276 - MERCI - Managed Equipment Reservation Checkout and Inventory
Code
function merci_incomplete_reservations_for_item_nid($nid) {
// Determine CCK table and columns the date data is stored in.
$field = field_info_field('field_merci_date');
$table = key($field['storage']['details']['sql']['FIELD_LOAD_CURRENT']);
$column_start_date = $field['storage']['details']['sql']['FIELD_LOAD_CURRENT'][$table]['value'];
$column_end_date = $field['storage']['details']['sql']['FIELD_LOAD_CURRENT'][$table]['value2'];
$time = gmdate('Y-m-d H:i:s');
// Pull any incomplete reservations that use the item in question
// TODO Please convert this statement to the D7 database API syntax.
$reservations = db_query("SELECT n.nid, n.title FROM {node} n INNER JOIN {" . $table . "} ct ON ct.revision_id = n.vid INNER JOIN {merci_reservation_detail} md ON ct.revision_id = md.vid WHERE md.merci_item_nid = :merci_item_nid AND " . $column_end_date . " >= :end AND NOT (md.merci_item_status <= :merci_item_status)", array(
':merci_item_nid' => $nid,
':end' => $time,
':merci_item_status' => MERCI_ITEM_STATUS_AVAILABLE,
));
$bad_reservations = array();
foreach ($reservations as $reservation) {
$bad_reservations[] = l($reservation->title, "node/{$reservation->nid}/edit", array(
'query' => drupal_get_destination(),
));
}
return $bad_reservations;
}