[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/C4 Bull.pm [R_2-2-7-1]
From: |
paul poulain |
Subject: |
[Koha-cvs] koha/C4 Bull.pm [R_2-2-7-1] |
Date: |
Fri, 23 Feb 2007 08:25:47 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch: R_2-2-7-1
Changes by: paul poulain <tipaul> 07/02/23 08:25:47
Modified files:
C4 : Bull.pm
Log message:
BUGFIX : the date calculations for subscription were wrong. Seems it is
a long lasting bug, bug why nobody had it before ???
* The DateCalc returns YYYYMMDDHH:MM:SS, and format_date_in_iso can't
handle that
* the ParseDate, when getting a nn-mm-YYYY date handle it as US by
default (MM-DD-YYYY), making a big problem for franch libraries. Thus, I use
the date to iso (YYYY-MM-DD) that don't have this problem
HDL : please review. A last error => seems the subscription end
calculation don't work.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Bull.pm?cvsroot=koha&only_with_tag=R_2-2-7-1&r1=1.6.2.34&r2=1.6.2.34.2.1
Patches:
Index: Bull.pm
===================================================================
RCS file: /sources/koha/koha/C4/Attic/Bull.pm,v
retrieving revision 1.6.2.34
retrieving revision 1.6.2.34.2.1
diff -u -b -r1.6.2.34 -r1.6.2.34.2.1
--- Bull.pm 26 Sep 2006 10:04:06 -0000 1.6.2.34
+++ Bull.pm 23 Feb 2007 08:25:47 -0000 1.6.2.34.2.1
@@ -142,8 +142,8 @@
# calculate issue number
my $serialseq = Get_Seq($val);
- $sth = $dbh->prepare("insert into serial
(serialseq,subscriptionid,biblionumber,status, planneddate) values
(?,?,?,?,?)");
- $sth->execute($serialseq, $subscriptionid, $val->{'biblionumber'}, 1,
format_date_in_iso($startdate));
+ $sth = $dbh->prepare("insert into serial
(serialseq,subscriptionid,biblionumber,status, planneddate,publisheddate)
values (?,?,?,?,?,?)");
+ $sth->execute($serialseq, $subscriptionid, $val->{'biblionumber'}, 1,
format_date_in_iso($startdate), format_date_in_iso($startdate));
return $subscriptionid;
}
@@ -612,6 +612,7 @@
sub Get_Next_Date(@) {
my ($planneddate,$subscription) = @_;
my $resultdate;
+# $planneddate = format_date($planneddate);
if ($subscription->{periodicity} == 1) {
$resultdate=DateCalc($planneddate,"1 day");
}
@@ -645,7 +646,9 @@
if ($subscription->{periodicity} == 11) {
$resultdate=DateCalc($planneddate,"2 years");
}
- return format_date_in_iso($resultdate);
+ $resultdate =~ /(....)(..)(..)/;
+ $resultdate="$1-$2-$3";
+ return $resultdate;
}
sub Get_Seq {
@@ -710,10 +713,12 @@
#a little bit more tricky if based on X weeks/months : search
if the latest issue waited is not after subscription startdate + duration
my $sth = $dbh->prepare("SELECT max(planneddate) from serial
where subscriptionid=?");
$sth->execute($subscriptionid);
- my $res = ParseDate(format_date_in_iso($sth->fetchrow));
+ my ($planneddate) = $sth->fetchrow;
+ my $res = ParseDate($planneddate);
my $endofsubscriptiondate;
- $endofsubscriptiondate =
DateCalc(format_date_in_iso($subscription->{startdate}),$subscription->{monthlength}."
months") if ($subscription->{monthlength});
- $endofsubscriptiondate =
DateCalc(format_date_in_iso($subscription->{startdate}),$subscription->{weeklength}."
weeks") if ($subscription->{weeklength});
+ $endofsubscriptiondate =
DateCalc($subscription->{startdate},"+".$subscription->{monthlength}." months")
if ($subscription->{monthlength});
+ $endofsubscriptiondate =
DateCalc($subscription->{startdate},"+".$subscription->{weeklength}." weeks")
if ($subscription->{weeklength});
+# warn "res $res ($planneddate) : end : $endofsubscriptiondate
".$subscription->{startdate}." ".$subscription->{monthlength}." months";
return 1 if ($res >= $endofsubscriptiondate);
return 0;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] koha/C4 Bull.pm [R_2-2-7-1],
paul poulain <=