| 
      
            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 2161-2174
          from the book's item type.
      
      
        Link Here
      
     | 
  
        
          | 2161 | 
          =cut  | 
          2162 | 
          =cut  | 
        
        
          | 2162 | 
           | 
          2163 | 
           | 
        
        
          | 2163 | 
          sub AddRenewal { | 
          2164 | 
          sub AddRenewal { | 
        
          
            
              | 2164 | 
                  my $borrowernumber  = shift or return undef;  | 
              2165 | 
              	my $borrowernumber = shift or return undef;  | 
            
            
              | 2165 | 
                  my $itemnumber      = shift or return undef;  | 
              2166 | 
              	my     $itemnumber = shift or return undef;  | 
            
            
              | 2166 | 
                  my $branch          = shift;  | 
              2167 | 
               | 
            
            
              | 2167 | 
                  my $datedue         = shift;  | 
               | 
               | 
            
            
              | 2168 | 
                  my $lastreneweddate = shift || C4::Dates->new()->output('iso'); | 
            
        
          | 2169 | 
              my $item   = GetItem($itemnumber) or return undef;  | 
          2168 | 
              my $item   = GetItem($itemnumber) or return undef;  | 
        
        
          | 2170 | 
              my $biblio = GetBiblioFromItemNumber($itemnumber) or return undef;  | 
          2169 | 
              my $biblio = GetBiblioFromItemNumber($itemnumber) or return undef;  | 
        
          
            
              | 2171 | 
               | 
              2170 | 
                  my $branch  = (@_) ? shift : $item->{homebranch};	# opac-renew doesn't send branch | 
            
            
               | 
               | 
              2171 | 
                  my $datedue = shift;  | 
            
            
              | 2172 | 
                  my $lastreneweddate = shift;  | 
            
            
              | 2173 | 
                  my $source = shift;  | 
            
        
          | 2172 | 
              my $dbh = C4::Context->dbh;  | 
          2174 | 
              my $dbh = C4::Context->dbh;  | 
        
        
          | 2173 | 
              # Find the issues record for this book  | 
          2175 | 
              # Find the issues record for this book  | 
        
        
          | 2174 | 
              my $sth =  | 
          2176 | 
              my $sth =  | 
        
  
    | 
      
            Lines 2179-2203
          sub AddRenewal {
      
      
        Link Here
      
     | 
  
        
          | 2179 | 
              $sth->execute( $borrowernumber, $itemnumber );  | 
          2181 | 
              $sth->execute( $borrowernumber, $itemnumber );  | 
        
        
          | 2180 | 
              my $issuedata = $sth->fetchrow_hashref;  | 
          2182 | 
              my $issuedata = $sth->fetchrow_hashref;  | 
        
        
          | 2181 | 
              $sth->finish;  | 
          2183 | 
              $sth->finish;  | 
        
          
            
              | 2182 | 
                  if($datedue && ! $datedue->output('iso')){ | 
              2184 | 
               | 
            
            
              | 2183 | 
                      warn "Invalid date passed to AddRenewal.";  | 
               | 
               | 
            
            
              | 2184 | 
                      return undef;  | 
            
            
              | 2185 | 
                  }  | 
            
        
          | 2186 | 
              # If the due date wasn't specified, calculate it by adding the  | 
          2185 | 
              # If the due date wasn't specified, calculate it by adding the  | 
        
          
            
              | 2187 | 
                  # book's loan length to today's date or the current due date  | 
              2186 | 
                  # book's loan length to today's date.  | 
            
            
              | 2188 | 
                  # based on the value of the RenewalPeriodBase syspref.  | 
              2187 | 
                  unless ($datedue && $datedue->output('iso')) { | 
            
            
              | 2189 | 
                  unless ($datedue) { | 
               | 
               | 
            
        
          | 2190 | 
           | 
          2188 | 
           | 
        
        
          | 2191 | 
                  my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;  | 
          2189 | 
                  my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;  | 
        
        
          | 2192 | 
                  my $loanlength = GetLoanLength(  | 
          2190 | 
                  my $loanlength = GetLoanLength(  | 
        
          
            
              | 2193 | 
                                  $borrower->{'categorycode'}, | 
              2191 | 
                          $borrower->{'categorycode'}, | 
            
            
              | 2194 | 
                                  (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} , | 
              2192 | 
                           (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} , | 
            
            
              | 2195 | 
              			        $issuedata->{'branchcode'}  );   # that's the circ control branch. | 
              2193 | 
              			$item->{homebranch}			# item's homebranch determines loanlength OR do we want the branch specified by the AddRenewal argument? | 
            
            
              | 2196 | 
               | 
              2194 | 
                      );  | 
            
            
               | 
               | 
              2195 | 
              		#FIXME -- use circControl?  | 
            
        
          | 2197 | 
                  $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? | 
          2196 | 
                  $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? | 
        
        
          | 2198 | 
                                                  C4::Dates->new($issuedata->{date_due}, 'iso') : | 
          2197 | 
                                                  C4::Dates->new($issuedata->{date_due}, 'iso') : | 
        
        
          | 2199 | 
                                                  C4::Dates->new();  | 
          2198 | 
                                                  C4::Dates->new();  | 
        
          
            
              | 2200 | 
                      $datedue =  CalcDateDue($datedue,$loanlength,$issuedata->{'branchcode'},$borrower); | 
              2199 | 
              		$datedue =  CalcDateDue(C4::Dates->new(),$loanlength,$branch);	# this branch is the transactional branch.  | 
            
            
               | 
               | 
              2200 | 
              								# The question of whether to use item's homebranch calendar is open.  | 
            
            
              | 2201 | 
                  }  | 
            
            
              | 2202 | 
               | 
            
            
              | 2203 | 
                  # $lastreneweddate defaults to today.  | 
            
            
              | 2204 | 
                  unless (defined $lastreneweddate) { | 
            
            
              | 2205 | 
                      $lastreneweddate = strftime( "%Y-%m-%d", localtime );  | 
            
            
              | 2206 | 
                  }  | 
            
            
              | 2207 | 
               | 
            
            
              | 2208 | 
                  if($datedue && ! $datedue->output('iso')){ | 
            
            
              | 2209 | 
                      warn "Invalid date passed to AddRenewal.";  | 
            
            
              | 2210 | 
                      return undef;  | 
            
        
          | 2201 | 
              }  | 
          2211 | 
              }  | 
        
        
          | 2202 | 
           | 
          2212 | 
           | 
        
        
          | 2203 | 
              # Update the issues record to have the new due date, and a new count  | 
          2213 | 
              # Update the issues record to have the new due date, and a new count  | 
        
  
    | 
      
            Lines 2234-2240
          sub AddRenewal {
      
      
        Link Here
      
     | 
  
        
          | 2234 | 
                  $sth->finish;  | 
          2244 | 
                  $sth->finish;  | 
        
        
          | 2235 | 
              }  | 
          2245 | 
              }  | 
        
        
          | 2236 | 
              # Log the renewal  | 
          2246 | 
              # Log the renewal  | 
        
          
            
              | 2237 | 
                  UpdateStats( $branch, 'renew', $charge, '', $itemnumber, $item->{itype}, $borrowernumber); | 
              2247 | 
                  UpdateStats( $branch, 'renew', $charge, $source, $itemnumber, $item->{itype}, $borrowernumber); | 
            
        
          | 2238 | 
          	return $datedue;  | 
          2248 | 
          	return $datedue;  | 
        
        
          | 2239 | 
          }  | 
          2249 | 
          }  | 
        
        
          | 2240 | 
           | 
          2250 | 
           | 
        
  
    | 
      
            Lines 2410-2415
          sub GetTransfersFromTo {
      
      
        Link Here
      
     | 
  
        
          | 2410 | 
              return (@gettransfers);  | 
          2420 | 
              return (@gettransfers);  | 
        
        
          | 2411 | 
          }  | 
          2421 | 
          }  | 
        
        
          | 2412 | 
           | 
          2422 | 
           | 
        
            
               | 
               | 
              2423 | 
              =head2 GetRenewalDetails  | 
            
            
              | 2424 | 
               | 
            
            
              | 2425 | 
              ( $intranet_renewals, $opac_renewals ) = GetRenewalDetails( $itemnumber, $renewals_limit );  | 
            
            
              | 2426 | 
               | 
            
            
              | 2427 | 
              Returns the number of renewals through intranet and opac for the given itemnumber, limited by $renewals_limit  | 
            
            
              | 2428 | 
               | 
            
            
              | 2429 | 
              =cut  | 
            
            
              | 2430 | 
               | 
            
            
              | 2431 | 
              sub GetRenewalDetails { | 
            
            
              | 2432 | 
                  my ( $itemnumber, $renewals_limit ) = @_;  | 
            
            
              | 2433 | 
                  my $dbh   = C4::Context->dbh;  | 
            
            
              | 2434 | 
                  my $query = "SELECT * FROM statistics WHERE type = 'renew' AND itemnumber = ? ORDER BY datetime DESC LIMIT ?";  | 
            
            
              | 2435 | 
                  my $sth = $dbh->prepare($query);  | 
            
            
              | 2436 | 
                  $sth->execute( $itemnumber, $renewals_limit );  | 
            
            
              | 2437 | 
               | 
            
            
              | 2438 | 
                  my $renewals_intranet = 0;  | 
            
            
              | 2439 | 
                  my $renewals_opac = 0;  | 
            
            
              | 2440 | 
               | 
            
            
              | 2441 | 
                  while ( my $data = $sth->fetchrow_hashref ) { | 
            
            
              | 2442 | 
                    if ( $data->{'other'} eq 'opac' ) { | 
            
            
              | 2443 | 
                      $renewals_opac++;  | 
            
            
              | 2444 | 
                    } else { | 
            
            
              | 2445 | 
                      $renewals_intranet++;  | 
            
            
              | 2446 | 
                    }  | 
            
            
              | 2447 | 
                  }  | 
            
            
              | 2448 | 
               | 
            
            
              | 2449 | 
                  return ( $renewals_intranet, $renewals_opac );  | 
            
            
              | 2450 | 
              }  | 
            
            
              | 2451 | 
               | 
            
        
          | 2413 | 
          =head2 DeleteTransfer  | 
          2452 | 
          =head2 DeleteTransfer  | 
        
        
          | 2414 | 
           | 
          2453 | 
           | 
        
        
          | 2415 | 
            &DeleteTransfer($itemnumber);  | 
          2454 | 
            &DeleteTransfer($itemnumber);  |