$listingObject->setTotalItems(fetch_my_history_item_cnt(get_opendb_session_var('user_id'))); if ($listingObject->getTotalItemCount() > 0) { $result = fetch_my_history_item_rs(get_opendb_session_var('user_id'), $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder(), $listingObject->getStartIndex(), $listingObject->getItemsPerPage()); } } else { $result = fetch_my_history_item_rs(get_opendb_session_var('user_id'), $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder()); } } } else { if (get_opendb_config_var('borrow', 'reserve_basket') !== FALSE && ($HTTP_VARS['op'] == 'my_reserve_basket' || $HTTP_VARS['op'] == 'update_my_reserve_basket' || $HTTP_VARS['op'] == 'delete_from_my_reserve_basket')) { if ($HTTP_VARS['op'] == 'update_my_reserve_basket' || $HTTP_VARS['op'] == 'delete_from_my_reserve_basket') { // We might be reserving a single item only - item_display.php would initiate this operation if (is_empty_array($HTTP_VARS['item_id_instance_no']) && is_numeric($HTTP_VARS['item_id']) && is_numeric($HTTP_VARS['instance_no'])) { // Set it up so it looks as if an item was previously checked, but has now been unchecked! - called from item_display.php if ($HTTP_VARS['op'] == 'delete_from_my_reserve_basket') { $sequence_number = fetch_borrowed_item_seq_no($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], 'T', get_opendb_session_var('user_id')); if ($sequence_number !== FALSE) { delete_cart_item($sequence_number); } } else { if (!is_item_in_reserve_basket($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], get_opendb_session_var('user_id'))) { // else add item to session array. insert_cart_item($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], get_opendb_session_var('user_id')); } } } else { if ($HTTP_VARS['op'] == 'update_my_reserve_basket' && is_not_empty_array($HTTP_VARS['item_id_instance_no'])) { // initiated from listings.php page! while (list(, $item_id_instance_no) = each($HTTP_VARS['item_id_instance_no'])) { $item_r = get_item_id_and_instance_no($item_id_instance_no); if (!is_item_in_reserve_basket($item_r['item_id'], $item_r['instance_no'], get_opendb_session_var('user_id'))) {
/** Assumes validation has been performed to ensure reservation does not already exist. Will return new sequence number if successful. */ function reserve_item($item_id, $instance_no, $borrower_id, $more_information) { $sequence_number = fetch_borrowed_item_seq_no($item_id, $instance_no, 'T', $borrower_id); if ($sequence_number !== FALSE) { if (update_borrowed_item($sequence_number, 'R', $more_information)) { return $sequence_number; } else { return FALSE; } } else { $more_information = clean_more_info_value($more_information); $query = "INSERT INTO borrowed_item(item_id, instance_no, borrower_id, status, more_information)" . "VALUES('{$item_id}', '{$instance_no}', '{$borrower_id}', 'R', '{$more_information}')"; $insert = db_query($query); if ($insert && db_affected_rows() > 0) { opendb_logger(OPENDB_LOG_INFO, __FILE__, __FUNCTION__, NULL, array($item_id, $instance_no, $borrower_id, $more_information)); return db_insert_id(); } else { opendb_logger(OPENDB_LOG_ERROR, __FILE__, __FUNCTION__, db_error(), array($item_id, $instance_no, $borrower_id, $more_information)); return FALSE; } } }
function update_altid_item_instance_rs($op, $alt_item_id, $attribute_type_r, $altid_item_instance_rs, &$errors) { if (!is_array($altid_item_instance_rs)) { $altid_item_instance_rs = array(); } if (strlen($alt_item_id) > 0) { $item_instance_rs = get_new_altid_item_instance_rs($alt_item_id, $attribute_type_r, $altid_item_instance_rs); if (is_array($item_instance_rs)) { while (list(, $item_instance_r) = each($item_instance_rs)) { if ($item_instance_r['owner_id'] != $HTTP_VARS['borrower_id']) { if ($op == 'checkout') { if (is_item_instance_checkoutable($item_instance_r, $errors)) { $altid_item_instance_rs[] = $item_instance_r; } } else { if ($op == 'checkin') { $sequence_number = fetch_borrowed_item_seq_no($item_instance_r['item_id'], $item_instance_r['instance_no'], 'B'); if ($sequence_number != FALSE) { $item_instance_r['sequence_number'] = $sequence_number; $altid_item_instance_rs[] = $item_instance_r; } else { $errors[] = get_opendb_lang_var('item_is_not_checked_out'); } } } } else { $errors[] = get_opendb_lang_var('user_is_owner_of_item'); } } } else { $errors[] = get_opendb_lang_var('item_not_found'); } } return $altid_item_instance_rs; }
if ($HTTP_VARS['op'] == 'check_in') { echo _theme_header(get_opendb_lang_var('check_in_item(s)')); echo "<h2>" . get_opendb_lang_var('check_in_item(s)') . "</h2>"; // It is easier to assume an array in all cases. if (is_not_empty_array($HTTP_VARS['sequence_number'])) { $sequence_number_r = $HTTP_VARS['sequence_number']; } else { if (is_numeric($HTTP_VARS['sequence_number'])) { //is_numeric $sequence_number_r[] = $HTTP_VARS['sequence_number']; //convert to array here. } else { if (is_numeric($HTTP_VARS['item_id']) && is_numeric($HTTP_VARS['instance_no'])) { if (is_exists_item_instance($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'])) { // there should only be one instance of a borrowed item for this item $sequence_number = fetch_borrowed_item_seq_no($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], 'B'); if ($sequence_number !== FALSE) { $sequence_number_r[] = $sequence_number; } } } } } if (is_array($sequence_number_r)) { // There is no point in providing a More Information form, unless we either have use of php email, // or we are in checkout mode. if (get_opendb_config_var('borrow', 'checkin_more_information') && $HTTP_VARS['more_info_requested'] != 'true') { more_information_form('check_in', $sequence_number_r, $HTTP_VARS, get_opendb_config_var('borrow', 'checkin_email_notification')); } else { while (list(, $sequence_number) = @each($sequence_number_r)) { if (handle_checkin($sequence_number, $HTTP_VARS['more_information'], $errors)) {