| 
      
            Lines 60-65
          BEGIN {
      
      
        Link Here
      
     | 
  
        
          | 60 | 
          	push @EXPORT, qw(  | 
          60 | 
          	push @EXPORT, qw(  | 
        
        
          | 61 | 
          		&FixOverduesOnReturn  | 
          61 | 
          		&FixOverduesOnReturn  | 
        
        
          | 62 | 
          		&barcodedecode  | 
          62 | 
          		&barcodedecode  | 
        
            
               | 
               | 
              63 | 
              		GetRenewalDetails   | 
            
        
          | 63 | 
          	);  | 
          64 | 
          	);  | 
        
        
          | 64 | 
           | 
          65 | 
           | 
        
        
          | 65 | 
          	# subs to deal with issuing a book  | 
          66 | 
          	# subs to deal with issuing a book  | 
        
  
    | 
      
            Lines 2148-2161
          from the book's item type.
      
      
        Link Here
      
     | 
  
        
          | 2148 | 
          =cut  | 
          2149 | 
          =cut  | 
        
        
          | 2149 | 
           | 
          2150 | 
           | 
        
        
          | 2150 | 
          sub AddRenewal { | 
          2151 | 
          sub AddRenewal { | 
        
          
            
              | 2151 | 
                  my $borrowernumber  = shift or return undef;  | 
              2152 | 
              	my $borrowernumber = shift or return undef;  | 
            
            
              | 2152 | 
                  my $itemnumber      = shift or return undef;  | 
              2153 | 
              	my     $itemnumber = shift or return undef;  | 
            
            
              | 2153 | 
                  my $branch          = shift;  | 
              2154 | 
               | 
            
            
              | 2154 | 
                  my $datedue         = shift;  | 
               | 
               | 
            
            
              | 2155 | 
                  my $lastreneweddate = shift || C4::Dates->new()->output('iso'); | 
            
        
          | 2156 | 
              my $item   = GetItem($itemnumber) or return undef;  | 
          2155 | 
              my $item   = GetItem($itemnumber) or return undef;  | 
        
        
          | 2157 | 
              my $biblio = GetBiblioFromItemNumber($itemnumber) or return undef;  | 
          2156 | 
              my $biblio = GetBiblioFromItemNumber($itemnumber) or return undef;  | 
        
          
            
              | 2158 | 
               | 
              2157 | 
                  my $branch  = (@_) ? shift : $item->{homebranch};	# opac-renew doesn't send branch | 
            
            
               | 
               | 
              2158 | 
                  my $datedue = shift;  | 
            
            
              | 2159 | 
                  my $lastreneweddate = shift;  | 
            
            
              | 2160 | 
                  my $source = shift;  | 
            
        
          | 2159 | 
              my $dbh = C4::Context->dbh;  | 
          2161 | 
              my $dbh = C4::Context->dbh;  | 
        
        
          | 2160 | 
              # Find the issues record for this book  | 
          2162 | 
              # Find the issues record for this book  | 
        
        
          | 2161 | 
              my $sth =  | 
          2163 | 
              my $sth =  | 
        
  
    | 
      
            Lines 2166-2190
          sub AddRenewal {
      
      
        Link Here
      
     | 
  
        
          | 2166 | 
              $sth->execute( $borrowernumber, $itemnumber );  | 
          2168 | 
              $sth->execute( $borrowernumber, $itemnumber );  | 
        
        
          | 2167 | 
              my $issuedata = $sth->fetchrow_hashref;  | 
          2169 | 
              my $issuedata = $sth->fetchrow_hashref;  | 
        
        
          | 2168 | 
              $sth->finish;  | 
          2170 | 
              $sth->finish;  | 
        
          
            
              | 2169 | 
                  if($datedue && ! $datedue->output('iso')){ | 
              2171 | 
               | 
            
            
              | 2170 | 
                      warn "Invalid date passed to AddRenewal.";  | 
               | 
               | 
            
            
              | 2171 | 
                      return undef;  | 
            
            
              | 2172 | 
                  }  | 
            
        
          | 2173 | 
              # If the due date wasn't specified, calculate it by adding the  | 
          2172 | 
              # If the due date wasn't specified, calculate it by adding the  | 
        
          
            
              | 2174 | 
                  # book's loan length to today's date or the current due date  | 
              2173 | 
                  # book's loan length to today's date.  | 
            
            
              | 2175 | 
                  # based on the value of the RenewalPeriodBase syspref.  | 
              2174 | 
                  unless ($datedue && $datedue->output('iso')) { | 
            
            
              | 2176 | 
                  unless ($datedue) { | 
               | 
               | 
            
        
          | 2177 | 
           | 
          2175 | 
           | 
        
        
          | 2178 | 
                  my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;  | 
          2176 | 
                  my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;  | 
        
        
          | 2179 | 
                  my $loanlength = GetLoanLength(  | 
          2177 | 
                  my $loanlength = GetLoanLength(  | 
        
          
            
              | 2180 | 
                                  $borrower->{'categorycode'}, | 
              2178 | 
                          $borrower->{'categorycode'}, | 
            
            
              | 2181 | 
                                  (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} , | 
              2179 | 
                           (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} , | 
            
            
              | 2182 | 
              			        $issuedata->{'branchcode'}  );   # that's the circ control branch. | 
              2180 | 
              			$item->{homebranch}			# item's homebranch determines loanlength OR do we want the branch specified by the AddRenewal argument? | 
            
            
              | 2183 | 
               | 
              2181 | 
                      );  | 
            
            
               | 
               | 
              2182 | 
              		#FIXME -- use circControl?  | 
            
        
          | 2184 | 
                  $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? | 
          2183 | 
                  $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? | 
        
        
          | 2185 | 
                                                  C4::Dates->new($issuedata->{date_due}, 'iso') : | 
          2184 | 
                                                  C4::Dates->new($issuedata->{date_due}, 'iso') : | 
        
        
          | 2186 | 
                                                  C4::Dates->new();  | 
          2185 | 
                                                  C4::Dates->new();  | 
        
          
            
              | 2187 | 
                      $datedue =  CalcDateDue($datedue,$loanlength,$issuedata->{'branchcode'},$borrower); | 
              2186 | 
              		$datedue =  CalcDateDue(C4::Dates->new(),$loanlength,$branch);	# this branch is the transactional branch.  | 
            
            
               | 
               | 
              2187 | 
              								# The question of whether to use item's homebranch calendar is open.  | 
            
            
              | 2188 | 
                  }  | 
            
            
              | 2189 | 
               | 
            
            
              | 2190 | 
                  # $lastreneweddate defaults to today.  | 
            
            
              | 2191 | 
                  unless (defined $lastreneweddate) { | 
            
            
              | 2192 | 
                      $lastreneweddate = strftime( "%Y-%m-%d", localtime );  | 
            
            
              | 2193 | 
                  }  | 
            
            
              | 2194 | 
               | 
            
            
              | 2195 | 
                  if($datedue && ! $datedue->output('iso')){ | 
            
            
              | 2196 | 
                      warn "Invalid date passed to AddRenewal.";  | 
            
            
              | 2197 | 
                      return undef;  | 
            
        
          | 2188 | 
              }  | 
          2198 | 
              }  | 
        
        
          | 2189 | 
           | 
          2199 | 
           | 
        
        
          | 2190 | 
              # Update the issues record to have the new due date, and a new count  | 
          2200 | 
              # Update the issues record to have the new due date, and a new count  | 
        
  
    | 
      
            Lines 2221-2227
          sub AddRenewal {
      
      
        Link Here
      
     | 
  
        
          | 2221 | 
                  $sth->finish;  | 
          2231 | 
                  $sth->finish;  | 
        
        
          | 2222 | 
              }  | 
          2232 | 
              }  | 
        
        
          | 2223 | 
              # Log the renewal  | 
          2233 | 
              # Log the renewal  | 
        
          
            
              | 2224 | 
                  UpdateStats( $branch, 'renew', $charge, '', $itemnumber, $item->{itype}, $borrowernumber); | 
              2234 | 
                  UpdateStats( $branch, 'renew', $charge, $source, $itemnumber, $item->{itype}, $borrowernumber); | 
            
        
          | 2225 | 
          	return $datedue;  | 
          2235 | 
          	return $datedue;  | 
        
        
          | 2226 | 
          }  | 
          2236 | 
          }  | 
        
        
          | 2227 | 
           | 
          2237 | 
           | 
        
  
    | 
      
            Lines 2397-2402
          sub GetTransfersFromTo {
      
      
        Link Here
      
     | 
  
        
          | 2397 | 
              return (@gettransfers);  | 
          2407 | 
              return (@gettransfers);  | 
        
        
          | 2398 | 
          }  | 
          2408 | 
          }  | 
        
        
          | 2399 | 
           | 
          2409 | 
           | 
        
            
               | 
               | 
              2410 | 
              =head2 GetRenewalDetails  | 
            
            
              | 2411 | 
               | 
            
            
              | 2412 | 
              ( $intranet_renewals, $opac_renewals ) = GetRenewalDetails( $itemnumber, $renewals_limit );  | 
            
            
              | 2413 | 
               | 
            
            
              | 2414 | 
              Returns the number of renewals through intranet and opac for the given itemnumber, limited by $renewals_limit  | 
            
            
              | 2415 | 
               | 
            
            
              | 2416 | 
              =cut  | 
            
            
              | 2417 | 
               | 
            
            
              | 2418 | 
              sub GetRenewalDetails { | 
            
            
              | 2419 | 
                  my ( $itemnumber, $renewals_limit ) = @_;  | 
            
            
              | 2420 | 
                  my $dbh   = C4::Context->dbh;  | 
            
            
              | 2421 | 
                  my $query = "SELECT * FROM statistics WHERE type = 'renew' AND itemnumber = ? ORDER BY datetime DESC LIMIT ?";  | 
            
            
              | 2422 | 
                  my $sth = $dbh->prepare($query);  | 
            
            
              | 2423 | 
                  $sth->execute( $itemnumber, $renewals_limit );  | 
            
            
              | 2424 | 
               | 
            
            
              | 2425 | 
                  my $renewals_intranet = 0;  | 
            
            
              | 2426 | 
                  my $renewals_opac = 0;  | 
            
            
              | 2427 | 
               | 
            
            
              | 2428 | 
                  while ( my $data = $sth->fetchrow_hashref ) { | 
            
            
              | 2429 | 
                    if ( $data->{'other'} eq 'opac' ) { | 
            
            
              | 2430 | 
                      $renewals_opac++;  | 
            
            
              | 2431 | 
                    } else { | 
            
            
              | 2432 | 
                      $renewals_intranet++;  | 
            
            
              | 2433 | 
                    }  | 
            
            
              | 2434 | 
                  }  | 
            
            
              | 2435 | 
               | 
            
            
              | 2436 | 
                  return ( $renewals_intranet, $renewals_opac );  | 
            
            
              | 2437 | 
              }  | 
            
            
              | 2438 | 
               | 
            
        
          | 2400 | 
          =head2 DeleteTransfer  | 
          2439 | 
          =head2 DeleteTransfer  | 
        
        
          | 2401 | 
           | 
          2440 | 
           | 
        
        
          | 2402 | 
            &DeleteTransfer($itemnumber);  | 
          2441 | 
            &DeleteTransfer($itemnumber);  |