[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/C4 Bull.pm,1.6,1.6.2.1
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/C4 Bull.pm,1.6,1.6.2.1 |
Date: |
Tue, 11 Jan 2005 07:08:04 -0800 |
Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14926/C4
Modified Files:
Tag: rel_2_2
Bull.pm
Log Message:
modifs to handdle correctly more than 1 subscription of the same biblio. Enter
subscription detail in subscription notes (like "for branch XX" or "for 2nd
floor"). The subscription details are all shown in OPAC.
you can now delete a subscription that is not yet active (= has only 1 issue in
"waiting" state)
Index: Bull.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Bull.pm,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -C2 -r1.6 -r1.6.2.1
*** Bull.pm 3 Dec 2004 14:34:54 -0000 1.6
--- Bull.pm 11 Jan 2005 15:07:58 -0000 1.6.2.1
***************
*** 45,49 ****
@ISA = qw(Exporter);
! @EXPORT = qw(&newsubscription &modsubscription &getsubscriptions
&getsubscription &getsubscriptionfrombiblionumber
&modsubscriptionhistory
&getserials &serialchangestatus
--- 45,50 ----
@ISA = qw(Exporter);
! @EXPORT = qw(&newsubscription &modsubscription &delsubscription
&getsubscriptions &getsubscription
! &getsubscriptionfrombiblionumber
&get_subscription_list_from_biblionumber
&modsubscriptionhistory
&getserials &serialchangestatus
***************
*** 137,150 ****
$sth = $dbh->prepare("insert into serial
(serialseq,subscriptionid,biblionumber,status, planneddate) values
(?,?,?,?,?)");
$sth->execute($serialseq, $subscriptionid, $val->{'biblionumber'}, 1,
format_date_in_iso($startdate));
-
- # 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($startdate,$val);
- # $sth = $dbh->prepare("update subscription set lastvalue1=?,
lastvalue2=?,lastvalue3=?,
- #
innerloop1=?,innerloop2=?,innerloop3=?
- #
where subscriptionid = ?");
- #
$sth->execute($newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3,$subscriptionid);
- # $sth->finish;
return $subscriptionid;
}
--- 138,141 ----
***************
*** 167,176 ****
my ($biblionumber) = @_;
my $dbh = C4::Context->dbh;
! my $sth = $dbh->prepare('select subscriptionid from subscription where
biblionumber=?');
$sth->execute($biblionumber);
! my $subscriptionid = $sth->fetchrow;
! return $subscriptionid;
}
sub modsubscription {
my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$startdate,
--- 158,186 ----
my ($biblionumber) = @_;
my $dbh = C4::Context->dbh;
! my $sth = $dbh->prepare('select count(*) from subscription where
biblionumber=?');
$sth->execute($biblionumber);
! my $subscriptionsnumber = $sth->fetchrow;
! return $subscriptionsnumber;
}
+ 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
+ from subscription
+ left join
subscriptionhistory on
subscription.subscriptionid=subscriptionhistory.subscriptionid
+ 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 = ?');
+ $sth->execute($biblionumber);
+ my @res;
+ while (my $subs = $sth->fetchrow_hashref) {
+ push @res,$subs;
+ }
+ return address@hidden;
+ }
+
+
sub modsubscription {
my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$startdate,
***************
*** 197,208 ****
}
sub getsubscriptions {
! my ($title,$ISSN) = @_;
! return unless $title or $ISSN;
my $dbh = C4::Context->dbh;
my $sth;
! $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn from
subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
(biblio.title like ? or biblioitems.issn = ? )");
! $sth->execute("%$title%",$ISSN);
! my @results;
while (my $line = $sth->fetchrow_hashref) {
push @results, $line;
--- 207,235 ----
}
+ sub delsubscription {
+ my ($subscriptionid) = @_;
+ # check again there is only one issue (the subscription is new)
+ my ($totalissues) = getserials($subscriptionid);
+ if ($totalissues eq 1) {
+ my $dbh = C4::Context->dbh;
+ $subscriptionid=$dbh->quote($subscriptionid);
+ $dbh->do("delete from subscription where
subscriptionid=$subscriptionid");
+ $dbh->do("delete from subscriptionhistory where
subscriptionid=$subscriptionid");
+ $dbh->do("delete from serial where
subscriptionid=$subscriptionid");
+ }
+ }
sub getsubscriptions {
! my ($title,$ISSN,$biblionumber) = @_;
! return unless $title or $ISSN or $biblionumber;
my $dbh = C4::Context->dbh;
my $sth;
! if ($biblionumber) {
! $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
biblio.biblionumber=?");
! $sth->execute($biblionumber);
! } else {
! $sth = $dbh->prepare("select
subscription.subscriptionid,biblio.title,biblioitems.issn,subscription.notes
from subscription,biblio,biblioitems where biblio.biblionumber =
biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and
(biblio.title like ? or biblioitems.issn = ? )");
! $sth->execute("%$title%",$ISSN);
! }
! my @results;
while (my $line = $sth->fetchrow_hashref) {
push @results, $line;
***************
*** 217,221 ****
$sth->execute($histstartdate,$enddate,$recievedlist,$missinglist,$opacnote,$librariannote,$subscriptionid);
}
! # get every serial not arrived for a given subscription.
sub getserials {
my ($subscriptionid) = @_;
--- 244,250 ----
$sth->execute($histstartdate,$enddate,$recievedlist,$missinglist,$opacnote,$librariannote,$subscriptionid);
}
! # get every serial not arrived for a given subscription
! # as well as the number of issues registered in the database (all types)
! # this number is used to see if a subscription can be deleted (=it must have
only 1 issue)
sub getserials {
my ($subscriptionid) = @_;
***************
*** 230,234 ****
push @serials,$line;
}
! return @serials;
}
--- 259,266 ----
push @serials,$line;
}
! $sth=$dbh->prepare("select count(*) from serial where
subscriptionid=?");
! $sth->execute($subscriptionid);
! my ($totalissues) = $sth->fetchrow;
! return ($totalissues,@serials);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/C4 Bull.pm,1.6,1.6.2.1,
Paul POULAIN <=
- Prev by Date:
[Koha-cvs] CVS: koha MARCdetail.pl,1.25,1.25.2.1
- Next by Date:
[Koha-cvs] CVS: koha/bull statecollection.pl,1.3,1.3.2.1 subscription-detail.pl,1.5,1.5.2.1
- Previous by thread:
[Koha-cvs] CVS: koha MARCdetail.pl,1.25,1.25.2.1
- Next by thread:
[Koha-cvs] CVS: koha/bull statecollection.pl,1.3,1.3.2.1 subscription-detail.pl,1.5,1.5.2.1
- Index(es):