#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
-use strict;
-#use warnings; FIXME - Bug 2505
+use Modern::Perl;
use C4::Context;
-use CGI;
-use C4::Output;
-use C4::Auth;
-use C4::Dates qw/format_date/;
-use C4::Overdues; # AddNotifyLine
-use C4::Biblio;
-use C4::Koha;
-use C4::Debug;
+use CGI qw ( -utf8 );
+use C4::Output qw( output_html_with_http_headers );
+use C4::Auth qw( get_template_and_user );
+use C4::Overdues qw( GetOverduesForBranch );
+use C4::Biblio qw( GetMarcFromKohaField GetMarcStructure );
+use C4::Koha qw( GetAuthorisedValues );
+use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::BiblioFrameworks;
=head1 branchoverdues.pl
- this module is a new interface, allow to the librarian to check all items on overdues (based on the acountlines type 'FU' )
- this interface is filtered by branches (automatically), and by location (optional) ....
- all informations are stocked in the notifys BDD
+This view is used to display all overdue items to the librarian.
- FIXME for this time, we have only four methods to notify :
- - mail : work with a batch programm
- - letter : for us, the letters are generated by an open-office program
- - phone : Simple method, when the method 'phone' is selected, we consider, that the borrower as been notified, and the notify send date is implemented
- - considered lost : for us if the document is on the third overduelevel,
-
- FIXME the methods are actually hardcoded for the levels : (maybe can be improved by a new possibility in overduerule)
-
- level 1 : three methods are possible : - mail, letter, phone
- level 2 : only one method is possible : - letter
- level 3 : only methode is possible : - Considered Lost
-
- the documents displayed on this interface, are checked on three points
- - 1) the document must be on accountlines (Type 'FU')
- - 2) item issues is not returned
- - 3) this item as not been already notify
-
- FIXME: who is the author?
- FIXME: No privisions (i.e. "actions") for handling notices are implemented.
- FIXME: This is linked as "Overdue Fines" but the relationship to fines in GetOverduesForBranch is more complicated than that.
+It is automatically filtered by branch and can optionally be filtered
+by item location.
=cut
-my $input = new CGI;
+my $input = CGI->new;
my $dbh = C4::Context->dbh;
-my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
- template_name => "circ/branchoverdues.tmpl",
+my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
+ template_name => "circ/branchoverdues.tt",
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { circulate => "circulate_remaining_permissions" },
- debug => 1,
});
my $default = C4::Context->userenv->{'branch'};
my $itemnumber = $input->param('itemnumber');
my $method = $input->param('method');
my $overduelevel = $input->param('overduelevel');
-my $notifyId = $input->param('notifyId');
my $location = $input->param('location');
# FIXME: better check that borrowernumber is defined and valid.
# FIXME: same for itemnumber and other variables passed in here.
-# now create the line in bdd (notifys)
-if ( $input->param('action') eq 'add' ) {
- my $addnotify =
- AddNotifyLine( $borrowernumber, $itemnumber, $overduelevel, $method,
- $notifyId ) # FIXME: useless variable, no TMPL code for "action" exists.;
-}
-elsif ( $input->param('action') eq 'remove' ) {
- my $notify_date = $input->param('notify_date');
- my $removenotify =
- RemoveNotifyLine( $borrowernumber, $itemnumber, $notify_date ); # FIXME: useless variable, no TMPL code for "action" exists.
-}
-
my @overduesloop;
my @getoverdues = GetOverduesForBranch( $default, $location );
-use Data::Dumper;
-$debug and warn "HERE : $default / $location" . Dumper(@getoverdues);
# search for location authorised value
-my ($tag,$subfield) = GetMarcFromKohaField('items.location','');
+my ($tag,$subfield) = GetMarcFromKohaField( 'items.location' );
my $tagslib = &GetMarcStructure(1,'');
if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
my $values= GetAuthorisedValues($tagslib->{$tag}->{$subfield}->{authorised_value});
+ for (@$values) { $_->{selected} = 1 if defined $location && $location eq $_->{authorised_value} }
$template->param(locationsloop => $values);
}
# now display infos
foreach my $num (@getoverdues) {
-
my %overdueforbranch;
- $overdueforbranch{'date_due'} = format_date( $num->{'date_due'} );
+ my $dt = dt_from_string($num->{date_due}, 'sql');
+ $overdueforbranch{'date_due'} = output_pref($dt);
$overdueforbranch{'title'} = $num->{'title'};
+ $overdueforbranch{'subtitle'} = $num->{'subtitle'};
+ $overdueforbranch{'medium'} = $num->{'medium'};
+ $overdueforbranch{'part_number'} = $num->{'part_number'};
+ $overdueforbranch{'part_name'} = $num->{'part_name'};
$overdueforbranch{'description'} = $num->{'description'};
$overdueforbranch{'barcode'} = $num->{'barcode'};
$overdueforbranch{'biblionumber'} = $num->{'biblionumber'};
+ $overdueforbranch{'author'} = $num->{'author'};
$overdueforbranch{'borrowersurname'} = $num->{'surname'};
$overdueforbranch{'borrowerfirstname'} = $num->{'firstname'};
$overdueforbranch{'borrowerphone'} = $num->{'phone'};
$overdueforbranch{'borroweremail'} = $num->{'email'};
+ $overdueforbranch{'homebranch'} = $num->{'homebranch'};
$overdueforbranch{'itemcallnumber'} = $num->{'itemcallnumber'};
$overdueforbranch{'borrowernumber'} = $num->{'borrowernumber'};
$overdueforbranch{'itemnumber'} = $num->{'itemnumber'};
-
- # now we add on the template, the differents values of notify_level
- # FIXME: numerical comparison, not string eq.
- if ( $num->{'notify_level'} eq '1' ) {
- $overdueforbranch{'overdue1'} = 1;
- $overdueforbranch{'overdueLevel'} = 1;
- }
- elsif ( $num->{'notify_level'} eq '2' ) {
- $overdueforbranch{'overdue2'} = 1;
- $overdueforbranch{'overdueLevel'} = 2;
- }
- elsif ( $num->{'notify_level'} eq '3' ) {
- $overdueforbranch{'overdue3'} = 1;
- $overdueforbranch{'overdueLevel'} = 3;
- }
- $overdueforbranch{'notify_id'} = $num->{'notify_id'};
+ $overdueforbranch{'cardnumber'} = $num->{'cardnumber'};
push( @overduesloop, \%overdueforbranch );
}
# initiate the templates for the overdueloop
$template->param(
overduesloop => \@overduesloop,
- show_date => format_date(C4::Dates->today('iso')),
location => $location,
);
+# Checking if there is a Fast Cataloging Framework
+$template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );
+
output_html_with_http_headers $input, $cookie, $template->output;