[Koha-cvs] koha/C4/Circulation Circ2.pm [dev_week]

Mason James szrj1m at yahoo.com
Tue May 15 22:55:24 CEST 2007


CVSROOT:	/sources/koha
Module name:	koha
Branch:		dev_week
Changes by:	Mason James <sushi>	07/05/15 20:55:24

Modified files:
	C4/Circulation : Circ2.pm 

Log message:
	

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Circulation/Circ2.pm?cvsroot=koha&only_with_tag=dev_week&r1=1.87.2.14.2.23&r2=1.87.2.14.2.24

Patches:
Index: Circ2.pm
===================================================================
RCS file: /sources/koha/koha/C4/Circulation/Attic/Circ2.pm,v
retrieving revision 1.87.2.14.2.23
retrieving revision 1.87.2.14.2.24
diff -u -b -r1.87.2.14.2.23 -r1.87.2.14.2.24
--- Circ2.pm	15 May 2007 20:49:32 -0000	1.87.2.14.2.23
+++ Circ2.pm	15 May 2007 20:55:23 -0000	1.87.2.14.2.24
@@ -3,7 +3,7 @@
 
 package C4::Circulation::Circ2;
 
-# $Id: Circ2.pm,v 1.87.2.14.2.23 2007/05/15 20:49:32 sushi Exp $
+# $Id: Circ2.pm,v 1.87.2.14.2.24 2007/05/15 20:55:23 sushi Exp $
 
 #package to deal with Returns
 #written 3/11/99 by olwen at katipo.co.nz
@@ -869,11 +869,27 @@
 #
 # issuing book. We already have checked it can be issued, so, just issue it !
 #
