|
Lines 522-529
sub DelFromShelf {
Link Here
|
| 522 |
} |
522 |
} |
| 523 |
} |
523 |
} |
| 524 |
if($del_oth) { |
524 |
if($del_oth) { |
| 525 |
$query = qq(DELETE FROM virtualshelfcontents |
525 |
#includes a check if borrowernumber is null (deleted patron) |
| 526 |
WHERE shelfnumber=? AND biblionumber=? AND borrowernumber<>?); |
526 |
$query = qq/DELETE FROM virtualshelfcontents |
|
|
527 |
WHERE shelfnumber=? AND biblionumber=? AND |
| 528 |
(borrowernumber IS NULL OR borrowernumber<>?)/; |
| 527 |
$sth= $dbh->prepare($query); |
529 |
$sth= $dbh->prepare($query); |
| 528 |
foreach my $biblionumber (@$bibref) { |
530 |
foreach my $biblionumber (@$bibref) { |
| 529 |
$sth->execute($shelfnumber, $biblionumber, $user); |
531 |
$sth->execute($shelfnumber, $biblionumber, $user); |
|
Lines 591-596
sub ShelvesMax {
Link Here
|
| 591 |
return SHELVES_MASTHEAD_MAX; |
593 |
return SHELVES_MASTHEAD_MAX; |
| 592 |
} |
594 |
} |
| 593 |
|
595 |
|
|
|
596 |
sub HandleDelBorrower { |
| 597 |
#when a member is deleted (DelMember in Members.pm), you should call me first |
| 598 |
#this routine deletes/moves lists and entries for the deleted member/borrower |
| 599 |
#you could just delete everything (and lose more than you want) |
| 600 |
#instead we now try to save all public/shared stuff and keep others happy |
| 601 |
my ($borrower)= @_; |
| 602 |
my $query; |
| 603 |
my $dbh = C4::Context->dbh; |
| 604 |
|
| 605 |
#Delete shares of this borrower (not lists !) |
| 606 |
$query="DELETE FROM virtualshelfshares WHERE borrowernumber=?"; |
| 607 |
$dbh->do($query,undef,($borrower)); |
| 608 |
|
| 609 |
#Delete private lists without owner that now have no shares anymore |
| 610 |
$query="DELETE vs.* FROM virtualshelves vs LEFT JOIN virtualshelfshares sh USING (shelfnumber) WHERE category=1 AND vs.owner IS NULL AND sh.shelfnumber IS NULL"; |
| 611 |
$dbh->do($query); |
| 612 |
|
| 613 |
#Change owner for private lists which have shares |
| 614 |
$query="UPDATE virtualshelves LEFT JOIN virtualshelfshares sh USING (shelfnumber) SET owner=NULL where owner=? AND category=1 AND sh.borrowernumber IS NOT NULL"; |
| 615 |
$dbh->do($query,undef,($borrower)); |
| 616 |
|
| 617 |
#Delete unshared private lists |
| 618 |
$query="DELETE FROM virtualshelves WHERE owner=? AND category=1"; |
| 619 |
$dbh->do($query,undef,($borrower)); |
| 620 |
|
| 621 |
#Handle public lists owned by borrower |
| 622 |
$query="UPDATE virtualshelves SET owner=NULL WHERE owner=? AND category=2"; |
| 623 |
$dbh->do($query,undef,($borrower)); |
| 624 |
|
| 625 |
#Handle entries added by borrower to lists of others |
| 626 |
$query="UPDATE virtualshelfcontents SET borrowernumber=NULL WHERE borrowernumber=?"; |
| 627 |
$dbh->do($query,undef,($borrower)); |
| 628 |
} |
| 629 |
|
| 594 |
# internal subs |
630 |
# internal subs |
| 595 |
|
631 |
|
| 596 |
sub _shelf_count { |
632 |
sub _shelf_count { |