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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt (-4 / +38 lines)
Lines 29-37 Link Here
29
                <h1>Batch patron modification</h1>
29
                <h1>Batch patron modification</h1>
30
                <form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/modborrowers.pl">
30
                <form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/modborrowers.pl">
31
                    <fieldset class="rows">
31
                    <fieldset class="rows">
32
                        <legend>Use a file</legend>
32
                        <legend>Use a file of cardnumbers</legend>
33
                        <ol>
33
                        <ol>
34
                            <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
34
                            <li><label for="uploadfile">File: </label> <input type="file" id="uploadcardnumberfile" name="uploadcardnumberfile" /></li>
35
                        </ol>
36
                    </fieldset>
37
38
                    <fieldset class="rows">
39
                        <legend>Use a file of SMS numbers</legend>
40
                        <ol>
41
                            <li><label for="uploadfile">File: </label> <input type="file" id="uploadsmsnumberfile" name="uploadsmsnumberfile" /></li>
35
                        </ol>
42
                        </ol>
36
                    </fieldset>
43
                    </fieldset>
37
44
Lines 61-66 Link Here
61
                            </li>
68
                            </li>
62
                        </ol>
69
                        </ol>
63
                    </fieldset>
70
                    </fieldset>
71
72
                    <fieldset class="rows">
73
                        <legend>Or list SMS numbers one by one</legend>
74
                        <ol>
75
                            <li>
76
                              <label for="smsnumberlist">SMS number list (one SMS number per line): </label>
77
                              <textarea rows="10" cols="30" id="smsnumberlist" name="smsnumberlist">[% smsnumberlist | html %]</textarea>
78
                            </li>
79
                        </ol>
80
                    </fieldset>
81
64
                    <input type="hidden" name="op" value="show" />
82
                    <input type="hidden" name="op" value="show" />
65
                    <fieldset class="action">
83
                    <fieldset class="action">
66
                        <input type="submit" value="Continue" class="button" />
84
                        <input type="submit" value="Continue" class="button" />
Lines 69-79 Link Here
69
                </form>
87
                </form>
70
                [% END %]
88
                [% END %]
