$resp = (PATRON_INFO_RESP);
if ($patron) {
- $resp .= patron_status_string($patron);
- $resp .= (defined($lang) and length($lang) ==3) ? $lang : $patron->language;
- $resp .= Sip::timestamp();
-
- $resp .= add_count('patron_info/hold_items',
- scalar @{$patron->hold_items});
- $resp .= add_count('patron_info/overdue_items',
- scalar @{$patron->overdue_items});
- $resp .= add_count('patron_info/charged_items',
- scalar @{$patron->charged_items});
- $resp .= add_count('patron_info/fine_items',
- scalar @{$patron->fine_items});
- $resp .= add_count('patron_info/recall_items',
- scalar @{$patron->recall_items});
- $resp .= add_count('patron_info/unavail_holds',
- scalar @{$patron->unavail_holds});
-
- # FID_INST_ID added last (order irrelevant for fields w/ identifiers)
-
- # while the patron ID we got from the SC is valid, let's
- # use the one returned from the ILS, just in case...
- $resp .= add_field(FID_PATRON_ID, $patron->id);
- $resp .= add_field(FID_PERSONAL_NAME, $patron->name);
-
- # TODO: add code for the fields
- # hold items limit
- # overdue items limit
- # charged items limit
-
- $resp .= add_field(FID_VALID_PATRON, 'Y');
- if (defined($patron_pwd)) {
- # If patron password was provided, report whether it was right or not.
- $resp .= add_field(FID_VALID_PATRON_PWD,
- sipbool($patron->check_password($patron_pwd)));
- }
+ $resp .= patron_status_string($patron);
+ $resp .= (defined($lang) and length($lang) ==3) ? $lang : $patron->language;
+ $resp .= Sip::timestamp();
+
+ $resp .= add_count('patron_info/hold_items',
+ scalar @{$patron->hold_items});
+ $resp .= add_count('patron_info/overdue_items',
+ scalar @{$patron->overdue_items});
+ $resp .= add_count('patron_info/charged_items',
+ scalar @{$patron->charged_items});
+ $resp .= add_count('patron_info/fine_items',
+ scalar @{$patron->fine_items});
+ $resp .= add_count('patron_info/recall_items',
+ scalar @{$patron->recall_items});
+ $resp .= add_count('patron_info/unavail_holds',
+ scalar @{$patron->unavail_holds});
+
+ $resp .= add_field(FID_INST_ID, ($ils->institution_id || 'SIP2'));
+
+ # while the patron ID we got from the SC is valid, let's
+ # use the one returned from the ILS, just in case...
+ $resp .= add_field(FID_PATRON_ID, $patron->id);
+ $resp .= add_field(FID_PERSONAL_NAME, $patron->name);
+
+ # TODO: add code for the fields
+ # hold items limit
+ # overdue items limit
+ # charged items limit
+
+ $resp .= add_field(FID_VALID_PATRON, 'Y');
+ if (defined($patron_pwd)) {
+ # If patron password was provided, report whether it was right or not.
+ $resp .= add_field(FID_VALID_PATRON_PWD,
+ sipbool($patron->check_password($patron_pwd)));
+ }
- $resp .= maybe_add(FID_CURRENCY, $patron->currency);
- $resp .= maybe_add(FID_FEE_AMT, $patron->fee_amount);
- $resp .= add_field(FID_FEE_LMT, $patron->fee_limit);
+ $resp .= maybe_add(FID_CURRENCY, $patron->currency);
+ $resp .= maybe_add(FID_FEE_AMT, $patron->fee_amount);
+ $resp .= add_field(FID_FEE_LMT, $patron->fee_limit);
- # TODO: zero or more item details for 2.0 can go here:
- # hold_items
- # overdue_items
- # charged_items
- # fine_items
- # recall_items
+ # TODO: zero or more item details for 2.0 can go here:
+ # hold_items
+ # overdue_items
+ # charged_items
+ # fine_items
+ # recall_items
- $resp .= summary_info($ils, $patron, $summary, $start, $end);
+ $resp .= summary_info($ils, $patron, $summary, $start, $end);
- $resp .= maybe_add(FID_HOME_ADDR, $patron->address);
- $resp .= maybe_add(FID_EMAIL, $patron->email_addr);
- $resp .= maybe_add(FID_HOME_PHONE, $patron->home_phone);
+ $resp .= maybe_add(FID_HOME_ADDR, $patron->address);
+ $resp .= maybe_add(FID_EMAIL, $patron->email_addr);
+ $resp .= maybe_add(FID_HOME_PHONE, $patron->home_phone);
- # SIP 2.0 extensions used by Envisionware
- # Other terminals will ignore unrecognized fields (unrecognized field identifiers)
- $resp .= maybe_add(FID_PATRON_BIRTHDATE, $patron->birthdate);
- $resp .= maybe_add(FID_PATRON_CLASS, $patron->ptype);
+ # SIP 2.0 extensions used by Envisionware
+ # Other terminals will ignore unrecognized fields (unrecognized field identifiers)
+ $resp .= maybe_add(FID_PATRON_BIRTHDATE, $patron->birthdate);
+ $resp .= maybe_add(FID_PATRON_CLASS, $patron->ptype);
- # Custom protocol extension to report patron internet privileges
- $resp .= maybe_add(FID_INET_PROFILE, $patron->inet_privileges);
+ # Custom protocol extension to report patron internet privileges
+ $resp .= maybe_add(FID_INET_PROFILE, $patron->inet_privileges);
- $resp .= maybe_add(FID_SCREEN_MSG, $patron->screen_msg);
- $resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
+ $resp .= maybe_add(FID_SCREEN_MSG, $patron->screen_msg);
+ $resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
} else {
# Invalid patron ID:
# no privileges, no items associated,
$resp .= 'YYYY' . (' ' x 10) . $lang . Sip::timestamp();
$resp .= '0000' x 6;
+ $resp .= add_field(FID_INST_ID, ($ils->institution_id || 'SIP2'));
# patron ID is invalid, but field is required, so just echo it back
$resp .= add_field(FID_PATRON_ID, $fields->{(FID_PATRON_ID)});
$resp .= add_field(FID_PERSONAL_NAME, '');
}
}
- $resp .= add_field(FID_INST_ID, ($ils->institution_id || 'SIP2'));
$self->write_msg($resp);
return(PATRON_INFO);
}