Koha/bull/statecollection.pl
2004-07-30 14:12:07 +00:00

124 lines
4.9 KiB
Perl
Executable file

#!/usr/bin/perl
use strict;
use CGI;
use C4::Auth;
use C4::Output;
use C4::Interface::CGI::Output;
use C4::Context;
use C4::Bull;
use HTML::Template;
my $query = new CGI;
my $op = $query->param('op');
my $dbh = C4::Context->dbh;
my $sid = $query->param('subsid');
my $ser = $query->param('serial');
warn "$ser la valeur du nom du formulaire";
if ($op eq 'modsubscriptionhistory')
{
my $auser = $query->param('user');
my $status = $query->param('status');
my $waited = $query->param('waited');
my $begin = $query->param('begin');
my $end = $query->param('end');
my $arrived = $query->param('arrived');
my $gapped = $query->param('gapped');
my $opac = $query->param('opac');
my $intra = $query->param('intra');
my $sth=$dbh->prepare("update subscriptionhistory set startdate=?, enddate=?,missinglist=?, recievedlist=?, opacnote=?, librariannote=? where subscriptionid = ?");
$sth->execute($begin, $end, $gapped, $arrived, $opac, $intra, $sid);
if ($status != 1)
{
if ($status == 2)
{
$sth = $dbh->prepare("select recievedlist from subscriptionhistory where subscriptionid = ?");
$sth->execute($sid);
my $received = $sth->fetchrow;
$sth = $dbh->prepare("select * from subscription where subscriptionid = ? ");
$sth->execute($sid);
my $val = $sth->fetchrow_hashref;
$sth = $dbh->prepare("update serial set serialseq = ? where subscriptionid = ? and status = 1");
my ($temp, $X, $Y, $Z, $Xpos, $Ypos, $Zpos) = Get_Next_Seq($val->{'numberingmethod'},$val->{'seqnum1'},$val->{'freq1'}, $val->{'step1'}, $val->{'seqtype1'}, $val->{'seqnum2'}, $val->{'freq2'}, $val->{'step2'}, $val->{'seqtype2'}, $val->{'seqnum3'}, $val->{'freq3'}, $val->{'step3'}, $val->{'seqtype3'}, $val->{'pos1'}, $val->{'pos2'}, $val->{'pos3'});
$sth->execute($temp, $sid);
$sth = $dbh->prepare("update subscription set seqnum1=?, seqnum2=?,seqnum3=?,pos1=?,pos2=?,pos3=? where subscriptionid = ?");
$sth->execute($X, $Y, $Z, $Xpos, $Ypos, $Zpos, $sid);
$sth = $dbh->prepare("update subscriptionhistory set recievedlist=? where subscriptionid = ?");
if (length($received) > 2)
{
$sth->execute("$received,$waited", $sid);
}
else
{
$sth->execute($waited, $sid);
}
}
elsif ($status == 3)
{
$sth = $dbh->prepare("select missinglist from subscriptionhistory where subscriptionid = ?");
$sth->execute($sid);
my $missing = $sth->fetchrow;
$sth = $dbh->prepare("select * from subscription where subscriptionid = ? ");
$sth->execute($sid);
my $val = $sth->fetchrow_hashref;
$sth = $dbh->prepare("update serial set status = 2 where subscriptionid = ? and status = 1");
$sth->execute($sid);
$sth = $dbh->prepare("insert into serial (serialseq,subscriptionid,biblionumber,status, planneddate) values (?,?,?,?,?)");
my ($temp, $X, $Y, $Z, $Xpos, $Ypos, $Zpos) = Get_Next_Seq($val->{'numberingmethod'},$val->{'seqnum1'},$val->{'freq1'}, $val->{'step1'}, $val->{'seqtype1'}, $val->{'seqnum2'}, $val->{'freq2'}, $val->{'step2'}, $val->{'seqtype2'}, $val->{'seqnum3'}, $val->{'freq3'}, $val->{'step3'}, $val->{'seqtype3'}, $val->{'pos1'}, $val->{'pos2'}, $val->{'pos3'});
$sth->execute($temp, $sid, $val->{'biblionumber'}, 1, 0);
$sth = $dbh->prepare("update subscription set seqnum1=?, seqnum2=?,seqnum3=?,pos1=?,pos2=?,pos3=? where subscriptionid = ?");
$sth->execute($X, $Y, $Z, $Xpos, $Ypos, $Zpos, $sid);
$sth = $dbh->prepare("update subscriptionhistory set missinglist=? where subscriptionid = ?");
if (length($missing) > 2)
{
$sth->execute("$missing,$waited", $sid);
}
else
{
$sth->execute($waited, $sid);
}
}
else
{
warn ("Error vous avez fait None dans le formulaire receipt\n");
}
}
$sth->finish;
}
my $sth=$dbh->prepare("select serialseq, status, planneddate from serial where subscriptionid = ? and status = ?");
$sth->execute($sid, 1);
my $sol = $sth->fetchrow_hashref;
my $sth=$dbh->prepare("select * from subscriptionhistory where subscriptionid = ?");
$sth->execute($sid);
my $solhistory = $sth->fetchrow_hashref;
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "bull/statecollection.tmpl",
query => $query,
type => "intranet",
authnotrequired => 0,
flagsrequired => {catalogue => 1},
debug => 1,
});
my ($user, $cookie, $sessionID, $flags)
= checkauth($query, 0, {catalogue => 1}, "intranet");
$template->param(
user => $user,
serial => $ser,
status => $sol->{'status'},
waited => $sol->{'serialseq'},
begin => $solhistory->{'startdate'},
end => $solhistory->{'enddate'},
arrived => $solhistory->{'recievedlist'},
gapped => $solhistory->{'missinglist'},
opac => $solhistory->{'opacnote'},
intra => $solhistory->{'librariannote'},
sid => $sid,
);
output_html_with_http_headers $query, $cookie, $template->output;