예제 #1
0
파일: borrow.php 프로젝트: horrabin/opendb
             $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'))) {
예제 #2
0
/**
	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;
        }
    }
}
예제 #3
0
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;
}
예제 #4
0
 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)) {