|
|
@ -28,26 +28,9 @@ use C4::Auth; |
|
|
|
use C4::Output; |
|
|
|
use C4::Dates qw/format_date format_date_in_iso/; |
|
|
|
use C4::Bookseller qw/GetBookSellerFromId/; |
|
|
|
|
|
|
|
sub StringSearch { |
|
|
|
my ($searchstring)=@_; |
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
$searchstring=~ s/\'/\\\'/g; |
|
|
|
my @data=split(' ',$searchstring); |
|
|
|
$data[0]='' unless $data[0]; |
|
|
|
my $sth=$dbh->prepare("Select * from aqcontract where (contractdescription like ? or contractname like ?) order by contractnumber"); |
|
|
|
$sth->execute("%$data[0]%","%$data[0]%"); |
|
|
|
my @results; |
|
|
|
while (my $row=$sth->fetchrow_hashref){ |
|
|
|
push(@results,$row); |
|
|
|
} |
|
|
|
$sth->finish; |
|
|
|
return (scalar(@results),\@results); |
|
|
|
} |
|
|
|
use C4::Contract; |
|
|
|
|
|
|
|
my $input = new CGI; |
|
|
|
my $searchfield = $input->param('searchfield') || ''; |
|
|
|
my $script_name = "/cgi-bin/koha/admin/aqcontract.pl"; |
|
|
|
my $contractnumber = $input->param('contractnumber'); |
|
|
|
my $booksellerid = $input->param('booksellerid'); |
|
|
|
my $op = $input->param('op') || ''; |
|
|
@ -65,9 +48,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( |
|
|
|
); |
|
|
|
|
|
|
|
$template->param( |
|
|
|
script_name => $script_name, |
|
|
|
contractnumber => $contractnumber, |
|
|
|
searchfield => $searchfield, |
|
|
|
booksellerid => $booksellerid, |
|
|
|
booksellername => $bookseller[0]->{name}, |
|
|
|
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), |
|
|
@ -76,24 +57,17 @@ $template->param( |
|
|
|
#ADD_FORM: called if $op is 'add_form'. Used to create form to add or modify a record |
|
|
|
if ( $op eq 'add_form' ) { |
|
|
|
$template->param( add_form => 1 ); |
|
|
|
my $data; |
|
|
|
|
|
|
|
#---- if primkey exists, it's a modify action, so read values to modify... |
|
|
|
if ($contractnumber) { |
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
my $sth = $dbh->prepare("select * from aqcontract where contractnumber=?"); |
|
|
|
$sth->execute($contractnumber); |
|
|
|
$data = $sth->fetchrow_hashref; |
|
|
|
$sth->finish; |
|
|
|
} |
|
|
|
|
|
|
|
# if contractnumber exists, it's a modify action, so read values to modify... |
|
|
|
my $contract = @{GetContract( { contractnumber => $contractnumber } )}[0] if $contractnumber; |
|
|
|
|
|
|
|
$template->param( |
|
|
|
contractnumber => $data->{'contractnumber'}, |
|
|
|
contractname => $data->{'contractname'}, |
|
|
|
contractdescription => $data->{'contractdescription'}, |
|
|
|
contractstartdate => format_date( $data->{'contractstartdate'} ), |
|
|
|
contractenddate => format_date( $data->{'contractenddate'} ), |
|
|
|
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), |
|
|
|
contractnumber => $$contract{contractnumber}, |
|
|
|
contractname => $$contract{contractname}, |
|
|
|
contractdescription => $$contract{contractdescription}, |
|
|
|
contractstartdate => format_date( $$contract{contractstartdate} ), |
|
|
|
contractenddate => format_date( $$contract{contractenddate} ), |
|
|
|
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar, |
|
|
|
); |
|
|
|
|
|
|
|
# END $OP eq ADD_FORM |
|
|
@ -102,37 +76,29 @@ if ( $op eq 'add_form' ) { |
|
|
|
elsif ( $op eq 'add_validate' ) { |
|
|
|
## Please see file perltidy.ERR |
|
|
|
$template->param( add_validate => 1 ); |
|
|
|
|
|
|
|
my $is_a_modif = $input->param("is_a_modif"); |
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
if ($is_a_modif) { |
|
|
|
my $sth = $dbh->prepare( |
|
|
|
"UPDATE aqcontract SET contractstartdate=?, |
|
|
|
contractenddate=?, |
|
|
|
contractname=?, |
|
|
|
contractdescription=?, |
|
|
|
booksellerid=? WHERE contractnumber=?" |
|
|
|
); |
|
|
|
$sth->execute( |
|
|
|
format_date_in_iso( $input->param('contractstartdate') ), |
|
|
|
format_date_in_iso( $input->param('contractenddate') ), |
|
|
|
$input->param('contractname'), |
|
|
|
$input->param('contractdescription'), |
|
|
|
$input->param('booksellerid'), |
|
|
|
$input->param('contractnumber') |
|
|
|
); |
|
|
|
$sth->finish; |
|
|
|
|
|
|
|
if ( $is_a_modif ) { |
|
|
|
ModContract({ |
|
|
|
contractstartdate => format_date_in_iso( $input->param('contractstartdate') ), |
|
|
|
contractenddate => format_date_in_iso( $input->param('contractenddate') ), |
|
|
|
contractname => $input->param('contractname'), |
|
|
|
contractdescription => $input->param('contractdescription'), |
|
|
|
booksellerid => $input->param('booksellerid'), |
|
|
|
contractnumber => $input->param('contractnumber'), |
|
|
|
}); |
|
|
|
} else { |
|
|
|
my $sth = $dbh->prepare("INSERT INTO aqcontract (contractname,contractdescription,booksellerid,contractstartdate,contractenddate) values (?, ?, ?, ?, ?)"); |
|
|
|
$sth->execute( |
|
|
|
$input->param('contractname'), |
|
|
|
$input->param('contractdescription'), |
|
|
|
$input->param('booksellerid'), |
|
|
|
format_date_in_iso( $input->param('contractstartdate') ), |
|
|
|
format_date_in_iso( $input->param('contractenddate') ) |
|
|
|
); |
|
|
|
$sth->finish; |
|
|
|
AddContract({ |
|
|
|
contractname => $input->param('contractname'), |
|
|
|
contractdescription => $input->param('contractdescription'), |
|
|
|
booksellerid => $input->param('booksellerid'), |
|
|
|
contractstartdate => format_date_in_iso( $input->param('contractstartdate') ), |
|
|
|
contractenddate => format_date_in_iso( $input->param('contractenddate') ), |
|
|
|
}); |
|
|
|
} |
|
|
|
print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=aqcontract.pl?booksellerid=$booksellerid\"></html>"; |
|
|
|
|
|
|
|
print $input->redirect("aqcontract.pl?booksellerid=$booksellerid"); |
|
|
|
exit; |
|
|
|
|
|
|
|
# END $OP eq ADD_VALIDATE |
|
|
@ -141,28 +107,14 @@ elsif ( $op eq 'add_validate' ) { |
|
|
|
elsif ( $op eq 'delete_confirm' ) { |
|
|
|
$template->param( delete_confirm => 1 ); |
|
|
|
|
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
my $sth = $dbh->prepare("select contractnumber,contractstartdate,contractenddate, |
|
|
|
contractname,contractdescription,booksellerid |
|
|
|
from aqcontract where contractnumber=?"); |
|
|
|
$sth->execute($contractnumber); |
|
|
|
my $data = $sth->fetchrow_hashref; |
|
|
|
$sth->finish; |
|
|
|
|
|
|
|
my $query = "SELECT name FROM aqbooksellers WHERE id LIKE $data->{'booksellerid'}"; |
|
|
|
my $sth2 = $dbh->prepare($query); |
|
|
|
$sth2->execute; |
|
|
|
my $result = $sth2->fetchrow; |
|
|
|
my $booksellername = $result; |
|
|
|
my $contract = @{GetContract( { contractnumber => $contractnumber } )}[0]; |
|
|
|
|
|
|
|
$template->param( |
|
|
|
contractnumber => $data->{'contractnumber'}, |
|
|
|
contractname => $data->{'contractname'}, |
|
|
|
contractdescription => $data->{'contractdescription'}, |
|
|
|
contractstartdate => format_date( $data->{'contractstartdate'} ), |
|
|
|
contractenddate => format_date( $data->{'contractenddate'} ), |
|
|
|
booksellerid => $data->{'booksellerid'}, |
|
|
|
booksellername => $booksellername, |
|
|
|
contractnumber => $$contract{contractnumber}, |
|
|
|
contractname => $$contract{contractname}, |
|
|
|
contractdescription => $$contract{contractdescription}, |
|
|
|
contractstartdate => format_date( $$contract{contractstartdate} ), |
|
|
|
contractenddate => format_date( $$contract{contractenddate} ), |
|
|
|
); |
|
|
|
|
|
|
|
# END $OP eq DELETE_CONFIRM |
|
|
@ -170,12 +122,10 @@ elsif ( $op eq 'delete_confirm' ) { |
|
|
|
#DELETE_CONFIRMED: called by delete_confirm, used to effectively confirm deletion of data in DB |
|
|
|
elsif ( $op eq 'delete_confirmed' ) { |
|
|
|
$template->param( delete_confirmed => 1 ); |
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
my $contractnumber = $input->param('contractnumber'); |
|
|
|
my $sth = $dbh->prepare("delete from aqcontract where contractnumber=?"); |
|
|
|
$sth->execute($contractnumber); |
|
|
|
$sth->finish; |
|
|
|
print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=aqcontract.pl?booksellerid=$booksellerid\"></html>"; |
|
|
|
|
|
|
|
DelContract( { contractnumber => $contractnumber } ); |
|
|
|
|
|
|
|
print $input->redirect("aqcontract.pl?booksellerid=$booksellerid"); |
|
|
|
exit; |
|
|
|
|
|
|
|
# END $OP eq DELETE_CONFIRMED |
|
|
@ -183,28 +133,20 @@ elsif ( $op eq 'delete_confirmed' ) { |
|
|
|
# DEFAULT: Builds a list of contracts and displays them |
|
|
|
else { |
|
|
|
$template->param(else => 1); |
|
|
|
my @loop; |
|
|
|
my ($count,$results)=StringSearch($searchfield); |
|
|
|
for (my $i=0; $i < $count; $i++){ |
|
|
|
if ( ($input->param('booksellerid') && $results->[$i]{'booksellerid'} == $input->param('booksellerid')) || ! $input->param('booksellerid') ) { |
|
|
|
push @loop, { |
|
|
|
contractnumber => $results->[$i]{'contractnumber'}, |
|
|
|
contractname => $results->[$i]{'contractname'}, |
|
|
|
contractdescription => $results->[$i]{'contractdescription'}, |
|
|
|
contractstartdate => format_date($results->[$i]{'contractstartdate'}), |
|
|
|
contractenddate => format_date($results->[$i]{'contractenddate'}), |
|
|
|
booksellerid => $results->[$i]{'booksellerid'}, |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
for my $contract (@loop) { |
|
|
|
my $dbh = C4::Context->dbh; |
|
|
|
my $query = "SELECT name FROM aqbooksellers WHERE id LIKE $contract->{'booksellerid'}"; |
|
|
|
my $sth =$dbh->prepare($query); |
|
|
|
$sth->execute; |
|
|
|
my $result=$sth->fetchrow; |
|
|
|
$contract->{'booksellername'}=$result; |
|
|
|
|
|
|
|
# get contracts |
|
|
|
my @contracts = @{GetContract( { booksellerid => $booksellerid } )}; |
|
|
|
|
|
|
|
# format dates |
|
|
|
for ( @contracts ) { |
|
|
|
$$_{contractstartdate} = format_date($$_{contractstartdate}); |
|
|
|
$$_{contractenddate} = format_date($$_{contractenddate}); |
|
|
|
} |
|
|
|
$template->param(loop => \@loop); |
|
|
|
} #---- END $OP eq DEFAULT |
|
|
|
|
|
|
|
$template->param(loop => \@contracts); |
|
|
|
|
|
|
|
#---- END $OP eq DEFAULT |
|
|
|
} |
|
|
|
|
|
|
|
output_html_with_http_headers $input, $cookie, $template->output; |
|
|
|
|
|
|
|