[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