&UpdateClaimdateIssues
&GetSuppliersWithLateIssues &getsupplierbyserialid
- &GetDistributedTo &SetDistributedTo
&getroutinglist &delroutingmember &addroutingmember
&reorder_members
&check_routing &updateClaim &removeMissingIssue
while ( my ( $id, $name ) = $sth->fetchrow ) {
$supplierlist{$id} = $name;
}
- if ( C4::Context->preference("RoutingSerials") ) {
- $supplierlist{''} = "All Suppliers";
- }
return %supplierlist;
}
#Maybe GetMarcItem should return values on failure
$debug and warn "itemnumber :$itemnum->[0], bibnum :".$data->{'biblionumber'};
my $itemprocessed =
- PrepareItemrecordDisplay( $data->{'biblionumber'}, $itemnum->[0] );
+ PrepareItemrecordDisplay( $data->{'biblionumber'}, $itemnum->[0] , $data );
$itemprocessed->{'itemnumber'} = $itemnum->[0];
$itemprocessed->{'itemid'} = $itemnum->[0];
$itemprocessed->{'serialid'} = $serialid;
}
else {
my $itemprocessed =
- PrepareItemrecordDisplay( $data->{'biblionumber'} );
+ PrepareItemrecordDisplay( $data->{'biblionumber'}, '', $data );
$itemprocessed->{'itemid'} = "N$serialid";
$itemprocessed->{'serialid'} = $serialid;
$itemprocessed->{'biblionumber'} = $data->{'biblionumber'};
$data = AddItem2Serial($serialid,$itemnumber);
Adds an itemnumber to Serial record
+
=back
=cut
Update Claimdate for issues in @$serialids list with date $date
(Take Today if none)
+
=back
=cut
$subs->{ "status" . $subs->{'status'} } = 1;
$subs->{'cannotedit'}=(C4::Context->preference('IndependantBranches') &&
C4::Context->userenv &&
- C4::Context->userenv->{flags} !=1 &&
+ C4::Context->userenv->{flags} % 2 !=1 &&
C4::Context->userenv->{branch} && $subs->{branchcode} &&
(C4::Context->userenv->{branch} ne $subs->{branchcode}));
if ( $subs->{enddate} eq '0000-00-00' ) {
$line->{toggle} = 1 if $odd == 1;
$line->{'cannotedit'}=(C4::Context->preference('IndependantBranches') &&
C4::Context->userenv &&
- C4::Context->userenv->{flags} !=1 &&
+ C4::Context->userenv->{flags} % 2 !=1 &&
C4::Context->userenv->{branch} && $line->{branchcode} &&
(C4::Context->userenv->{branch} ne $line->{branchcode}));
push @results, $line;
this number is used to see if a subscription can be deleted (=it must have only 1 issue)
FIXME: We should return \@serials.
+
=back
=cut
FROM serial
WHERE subscriptionid = ?
AND (status =2 or status=4)
- ORDER BY planneddate DESC LIMIT 0,$limit
+ ORDER BY publisheddate DESC LIMIT 0,$limit
";
my $sth = $dbh->prepare($strsth);
$sth->execute($subscriptionid);
return \@serials;
}
-=head2 GetDistributedTo
-
-=over 4
-
-$distributedto=GetDistributedTo($subscriptionid)
-This function select the old previous value of distributedto in the database.
-
-=back
-
-=cut
-
-sub GetDistributedTo {
- my $dbh = C4::Context->dbh;
- my $distributedto;
- my $subscriptionid = @_;
- my $query = "SELECT distributedto FROM subscription WHERE subscriptionid=?";
- my $sth = $dbh->prepare($query);
- $sth->execute($subscriptionid);
- return ($distributedto) = $sth->fetchrow;
-}
-
=head2 GetNextSeq
=over 4
WHERE subscriptionid=?
";
my $sth = $dbh->prepare($query);
- $recievedlist =~ s/^,//g;
- $missinglist =~ s/^,//g;
- $opacnote =~ s/^,//g;
+ $recievedlist =~ s/^; //;
+ $missinglist =~ s/^; //;
+ $opacnote =~ s/^; //;
$sth->execute(
$histstartdate, $enddate, $recievedlist, $missinglist,
$opacnote, $librariannote, $subscriptionid
my ( $missinglist, $recievedlist ) = $sth->fetchrow;
if ( $status eq 2 ) {
-# warn "receivedlist : $recievedlist serialseq :$serialseq, ".index("$recievedlist","$serialseq");
- $recievedlist .= ",$serialseq"
+ $recievedlist .= "; $serialseq"
unless ( index( "$recievedlist", "$serialseq" ) >= 0 );
}
# warn "missinglist : $missinglist serialseq :$serialseq, ".index("$missinglist","$serialseq");
- $missinglist .= ",$serialseq"
+ $missinglist .= "; $serialseq"
if ( $status eq 4
and not index( "$missinglist", "$serialseq" ) >= 0 );
- $missinglist .= ",not issued $serialseq"
+ $missinglist .= "; not issued $serialseq"
if ( $status eq 5
and index( "$missinglist", "$serialseq" ) >= 0 );
$query =
"UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?";
$sth = $dbh->prepare($query);
+ $recievedlist =~ s/^; //;
+ $missinglist =~ s/^; //;
$sth->execute( $recievedlist, $missinglist, $subscriptionid );
}
}
# Each subscription has only one 'expected' issue, with serial.status==1.
$sth->execute( $subscriptionid, 1 );
my ( $nextissue ) = $sth->fetchrow_hashref;
+ if(not $nextissue){
+ $sth = $dbh->prepare('SELECT serialid,planneddate FROM serial WHERE subscriptionid = ? ORDER BY planneddate DESC LIMIT 1');
+ $sth->execute( $subscriptionid );
+ $nextissue = $sth->fetchrow_hashref;
+ }
$nextissue->{planneddate} = C4::Dates->new($nextissue->{planneddate},'iso');
return $nextissue;
+
}
=head2 ModNextExpected
sub ModNextExpected($$) {
my ($subscriptionid,$date) = @_;
- warn $subscriptionid;
- warn $date->output('iso');
my $dbh = C4::Context->dbh;
#FIXME: Would expect to only set planneddate, but we set both on new issue creation, so updating it here
my $sth = $dbh->prepare('UPDATE serial SET planneddate=?,publisheddate=? WHERE subscriptionid=? AND status=?');
$whenmorethan3, $setto3, $lastvalue3, $innerloop3,
$numberingmethod, $status, $biblionumber, $callnumber,
$notes, $letter, $hemisphere, $manualhistory,
- $internalnotes, $serialsadditems,
- $subscriptionid
+ $internalnotes, $serialsadditems,$subscriptionid,
+ $staffdisplaycount,$opacdisplaycount, $graceperiod, $location
) = @_;
# warn $irregularity;
my $dbh = C4::Context->dbh;
add1=?,every1=?,whenmorethan1=?,setto1=?,lastvalue1=?,innerloop1=?,
add2=?,every2=?,whenmorethan2=?,setto2=?,lastvalue2=?,innerloop2=?,
add3=?,every3=?,whenmorethan3=?,setto3=?,lastvalue3=?,innerloop3=?,
- numberingmethod=?, status=?, biblionumber=?, callnumber=?, notes=?, letter=?, hemisphere=?,manualhistory=?,internalnotes=?,serialsadditems=?
+ numberingmethod=?, status=?, biblionumber=?, callnumber=?, notes=?, letter=?, hemisphere=?,manualhistory=?,internalnotes=?,serialsadditems=?,staffdisplaycount = ?,opacdisplaycount = ?, graceperiod = ?, location = ?
WHERE subscriptionid = ?";
-# warn "query :".$query;
+ #warn "query :".$query;
my $sth = $dbh->prepare($query);
$sth->execute(
$auser, $branchcode, $aqbooksellerid, $cost,
$numberingmethod, $status, $biblionumber, $callnumber,
$notes, $letter, $hemisphere, ($manualhistory?$manualhistory:0),
$internalnotes, $serialsadditems,
+ $staffdisplaycount, $opacdisplaycount, $graceperiod, $location,
$subscriptionid
);
my $rows=$sth->rows;
$add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
$add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
$add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
- $numberingmethod, $status, $notes, $serialsadditems)
+ $numberingmethod, $status, $notes, $serialsadditems,
+ $staffdisplaycount, $opacdisplaycount, $graceperiod, $location);
Create a new subscription with value given on input args.
$lastvalue3, $innerloop3, $numberingmethod, $status,
$notes, $letter, $firstacquidate, $irregularity,
$numberpattern, $callnumber, $hemisphere, $manualhistory,
- $internalnotes, $serialsadditems,
+ $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount,
+ $graceperiod, $location
) = @_;
my $dbh = C4::Context->dbh;
add2,every2,whenmorethan2,setto2,lastvalue2,innerloop2,
add3,every3,whenmorethan3,setto3,lastvalue3,innerloop3,
numberingmethod, status, notes, letter,firstacquidate,irregularity,
- numberpattern, callnumber, hemisphere,manualhistory,internalnotes,serialsadditems)
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
+ numberpattern, callnumber, hemisphere,manualhistory,internalnotes,serialsadditems,
+ staffdisplaycount,opacdisplaycount,graceperiod,location)
+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
|;
my $sth = $dbh->prepare($query);
$sth->execute(
$numberpattern, $callnumber,
$hemisphere, $manualhistory,
$internalnotes, $serialsadditems,
+ $staffdisplaycount, $opacdisplaycount,
+ $graceperiod, $location,
);
#then create the 1st waited number
### TODO Add a feature that improves recognition and description.
### As such count (serialseq) i.e. : N18,2(N19),N20
### Would use substr and index But be careful to previous presence of ()
- $recievedlist .= ",$serialseq" unless (index($recievedlist,$serialseq)>0);
+ $recievedlist .= "; $serialseq" unless (index($recievedlist,$serialseq)>0);
}
if ( $status eq 4 ) {
- $missinglist .= ",$serialseq" unless (index($missinglist,$serialseq)>0);
+ $missinglist .= "; $serialseq" unless (index($missinglist,$serialseq)>0);
}
$query = qq|
UPDATE subscriptionhistory
WHERE subscriptionid=?
|;
$sth = $dbh->prepare($query);
+ $recievedlist =~ s/^; //;
+ $missinglist =~ s/^; //;
$sth->execute( $recievedlist, $missinglist, $subscriptionid );
return $serialid;
}
=over 4
-1 or 0 = HasSubscriptionExpired($subscriptionid)
+$has_expired = HasSubscriptionExpired($subscriptionid)
the subscription has expired when the next issue to arrive is out of subscription limit.
return :
-1 if true, 0 if false.
+0 if the subscription has not expired
+1 if the subscription has expired
+2 if has subscription does not have a valid expiration date set
=back
my $sth = $dbh->prepare($query);
$sth->execute($subscriptionid);
my ($res) = $sth->fetchrow ;
+ return 0 unless $res;
my @res=split (/-/,$res);
-# warn "date expiration :$expirationdate";
my @endofsubscriptiondate=split(/-/,$expirationdate);
+ return 2 if (scalar(@res)!=3 || scalar(@endofsubscriptiondate)!=3||not check_date(@res) || not check_date(@endofsubscriptiondate));
return 1 if ( (@endofsubscriptiondate && Delta_Days($res[0],$res[1],$res[2],
$endofsubscriptiondate[0],$endofsubscriptiondate[1],$endofsubscriptiondate[2]) <= 0)
|| (!$res));
return 0; # Notice that you'll never get here.
}
-=head2 SetDistributedto
-
-=over 4
-
-SetDistributedto($distributedto,$subscriptionid);
-This function update the value of distributedto for a subscription given on input arg.
-
-=back
-
-=cut
-
-sub SetDistributedto {
- my ( $distributedto, $subscriptionid ) = @_;
- my $dbh = C4::Context->dbh;
- my $query = qq|
- UPDATE subscription
- SET distributedto=?
- WHERE subscriptionid=?
- |;
- my $sth = $dbh->prepare($query);
- $sth->execute( $distributedto, $subscriptionid );
-}
-
=head2 DelSubscription
=over 4
this function checks to see if a serial has a routing list and returns the count of routingid
used to show either an 'add' or 'edit' link
+
=back
=cut
$sth->execute($subscriptionid);
my ($res) = $sth->fetchrow ;
# warn "date expiration : ".$expirationdate." date courante ".$res;
- my @res=split /-/,$res;
+ my @res=split (/-/,$res);
@res=Date::Calc::Today if ($res[0]*$res[1]==0);
- my @endofsubscriptiondate=split/-/,$expirationdate;
+ my @endofsubscriptiondate=split(/-/,$expirationdate);
my $x;
if ( $per == 1 ) {$x=7;}
if ( $per == 2 ) {$x=7; }
1;
__END__
-=back
-
=head1 AUTHOR
Koha Developement team <info@koha.org>