Fix :Fatal Errors occurs when date is not a regular date
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Fri, 6 Mar 2009 10:59:33 +0000 (11:59 +0100)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Fri, 6 Mar 2009 10:59:33 +0000 (11:59 +0100)
When the start date or the "current date" is not a regular date
the transformation and checkdate fails because there is no
Year/Month/Date
This patch makes it fail more 'silenty' for the users and raises an
error that could be coped with.

C4/Serials.pm

index f14a855..ace2421 100644 (file)
@@ -1804,7 +1804,7 @@ sub HasSubscriptionExpired {
       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));