X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2Fmodborrowers.pl;h=eaa93eaf8f4525ad111f6b8074d4caaa2ccfe5c2;hb=1f3a9722e4f8d32c7a839137252fc935ad599f74;hp=7b8587ad046c9480e94aaabcdb97b49acddd3c3d;hpb=d2a2d973cebda372c97d3820bc046970d030b1cf;p=koha-ffzg.git diff --git a/tools/modborrowers.pl b/tools/modborrowers.pl index 7b8587ad04..eaa93eaf8f 100755 --- a/tools/modborrowers.pl +++ b/tools/modborrowers.pl @@ -38,6 +38,7 @@ use Koha::DateUtils qw( dt_from_string ); use Koha::List::Patron; use Koha::Libraries; use Koha::Patron::Categories; +use Koha::Patron::Debarments; use Koha::Patrons; my $input = new CGI; @@ -262,6 +263,18 @@ if ( $op eq 'show' ) { type => "text", mandatory => ( grep /opacnote/, @mandatoryFields ) ? 1 : 0, } + , + { + name => "debarred", + type => "date", + mandatory => ( grep /debarred/, @mandatoryFields ) ? 1 : 0, + } + , + { + name => "debarredcomment", + type => "text", + mandatory => ( grep /debarredcomment/, @mandatoryFields ) ? 1 : 0, + }, ); $template->param('patron_attributes_codes', \@patron_attributes_codes); @@ -275,13 +288,13 @@ if ( $op eq 'do' ) { my @disabled = $input->multi_param('disable_input'); my $infos; - for my $field ( qw/surname firstname branchcode categorycode city state zipcode country sort1 sort2 dateenrolled dateexpiry borrowernotes opacnote/ ) { + for my $field ( qw/surname firstname branchcode categorycode city state zipcode country sort1 sort2 dateenrolled dateexpiry borrowernotes opacnote debarred debarredcomment/ ) { my $value = $input->param($field); $infos->{$field} = $value if $value; $infos->{$field} = "" if grep { /^$field$/ } @disabled; } - for my $field ( qw( dateenrolled dateexpiry ) ) { + for my $field ( qw( dateenrolled dateexpiry debarred ) ) { $infos->{$field} = dt_from_string($infos->{$field}) if $infos->{$field}; } @@ -294,6 +307,27 @@ if ( $op eq 'do' ) { for my $borrowernumber ( @borrowernumbers ) { # If at least one field are filled, we want to modify the borrower if ( defined $infos ) { + # If a debarred date or debarred comment has been submitted make a new debarment + if ( $infos->{debarred} || $infos->{debarredcomment} ) { + AddDebarment( + { + borrowernumber => $borrowernumber, + type => 'MANUAL', + comment => $infos->{debarredcomment}, + expiration => $infos->{debarred}, + }); + } + + # If debarment date or debarment comment are disabled then remove all debarrments + if ( grep { /debarred/ } @disabled ) { + eval { + my $debarrments = GetDebarments( { borrowernumber => $borrowernumber } ); + foreach my $debarment (@$debarrments) { + DelDebarment( $debarment->{'borrower_debarment_id'} ); + } + }; + } + $infos->{borrowernumber} = $borrowernumber; eval { Koha::Patrons->find( $borrowernumber )->set($infos)->store; }; if ( $@ ) { # FIXME We could provide better error handling here @@ -306,6 +340,7 @@ if ( $op eq 'do' ) { my $borrower_categorycode = Koha::Patrons->find( $borrowernumber )->categorycode; my $i=0; for ( @attributes ) { + next unless $_; my $attribute; $attribute->{code} = $_; $attribute->{attribute} = $attr_values[$i]; @@ -336,9 +371,7 @@ if ( $op eq 'do' ) { for my $borrowernumber ( @borrowernumbers ) { my $patron = Koha::Patrons->find( $borrowernumber ); if ( $patron ) { - my $category_description = $patron->category->description; $patron = $patron->unblessed; - $patron->{category_description} = $category_description; $patron->{patron_attributes} = C4::Members::Attributes::GetBorrowerAttributes( $patron->{borrowernumber} ); $max_nb_attr = scalar( @{ $patron->{patron_attributes} } ) if scalar( @{ $patron->{patron_attributes} } ) > $max_nb_attr; @@ -360,7 +393,6 @@ if ( $op eq 'do' ) { $template->param( borrowers => \@borrowers ); $template->param( attributes_header => \@attributes_header ); - $template->param( borrowers => \@borrowers ); $template->param( errors => \@errors ); } else {