X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=admin%2Fcategorie.pl;h=70de77393b319c8255485013daeb9e632951c9ca;hb=88c5adb6a2989c76af5410598ef51fdd70de5894;hp=e7afbfbbffb0137d285dcdfbb51b78f9a0cd894d;hpb=d35645d3c0363b0921c8dc65990b408239bacd9c;p=koha.git diff --git a/admin/categorie.pl b/admin/categorie.pl index e7afbfbbff..70de77393b 100755 --- a/admin/categorie.pl +++ b/admin/categorie.pl @@ -39,30 +39,24 @@ use strict; use CGI; use C4::Context; -use C4::Output; -use C4::Search; -use HTML::Template; use C4::Auth; -use C4::Interface::CGI::Output; +use C4::Output; sub StringSearch { - my ($env,$searchstring,$type)=@_; + my ($searchstring,$type)=@_; my $dbh = C4::Context->dbh; $searchstring=~ s/\'/\\\'/g; my @data=split(' ',$searchstring); my $count=@data; - my $query="Select * from categories where (description like \"$data[0]%\")"; - my $sth=$dbh->prepare($query); - $sth->execute; + my $sth=$dbh->prepare("Select * from categories where (description like ?) order by category_type,description,categorycode"); + $sth->execute("$data[0]%"); my @results; - my $cnt=0; while (my $data=$sth->fetchrow_hashref){ push(@results,$data); - $cnt ++; } # $sth->execute; $sth->finish; - return ($cnt,\@results); + return (scalar(@results),\@results); } my $input = new CGI; @@ -70,14 +64,13 @@ my $searchfield=$input->param('description'); my $script_name="/cgi-bin/koha/admin/categorie.pl"; my $categorycode=$input->param('categorycode'); my $op = $input->param('op'); -$searchfield=~ s/\,//g; my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "parameters/categorie.tmpl", + = get_template_and_user({template_name => "admin/categorie.tmpl", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {borrowers => 1}, + flagsrequired => {parameters => 1}, debug => 1, }); @@ -96,43 +89,42 @@ if ($op eq 'add_form') { my $data; if ($categorycode) { my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,finetype,bulk,enrolmentfee,issuelimit,reservefee,overduenoticerequired from categories where categorycode='$categorycode'"); - $sth->execute; + my $sth=$dbh->prepare("select categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,overduenoticerequired,category_type from categories where categorycode=?"); + $sth->execute($categorycode); $data=$sth->fetchrow_hashref; $sth->finish; } - $template->param(description => $data->{'description'}, + $template->param(description => $data->{'description'}, enrolmentperiod => $data->{'enrolmentperiod'}, upperagelimit => $data->{'upperagelimit'}, dateofbirthrequired => $data->{'dateofbirthrequired'}, - finetype => $data->{'finetype'}, - bulk => $data->{'bulk'}, - enrolmentfee => $data->{'enrolmentfee'}, + enrolmentfee => sprintf("%.2f",$data->{'enrolmentfee'}), overduenoticerequired => $data->{'overduenoticerequired'}, issuelimit => $data->{'issuelimit'}, - reservefee => $data->{'reservefee'}); + reservefee => sprintf("%.2f",$data->{'reservefee'}), + category_type => $data->{'category_type'}, + "type_".$data->{'category_type'} => 1, + ); # END $OP eq ADD_FORM ################## ADD_VALIDATE ################################## # called by add_form, used to insert/modify data in DB } elsif ($op eq 'add_validate') { $template->param(add_validate => 1); + my $is_a_modif = $input->param("is_a_modif"); my $dbh = C4::Context->dbh; - my $query = "replace categories (categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,finetype,bulk,enrolmentfee,issuelimit,reservefee,overduenoticerequired) values ("; - $query.= $dbh->quote($input->param('categorycode')).","; - $query.= $dbh->quote($input->param('description')).","; - $query.= $dbh->quote($input->param('enrolmentperiod')).","; - $query.= $dbh->quote($input->param('upperagelimit')).","; - $query.= $dbh->quote($input->param('dateofbirthrequired')).","; - $query.= $dbh->quote($input->param('finetype')).","; - $query.= $dbh->quote($input->param('bulk')).","; - $query.= $dbh->quote($input->param('enrolmentfee')).","; - $query.= $dbh->quote($input->param('issuelimit')).","; - $query.= $dbh->quote($input->param('reservefee')).","; - $query.= $dbh->quote($input->param('overduenoticerequired')).")"; - my $sth=$dbh->prepare($query); - $sth->execute; - $sth->finish; + if ($is_a_modif) { + my $sth=$dbh->prepare("UPDATE categories SET description=?,enrolmentperiod=?,upperagelimit=?,dateofbirthrequired=?,enrolmentfee=?,reservefee=?,overduenoticerequired=?,category_type=? WHERE categorycode=?"); + $sth->execute(map { $input->param($_) } ('description','enrolmentperiod','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','overduenoticerequired','category_type','categorycode')); + $sth->finish; + } else { + my $sth=$dbh->prepare("INSERT INTO categories (categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,enrolmentfee,reservefee,overduenoticerequired,category_type) values (?,?,?,?,?,?,?,?,?)"); + $sth->execute(map { $input->param($_) } ('categorycode','description','enrolmentperiod','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','overduenoticerequired','category_type')); + $sth->finish; + } + print "Content-Type: text/html\n\n"; + exit; + # END $OP eq ADD_VALIDATE ################## DELETE_CONFIRM ################################## # called by default form, used to confirm deletion of data in DB @@ -140,14 +132,14 @@ if ($op eq 'add_form') { $template->param(delete_confirm => 1); my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select count(*) as total from categoryitem where categorycode='$categorycode'"); - $sth->execute; + my $sth=$dbh->prepare("select count(*) as total from borrowers where categorycode=?"); + $sth->execute($categorycode); my $total = $sth->fetchrow_hashref; $sth->finish; $template->param(total => $total->{'total'}); - my $sth2=$dbh->prepare("select categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,finetype,bulk,enrolmentfee,issuelimit,reservefee,overduenoticerequired from categories where categorycode='$categorycode'"); - $sth2->execute; + my $sth2=$dbh->prepare("select categorycode,description,enrolmentperiod,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,overduenoticerequired,category_type from categories where categorycode=?"); + $sth2->execute($categorycode); my $data=$sth2->fetchrow_hashref; $sth2->finish; if ($total->{'total'} >0) { @@ -158,14 +150,12 @@ if ($op eq 'add_form') { enrolmentperiod => $data->{'enrolmentperiod'}, upperagelimit => $data->{'upperagelimit'}, dateofbirthrequired => $data->{'dateofbirthrequired'}, - finetype => $data->{'finetype'}, - bulk => $data->{'bulk'}, - enrolmentfee => $data->{'enrolmentfee'}, + enrolmentfee => sprintf("%.2f",$data->{'enrolmentfee'}), overduenoticerequired => $data->{'overduenoticerequired'}, issuelimit => $data->{'issuelimit'}, - reservefee => $data->{'reservefee'}); - - + reservefee => sprintf("%.2f",$data->{'reservefee'}), + category_type => $data->{'category_type'}, + ); # END $OP eq DELETE_CONFIRM ################## DELETE_CONFIRMED ################################## # called by delete_confirm, used to effectively confirm deletion of data in DB @@ -173,37 +163,55 @@ if ($op eq 'add_form') { $template->param(delete_confirmed => 1); my $dbh = C4::Context->dbh; my $categorycode=uc($input->param('categorycode')); - my $query = "delete from categories where categorycode='$categorycode'"; - my $sth=$dbh->prepare($query); - $sth->execute; + my $sth=$dbh->prepare("delete from categories where categorycode=?"); + $sth->execute($categorycode); $sth->finish; + print "Content-Type: text/html\n\n"; + exit; + # END $OP eq DELETE_CONFIRMED } else { # DEFAULT $template->param(else => 1); - my $env; my @loop; - my ($count,$results)=StringSearch($env,$searchfield,'web'); + my ($count,$results)=StringSearch($searchfield,'web'); + my $toggle = 0; for (my $i=0; $i < $count; $i++){ my %row = (categorycode => $results->[$i]{'categorycode'}, description => $results->[$i]{'description'}, enrolmentperiod => $results->[$i]{'enrolmentperiod'}, upperagelimit => $results->[$i]{'upperagelimit'}, dateofbirthrequired => $results->[$i]{'dateofbirthrequired'}, - finetype => $results->[$i]{'finetype'}, - bulk => $results->[$i]{'bulk'}, - enrolmentfee => $results->[$i]{'enrolmentfee'}, + enrolmentfee => sprintf("%.2f",$results->[$i]{'enrolmentfee'}), overduenoticerequired => $results->[$i]{'overduenoticerequired'}, issuelimit => $results->[$i]{'issuelimit'}, - reservefee => $results->[$i]{'reservefee'} ); + reservefee => sprintf("%.2f",$results->[$i]{'reservefee'}), + category_type => $results->[$i]{'category_type'}, + "type_".$results->[$i]{'category_type'} => 1, + toggle => $toggle ); push @loop, \%row; + if ( $toggle eq 0 ) + { + $toggle = 1; + } + else + { + $toggle = 0; + } } $template->param(loop => \@loop); - + # check that I (institution) and C (child) exists. otherwise => warning to the user + my $dbh = C4::Context->dbh; + my $sth=$dbh->prepare("select category_type from categories where category_type='C'"); + $sth->execute; + my ($categoryChild) = $sth->fetchrow; + $template->param(categoryChild => $categoryChild); + $sth=$dbh->prepare("select category_type from categories where category_type='I'"); + $sth->execute; + my ($categoryInstitution) = $sth->fetchrow; + $template->param(categoryInstitution => $categoryInstitution); + $sth->finish; } #---- END $OP eq DEFAULT - - - output_html_with_http_headers $input, $cookie, $template->output;