-
-sub build_issue_data {
- my $issues = shift;
-
- my $localissue;
-
- foreach my $issue ( @{$issues} ) {
-
- # Getting borrower details
- my $memberdetails = GetMemberDetails( $issue->{borrowernumber} );
- $issue->{borrowername} =
- $memberdetails->{firstname} . ' ' . $memberdetails->{surname};
- $issue->{cardnumber} = $memberdetails->{cardnumber};
- my $issuedate;
- if ($issue->{issuedate} ) {
- $issuedate = $issue->{issuedate}->clone();
- }
-
- $issue->{date_due} = output_pref( $issue->{date_due} );
- $issue->{issuedate} = output_pref( $issue->{issuedate} ) if defined $issue->{issuedate};
- my $biblionumber = $issue->{biblionumber};
- $issue->{issuingbranchname} = GetBranchName($issue->{branchcode});
- my %row = %{$issue};
- $totalprice += $issue->{replacementprice};
-
- # item lost, damaged loops
- if ( $row{'itemlost'} ) {
- my $fw = GetFrameworkCode( $issue->{biblionumber} );
- my $category = GetAuthValCode( 'items.itemlost', $fw );
- my $lostdbh = C4::Context->dbh;
- my $sth = $lostdbh->prepare(
-"select lib from authorised_values where category=? and authorised_value =? "
- );
- $sth->execute( $category, $row{'itemlost'} );
- my $loststat = $sth->fetchrow;
- if ($loststat) {
- $row{'itemlost'} = $loststat;
- }
- }
- if ( $row{'damaged'} ) {
- my $fw = GetFrameworkCode( $issue->{biblionumber} );
- my $category = GetAuthValCode( 'items.damaged', $fw );
- my $damageddbh = C4::Context->dbh;
- my $sth = $damageddbh->prepare(
-"select lib from authorised_values where category=? and authorised_value =? "
- );
- $sth->execute( $category, $row{'damaged'} );
- my $damagedstat = $sth->fetchrow;
- if ($damagedstat) {
- $row{'itemdamaged'} = $damagedstat;
- }
- }
-
- # end lost, damaged
- if ( $issue->{overdue} ) {
- $overdues_exist = 1;
- $row{red} = 1;
- }
- if ($issuedate) {
- $issuedate->truncate( to => 'day' );
- if ( DateTime->compare( $issuedate, $today ) == 0 ) {
- $row{today} = 1;
- }
- }
-
- #find the charge for an item
- my ( $charge, $itemtype ) =
- GetIssuingCharges( $issue->{itemnumber}, $borrowernumber );
-
- my $itemtypeinfo = getitemtypeinfo($itemtype);
- $row{'itemtype_description'} = $itemtypeinfo->{description};
- $row{'itemtype_image'} = $itemtypeinfo->{imageurl};
-
- $row{'charge'} = sprintf( "%.2f", $charge );
-
- my ( $renewokay, $renewerror ) =
- CanBookBeRenewed( $borrowernumber, $issue->{itemnumber},
- $override_limit );
- $row{'norenew'} = !$renewokay;
- $row{'can_confirm'} = ( !$renewokay && $renewerror ne 'on_reserve' );
- $row{"norenew_reason_$renewerror"} = 1 if $renewerror;
- $row{renew_failed} = $renew_failed{ $issue->{itemnumber} };
- $row{return_failed} = $return_failed{ $issue->{barcode} };
- push( @{$localissue}, \%row );
- }
- return $localissue;
-}