while ( my ( $id, $name ) = $sth->fetchrow ) {
$supplierlist{$id} = $name;
}
- if ( C4::Context->preference("RoutingSerials") ) {
- $supplierlist{''} = "All Suppliers";
- }
return %supplierlist;
}
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
### 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 ($res) = $sth->fetchrow ;
my @res=split (/-/,$res);
my @endofsubscriptiondate=split(/-/,$expirationdate);
- return 2 if (not check_date(@res) || not check_date(@endofsubscriptiondate));
+ 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));