[Koha-cvs] CVS: koha/C4 Bull.pm,1.9,1.10

Henri-Damien LAURENT hdl at users.sourceforge.net
Thu Jun 16 21:10:15 CEST 2005


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11586/C4

Modified Files:
	Bull.pm 
Log Message:
Adding 2 status to serial issues :
	- delete : to delete the current issue
	- not issued : to distinguish missing from not issued serial number.

Index: Bull.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Bull.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** Bull.pm	4 May 2005 15:40:01 -0000	1.9
--- Bull.pm	16 Jun 2005 19:10:10 -0000	1.10
***************
*** 51,55 ****
  			&Find_Next_Date, &Get_Next_Seq
  			&hassubscriptionexpired &subscriptionexpirationdate &subscriptionrenew
! 			&getSupplierListWithLateIssues &GetLateIssues);
  
  sub getSupplierListWithLateIssues {
--- 51,55 ----
  			&Find_Next_Date, &Get_Next_Seq
  			&hassubscriptionexpired &subscriptionexpirationdate &subscriptionrenew
! 			&getSupplierListWithLateIssues &GetLateIssues &serialdelete);
  
  sub getSupplierListWithLateIssues {
***************
*** 275,279 ****
  	my $dbh = C4::Context->dbh;
  	# status = 2 is "arrived"
! 	my $sth=$dbh->prepare("select serialid,serialseq, status, planneddate from serial where subscriptionid = ? and status <>2 and status <>4");
  	$sth->execute($subscriptionid);
  	my @serials;
--- 275,279 ----
  	my $dbh = C4::Context->dbh;
  	# status = 2 is "arrived"
! 	my $sth=$dbh->prepare("select serialid,serialseq, status, planneddate from serial where subscriptionid = ? and status <>2 and status <>4 and status <>5");
  	$sth->execute($subscriptionid);
  	my @serials;
***************
*** 289,296 ****
  }
  
! sub serialchangestatus {
! 	my ($serialid,$serialseq,$planneddate,$status)=@_;
! # 	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=?");
--- 289,294 ----
  }
  
! sub serialdelete {
! 	my ($serialid,$serialseq)=@_;
  	my $dbh = C4::Context->dbh;
  	my $sth = $dbh->prepare("select subscriptionid,status from serial where serialid=?");
***************
*** 298,314 ****
  	my ($subscriptionid,$oldstatus) = $sth->fetchrow;
  	# change status & update subscriptionhistory
! 	$sth = $dbh->prepare("update serial set serialseq=?,planneddate=?,status=? where serialid = ?");
! 	$sth->execute($serialseq,$planneddate,$status,$serialid);
  	$sth = $dbh->prepare("select missinglist,recievedlist from subscriptionhistory where subscriptionid=?");
  	$sth->execute($subscriptionid);
  	my ($missinglist,$recievedlist) = $sth->fetchrow;
! 	if ($status eq 2) {
! 		$recievedlist .= ",$serialseq";
! 	}
! 	if ($status eq 4) {
! 		$missinglist .= ",$serialseq";
! 	}
  	$sth=$dbh->prepare("update subscriptionhistory set recievedlist=?, missinglist=? where subscriptionid=?");
  	$sth->execute($recievedlist,$missinglist,$subscriptionid);
  	# create new waited entry if needed (ie : was a "waited" and has changed)
  	if ($oldstatus eq 1 && $status ne 1) {
--- 296,336 ----
  	my ($subscriptionid,$oldstatus) = $sth->fetchrow;
  	# change status & update subscriptionhistory
! 	my $sth = $dbh->prepare("delete * from serial  where serialid = ?");
! 	$sth->execute($serialid);
  	$sth = $dbh->prepare("select missinglist,recievedlist from subscriptionhistory where subscriptionid=?");
  	$sth->execute($subscriptionid);
  	my ($missinglist,$recievedlist) = $sth->fetchrow;
! 	$recievedlist =~ s/",$serialseq"//;
! 	$missinglist =~ s/",$serialseq"//;
  	$sth=$dbh->prepare("update subscriptionhistory set recievedlist=?, missinglist=? where subscriptionid=?");
  	$sth->execute($recievedlist,$missinglist,$subscriptionid);
+ }
+ 
+ sub serialchangestatus {
+ 	my ($serialid,$serialseq,$planneddate,$status)=@_;
+ # 	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=?");
+ 	$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=? where serialid = ?");
+ 		$sth->execute($serialseq,$planneddate,$status,$serialid);
+ 		$sth = $dbh->prepare("select missinglist,recievedlist from subscriptionhistory where subscriptionid=?");
+ 		$sth->execute($subscriptionid);
+ 		my ($missinglist,$recievedlist) = $sth->fetchrow;
+ 		if ($status eq 2) {
+ 			$recievedlist .= ",$serialseq";
+ 		}
+ 		$missinglist .= ",$serialseq" if ($status eq 4) ;
+ 		$missinglist .= ",not issued $serialseq" if ($status eq 5);
+ 		$sth=$dbh->prepare("update subscriptionhistory set recievedlist=?, missinglist=? where subscriptionid=?");
+ 		$sth->execute($recievedlist,$missinglist,$subscriptionid);
+ 	}
+ 
  	# create new waited entry if needed (ie : was a "waited" and has changed)
  	if ($oldstatus eq 1 && $status ne 1) {
***************
*** 335,338 ****
--- 357,367 ----
  }
  
+ sub delissue {
+ 	my ($serialseq,$subscriptionid) = @_;
+ 	my $dbh = C4::Context->dbh;
+ 	my $sth = $dbh->prepare("delete from serial where serialseq= ? and subscriptionid= ? ");
+ 	$sth->execute($serialseq,$subscriptionid);
+ }
+ 
  sub Get_Next_Date(@) {
  	my ($planneddate,$subscription) = @_;





More information about the Koha-cvs mailing list