[Koha-cvs] CVS: koha/C4 Bull.pm,1.5,1.6
Paul POULAIN
tipaul at users.sourceforge.net
Fri Dec 3 15:34:57 CET 2004
Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27206/C4
Modified Files:
Bull.pm
Log Message:
adding "show me late issues" screen
Index: Bull.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Bull.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** Bull.pm 20 Sep 2004 10:16:06 -0000 1.5
--- Bull.pm 3 Dec 2004 14:34:54 -0000 1.6
***************
*** 49,54 ****
&getserials &serialchangestatus
&Find_Next_Date, &Get_Next_Seq
! &hassubscriptionexpired &subscriptionexpirationdate &subscriptionrenew);
sub newsubscription {
my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$biblionumber,
--- 49,103 ----
&getserials &serialchangestatus
&Find_Next_Date, &Get_Next_Seq
! &hassubscriptionexpired &subscriptionexpirationdate &subscriptionrenew
! &getSupplierListWithLateIssues &GetLateIssues);
+ sub getSupplierListWithLateIssues {
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->prepare("SELECT DISTINCT id, name
+ FROM subscription, serial
+ LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
+ WHERE subscription.subscriptionid = serial.subscriptionid AND
+ (planneddate < now( ) OR serial.STATUS = 3)
+ ");
+ $sth->execute;
+ my %supplierlist;
+ while (my ($id,$name) = $sth->fetchrow) {
+ $supplierlist{$id} = $name;
+ }
+ return %supplierlist;
+ }
+ sub GetLateIssues {
+ my ($supplierid) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth;
+ if ($supplierid) {
+ $sth = $dbh->prepare("SELECT name,title,planneddate,serialseq,serial.subscriptionid
+ FROM subscription, serial, biblio
+ LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
+ WHERE subscription.subscriptionid = serial.subscriptionid AND
+ ((planneddate < now() and serial.STATUS =1) OR serial.STATUS = 3) and
+ subscription.aqbooksellerid=$supplierid and
+ biblio.biblionumber = subscription.biblionumber
+ ");
+ } else {
+ $sth = $dbh->prepare("SELECT name,title,planneddate,serialseq,serial.subscriptionid
+ FROM subscription, serial, biblio
+ LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
+ WHERE subscription.subscriptionid = serial.subscriptionid AND
+ ((planneddate < now() and serial.STATUS <=3) OR serial.STATUS = 3) and
+ biblio.biblionumber = subscription.biblionumber
+ ");
+ }
+ $sth->execute;
+ my @issuelist;
+ my $last_title;
+ while (my $line = $sth->fetchrow_hashref) {
+ $line->{title} = "" if $line->{title} eq $last_title;
+ $last_title = $line->{title} if ($line->{title});
+ $line->{planneddate} = format_date($line->{planneddate});
+ push @issuelist,$line;
+ }
+ return @issuelist;
+ }
sub newsubscription {
my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$biblionumber,
***************
*** 78,82 ****
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, "", "", 0, $notes);
# reread subscription to get a hash (for calculation of the 1st issue number)
$sth = $dbh->prepare("select * from subscription where subscriptionid = ? ");
--- 127,131 ----
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 = ? ");
***************
*** 150,153 ****
--- 199,203 ----
sub getsubscriptions {
my ($title,$ISSN) = @_;
+ return unless $title or $ISSN;
my $dbh = C4::Context->dbh;
my $sth;
***************
*** 248,252 ****
}
if ($subscription->{periodicity} == 8) {
! $resultdate=DateCalc($planneddate,"1 quarter");
}
if ($subscription->{periodicity} == 9) {
--- 298,302 ----
}
if ($subscription->{periodicity} == 8) {
! $resultdate=DateCalc($planneddate,"3 months");
}
if ($subscription->{periodicity} == 9) {
***************
*** 313,317 ****
if ($subscription->{numberlength}) {
my $sth = $dbh->prepare("select count(*) from serial where subscriptionid=? and planneddate>=?");
! $sth->execute($subscriptionid,$subscription->{planneddate});
my $res = $sth->fetchrow;
if ($subscription->{numberlength}>=$res) {
--- 363,367 ----
if ($subscription->{numberlength}) {
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) {
More information about the Koha-cvs
mailing list