예제 #1
0
def renew_loan_for_X_days(barcode, borrower_id=None):
    """
    Renew a loan based on its loan period

    @param barcode: identify the item. Primary key of crcITEM.
    @type barcode: string

    @return new due date
    """
    if borrower_id == None:
        borrower_id = db.get_borrower_id(barcode)

    loan_period = db.get_loan_period_from_loan_rule(barcode,
                                                    user_id=borrower_id)

    if loan_period['code'] in (
            CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_OVERNIGHT,
            CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS):
        due_date = generate_new_due_date(loan_period['value'], hours=True)

    elif loan_period['code'] in (
            CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_MINUTE_OVERNIGHT,
            CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_MINUTE):
        due_date = generate_new_due_date(loan_period['value'],
                                         hours=True,
                                         minutes=True)

    elif loan_period['code'] == CFG_BIBCIRCULATION_LOAN_RULE_CODE_ABSOLUTE:
        due_date = generate_new_due_date(loan_period['value'], absolute=True)

    else:
        due_date = generate_new_due_date(loan_period['value'])

    return due_date
예제 #2
0
def renew_loan_for_X_days(barcode, borrower_id=None):
    """
    Renew a loan based on its loan period

    @param barcode: identify the item. Primary key of crcITEM.
    @type barcode: string

    @return new due date
    """
    if borrower_id == None:
        borrower_id = db.get_borrower_id(barcode)

    loan_period = db.get_loan_period_from_loan_rule(barcode, user_id=borrower_id)

    if loan_period['code'] in (CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_OVERNIGHT,
                               CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS):
        due_date = generate_new_due_date(loan_period['value'], hours=True)

    elif loan_period['code'] in (CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_MINUTE_OVERNIGHT,
                                 CFG_BIBCIRCULATION_LOAN_RULE_CODE_HOURS_MINUTE):
        due_date = generate_new_due_date(loan_period['value'], hours=True, minutes=True)

    elif loan_period['code'] == CFG_BIBCIRCULATION_LOAN_RULE_CODE_ABSOLUTE:
        due_date = generate_new_due_date(loan_period['value'], absolute=True)

    else:
        due_date = generate_new_due_date(loan_period['value'])

    return due_date
예제 #3
0
def print_actual_due_date(loan_id=None, barcode=None, borrower_id=None):
    if not loan_id and barcode:
        loan_id = db.get_current_loan_id(barcode)
    elif not barcode and loan_id:
        loan_infos = db.get_loan_infos(loan_id)
        if loan_infos:
            barcode = loan_infos[1]

    if loan_id and barcode:
        due_date = db.get_due_date(loan_id)

        if not (borrower_id):
            borrower_id = db.get_borrower_id_from_loan(loan_id)

        loan_period = db.get_loan_period_from_loan_rule(barcode, user_id=borrower_id, patrontype_id=None)
        if loan_period and loan_period['type'] == 'hours':
            return due_date
        else:
            return due_date.split(" ")[0]

    return None
예제 #4
0
def print_actual_due_date(loan_id=None, barcode=None, borrower_id=None):
    if not loan_id and barcode:
        loan_id = db.get_current_loan_id(barcode)
    elif not barcode and loan_id:
        loan_infos = db.get_loan_infos(loan_id)
        if loan_infos:
            barcode = loan_infos[1]

    if loan_id and barcode:
        due_date = db.get_due_date(loan_id)

        if not (borrower_id):
            borrower_id = db.get_borrower_id_from_loan(loan_id)

        loan_period = db.get_loan_period_from_loan_rule(barcode,
                                                        user_id=borrower_id,
                                                        patrontype_id=None)
        if loan_period and loan_period['type'] == 'hours':
            return due_date
        else:
            return due_date.split(" ")[0]

    return None