View | Details | Raw Unified | Return to bug 4916
Collapse All | Expand All

(-)a/tools/cleanborrowers.pl (-1 / +69 lines)
Lines 41-46 use C4::Dates qw/format_date format_date_in_iso/; Link Here
41
use C4::Members;        # GetBorrowersWhoHavexxxBorrowed.
41
use C4::Members;        # GetBorrowersWhoHavexxxBorrowed.
42
use C4::Circulation;    # AnonymiseIssueHistory.
42
use C4::Circulation;    # AnonymiseIssueHistory.
43
use Date::Calc qw/Today Add_Delta_YM/;
43
use Date::Calc qw/Today Add_Delta_YM/;
44
use Getopt::Long;
45
46
if ( scalar @ARGV > 0 ) {
47
    my ($untildate, $delete, $full, $anonymize, $help, $test);
48
    my ($totalDel, $totalAno, $membersToDelete, $membersToAnonymize) = (0,0,0,0);
49
    GetOptions( 'until=s'   => \$untildate,
50
                'delete'    => \$delete,
51
                'anonymize' => \$anonymize,
52
                'full'      => \$full,
53
                'help|h'    => \$help,
54
                'test|t'    => \$test,
55
                );
56
    
57
    if($help or not $untildate){            
58
        print <<EOF
59
        This script anonymize history, and delete olds borrowers.
60
        Parameters :
61
        -delete to delete borrowers that have not borrowed until the specified date
62
        -full do not move borrowers to deletedborrowers, delete really from the database.
63
        -anonymize to anonmize history of borrowers until the specified date
64
        -until=s date until to clean borrowers and/or history
65
        -test|t to test and do not delete anything
66
        -help|h this help
67
         
68
         example :
69
         export PERL5LIB=/path/to/koha;export KOHA_CONF=/etc/koha/koha-conf.xml; ./tools/cleanborrowers.pl -delete -anonymize -until 2009-01-01
70
EOF
71
;
72
        exit;
73
    }
74
    if($delete){
75
        $membersToDelete    = GetBorrowersWhoHaveNotBorrowedSince($untildate, 1);
76
        $totalDel = scalar @$membersToDelete;
77
    }
78
    if($anonymize){
79
        $membersToAnonymize = GetBorrowersWithIssuesHistoryOlderThan($untildate);
80
        $totalAno = scalar @$membersToAnonymize;
81
    }
82
    
83
    print <<EOF
84
        Anonymization Report:
85
           * $totalDel patrons will be deleted
86
           * $totalAno check-out history will be anonymized  
87
EOF
88
;
89
    exit if $test;
90
    
91
    if($delete){
92
        print "Deleting patrons...\n";
93
        if($full){
94
            foreach my $member (@$membersToDelete){
95
                DelMember( $member->{'borrowernumber'} );
96
            }
97
        }else{
98
            foreach my $member (@$membersToDelete){
99
                MoveMemberToDeleted( $member->{'borrowernumber'} );
100
                DelMember( $member->{'borrowernumber'} );
101
            }
102
        }
103
    }
104
    
105
    if($anonymize){
106
        print "Anonimyzing check-out history...\n";
107
        AnonymiseIssueHistory($untildate);
108
    }
109
    
110
    print "Cleaning borrowers successfully finished.\n";
111
    exit;
112
}
44
113
45
my $cgi = new CGI;
114
my $cgi = new CGI;
46
115
47
- 

Return to bug 4916