def make_copy_available(request_id): """ Change the status of a copy for 'available' when an hold request was cancelled. @param request_id: identify the request: Primary key of crcLOANREQUEST @type request_id: int """ barcode_requested = db.get_requested_barcode(request_id) db.update_item_status('available', barcode_requested) return
def make_copy_available(request_id): """ Change the status of a copy for CFG_BIBCIRCULATION_ITEM_STATUS_ON_SHELF when an hold request was cancelled. @param request_id: identify the request: Primary key of crcLOANREQUEST @type request_id: int """ barcode_requested = db.get_requested_barcode(request_id) db.update_item_status(CFG_BIBCIRCULATION_ITEM_STATUS_ON_SHELF, barcode_requested) update_requests_statuses(barcode_requested)
def perform_borrower_loans(uid, barcode, borrower_id, request_id, action, ln=CFG_SITE_LANG): """ Display all the loans and the requests of a given borrower. @param barcode: identify the item. Primary key of crcITEM. @type barcode: string @param borrower_id: identify the borrower. Primary key of crcBORROWER. @type borrower_id: int @param request_id: identify the request: Primary key of crcLOANREQUEST @type request_id: int @return body(html) """ _ = gettext_set_language(ln) infos = [] borrower_id = db.get_borrower_id_by_email(db.get_invenio_user_email(uid)) new_due_date = generate_new_due_date(30) #renew loan if action == 'renew': recid = db.get_id_bibrec(barcode) item_description = db.get_item_description(barcode) queue = db.get_queue_request(recid, item_description) if len(queue) != 0 and queue[0][0] != borrower_id: message = "It is not possible to renew your loan for %(x_strong_tag_open)s%(x_title)s%(x_strong_tag_close)s" % {'x_title': book_title_from_MARC(recid), 'x_strong_tag_open': '<strong>', 'x_strong_tag_close': '</strong>'} message += ' ' + _("Another user is waiting for this book.") infos.append(message) else: loan_id = db.get_current_loan_id(barcode) db.renew_loan(loan_id, new_due_date) #update_status_if_expired(loan_id) tag_all_requests_as_done(barcode, borrower_id) infos.append(_("Your loan has been renewed with success.")) #cancel request elif action == 'cancel': db.cancel_request(request_id) barcode_requested = db.get_requested_barcode(request_id) update_requests_statuses(barcode_requested) #renew all loans elif action == 'renew_all': list_of_barcodes = db.get_borrower_loans_barcodes(borrower_id) for bc in list_of_barcodes: bc_recid = db.get_id_bibrec(bc) item_description = db.get_item_description(bc) queue = db.get_queue_request(bc_recid, item_description) #check if there are requests if len(queue) != 0 and queue[0][0] != borrower_id: message = "It is not possible to renew your loan for %(x_strong_tag_open)s%(x_title)s%(x_strong_tag_close)s" % {'x_title': book_title_from_MARC(bc_recid), 'x_strong_tag_open': '<strong>', 'x_strong_tag_close': '</strong>'} message += ' ' + _("Another user is waiting for this book.") infos.append(message) else: loan_id = db.get_current_loan_id(bc) db.renew_loan(loan_id, new_due_date) #update_status_if_expired(loan_id) tag_all_requests_as_done(barcode, borrower_id) if infos == []: infos.append(_("All loans have been renewed with success.")) loans = db.get_borrower_loans(borrower_id) requests = db.get_borrower_requests(borrower_id) proposals = db.get_borrower_proposals(borrower_id) body = bc_templates.tmpl_yourloans(loans=loans, requests=requests, proposals=proposals, borrower_id=borrower_id, infos=infos, ln=ln) return body