+
 sub issuebook {
 	my ($env,$borrower,$barcode,$date,$cancelreserve) = @_;
-warn "MASON, issuebook(), startdate = $date\n";
-
 	my $dbh = C4::Context->dbh;
+### here too
+
+warn Dumper $env;
+
+
+# new code for holidays, if sys_pref 'useCalendarBranch' = issuing,
+# use issuing branchs' holidays rules, else is patron's branch (was default) 
+    my $calendar_branch;
+    if (C4::Context->preference("useHolidayRules") eq 'CircBranch' ||
+     C4::Context->preference("useIssuingRules") eq 'CircBranch') {
+        $calendar_branch = $env->{'branchcode'};
+### in here
+    }
+    else {
+        $calendar_branch = $borrower->{'branchcode'};
+    }   
+
 #	my ($borrower, $flags) = &getpatroninformation($env, $borrowernumber, 0);
 	my $iteminformation = getiteminformation($env, 0, $barcode);
 #		warn "B : ".$borrower->{borrowernumber}." / I : ".$iteminformation->{'itemnumber'};
@@ -882,12 +898,6 @@
 #
 	my ($currentborrower) = currentborrower($iteminformation->{'itemnumber'});
 	if ($currentborrower eq $borrower->{'borrowernumber'}) {
-		my ($charge,$itemtype) = calc_charges($env, $iteminformation->{'itemnumber'}, $borrower->{'borrowernumber'});
-		if ($charge > 0) {
-			createcharge($env, $dbh, $iteminformation->{'itemnumber'}, $borrower->{'borrowernumber'}, $charge);
-			$iteminformation->{'charge'} = $charge;
-		}
-		#&UpdateStats($env,$env->{'branchcode'},'renew',$charge,'',$iteminformation->{'itemnumber'},$iteminformation->{'itemtype'},$borrower->{'borrowernumber'});
 		renewbook($env, $borrower->{'borrowernumber'}, $iteminformation->{'itemnumber'});
 	} else {
 #
@@ -913,8 +923,12 @@
 				my ($resborrower, $flags)=getpatroninformation($env, $resbor,0);
 				my $branches = getbranches();
 				my $branchname = $branches->{$res->{'branchcode'}}->{'branchname'};
-                if ($cancelreserve){
+                    if ($cancelreserve) {
+                        # cancel waiting reserve
     				CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'});
+                } else {
+                        # set waiting reserve to first in reserve queue as book isn't waiting now
+                        UpdateReserve(1, $res->{'biblionumber'}, $res->{'borrowernumber'}, $res->{'branchcode'});
                 }
 			} elsif ($restype eq "Reserved") {
 				warn "Reserved";
@@ -926,11 +940,13 @@
 					# cancel reserves on this item
 					CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'});
 					# also cancel reserve on biblio related to this item
-					#my $st_Fbiblio = $dbh->prepare("select biblionumber from items where itemnumber=?");
-					#$st_Fbiblio->execute($res->{'itemnumber'});
-					#my $biblionumber = $st_Fbiblio->fetchrow;
-					#CancelReserve($biblionumber,0,$res->{'borrowernumber'});
-					#warn "CancelReserve $res->{'itemnumber'}, $res->{'borrowernumber'}";
+                    my $st_Fbiblio = $dbh->prepare("select biblionumber from items where itemnumber=?");
+                    $st_Fbiblio->execute($res->{'itemnumber'});
+                    my $biblionumber = $st_Fbiblio->fetchrow;
+                # the following line shouldn't cancel the reserve it should update it
+                # from rank 'waiting' to rank '1'     
+                #   CancelReserve($biblionumber,0,$res->{'borrowernumber'});
+                    warn "CancelReserve $res->{'itemnumber'}, $res->{'borrowernumber'}";
 				} else {
 # 					my $tobrcd = ReserveWaiting($res->{'itemnumber'}, $res->{'borrowernumber'});
 # 					transferbook($tobrcd,$barcode, 1);
@@ -940,36 +956,29 @@
 		}
 		# Record in the database the fact that the book was issued.
 		my $sth=$dbh->prepare("insert into issues (borrowernumber, itemnumber, date_due, branchcode) values (?,?,?,?)");
-		my $loanlength = getLoanLength($borrower->{'categorycode'},$iteminformation->{'itemtype'},$borrower->{'branchcode'});
-                warn "LOANLENGTH:".$loanlength;
-		#my $datedue=time+($loanlength)*86400;
+        my $loanlength = getLoanLength($borrower->{'categorycode'},$iteminformation->{'itemtype'},$calendar_branch);
 		my @datearr = localtime();
-		my $dateduef = (1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
-
-        # now calling addDate() from Calendar.pm 
-
-warn "MASON, issuebook(), pre-holidays duedate  = $dateduef\n";
-        my $calendar = C4::Calendar->new(branchcode => $borrower->{'branchcode'});
-        my ($yeardue, $monthdue, $daydue) = split /-/, $dateduef;
-
-
-warn  "daydue, monthdue, yeardue, loanlenght = $daydue, $monthdue, $yeardue, $loanlength\n";
-        ($daydue, $monthdue, $yeardue) = $calendar->addDate($daydue, $monthdue, $yeardue, $loanlength);
-warn  "daydue, monthdue, yeardue, loanlenght = $daydue, $monthdue, $yeardue, $loanlength\n";
-
-
-
-        $dateduef = "$yeardue-". sprintf("%0.2d", $monthdue)."-". sprintf("%0.2d",$daydue);
-warn "MASON, issuebook(), pre-holidays duedate  = $dateduef\n";
-
+        my $dateduef;
 
+        # if a hard set date-due is pasted, then use it!
 		if ($date) {
+            warn "--- hard-set due-date = $date";
 			$dateduef=$date;
 		}
-		# if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
-		if (C4::Context->preference('ReturnBeforeExpiry') && $dateduef gt $borrower->{expiry}) {
-			$dateduef=$borrower->{expiry};
+        # else, calc date-due using loan-length and holidays.
+        else {    
+            $dateduef = (1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
+            my $calendar = C4::Calendar->new(branchcode => $calendar_branch);
+            my ($yeardue, $monthdue, $daydue) = split /-/, $dateduef;
+            ($daydue, $monthdue, $yeardue) = $calendar->addDate($daydue, $monthdue, $yeardue, $loanlength);
+            $dateduef = "$yeardue-".sprintf ("%0.2d", $monthdue)."-". sprintf("%0.2d",$daydue);
 		}
+
+# if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
+#        if (C4::Context->preference('ReturnBeforeExpiry') && $dateduef gt $borrower->{expiry}) {
+#            $dateduef=$borrower->{expiry};
+#       }
+
 		$sth->execute($borrower->{'borrowernumber'}, $iteminformation->{'itemnumber'}, $dateduef, $env->{'branchcode'});
 		$sth->finish;
 		$iteminformation->{'issues'}++;
@@ -977,6 +986,7 @@
 		$sth->execute($iteminformation->{'issues'},$iteminformation->{'itemnumber'});
 		$sth->finish;
 		&itemseen($iteminformation->{'itemnumber'});
+            itemborrowed($iteminformation->{'itemnumber'});
 		# If it costs to borrow this book, charge it to the patron's account.
 		my ($charge,$itemtype)=calc_charges($env, $iteminformation->{'itemnumber'}, $borrower->{'borrowernumber'});
 		if ($charge > 0) {
@@ -988,6 +998,7 @@
 	}
 }
 
+
 =head2 getLoanLength
 
 Get loan length for an itemtype, a borrower type and a branch





More information about the Koha-cvs mailing list