71
89
72
                [% IF ( op == 'show') && (!borrowers) && (!notfoundcardnumbers) # Alert if no patrons given%]
90
                [% IF ( op == 'show') && (!borrowers) && (!notfoundcardnumbers) && (!notfoundsmsnumbers) # Alert if no patrons given%]
73
                    [% op = 'noshow' # Change op to prevent display in code below %]
91
                    [% op = 'noshow' # Change op to prevent display in code below %]
74
                    <h1>Batch patrons modification</h1>
92
                    <h1>Batch patrons modification</h1>
75
                    <div class="dialog alert">
93
                    <div class="dialog alert">
76
                        <p>No patron card numbers given.</p>
94
                        <p>No patron card numbers/SMS numbers given.</p>
77
                        <form action="/cgi-bin/koha/tools/modborrowers.pl" method="get">
95
                        <form action="/cgi-bin/koha/tools/modborrowers.pl" method="get">
78
                         <button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> OK</button>
96
                         <button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> OK</button>
79
                        </form>
97
                        </form>
Lines 100-105 Link Here
100
                        </table>
118
                        </table>
101
                    [% END %]
119
                    [% END %]
102
120
121
                    [% IF ( notfoundsmsnumbers ) %]
122
                        <div class="dialog alert"><p>Warning, the following sms numbers were not found:</p></div>
123
                        <table style="margin:auto;">
124
                            <thead>
125
                                <tr><th>SMS numbers not found</th></tr>
126
                            </thead>
127
                            <tbody>
128
                                [% FOREACH notfoundsmsnumber IN notfoundsmsnumbers %]
129
                                    <tr><td>[% notfoundsmsnumber.smsalertnumber | html %]</td></tr>
130
                                [% END %]
131
                            </tbody>
132
                        </table>
133
                    [% END %]
134
135
103
                    [% IF ( op == 'show_results' ) %]
136
                    [% IF ( op == 'show_results' ) %]
104
                        [% IF ( errors ) %]
137
                        [% IF ( errors ) %]
105
                            <div class="dialog alert">
138
                            <div class="dialog alert">
Lines 109-114 Link Here
109
                                [% IF ( error.error == 'can_not_update' ) %]
142
                                [% IF ( error.error == 'can_not_update' ) %]
110
                                    <li>Can not update patron.
143
                                    <li>Can not update patron.
111
                                    [% IF ( error.cardnumber ) %] Cardnumber:  [% error.cardnumber | html %] [% END %]
144
                                    [% IF ( error.cardnumber ) %] Cardnumber:  [% error.cardnumber | html %] [% END %]
145
                                    [% IF ( error.smsnumber ) %] SMS number: [% error.smsnumber | html %] [% END %]
112
                                    (Borrowernumber: [% error.borrowernumber | html %])
146
                                    (Borrowernumber: [% error.borrowernumber | html %])
113
                                    </li>
147
                                    </li>
114
                                [% ELSE %]
148
                                [% ELSE %]
(-)a/tools/modborrowers.pl (-21 / +52 lines)
Lines 57-104 my $dbh = C4::Context->dbh; Link Here
57
57
58
# Show borrower informations
58
# Show borrower informations
59
if ( $op eq 'show' ) {
59
if ( $op eq 'show' ) {
60
    my $filefh         = $input->upload('uploadfile');
60
    my $cardnumberfilefh = $input->upload('uploadcardnumberfile');
61
    my $smsnumberfilefh  = $input->upload('uploadsmsnumberfile');
61
    my $filecontent    = $input->param('filecontent');
62
    my $filecontent    = $input->param('filecontent');
62
    my $patron_list_id = $input->param('patron_list_id');
63
    my $patron_list_id = $input->param('patron_list_id');
63
    my @borrowers;
64
    my @borrowers;
64
    my @cardnumbers;
65
    my @cardnumbers;
65
    my @notfoundcardnumbers;
66
    my @smsnumbers;
67
    my ( @notfoundcardnumbers, @notfoundsmsnumbers );
66
68
67
    # Get cardnumbers from a file or the input area
69
    # Get cardnumbers from a file or the input area
68
    if ($filefh) {
70
    if ( $cardnumberfilefh ) {
69
        while ( my $content = <$filefh> ) {
71
        while ( my $content = <$cardnumberfilefh> ) {
70
            $content =~ s/[\r\n]*$//g;
72
            $content =~ s/[\r\n]*$//g;
71
            push @cardnumbers, $content if $content;
73
            push @cardnumbers, $content if $content;
72
        }
74
        }
75
    } elsif ( $smsnumberfilefh ) {
76
        while ( my $content = <$smsnumberfilefh> ) {
77
             $content =~ s/[\r\n]*$//g;
78
             push @smsnumbers, $content if $content;
79
        }
73
    } elsif ( $patron_list_id ) {
80
    } elsif ( $patron_list_id ) {
74
        my ($list) = GetPatronLists( { patron_list_id => $patron_list_id } );
81
        my ($list) = GetPatronLists( { patron_list_id => $patron_list_id } );
75
82
76
        @cardnumbers =
83
        @cardnumbers =
77
          $list->patron_list_patrons()->search_related('borrowernumber')
84
          $list->patron_list_patrons()->search_related('borrowernumber')
78
          ->get_column('cardnumber')->all();
85
          ->get_column('cardnumber')->all();
79
86
        @smsnumbers =
87
          $list->patron_list_patrons()->search_related('borrowernumber')
88
          ->get_column('smsalertnumber')->all();
80
    } else {
89
    } else {
81
        if ( my $list = $input->param('cardnumberlist') ) {
90
        if ( my $cardnumberlist = $input->param('cardnumberlist') ) {
82
            push @cardnumbers, split( /\s\n/, $list );
91
            push @cardnumbers, split( /\s\n/, $cardnumberlist );
92
        } elsif ( my $smsnumberlist = $input->param('smsnumberlist') ) {
93
            push @smsnumbers, split( /\s\n/, $smsnumberlist );
83
        }
94
        }
84
    }
95
    }
85
96
86
    my $max_nb_attr = 0;
97
    my $max_nb_attr = 0;
87
    for my $cardnumber ( @cardnumbers ) {
98
    if ( @cardnumbers ) {
88
        my $patron = Koha::Patrons->find( { cardnumber => $cardnumber } );
99
        for my $cardnumber ( @cardnumbers ) {
89
        if ( $patron ) {
100
            my $patron = Koha::Patrons->find( { cardnumber => $cardnumber } );
90
            if ( $logged_in_user->can_see_patron_infos( $patron ) ) {
101
            if ( $patron ) {
91
                my $borrower = $patron->unblessed;
102
                if ( $logged_in_user->can_see_patron_infos( $patron ) ) {
92
                my $attributes = $patron->extended_attributes;
103
                    my $borrower = $patron->unblessed;
93
                $borrower->{patron_attributes} = $attributes->as_list;
104
                    my $attributes = $patron->extended_attributes;
94
                $borrower->{patron_attributes_count} = $attributes->count;
105
                    $borrower->{patron_attributes} = $attributes->as_list;
95
                $max_nb_attr = $borrower->{patron_attributes_count} if $borrower->{patron_attributes_count} > $max_nb_attr;
106
                    $borrower->{patron_attributes_count} = $attributes->count;
96
                push @borrowers, $borrower;
107
                    $max_nb_attr = $borrower->{patron_attributes_count} if $borrower->{patron_attributes_count} > $max_nb_attr;
108
                    push @borrowers, $borrower;
109
                } else {
110
                    push @notfoundcardnumbers, $cardnumber;
111
                }
112
        I    }
113
        }
114
    } else {
115
        for my $smsnumber (@smsnumbers ) {
116
            my $patron = Koha::Patrons->find( { smsalertnumber => $smsnumber } );
117
            if ( $patron ) {
118
                if ( $logged_in_user->can_see_patron_infos( $patron ) ) {
119
                    my $borrower = $patron->unblessed;
120
                    my $attributes = $patron->extended_attributes;
121
                    $borrower->{patron_attributes} = $attributes->as_list;
122
                    $borrower->{patron_attributes_count} = $attributes->count;
123
                    $max_nb_attr = $borrower->{patron_attributes_count} if $borrower->{patron_attributes_count} > $max_nb_attr;
124
                    push @borrowers, $patron;
125
                } else {
126
                    push @notfoundsmsnumbers, $smsnumber;
127
                }
97
            } else {
128
            } else {
98
                push @notfoundcardnumbers, $cardnumber;
129
                push @notfoundsmsnumbers, $smsnumber;
99
            }
130
            }
100
        } else {
101
            push @notfoundcardnumbers, $cardnumber;
102
        }
131
        }
103
    }
132
    }
104
133
Lines 148-153 if ( $op eq 'show' ) { Link Here
148
    $template->param( borrowers => \@borrowers );
177
    $template->param( borrowers => \@borrowers );
149
    $template->param( attributes_header => \@attributes_header );
178
    $template->param( attributes_header => \@attributes_header );
150
    @notfoundcardnumbers = map { { cardnumber => $_ } } @notfoundcardnumbers;
179
    @notfoundcardnumbers = map { { cardnumber => $_ } } @notfoundcardnumbers;
180
    @notfoundsmsnumbers = map { { smsalertnumber => $_ } } @notfoundsmsnumbers;
181
    $template->param( notfoundsmsnumbers => \@notfoundsmsnumbers ) if @notfoundsmsnumbers;
182
151
    $template->param( notfoundcardnumbers => \@notfoundcardnumbers )
183
    $template->param( notfoundcardnumbers => \@notfoundcardnumbers )
152
        if @notfoundcardnumbers;
184
        if @notfoundcardnumbers;
153
185
154
- 

Return to bug 23291