diff --git a/admin/issuingrules.pl b/admin/issuingrules.pl deleted file mode 100755 index 26cec089c3..0000000000 --- a/admin/issuingrules.pl +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/perl - -# Copyright 2000-2002 Katipo Communications -# -# 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 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 - -use strict; -use CGI; -use C4::Context; -use C4::Output; -use C4::Auth; -use C4::Koha; -use C4::Branch; # GetBranches - -my $input = new CGI; -my $dbh = C4::Context->dbh; - -my $type=$input->param('type'); -my $branch = $input->param('branch'); -$branch="*" unless $branch; -my $op = $input->param('op'); - -# my $flagsrequired; -# $flagsrequired->{circulation}=1; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "admin/issuingrules.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 1}, - debug => 1, - }); -# save the values entered -if ($op eq 'save') { - my @names=$input->param(); - my $sth_search = $dbh->prepare("SELECT branchcode FROM issuingrules WHERE branchcode=? and categorycode=? and itemtype=?"); - - my $sth_Iinsert = $dbh->prepare("INSERT INTO issuingrules (branchcode,categorycode,itemtype,maxissueqty,issuelength,rentaldiscount) VALUES (?,?,?,?,?,?)"); - my $sth_Iupdate=$dbh->prepare("UPDATE issuingrules SET maxissueqty=?, issuelength=?, rentaldiscount=? WHERE branchcode=? AND categorycode=? AND itemtype=?"); - my $sth_Idelete=$dbh->prepare("DELETE FROM issuingrules WHERE branchcode=? AND categorycode=? AND itemtype=?"); - foreach my $key (@names){ - # ISSUES - if ($key =~ /I-(.*)-(.*)-(.*)/) { - my $br = base64_to_str($1); # branch - my $bor = base64_to_str($2); # borrower category - my $cat = base64_to_str($3); # item type - my $data=$input->param($key); - my ($issuelength,$maxissueqty,$rentaldiscount)=split(',',$data); - if ($maxissueqty) { - $sth_search->execute($br,$bor,$cat); - my $res = $sth_search->fetchrow_hashref(); - warn "$br / $bor / $cat = ".$res->{'total'}; - if ( $res->{'branchcode'} ne $br ) { - $sth_Iinsert->execute($br,$bor,$cat,$maxissueqty,$issuelength,$rentaldiscount); - } else { - $sth_Iupdate->execute($maxissueqty,$issuelength,$rentaldiscount,$br,$bor,$cat); - } - } else { - $sth_Idelete->execute($br,$bor,$cat); - } - } - } -} -my $branches = GetBranches; -my @branchloop; -for my $thisbranch (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) { - my $selected = 1 if $thisbranch eq $branch; - my %row =(value => $thisbranch, - selected => $selected, - branchname => $branches->{$thisbranch}->{'branchname'}, - ); - push @branchloop, \%row; -} - -my $sth=$dbh->prepare("SELECT description,categorycode FROM categories ORDER BY description"); -$sth->execute; -my @trow3; -my @title_loop; -while (my $data=$sth->fetchrow_hashref){ - my %row = (in_title => $data->{'description'}); - push @title_loop,\%row; - push @trow3,$data->{'categorycode'}; -} - -my %row = (in_title => "*"); -push @title_loop, \%row; -push @trow3,'*'; - -$sth->finish; -$sth=$dbh->prepare("Select description,itemtype from itemtypes order by description"); -$sth->execute; -my $toggle= 1; -my @row_loop; -my @itemtypes; -while (my $row=$sth->fetchrow_hashref){ - push @itemtypes,\$row; -} -my $line; -$line->{itemtype} = "*"; -$line->{description} = "*"; -push @itemtypes,\$line; - -foreach my $data (@itemtypes) { - my @trow2; - my @cell_loop; - if ( $toggle eq 1 ) { - $toggle = 0; - } else { - $toggle = 1; - } - for (my $i=0;$i<=$#trow3;$i++){ - my $sth2=$dbh->prepare("SELECT * FROM issuingrules WHERE branchcode=? AND categorycode=? AND itemtype=?"); - $sth2->execute($branch,$trow3[$i],$$data->{'itemtype'}); - my $dat=$sth2->fetchrow_hashref; - $sth2->finish; - my $fine=$dat->{'fine'}; - my $maxissueqty = $dat->{'maxissueqty'}; - my $issuelength = $dat->{'issuelength'}; - my $issuingvalue; - $issuingvalue = "$issuelength,$maxissueqty" if $maxissueqty ne ''; - my $issuingname = join("-", "I", map { str_to_base64($_) } ($branch, $trow3[$i], $$data->{itemtype}) ); - my %row = (issuingname => $issuingname, - issuingvalue => $issuingvalue, - toggle => $toggle, - ); - push @cell_loop,\%row; - } - my %row = (categorycode => $$data->{description}, - total => ($$data->{itemtype} eq '*'?1:0), - cell =>\@cell_loop - ); - push @row_loop, \%row; -} - -$sth->finish; -$template->param(title => \@title_loop, - row => \@row_loop, - branchloop => \@branchloop, - branch => $branch, - ); -output_html_with_http_headers $input, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc index e4bc8d75f0..df86901431 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc @@ -17,8 +17,7 @@
Each box needs to be filled in with checkout-length,maxissues. For example: 21,5 enables 5 checkouts for 21 days
-Issuing rules deals with 2 topics :
-Itemtypes and patron categories must be defined before issuing rules are defined. Your defined items types and patron categories are then displayed in a grid on this page.
- -Each box in the grid contains 2 numbers, separated by commas, defining how many days a given patron type can check out how many material. For example : 21,5 means the patron can check out up to 5 books for up to 21 days
-The * have a specific meaning. They mean "any". If you set 21,5 for itemtype=*, patron category=student, branch=main, then a student can't check out more than 5 items of ANY item type. This "any" box is cumulative with other boxes. It means that 21,5 as itemtype=book, 14,2 as itemtype=CD and 30,6 as itemtype=* (with category=student) means a student can check out up to 5 books, up to 2 CD but a maximum of 6 items (books or CD). In this case the "30 days" in itemtype=* is discarded and the issuing length is calculated on the exact itemtype
- -Each box in the grid contains three numbers separated by commas, defining the fine, how many days overdue the item must be before the fine is assessed and a first notice prepared (the "grace period"), and how many days after that the fine is assessed again and a second notice sent. For example, if you charge adults 1 dollar (or euro, or whatever currency) for overdue videos after three days and add another dollar charge after another five days, put "1,3,5" in the box in the grid that aligns with "Adult" and "Video." If you charge adults 25 cents for overdue fiction books after a grace period of seven days and repeat the charge seven days later, then the entry in the corresponding box in the grid would be ".25,7,7". After the first and second notice are given, Koha prepares a "final notice" after the number of days set by the final number in the grid and sets the charge to the maximum, which is 5.
- -(Note : fines are calculated by the fines2.pl script, located in misc directory. Ask your system administrator to put this script in crontab, after midnight, to have fines calculated every night.)
- - \ No newline at end of file