[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/C4 Bull.pm [dev_week]
From: |
Joshua Ferraro |
Subject: |
[Koha-cvs] koha/C4 Bull.pm [dev_week] |
Date: |
Tue, 11 Jul 2006 13:44:20 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch: dev_week
Changes by: Joshua Ferraro <kados> 06/07/11 13:44:20
Modified files:
C4 : Bull.pm
Log message:
sync with rel_2_2
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Bull.pm?cvsroot=koha&only_with_tag=dev_week&r1=1.6.2.22&r2=1.6.2.22.2.1
Patches:
Index: Bull.pm
===================================================================
RCS file: /sources/koha/koha/C4/Attic/Bull.pm,v
retrieving revision 1.6.2.22
retrieving revision 1.6.2.22.2.1
diff -u -b -r1.6.2.22 -r1.6.2.22.2.1
--- Bull.pm 4 Apr 2006 13:15:50 -0000 1.6.2.22
+++ Bull.pm 11 Jul 2006 13:44:20 -0000 1.6.2.22.2.1
@@ -110,33 +110,33 @@
sub newsubscription {
my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$biblionumber,
$startdate,$periodicity,$dow,$numberlength,$weeklength,$monthlength,
- $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
- $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
- $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+ $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+ $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+ $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
$numberingmethod, $status, $notes) = @_;
my $dbh = C4::Context->dbh;
#save subscription
my $sth=$dbh->prepare("insert into subscription
(librarian,aqbooksellerid,cost,aqbudgetid,biblionumber,
startdate,periodicity,dow,numberlength,weeklength,monthlength,
-
add1,every1,whenmorethan1,setto1,lastvalue1,
-
add2,every2,whenmorethan2,setto2,lastvalue2,
-
add3,every3,whenmorethan3,setto3,lastvalue3,
+
add1,every1,whenmorethan1,setto1,lastvalue1,innerloop1,
+
add2,every2,whenmorethan2,setto2,lastvalue2,innerloop2,
+
add3,every3,whenmorethan3,setto3,lastvalue3,innerloop3,
numberingmethod,
status, notes) values
(?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,
- ?,?,?,?,?,?,?,?,?,?)");
+
?,?,?,?,?,?,?,?,?,?,?,?,?)");
$sth->execute($auser,$aqbooksellerid,$cost,$aqbudgetid,$biblionumber,
format_date_in_iso($startdate),$periodicity,$dow,$numberlength,$weeklength,$monthlength,
-
$add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-
$add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-
$add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+
$add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+
$add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+
$add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
$numberingmethod, $status, $notes);
#then create the 1st waited number
my $subscriptionid = $dbh->{'mysql_insertid'};
$sth = $dbh->prepare("insert into subscriptionhistory (biblionumber,
subscriptionid, histstartdate, enddate, missinglist, recievedlist, opacnote,
librariannote) values (?,?,?,?,?,?,?,?)");
$sth->execute($biblionumber, $subscriptionid,
format_date_in_iso($startdate), 0, "", "", "", $notes);
# reread subscription to get a hash (for calculation of the 1st issue
number)
- $sth = $dbh->prepare("select * from subscription where subscriptionid =
? ");
+ $sth = $dbh->prepare("SELECT * from subscription where subscriptionid =
? ");
$sth->execute($subscriptionid);
my $val = $sth->fetchrow_hashref;
@@ -150,7 +150,7 @@
sub getsubscription {
my ($subscriptionid) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare('select
subscription.*,subscriptionhistory.*,aqbudget.bookfundid,aqbooksellers.name as
aqbooksellername,biblio.title as bibliotitle
+ my $sth = $dbh->prepare('SELECT
subscription.*,subscriptionhistory.*,aqbudget.bookfundid,aqbooksellers.name as
aqbooksellername,biblio.title as bibliotitle
from subscription
left join
subscriptionhistory on
subscription.subscriptionid=subscriptionhistory.subscriptionid
left join aqbudget on
subscription.aqbudgetid=aqbudget.aqbudgetid
@@ -165,7 +165,7 @@
sub getsubscriptionfrombiblionumber {
my ($biblionumber) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare('select count(*) from subscription where
biblionumber=?');
+ my $sth = $dbh->prepare('SELECT count(*) from subscription where
biblionumber=?');
$sth->execute($biblionumber);
my $subscriptionsnumber = $sth->fetchrow;
return $subscriptionsnumber;
@@ -174,7 +174,7 @@
sub get_subscription_list_from_biblionumber {
my ($biblionumber) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare('select subscription.*,subscriptionhistory.*,
aqbudget.bookfundid,aqbooksellers.name as aqbooksellername,biblio.title as
bibliotitle
+ my $sth = $dbh->prepare('SELECT subscription.*,subscriptionhistory.*,
aqbudget.bookfundid,aqbooksellers.name as aqbooksellername,biblio.title as
bibliotitle
from subscription
left join
subscriptionhistory on
subscription.subscriptionid=subscriptionhistory.subscriptionid
left join aqbudget on
subscription.aqbudgetid=aqbudget.aqbudgetid
@@ -204,12 +204,18 @@
sub get_full_subscription_list_from_biblionumber {
my ($biblionumber) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare('select serial.serialseq, serial.planneddate,
serial.status, serial.notes, year(serial.planneddate) as year,
aqbudget.bookfundid,aqbooksellers.name as aqbooksellername,biblio.title as
bibliotitle
- from serial left join
subscription on (serial.subscriptionid=subscription.subscriptionid and
subscription.biblionumber=serial.biblionumber)
- left join aqbudget on
subscription.aqbudgetid=aqbudget.aqbudgetid
- left join aqbooksellers
on subscription.aqbooksellerid=aqbooksellers.id
- left join biblio on
biblio.biblionumber=subscription.biblionumber
- where
subscription.biblionumber = ? order by
year,serial.subscriptionid,serial.planneddate');
+ my $sth = $dbh->prepare('
+ SELECT serial.serialseq,serial.planneddate, serial.publisheddate,
serial.status, serial.notes,
+ year(serial.publisheddate) as year,
+ aqbudget.bookfundid,aqbooksellers.name as aqbooksellername,biblio.title as
bibliotitle
+ FROM serial
+ LEFT JOIN subscription ON
+ (serial.subscriptionid=subscription.subscriptionid AND
subscription.biblionumber=serial.biblionumber)
+ LEFT JOIN aqbudget ON subscription.aqbudgetid=aqbudget.aqbudgetid
+ LEFT JOIN aqbooksellers on
subscription.aqbooksellerid=aqbooksellers.id
+ LEFT JOIN biblio on biblio.biblionumber=subscription.biblionumber
+ WHERE subscription.biblionumber = ?
+ ORDER BY
year,serial.publisheddate,serial.subscriptionid,serial.planneddate');
$sth->execute($biblionumber);
my @res;
my $year;
@@ -220,17 +226,14 @@
my $first;
my $previousnote="";
while (my $subs = $sth->fetchrow_hashref) {
-# my $sth2 = $dbh->prepare('select * from serial where
serial.biblionumber = ? and serial.subscriptionid=? order by
serial.planneddate');
-# $sth2->execute($biblionumber,$subs->{'subscriptionid'});
-# while (my $issues = $sth2->fetchrow_hashref){
-# warn "planneddate ".$issues->{'planneddate'};
-# warn "serialseq".$issues->{'serialseq'};
-# }
+### BUG To FIX: When there is no published date, will create many null ids!!!
+
if ($year and ($year==$subs->{year})){
if ($first eq 1){$first=0;}
my $temp=$res[scalar(@res)-1]->{'serials'};
push @$temp,
- {'planneddate' =>
format_date($subs->{'planneddate'}),
+ {'publisheddate' =>format_date($subs->{'publisheddate'}),
+ 'planneddate' => format_date($subs->{'planneddate'}),
'serialseq' => $subs->{'serialseq'},
"status".$subs->{'status'} => 1,
'notes' => $subs->{'notes'} eq
$previousnote?"":$subs->{notes},
@@ -243,7 +246,8 @@
$bibliotitle= $subs->{'bibliotitle'};
my @temp;
push @temp,
- {'planneddate' =>
format_date($subs->{'planneddate'}),
+ {'publisheddate'
=>format_date($subs->{'publisheddate'}),
+ 'planneddate' => format_date($subs->{'planneddate'}),
'serialseq' => $subs->{'serialseq'},
"status".$subs->{'status'} => 1,
'notes' => $subs->{'notes'} eq
$previousnote?"":$subs->{notes},
@@ -301,24 +305,24 @@
my $dbh = C4::Context->dbh;
my $sth;
if ($biblionumber) {
- $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
biblio.biblionumber=? order by title");
+ $sth = $dbh->prepare("SELECT
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
biblio.biblionumber=? order by title");
$sth->execute($biblionumber);
} else {
if ($ISSN and $title)
{
- $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
(biblio.title like ? or biblioitems.issn = ? order by title )");
+ $sth = $dbh->prepare("SELECT
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
(biblio.title like ? or biblioitems.issn = ? order by title )");
$sth->execute("%$title%",$ISSN);
}
else
{
if ($ISSN)
{
- $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
biblioitems.issn = ? order by title");
+ $sth = $dbh->prepare("SELECT
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
biblioitems.issn = ? order by title");
$sth->execute($ISSN);
}
else
{
- $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and
+ $sth = $dbh->prepare("SELECT
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes,biblio.biblionumber
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and
biblio.biblionumber=subscription.biblionumber and biblio.title like ? order
by title");
$sth->execute("%$title%");
}
@@ -345,7 +349,10 @@
sub modsubscriptionhistory {
my
($subscriptionid,$histstartdate,$enddate,$recievedlist,$missinglist,$opacnote,$librariannote)address@hidden;
my $dbh=C4::Context->dbh;
- my $sth = $dbh->prepare("update subscriptionhistory set
histstartdate=?,enddate=?,recievedlist=?,missinglist=?,opacnote=?,librariannote=?
where subscriptionid=?");
+ my $sth = $dbh->prepare("
+ UPDATE subscriptionhistory
+ SET
histstartdate=?,enddate=?,recievedlist=?,missinglist=?,opacnote=?,librariannote=?
+ WHERE subscriptionid=?");
$recievedlist =~ s/^,//g;
$missinglist =~ s/^,//g;
$opacnote =~ s/^,//g;
@@ -358,27 +365,36 @@
my ($subscriptionid) = @_;
my $dbh = C4::Context->dbh;
# OK, now add the last 5 issues arrives/missing
- my $sth=$dbh->prepare("select serialid,serialseq, status,
planneddate,notes from serial where subscriptionid = ? and (status in (2,4,5))
order by serialid DESC");
+ my $sth=$dbh->prepare("
+ SELECT serialid,serialseq, status, publisheddate,planneddate,notes
+ FROM serial
+ WHERE subscriptionid = ? AND (status IN (2,4,5))
+ ORDER BY serialid DESC");
$sth->execute($subscriptionid);
my $counter=0;
my @serials;
while((my $line = $sth->fetchrow_hashref) && $counter <5) {
$counter++;
$line->{"status".$line->{status}} = 1; # fills a "statusX"
value, used for template status select list
+ $line->{"publisheddate"} =
format_date($line->{"publisheddate"});
$line->{"planneddate"} = format_date($line->{"planneddate"});
push @serials,$line;
}
# status = 2 is "arrived"
- my $sth=$dbh->prepare("select serialid,serialseq, status,
planneddate,notes from serial where subscriptionid = ? and status <>2 and
status <>4 and status <>5");
+ my $sth=$dbh->prepare("
+ SELECT serialid,serialseq, status, publisheddate, planneddate,notes
+ FROM serial
+ WHERE subscriptionid = ? AND status NOT IN (2,4,5)");
$sth->execute($subscriptionid);
my @serials;
while(my $line = $sth->fetchrow_hashref) {
$line->{"status".$line->{status}} = 1; # fills a "statusX"
value, used for template status select list
+ $line->{"publisheddate"} =
format_date($line->{"publisheddate"});
$line->{"planneddate"} = format_date($line->{"planneddate"});
push @serials,$line;
}
- $sth=$dbh->prepare("select count(*) from serial where
subscriptionid=?");
+ $sth=$dbh->prepare("SELECT count(*) FROM serial WHERE
subscriptionid=?");
$sth->execute($subscriptionid);
my ($totalissues) = $sth->fetchrow;
return ($totalissues,@serials);
@@ -389,7 +405,7 @@
my ($subscriptionid,$limit) address@hidden;
my $dbh = C4::Context->dbh;
# status = 2 is "arrived"
- my $strsth="select serialid,serialseq, status, planneddate from serial
where subscriptionid = ? and (status =2 or status=4) order by planneddate DESC
LIMIT 0,$limit";
+ my $strsth="SELECT serialid,serialseq, status, planneddate FROM serial
WHERE subscriptionid = ? AND (status =2 or status=4) ORDER BY planneddate DESC
LIMIT 0,$limit";
my $sth=$dbh->prepare($strsth);
$sth->execute($subscriptionid);
my @serials;
@@ -398,27 +414,27 @@
$line->{"planneddate"} = format_date($line->{"planneddate"});
push @serials,$line;
}
- $sth=$dbh->prepare("select count(*) from serial where
subscriptionid=?");
+ $sth=$dbh->prepare("SELECT count(*) from serial where
subscriptionid=?");
$sth->execute($subscriptionid);
my ($totalissues) = $sth->fetchrow;
return address@hidden;
}
sub serialchangestatus {
- my ($serialid,$serialseq,$planneddate,$status,$notes)address@hidden;
+ my ($serialid,$serialseq,
$publisheddate,$planneddate,$status,$notes)address@hidden;
# warn "($serialid,$serialseq,$planneddate,$status)";
# 1st, get previous status : if we change from "waited" to something
else, then we will have to create a new "waited" entry
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("select subscriptionid,status from serial where
serialid=?");
+ my $sth = $dbh->prepare("SELECT subscriptionid,status from serial where
serialid=?");
$sth->execute($serialid);
my ($subscriptionid,$oldstatus) = $sth->fetchrow;
# change status & update subscriptionhistory
if ($status eq 6){
delissue($serialseq, $subscriptionid)
}else{
- $sth = $dbh->prepare("update serial set
serialseq=?,planneddate=?,status=?,notes=? where serialid = ?");
- $sth->execute($serialseq,$planneddate,$status,$notes,$serialid);
- $sth = $dbh->prepare("select missinglist,recievedlist from
subscriptionhistory where subscriptionid=?");
+ $sth = $dbh->prepare("update serial set
serialseq=?,publisheddate=?,planneddate=?,status=?,notes=? where serialid = ?");
+
$sth->execute($serialseq,$publisheddate,$planneddate,$status,$notes,$serialid);
+ $sth = $dbh->prepare("SELECT missinglist,recievedlist from
subscriptionhistory where subscriptionid=?");
$sth->execute($subscriptionid);
my ($missinglist,$recievedlist) = $sth->fetchrow;
if ($status eq 2) {
@@ -431,14 +447,14 @@
}
# create new waited entry if needed (ie : was a "waited" and has
changed)
if ($oldstatus eq 1 && $status ne 1) {
- $sth = $dbh->prepare("select * from subscription where
subscriptionid = ? ");
+ $sth = $dbh->prepare("SELECT * from subscription where
subscriptionid = ? ");
$sth->execute($subscriptionid);
my $val = $sth->fetchrow_hashref;
# next issue number
my
($newserialseq,$newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3)
= Get_Next_Seq($val);
# next date (calculated from actual date & frequency parameters)
- my $nextplanneddate = Get_Next_Date($planneddate,$val);
- newissue($newserialseq, $subscriptionid,
$val->{'biblionumber'}, 1, $nextplanneddate);
+ my $nextpublisheddate = Get_Next_Date($publisheddate,$val);
+ newissue($newserialseq, $subscriptionid,
$val->{'biblionumber'}, 1, $nextpublisheddate,0);
$sth = $dbh->prepare("update subscription set lastvalue1=?,
lastvalue2=?,lastvalue3=?,
innerloop1=?,innerloop2=?,innerloop3=?
where subscriptionid = ?");
@@ -447,11 +463,14 @@
}
sub newissue {
- my ($serialseq,$subscriptionid,$biblionumber,$status, $planneddate) =
@_;
+ my ($serialseq,$subscriptionid,$biblionumber,$status, $publisheddate,
$planneddate) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("insert into serial
(serialseq,subscriptionid,biblionumber,status, planneddate) values
(?,?,?,?,?)");
- $sth->execute($serialseq,$subscriptionid,$biblionumber,$status,
$planneddate);
- $sth = $dbh->prepare("select missinglist,recievedlist from
subscriptionhistory where subscriptionid=?");
+ my $sth = $dbh->prepare("
+ INSERT INTO serial
+ (serialseq,subscriptionid,biblionumber,status,publisheddate,planneddate)
+ VALUES (?,?,?,?,?,?)");
+
$sth->execute($serialseq,$subscriptionid,$biblionumber,$status,$publisheddate,
$planneddate);
+ $sth = $dbh->prepare("SELECT missinglist,recievedlist from
subscriptionhistory where subscriptionid=?");
$sth->execute($subscriptionid);
my ($missinglist,$recievedlist) = $sth->fetchrow;
if ($status eq 2) {
@@ -672,7 +691,7 @@
my $subscription = getsubscription($subscriptionid);
# we don't do the same test if the subscription is based on X numbers
or on X weeks/months
if ($subscription->{numberlength}) {
- my $sth = $dbh->prepare("select count(*) from serial where
subscriptionid=? and planneddate>=?");
+ my $sth = $dbh->prepare("SELECT count(*) from serial where
subscriptionid=? and planneddate>=?");
$sth->execute($subscriptionid,$subscription->{startdate});
my $res = $sth->fetchrow;
if ($subscription->{numberlength}>=$res) {
@@ -682,7 +701,7 @@
}
} else {
#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=?");
+ my $sth = $dbh->prepare("SELECT max(planneddate) from serial
where subscriptionid=?");
$sth->execute($subscriptionid);
my $res = ParseDate(format_date_in_iso($sth->fetchrow));
my $endofsubscriptiondate;
@@ -717,12 +736,12 @@
my
($subscriptionid,$user,$startdate,$numberlength,$weeklength,$monthlength,$note)
= @_;
my $dbh = C4::Context->dbh;
my $subscription = getsubscription($subscriptionid);
- my $sth = $dbh->prepare("select * from biblio,biblioitems where
biblio.biblionumber=biblioitems.biblionumber and biblio.biblionumber=?");
+ my $sth = $dbh->prepare("SELECT * from biblio,biblioitems where
biblio.biblionumber=biblioitems.biblionumber and biblio.biblionumber=?");
$sth->execute($subscription->{biblionumber});
my $biblio = $sth->fetchrow_hashref;
-
newsuggestion($user,$subscription->{bibliotitle},$biblio->{author},$biblio->{publishercode},$biblio->{note},,,,,$subscription->{biblionumber});
+
newsuggestion($user,$subscription->{bibliotitle},$biblio->{author},$biblio->{publishercode},$biblio->{note},'','','','','',$subscription->{biblionumber});
# renew subscription
- $sth=$dbh->prepare("update subscription set
startdate=?,numberlength=?,weeklength=?,monthlength=?");
-
$sth->execute(format_date_in_iso($startdate),$numberlength,$weeklength,$monthlength);
+ $sth=$dbh->prepare("update subscription set
startdate=?,numberlength=?,weeklength=?,monthlength=? where subscriptionid=?");
+
$sth->execute(format_date_in_iso($startdate),$numberlength,$weeklength,$monthlength,
$subscriptionid);
}
END { } # module clean-up code here (global destructor)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] koha/C4 Bull.pm [dev_week],
Joshua Ferraro <=