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 { |