|
Lines 419-425
sub transferbook {
Link Here
|
| 419 |
|
419 |
|
| 420 |
=head2 TooMany |
420 |
=head2 TooMany |
| 421 |
|
421 |
|
| 422 |
Missing POD for TooMany. |
422 |
my $result = TooMany($patron, $item, $params); |
|
|
423 |
|
| 424 |
Check if a patron has too many items checked out according to circulation rules. |
| 425 |
This function checks both item-type specific rules and branch-level rules. |
| 426 |
|
| 427 |
=over 4 |
| 428 |
|
| 429 |
=item Parameters |
| 430 |
|
| 431 |
=over 8 |
| 432 |
|
| 433 |
=item C<$patron> |
| 434 |
|
| 435 |
A Koha::Patron object representing the patron. |
| 436 |
|
| 437 |
=item C<$item> |
| 438 |
|
| 439 |
A Koha::Item object representing the item to be checked out. |
| 440 |
|
| 441 |
=item C<$params> |
| 442 |
|
| 443 |
A hashref containing: |
| 444 |
- onsite_checkout: Boolean indicating if this is an onsite checkout |
| 445 |
- switch_onsite_checkout: Boolean indicating if this is switching to an onsite checkout |
| 446 |
|
| 447 |
=back |
| 448 |
|
| 449 |
=item Returns |
| 450 |
|
| 451 |
A hashref containing: |
| 452 |
- reason: The reason why the checkout is not allowed (e.g., 'TOO_MANY', 'TOO_MANY_ONSITE') |
| 453 |
- max_allowed: The maximum number of items allowed |
| 454 |
- current: The current number of items checked out |
| 455 |
- count: The number of items over the limit |
| 456 |
|
| 457 |
Returns undef if the checkout is allowed. |
| 458 |
|
| 459 |
=back |
| 423 |
|
460 |
|
| 424 |
=cut |
461 |
=cut |
| 425 |
|
462 |
|
|
Lines 1414-1430
sub CanBookBeReturned {
Link Here
|
| 1414 |
return ( $allowed, $message ); |
1451 |
return ( $allowed, $message ); |
| 1415 |
} |
1452 |
} |
| 1416 |
|
1453 |
|
| 1417 |
=head2 CheckHighHolds |
1454 |
=head2 checkHighHolds |
| 1418 |
|
1455 |
|
| 1419 |
used when syspref decreaseLoanHighHolds is active. Returns 1 or 0 to define whether the minimum value held in |
1456 |
my $result = checkHighHolds($item, $patron); |
| 1420 |
decreaseLoanHighHoldsValue is exceeded, the total number of outstanding holds, the number of days the loan |
|
|
| 1421 |
has been decreased to (held in syspref decreaseLoanHighHoldsValue), and the new due date |
| 1422 |
|
1457 |
|
| 1423 |
=cut |
1458 |
Check if an item has a high number of holds and determine if the loan period should be reduced. |
| 1424 |
|
1459 |
|
| 1425 |
=head2 checkHighHolds |
1460 |
=over 4 |
|
|
1461 |
|
| 1462 |
=item Parameters |
| 1463 |
|
| 1464 |
=over 8 |
| 1465 |
|
| 1466 |
=item C<$item> |
| 1467 |
|
| 1468 |
A Koha::Item object representing the item to be checked out. |
| 1469 |
|
| 1470 |
=item C<$patron> |
| 1426 |
|
1471 |
|
| 1427 |
Missing POD for checkHighHolds. |
1472 |
A Koha::Patron object representing the patron. |
|
|
1473 |
|
| 1474 |
=back |
| 1475 |
|
| 1476 |
=item Returns |
| 1477 |
|
| 1478 |
A hashref containing: |
| 1479 |
- exceeded: Boolean indicating if the holds threshold is exceeded |
| 1480 |
- outstanding: Number of outstanding holds on the item |
| 1481 |
- duration: The reduced loan duration if applicable |
| 1482 |
- due_date: The reduced due date if applicable |
| 1483 |
|
| 1484 |
=back |
| 1428 |
|
1485 |
|
| 1429 |
=cut |
1486 |
=cut |
| 1430 |
|
1487 |
|
|
Lines 3547-3553
sub AddRenewal {
Link Here
|
| 3547 |
|
3604 |
|
| 3548 |
=head2 GetRenewCount |
3605 |
=head2 GetRenewCount |
| 3549 |
|
3606 |
|
| 3550 |
Missing POD for GetRenewCount. |
3607 |
my ($renewcount, $renewsallowed, $renewsleft, $unseencount, $unseenallowed, $unseenleft) = GetRenewCount($borrowernumber_or_patron, $itemnumber_or_item); |
|
|
3608 |
|
| 3609 |
Get the renewal counts and limits for a patron and item. |
| 3610 |
|
| 3611 |
Parameters: |
| 3612 |
$borrowernumber_or_patron - Either a borrowernumber or a Koha::Patron object |
| 3613 |
$itemnumber_or_item - Either an itemnumber or a Koha::Item object |
| 3614 |
|
| 3615 |
Returns: |
| 3616 |
A list of six values: |
| 3617 |
- $renewcount - Number of times the item has been renewed |
| 3618 |
- $renewsallowed - Maximum number of renewals allowed |
| 3619 |
- $renewsleft - Number of renewals remaining |
| 3620 |
- $unseencount - Number of unseen renewals used |
| 3621 |
- $unseenallowed - Maximum number of unseen renewals allowed |
| 3622 |
- $unseenleft - Number of unseen renewals remaining |
| 3551 |
|
3623 |
|
| 3552 |
=cut |
3624 |
=cut |
| 3553 |
|
3625 |
|
|
Lines 4174-4180
sub CalcDateDue {
Link Here
|
| 4174 |
|
4246 |
|
| 4175 |
=head2 CheckValidBarcode |
4247 |
=head2 CheckValidBarcode |
| 4176 |
|
4248 |
|
| 4177 |
Missing POD for CheckValidBarcode. |
4249 |
my $exists = CheckValidBarcode($barcode); |
|
|
4250 |
|
| 4251 |
Check if a barcode exists in the items table. |
| 4252 |
|
| 4253 |
Parameters: |
| 4254 |
$barcode - The barcode to check |
| 4255 |
|
| 4256 |
Returns: |
| 4257 |
The count of items with this barcode (1 if exists, 0 if not) |
| 4178 |
|
4258 |
|
| 4179 |
=cut |
4259 |
=cut |
| 4180 |
|
4260 |
|
|
Lines 4269-4275
sub DeleteBranchTransferLimits {
Link Here
|
| 4269 |
|
4349 |
|
| 4270 |
=head2 ReturnLostItem |
4350 |
=head2 ReturnLostItem |
| 4271 |
|
4351 |
|
| 4272 |
Missing POD for ReturnLostItem. |
4352 |
ReturnLostItem($borrowernumber, $itemnum); |
|
|
4353 |
|
| 4354 |
Mark a lost item as returned. This is a wrapper around MarkIssueReturned that specifically |
| 4355 |
handles the return of items that were previously marked as lost. |
| 4356 |
|
| 4357 |
=over 4 |
| 4358 |
|
| 4359 |
=item Parameters |
| 4360 |
|
| 4361 |
=over 8 |
| 4362 |
|
| 4363 |
=item C<$borrowernumber> |
| 4364 |
|
| 4365 |
The borrower number of the patron who had the item checked out. |
| 4366 |
|
| 4367 |
=item C<$itemnum> |
| 4368 |
|
| 4369 |
The item number of the lost item being returned. |
| 4370 |
|
| 4371 |
=back |
| 4372 |
|
| 4373 |
=back |
| 4273 |
|
4374 |
|
| 4274 |
=cut |
4375 |
=cut |
| 4275 |
|
4376 |
|
|
Lines 4362-4368
sub LostItem {
Link Here
|
| 4362 |
|
4463 |
|
| 4363 |
=head2 GetOfflineOperations |
4464 |
=head2 GetOfflineOperations |
| 4364 |
|
4465 |
|
| 4365 |
Missing POD for GetOfflineOperations. |
4466 |
my $operations = GetOfflineOperations(); |
|
|
4467 |
|
| 4468 |
Retrieve all pending offline operations for the current branch. |
| 4469 |
|
| 4470 |
Returns: |
| 4471 |
An array reference of hash references containing pending offline operations: |
| 4472 |
- operationid |
| 4473 |
- userid |
| 4474 |
- branchcode |
| 4475 |
- timestamp |
| 4476 |
- action |
| 4477 |
- barcode |
| 4478 |
- cardnumber |
| 4479 |
- amount |
| 4366 |
|
4480 |
|
| 4367 |
=cut |
4481 |
=cut |
| 4368 |
|
4482 |
|
|
Lines 4376-4382
sub GetOfflineOperations {
Link Here
|
| 4376 |
|
4490 |
|
| 4377 |
=head2 GetOfflineOperation |
4491 |
=head2 GetOfflineOperation |
| 4378 |
|
4492 |
|
| 4379 |
Missing POD for GetOfflineOperation. |
4493 |
my $operation = GetOfflineOperation($operationid); |
|
|
4494 |
|
| 4495 |
Retrieve a specific pending offline operation by its ID. |
| 4496 |
|
| 4497 |
Parameters: |
| 4498 |
$operationid - The ID of the operation to retrieve |
| 4499 |
|
| 4500 |
Returns: |
| 4501 |
A hash reference containing the operation details: |
| 4502 |
- operationid |
| 4503 |
- userid |
| 4504 |
- branchcode |
| 4505 |
- timestamp |
| 4506 |
- action |
| 4507 |
- barcode |
| 4508 |
- cardnumber |
| 4509 |
- amount |
| 4510 |
Returns undef if the operation is not found. |
| 4380 |
|
4511 |
|
| 4381 |
=cut |
4512 |
=cut |
| 4382 |
|
4513 |
|
|
Lines 4391-4397
sub GetOfflineOperation {
Link Here
|
| 4391 |
|
4522 |
|
| 4392 |
=head2 AddOfflineOperation |
4523 |
=head2 AddOfflineOperation |
| 4393 |
|
4524 |
|
| 4394 |
Missing POD for AddOfflineOperation. |
4525 |
my $operationid = AddOfflineOperation($userid, $branchcode, $action, $barcode, $cardnumber, $amount); |
|
|
4526 |
|
| 4527 |
Add a new pending offline operation to the database. |
| 4528 |
|
| 4529 |
Parameters: |
| 4530 |
$userid - The ID of the staff member who created the operation |
| 4531 |
$branchcode - The branch code where the operation was created |
| 4532 |
$action - The type of operation (ISSUE, RETURN, PAYMENT) |
| 4533 |
$barcode - The barcode of the item (for ISSUE/RETURN) or empty string |
| 4534 |
$cardnumber - The card number of the patron (for ISSUE/RETURN) or empty string |
| 4535 |
$amount - The amount for payment operations or 0 for other operations |
| 4536 |
|
| 4537 |
Returns: |
| 4538 |
The ID of the newly created operation, or undef on failure. |
| 4395 |
|
4539 |
|
| 4396 |
=cut |
4540 |
=cut |
| 4397 |
|
4541 |
|
|
Lines 4407-4413
sub AddOfflineOperation {
Link Here
|
| 4407 |
|
4551 |
|
| 4408 |
=head2 DeleteOfflineOperation |
4552 |
=head2 DeleteOfflineOperation |
| 4409 |
|
4553 |
|
| 4410 |
Missing POD for DeleteOfflineOperation. |
4554 |
my $result = DeleteOfflineOperation($operationid); |
|
|
4555 |
|
| 4556 |
Delete a pending offline operation from the database. |
| 4557 |
|
| 4558 |
=over 4 |
| 4559 |
|
| 4560 |
=item Parameters |
| 4561 |
|
| 4562 |
=over 8 |
| 4563 |
|
| 4564 |
=item C<$operationid> |
| 4565 |
|
| 4566 |
The ID of the operation to delete. |
| 4567 |
|
| 4568 |
=back |
| 4569 |
|
| 4570 |
=item Returns |
| 4571 |
|
| 4572 |
A string containing "Deleted." on success. |
| 4573 |
|
| 4574 |
=back |
| 4411 |
|
4575 |
|
| 4412 |
=cut |
4576 |
=cut |
| 4413 |
|
4577 |
|
|
Lines 4420-4426
sub DeleteOfflineOperation {
Link Here
|
| 4420 |
|
4584 |
|
| 4421 |
=head2 ProcessOfflineOperation |
4585 |
=head2 ProcessOfflineOperation |
| 4422 |
|
4586 |
|
| 4423 |
Missing POD for ProcessOfflineOperation. |
4587 |
my $report = ProcessOfflineOperation($operation); |
|
|
4588 |
|
| 4589 |
Process an offline circulation operation that was previously stored in the database. |
| 4590 |
This function handles three types of operations: returns, issues, and payments. |
| 4591 |
|
| 4592 |
=over 4 |
| 4593 |
|
| 4594 |
=item Parameters |
| 4595 |
|
| 4596 |
=over 8 |
| 4597 |
|
| 4598 |
=item C<$operation> |
| 4599 |
|
| 4600 |
A hashref containing the operation details: |
| 4601 |
- action: The type of operation ('return', 'issue', or 'payment') |
| 4602 |
- operationid: The ID of the operation in the pending_offline_operations table |
| 4603 |
- barcode: The item barcode (for returns and issues) |
| 4604 |
- Additional fields specific to each operation type |
| 4605 |
|
| 4606 |
=back |
| 4607 |
|
| 4608 |
=item Returns |
| 4609 |
|
| 4610 |
A report string containing the result of processing the operation. |
| 4611 |
|
| 4612 |
=back |
| 4424 |
|
4613 |
|
| 4425 |
=cut |
4614 |
=cut |
| 4426 |
|
4615 |
|
|
Lines 4443-4449
sub ProcessOfflineOperation {
Link Here
|
| 4443 |
|
4632 |
|
| 4444 |
=head2 ProcessOfflineReturn |
4633 |
=head2 ProcessOfflineReturn |
| 4445 |
|
4634 |
|
| 4446 |
Missing POD for ProcessOfflineReturn. |
4635 |
my $result = ProcessOfflineReturn($operation); |
|
|
4636 |
|
| 4637 |
Process an offline return operation that was previously stored in the database. |
| 4638 |
|
| 4639 |
=over 4 |
| 4640 |
|
| 4641 |
=item Parameters |
| 4642 |
|
| 4643 |
=over 8 |
| 4644 |
|
| 4645 |
=item C<$operation> |
| 4646 |
|
| 4647 |
A hashref containing the operation details: |
| 4648 |
- barcode: The barcode of the item being returned |
| 4649 |
- timestamp: The timestamp of when the return was recorded |
| 4650 |
|
| 4651 |
=back |
| 4652 |
|
| 4653 |
=item Returns |
| 4654 |
|
| 4655 |
A string containing: |
| 4656 |
- "Success." if the return was processed successfully |
| 4657 |
- "Item not issued." if the item was not checked out |
| 4658 |
- "Item not found." if the item barcode was not found |
| 4659 |
|
| 4660 |
=back |
| 4447 |
|
4661 |
|
| 4448 |
=cut |
4662 |
=cut |
| 4449 |
|
4663 |
|
|
Lines 4476-4482
sub ProcessOfflineReturn {
Link Here
|
| 4476 |
|
4690 |
|
| 4477 |
=head2 ProcessOfflineIssue |
4691 |
=head2 ProcessOfflineIssue |
| 4478 |
|
4692 |
|
| 4479 |
Missing POD for ProcessOfflineIssue. |
4693 |
my $result = ProcessOfflineIssue($operation); |
|
|
4694 |
|
| 4695 |
Process an offline issue operation that was previously stored in the database. |
| 4696 |
|
| 4697 |
=over 4 |
| 4698 |
|
| 4699 |
=item Parameters |
| 4700 |
|
| 4701 |
=over 8 |
| 4702 |
|
| 4703 |
=item C<$operation> |
| 4704 |
|
| 4705 |
A hashref containing the operation details: |
| 4706 |
- barcode: The barcode of the item being issued |
| 4707 |
- cardnumber: The patron's card number or userid |
| 4708 |
- timestamp: The timestamp of when the issue was recorded |
| 4709 |
|
| 4710 |
=back |
| 4711 |
|
| 4712 |
=item Returns |
| 4713 |
|
| 4714 |
A string containing: |
| 4715 |
- "Success." if the issue was processed successfully |
| 4716 |
- "Barcode not found." if the item barcode was not found |
| 4717 |
- "Borrower not found." if the patron was not found |
| 4718 |
|
| 4719 |
=back |
| 4480 |
|
4720 |
|
| 4481 |
=cut |
4721 |
=cut |
| 4482 |
|
4722 |
|
|
Lines 4518-4524
sub ProcessOfflineIssue {
Link Here
|
| 4518 |
|
4758 |
|
| 4519 |
=head2 ProcessOfflinePayment |
4759 |
=head2 ProcessOfflinePayment |
| 4520 |
|
4760 |
|
| 4521 |
Missing POD for ProcessOfflinePayment. |
4761 |
my $result = ProcessOfflinePayment($operation); |
|
|
4762 |
|
| 4763 |
Process an offline payment operation that was previously stored in the database. |
| 4764 |
|
| 4765 |
=over 4 |
| 4766 |
|
| 4767 |
=item Parameters |
| 4768 |
|
| 4769 |
=over 8 |
| 4770 |
|
| 4771 |
=item C<$operation> |
| 4772 |
|
| 4773 |
A hashref containing the operation details: |
| 4774 |
- cardnumber: The patron's card number or userid |
| 4775 |
- amount: The amount to be paid |
| 4776 |
- branchcode: The branch where the payment was recorded |
| 4777 |
|
| 4778 |
=back |
| 4779 |
|
| 4780 |
=item Returns |
| 4781 |
|
| 4782 |
A string containing "Success." if the payment was processed successfully. |
| 4783 |
|
| 4784 |
=back |
| 4522 |
|
4785 |
|
| 4523 |
=cut |
4786 |
=cut |
| 4524 |
|
4787 |
|
|
Lines 4697-4703
sub GetPendingOnSiteCheckouts {
Link Here
|
| 4697 |
|
4960 |
|
| 4698 |
=head2 GetTopIssues |
4961 |
=head2 GetTopIssues |
| 4699 |
|
4962 |
|
| 4700 |
Missing POD for GetTopIssues. |
4963 |
my @top_issues = GetTopIssues($params); |
|
|
4964 |
|
| 4965 |
Get a list of the most frequently issued items based on specified criteria. |
| 4966 |
|
| 4967 |
=over 4 |
| 4968 |
|
| 4969 |
=item Parameters |
| 4970 |
|
| 4971 |
=over 8 |
| 4972 |
|
| 4973 |
=item C<$params> |
| 4974 |
|
| 4975 |
A hashref containing: |
| 4976 |
- count: The number of items to return |
| 4977 |
- branch: The branch code to filter by (optional) |
| 4978 |
- itemtype: The item type to filter by (optional) |
| 4979 |
- ccode: The collection code to filter by (optional) |
| 4980 |
- newness: The number of days since creation to filter by (optional) |
| 4981 |
|
| 4982 |
=back |
| 4983 |
|
| 4984 |
=item Returns |
| 4985 |
|
| 4986 |
An array of hashrefs containing: |
| 4987 |
- biblionumber: The bibliographic record number |
| 4988 |
- title: The title of the item |
| 4989 |
- author: The author of the item |
| 4990 |
- itemtype: The item type |
| 4991 |
- publishercode: The publisher code |
| 4992 |
- place: The place of publication |
| 4993 |
- publicationyear: The year of publication |
| 4994 |
- copyrightdate: The copyright date |
| 4995 |
- pages: The number of pages |
| 4996 |
- size: The size of the item |
| 4997 |
- ccode: The collection code |
| 4701 |
|
4998 |
|
| 4702 |
=cut |
4999 |
=cut |
| 4703 |
|
5000 |
|
| 4704 |
- |
|
|