Bug 14100: (follow-up) Language overlay for item types
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 19 Aug 2015 09:22:24 +0000 (10:22 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Tue, 27 Oct 2015 15:34:06 +0000 (12:34 -0300)
Display the translated description for item types in the following pages:
> admin/smart-rules.pl
> catalogue/detail.pl
> catalogue/itemsearch.pl
> catalogue/moredetail.pl
> reports/acquisitions_stats.pl
> reports/bor_issues_top.pl
> reports/cat_issues_top.pl
> reports/catalogue_out.pl
> reports/catalogue_stats.pl
> reports/issues_avg_stats.pl
> reports/issues_stats.pl
> reports/itemslost.pl
> reports/manager.pl
> reports/reserves_stats.pl
> suggestion/suggestion.pl
> tools/export.pl

> Opac:
> opac-detail.pl
> opac-MARCdetail.pl
> opac-search.pl

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
28 files changed:
C4/Biblio.pm
C4/ItemType.pm
C4/Items.pm
C4/Koha.pm
Koha/Template/Plugin/ItemTypes.pm
admin/smart-rules.pl
catalogue/itemsearch.pl
catalogue/moredetail.pl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/acquisitions_stats.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/bor_issues_top.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/catalogue_stats.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/issues_avg_stats.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/itemtypes.tt
koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
opac/opac-detail.pl
reports/acquisitions_stats.pl
reports/bor_issues_top.pl
reports/cat_issues_top.pl
reports/catalogue_out.pl
reports/catalogue_stats.pl
reports/issues_avg_stats.pl
reports/issues_stats.pl
reports/itemslost.pl
reports/itemtypes.plugin
reports/reserves_stats.pl
tools/export.pl

index 08c0c71..2e8827a 100644 (file)
@@ -1658,7 +1658,7 @@ sub GetAuthorisedValueDesc {
 
         #---- itemtypes
         if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "itemtypes" ) {
-            return getitemtypeinfo($value)->{description};
+            return getitemtypeinfo($value)->{translated_description};
         }
 
         #---- "true" authorized value
index 16b3f8c..27b5aea 100644 (file)
@@ -21,6 +21,7 @@ package C4::ItemType;
 use strict;
 use warnings;
 use C4::Context;
+use C4::Languages;
 use Encode qw( encode );
 
 our $AUTOLOAD;
@@ -78,9 +79,17 @@ sub all {
     my ($class) = @_;
     my $dbh = C4::Context->dbh;
 
+    my $language = C4::Languages::getlanguage();
     my @itypes;
-    for ( @{$dbh->selectall_arrayref(
-        "SELECT * FROM itemtypes ORDER BY description", { Slice => {} })} )
+    for ( @{$dbh->selectall_arrayref(q|
+        SELECT *,
+            COALESCE( localization.translation, itemtypes.description ) AS translated_description
+        FROM itemtypes
+        LEFT JOIN localization ON itemtypes.itemtype = localization.code
+            AND localization.entity = 'itemtypes'
+            AND localization.lang = ?
+        ORDER BY description
+    |, { Slice => {} }, $language)} )
     {
         push @itypes, $class->new($_);
     }
index 213ca4e..ec51058 100644 (file)
@@ -1301,6 +1301,7 @@ sub GetItemsInfo {
     my ( $biblionumber ) = @_;
     my $dbh   = C4::Context->dbh;
     # note biblioitems.* must be avoided to prevent large marc and marcxml fields from killing performance.
+    my $language = C4::Languages::getlanguage();
     my $query = "
     SELECT items.*,
            biblio.*,
@@ -1326,6 +1327,7 @@ sub GetItemsInfo {
            serial.serialseq,
            serial.publisheddate,
            itemtypes.description,
+           COALESCE( localization.translation, itemtypes.description ) AS translated_description,
            itemtypes.notforloan as notforloan_per_itemtype,
            holding.branchurl,
            holding.branchname,
@@ -1344,9 +1346,15 @@ sub GetItemsInfo {
      LEFT JOIN serial USING (serialid)
      LEFT JOIN itemtypes   ON   itemtypes.itemtype         = "
      . (C4::Context->preference('item-level_itypes') ? 'items.itype' : 'biblioitems.itemtype');
+    $query .= q|
+    LEFT JOIN localization ON itemtypes.itemtype = localization.code
+        AND localization.entity = 'itemtypes'
+        AND localization.lang = ?
+    |;
+
     $query .= " WHERE items.biblionumber = ? ORDER BY home.branchname, items.enumchron, LPAD( items.copynumber, 8, '0' ), items.dateaccessioned DESC" ;
     my $sth = $dbh->prepare($query);
-    $sth->execute($biblionumber);
+    $sth->execute($language, $biblionumber);
     my $i = 0;
     my @results;
     my $serial;
index d06b8b2..82e80e3 100644 (file)
@@ -194,14 +194,7 @@ build a HTML select with the following code :
 sub GetSupportList{
        my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes");
     if (!$advanced_search_types or $advanced_search_types =~ /itemtypes/) {
-               my $query = qq|
-                       SELECT *
-                       FROM   itemtypes
-                       order by description
-               |;
-               my $sth = C4::Context->dbh->prepare($query);
-               $sth->execute;
-               return $sth->fetchall_arrayref({});
+        return GetItemTypes( style => 'array' );
        } else {
                my $advsearchtypes = GetAuthorisedValues($advanced_search_types);
                my @results= map {{itemtype=>$$_{authorised_value},description=>$$_{lib},imageurl=>$$_{imageurl}}} @$advsearchtypes;
index 9c8326d..85d2542 100644 (file)
@@ -27,7 +27,7 @@ use C4::Koha;
 sub GetDescription {
     my ( $self, $itemtype ) = @_;
 
-    my $itemtype = C4::Koha::getitemtypeinfo( $itemtype );
+    $itemtype = C4::Koha::getitemtypeinfo( $itemtype );
     return $itemtype->{translated_description};
 
 }
index 2722f6d..1be26e3 100755 (executable)
@@ -46,6 +46,7 @@ my ($template, $loggedinuser, $cookie)
 my $type=$input->param('type');
 my $branch = $input->param('branch') || ( C4::Branch::onlymine() ? ( C4::Branch::mybranch() || '*' ) : '*' );
 my $op = $input->param('op') || q{};
+my $language = C4::Languages::getlanguage();
 
 if ($op eq 'delete') {
     my $itemtype     = $input->param('itemtype');
@@ -419,25 +420,25 @@ while (my $data=$sth->fetchrow_hashref){
 }
 
 $sth->finish;
-$sth=$dbh->prepare("SELECT description,itemtype FROM itemtypes ORDER BY description");
-$sth->execute;
-# $i=0;
 my @row_loop;
-my @itemtypes;
-while (my $row=$sth->fetchrow_hashref){
-    push @itemtypes,$row;
-}
+my @itemtypes = @{ GetItemTypes( style => 'array' ) };
 
 my $sth2 = $dbh->prepare("
-    SELECT issuingrules.*, itemtypes.description AS humanitemtype, categories.description AS humancategorycode
+    SELECT  issuingrules.*,
+            itemtypes.description AS humanitemtype,
+            categories.description AS humancategorycode,
+            COALESCE( localization.translation, itemtypes.description ) AS translated_description
     FROM issuingrules
     LEFT JOIN itemtypes
         ON (itemtypes.itemtype = issuingrules.itemtype)
     LEFT JOIN categories
         ON (categories.categorycode = issuingrules.categorycode)
+    LEFT JOIN localization ON issuingrules.itemtype = localization.code
+        AND localization.entity = 'itemtypes'
+        AND localization.lang = ?
     WHERE issuingrules.branchcode = ?
 ");
-$sth2->execute($branch);
+$sth2->execute($language, $branch);
 
 while (my $row = $sth2->fetchrow_hashref) {
     $row->{'current_branch'} ||= $row->{'branchcode'};
index 82a4161..c1253d7 100755 (executable)
@@ -258,7 +258,7 @@ if ($format eq 'html') {
     my @itemtypes = C4::ItemType->all();
     foreach my $itemtype (@itemtypes) {
         $itemtype->{value} = $itemtype->{itemtype};
-        $itemtype->{label} = $itemtype->{description};
+        $itemtype->{label} = $itemtype->{translated_description};
     }
     my $ccode_avcode = GetAuthValCode('items.ccode') || 'CCODE';
     my $ccodes = GetAuthorisedValues($ccode_avcode);
index 3736c13..70378d0 100755 (executable)
@@ -127,7 +127,7 @@ my $ccodes= GetKohaAuthorisedValues('items.ccode',$fw);
 my $copynumbers = GetKohaAuthorisedValues('items.copynumber',$fw);
 my $itemtypes = GetItemTypes;
 
-$data->{'itemtypename'} = $itemtypes->{$data->{'itemtype'}}->{'description'};
+$data->{'itemtypename'} = $itemtypes->{$data->{'itemtype'}}->{'translated_description'};
 $data->{'rentalcharge'} = sprintf( "%.2f", $data->{'rentalcharge'} );
 foreach ( keys %{$data} ) {
     $template->param( "$_" => defined $data->{$_} ? $data->{$_} : '' );
@@ -138,7 +138,7 @@ foreach my $item (@items){
     $item->{itemlostloop}= GetAuthorisedValues(GetAuthValCode('items.itemlost',$fw),$item->{itemlost}) if GetAuthValCode('items.itemlost',$fw);
     $item->{itemdamagedloop}= GetAuthorisedValues(GetAuthValCode('items.damaged',$fw),$item->{damaged}) if GetAuthValCode('items.damaged',$fw);
     $item->{'collection'}              = $ccodes->{ $item->{ccode} } if ($ccodes);
-    $item->{'itype'}                   = $itemtypes->{ $item->{'itype'} }->{'description'};
+    $item->{'itype'}                   = $itemtypes->{ $item->{'itype'} }->{'translated_description'};
     $item->{'replacementprice'}        = sprintf( "%.2f", $item->{'replacementprice'} );
     if ( defined $item->{'copynumber'} ) {
         $item->{'displaycopy'} = 1;
index 09ecf4a..b871463 100644 (file)
@@ -176,7 +176,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde
                                                        <td>[% IF ( rule.default_humanitemtype ) %]
                                                                        <em>All</em>
                                                                [% ELSE %]
-                                                                       [% rule.humanitemtype %]
+                                                                       [% rule.translated_description %]
                                                                [% END %]
                                                        </td>
                                                        <td>[% IF ( rule.unlimited_maxissueqty ) %]
@@ -251,7 +251,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde
                         <select name="itemtype" id="matrixitemtype" style="width:13em;">
                             <option value="*">All</option>
                         [% FOREACH itemtypeloo IN itemtypeloop %]
-                            <option value="[% itemtypeloo.itemtype %]">[% itemtypeloo.description %]</option>
+                            <option value="[% itemtypeloo.itemtype %]">[% itemtypeloo.translated_description %]</option>
                         [% END %]
                         </select>
                     </td>
@@ -530,7 +530,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde
                         <td>[% IF ( branch_item_rule_loo.default_humanitemtype ) %]
                                 <em>Default</em>
                             [% ELSE %]
-                                [% branch_item_rule_loo.humanitemtype %]
+                                [% branch_item_rule_loo.translated_description %]
                             [% END %]
                         </td>
                         <td>[% IF ( branch_item_rule_loo.holdallowed_any ) %]
@@ -560,7 +560,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde
                     <td>
                         <select name="itemtype">
                         [% FOREACH itemtypeloo IN itemtypeloop %]
-                            <option value="[% itemtypeloo.itemtype %]">[% itemtypeloo.description %]</option>
+                            <option value="[% itemtypeloo.itemtype %]">[% itemtypeloo.translated_description %]</option>
                         [% END %]
                         </select>
                     </td>
index ad8eca1..15cf03a 100644 (file)
@@ -402,7 +402,7 @@ function verify_images() {
     [% FOREACH subtitl IN subtitle %]
        <h4>[% subtitl.subfield %]</h4>
     [% END %]
-            [% UNLESS ( item_level_itypes ) %]<img src="[% imageurl %]" alt="[% description %]" title="[% description %]">[% END %]
+            [% UNLESS ( item_level_itypes ) %]<img src="[% imageurl %]" alt="[% translated_description %]" title="[% translated_description %]">[% END %]
             [% IF ( unititle ) %]<p>[% unititle |html %]</p>[% END %]
             [% IF ( author ) %]<p>By <a href="/cgi-bin/koha/catalogue/search.pl?q=au:[% author |url %]">[% author %]</a></p>[% END %]
         <ul>
@@ -619,9 +619,9 @@ function verify_images() {
                     [% IF ( item_level_itypes ) %]
                         <td class="itype">
                             [% IF !noItemTypeImages && item.imageurl %]
-                                <img src="[% item.imageurl %]" alt="[% item.description %]" title="[% item.description %]" />
+                                <img src="[% item.imageurl %]" alt="[% item.translated_description %]" title="[% item.translated_description %]" />
                             [% END %]
-                            [% item.description %]
+                            [% item.translated_description %]
                         </td>
                     [% END %]
                     <td class="location">[% UNLESS ( singlebranchmode ) %][% item.branchname %] [% END %]</td>
index 2d80961..a03b058 100644 (file)
                 <td>
                     <select name="Filter" size="1" id="itemtypes">
                         <option value="">All item types</option>
-                        [% FOREACH value IN ItemTypes.values %]
-                        <option value="[% value %]">[% ItemTypes.labels.$value %]</option>
+                        [% FOREACH itemtype IN itemtypes %]
+                        <option value="[% itemtype.itemtype %]">[% itemtype.translated_description %]</option>
                         [% END %]
                     </select>
                 </td>
index 6fc0d54..e6663ed 100644 (file)
@@ -148,7 +148,7 @@ function Dopop(link) {
                        <li> 
                 <label for="documenttype">Item type: </label><select name="Filter" id="documenttype"><option value="" > Any item type</option>
     [% FOREACH itemtypeloo IN itemtypeloop %]
-        <option value="[% itemtypeloo.value %]" >[% itemtypeloo.description %] </option>  
+        <option value="[% itemtypeloo.value %]" >[% itemtypeloo.translated_description %] </option>
      [% END %] 
     </select>
                        </li>
index 9290ea7..567892b 100644 (file)
                                <td><input type="radio" name="Column" value="[% item_itype %]" /></td>
                                <td><select name="Filter" id="[% item_itype %]">
                                        <option value=""> </option>
-                                       [% FOREACH CGIItemTyp IN CGIItemType %]
-                                       [% IF ( CGIItemTyp.selected ) %]
-                                       <option value="[% CGIItemTyp.itemtype %]" selected="selected">[% CGIItemTyp.description %]</option>[% ELSE %]<option value="[% CGIItemTyp.itemtype %]">[% CGIItemTyp.description %]</option>[% END %]
-
-                                       [% END %]
+                    [% FOREACH itemtype IN itemtypes %]
+                        <option value="[% itemtype.itemtype %]">[% itemtype.translated_description %]</option>
+                    [% END %]
                                        </select>
                                </td>
                        </tr>
index 67d0a13..e6cb22f 100644 (file)
                 <td>
                     <select name="Filter" size="1" id="itemtypes">
                         <option value=""></option>
-                        [% FOREACH value IN ItemType.values %]
-                        <option value="[%- value -%]">[%- ItemType.labels.$value -%]</option>
+                        [% FOREACH itemtype IN itemtypes %]
+                        <option value="[%- itemtype.itemtype -%]">[%- itemtype.translated_description -%]</option>
                         [% END %]
                     </select>
                 </td>
index 689f262..014d5aa 100644 (file)
@@ -1,3 +1,4 @@
+[% USE ItemTypes %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Reports &rsaquo; Catalog by item types</title>
 [% INCLUDE 'doc-head-close.inc' %]
@@ -47,7 +48,7 @@ $(document).ready(function(){
                <tbody>
                        [% FOREACH loopitemtyp IN mainloo.loopitemtype %]
                                <tr>
-                                       <td>[% loopitemtyp.itemtype %]</td>
+                    <td>[% ItemTypes.GetDescription( loopitemtyp.itemtype ) %]</td>
                                        <td>[% loopitemtyp.count %]</td>
                                </tr>
                        [% END %]
index 5cadfbf..442cc25 100644 (file)
@@ -214,7 +214,7 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
         <li><span class="label">Collection title:</span>[% collectiontitle |html %]</li>
         <li><span class="label">Document type:</span>
             [% FOREACH itemtypeloo IN itemtypeloop %]
-                [% IF ( itemtypeloo.selected ) %][% itemtypeloo.description %][% END %]
+                [% IF ( itemtypeloo.selected ) %][% itemtypeloo.translated_description %][% END %]
             [% END %]
         </li>
         [% IF ( patron_reason_loop ) %]
@@ -339,7 +339,7 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
             <select id="itemtype" name="itemtype" >
             [% FOREACH itemtypeloo IN itemtypeloop %]
                 [% IF ( itemtypeloo.selected ) %]<option selected="selected" value="[% itemtypeloo.itemtype %]">[% ELSE %]<option value="[% itemtypeloo.itemtype %]">[% END %]
-                [% itemtypeloo.description %]</option>
+                [% itemtypeloo.translated_description %]</option>
             [% END %]
             </select>
         </li>
index 0fa588f..35ca0ca 100755 (executable)
@@ -521,7 +521,7 @@ my $itemtypes = GetItemTypes();
 my $itemtype = $dat->{'itemtype'};
 if ( $itemtype ) {
     $dat->{'imageurl'}    = getitemtypeimagelocation( 'opac', $itemtypes->{$itemtype}->{'imageurl'} );
-    $dat->{'description'} = $itemtypes->{$itemtype}->{'description'};
+    $dat->{'description'} = $itemtypes->{$itemtype}->{translated_description};
 }
 my $shelflocations =GetKohaAuthorisedValues('items.location',$dat->{'frameworkcode'}, 'opac');
 my $collections =  GetKohaAuthorisedValues('items.ccode',$dat->{'frameworkcode'}, 'opac');
@@ -647,7 +647,7 @@ if ( not $viewallitems and @items > $max_items_to_display ) {
     }
     if (exists $itm->{itype} && defined($itm->{itype}) && exists $itemtypes->{ $itm->{itype} }) {
         $itm->{'imageurl'}    = getitemtypeimagelocation( 'opac', $itemtypes->{ $itm->{itype} }->{'imageurl'} );
-        $itm->{'description'} = $itemtypes->{ $itm->{itype} }->{'description'};
+        $itm->{'description'} = $itemtypes->{ $itm->{itype} }->{translated_description};
     }
     foreach (qw(ccode enumchron copynumber itemnotes uri)) {
         $itemfields{$_} = 1 if ($itm->{$_});
index 9bb439f..58e3fd9 100755 (executable)
@@ -124,18 +124,7 @@ else {
     $req->execute;
     my $booksellers = $req->fetchall_arrayref({});
 
-    $req = $dbh->prepare("SELECT DISTINCTROW itemtype,description FROM itemtypes ORDER BY description");
-    $req->execute;
-    my @iselect;
-    my %iselect;
-    while ( my ( $value, $desc ) = $req->fetchrow ) {
-        push @iselect, $value;
-        $iselect{$value} = $desc;
-    }
-    my $ItemTypes = {
-        values  => \@iselect,
-        labels  => \%iselect,
-   };
+    my $itemtypes = GetItemTypes( style => 'array' );
 
     $req = $dbh->prepare("SELECT DISTINCTROW budget_code, budget_name FROM aqbudgets ORDER BY budget_name");
     $req->execute;
@@ -212,7 +201,7 @@ else {
 
     $template->param(
         booksellers   => $booksellers,
-        ItemTypes     => $ItemTypes,
+        itemtypes     => $itemtypes,
         Budgets       => $Budgets,
         hassort1      => $hassort1,
         hassort2      => $hassort2,
index b158b7b..eb5482d 100755 (executable)
@@ -123,9 +123,9 @@ foreach (sort keys %$branches) {
 
 my $itemtypes = GetItemTypes;
 my @itemtypeloop;
-foreach (sort {$itemtypes->{$a}->{description} cmp $itemtypes->{$b}->{description}} keys %$itemtypes) {
+foreach (sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys %$itemtypes) {
        my %row = (value => $_,
-               description => $itemtypes->{$_}->{description},
+               description => $itemtypes->{$_}->{translated_description},
               );
     push @itemtypeloop, \%row;
 }
index e5a4414..f88ff47 100755 (executable)
@@ -123,9 +123,9 @@ if ($do_it) {
     #doctype
     my $itemtypes = GetItemTypes;
     my @itemtypeloop;
-    foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'}} keys %$itemtypes) {
+    foreach my $thisitemtype ( sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys %$itemtypes) {
             my %row =(value => $thisitemtype,
-                      description => $itemtypes->{$thisitemtype}->{'description'},
+                      description => $itemtypes->{$thisitemtype}->{translated_description},
                             );
             push @itemtypeloop, \%row;
     }
index a4e40a9..efcfa7d 100755 (executable)
@@ -65,14 +65,14 @@ if ($do_it) {
 my $itemtypes = GetItemTypes();
 my @itemtypeloop;
 foreach (
-    sort { $itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} }
+    sort { $itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description} }
     keys %$itemtypes
   )
 {
     push @itemtypeloop,
       {
         value       => $_,
-        description => $itemtypes->{$_}->{'description'},
+        description => $itemtypes->{$_}->{translated_description},
       };
 }
 
index 5e7848d..c0b11da 100755 (executable)
@@ -146,9 +146,7 @@ if ($do_it) {
     my $hascote = 1;
     my $highcote = 5;
 
-       $req = $dbh->prepare("select itemtype, description from itemtypes order by description");
-       $req->execute;
-       my $CGIitemtype = $req->fetchall_arrayref({});
+    my $itemtypes = GetItemTypes( style => 'array' );
 
        my $authvals = GetKohaAuthorisedValues("items.ccode");
        my @authvals;
@@ -167,7 +165,7 @@ if ($do_it) {
        $template->param(hasdewey=>$hasdewey,
                                        haslccn   => $haslccn,
                                        hascote   => $hascote,
-                                       CGIItemType => $CGIitemtype,
+                    itemtypes => $itemtypes,
                                        CGIBranch    => GetBranchesLoop(C4::Context->userenv->{'branch'}),
                                        locationloop => \@locations,
                                        authvals     => \@authvals,
index 42cce71..f71ac48 100755 (executable)
@@ -134,20 +134,9 @@ if ($do_it) {
         values   => \@selectc,
         labels   => \%labelsc,
     };
-    
-    $req = $dbh->prepare( "select distinctrow itemtype,description from itemtypes order by description");
-    $req->execute;
-    my @selecti;
-    my %labelsi;
-    while (my ($value,$desc) =$req->fetchrow) {
-        push @selecti, $value;
-        $labelsi{$value}=$desc;
-    }
-    my $ItemTypes = {
-        values   => \@selecti,
-        labels    => \%labelsi,
-    };
-    
+
+    my $itemtypes = GetItemTypes( style => 'array' );
+
     $req = $dbh->prepare("select distinctrow sort1 from borrowers where sort1 is not null order by sort1");
     $req->execute;
     my @selects1;
@@ -178,7 +167,7 @@ if ($do_it) {
     
     $template->param(
                     BorCat       => $BorCat,
-                    ItemType     => $ItemTypes,
+                    itemtypes    => $itemtypes,
                     branchloop   => GetBranchesLoop(),
                     hassort1     => $hassort1,
                     hassort2     => $hassort2,
index 9b43244..568d6cc 100755 (executable)
@@ -133,8 +133,8 @@ my %select;
 
 # create itemtype arrayref for <select>.
 my @itemtypeloop;
-for my $itype ( sort {$itemtypes->{$a}->{description} cmp $itemtypes->{$b}->{description}} keys(%$itemtypes)) {
-       push @itemtypeloop, { code => $itype , description => $itemtypes->{$itype}->{description} } ;
+for my $itype ( sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys(%$itemtypes)) {
+    push @itemtypeloop, { code => $itype , description => $itemtypes->{$itype}->{translated_description} } ;
 }
 
     # location list
index b84dbc5..e208351 100755 (executable)
@@ -85,10 +85,10 @@ if ( $get_items ) {
 # getting all itemtypes
 my $itemtypes = &GetItemTypes();
 my @itemtypesloop;
-foreach my $thisitemtype ( sort {$itemtypes->{$a}->{description} cmp $itemtypes->{$b}->{description}} keys %$itemtypes ) {
+foreach my $thisitemtype ( sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys %$itemtypes ) {
     my %row = (
         value       => $thisitemtype,
-        description => $itemtypes->{$thisitemtype}->{'description'},
+        description => $itemtypes->{$thisitemtype}->{'translated_description'},
     );
     push @itemtypesloop, \%row;
 }
index 3f6c677..2da9a88 100755 (executable)
@@ -49,7 +49,7 @@ sub calculate {
        if ($branch) {
                if (C4::Context->preference('item-level_itypes')) {
                $sth = $dbh->prepare("
-        SELECT description, items.itype as itemtype, COUNT(*) AS total 
+        SELECT itemtype, description, items.itype as itemtype, COUNT(*) AS total
                        FROM itemtypes,items         
                WHERE items.itype=itemtypes.itemtype         
                AND items.holdingbranch=?            
@@ -59,7 +59,7 @@ sub calculate {
                }
                else {
                $sth = $dbh->prepare("
-               SELECT description, biblioitems.itemtype, COUNT(*) AS total 
+        SELECT itemtype, description, biblioitems.itemtype, COUNT(*) AS total
                        FROM itemtypes, biblioitems, items 
                WHERE biblioitems.itemtype=itemtypes.itemtype 
                AND items.biblioitemnumber=biblioitems.biblioitemnumber
@@ -71,14 +71,14 @@ sub calculate {
        } else {
                if (C4::Context->preference('item-level_itypes')) {
                $sth = $dbh->prepare("
-               SELECT description,items.itype AS itemtype, COUNT(*) AS total 
+        SELECT itemtype, description,items.itype AS itemtype, COUNT(*) AS total
                        FROM itemtypes,items
                WHERE items.itype=itemtypes.itemtype
                        GROUP BY items.itype
                        ORDER BY itemtypes.description");
                }
                else {
-               $sth = $dbh->prepare("SELECT description, biblioitems.itemtype, COUNT(*) AS total
+        $sth = $dbh->prepare("SELECT itemtype, description, biblioitems.itemtype, COUNT(*) AS total
                        FROM itemtypes, biblioitems,items 
                WHERE biblioitems.itemtype=itemtypes.itemtype 
                AND biblioitems.biblioitemnumber = items.biblioitemnumber
@@ -87,17 +87,17 @@ sub calculate {
                }
                $sth->execute;
        }
-       my ($description,$biblioitems,$total);
+    my ($itemtype, $description,$biblioitems,$total);
        my $grantotal = 0;
        my $count = 0;
-       while (($description,$biblioitems,$total) = $sth->fetchrow) {
+    while (($itemtype, $description,$biblioitems,$total) = $sth->fetchrow) {
                my %line;
                if($count % 2){
                        $line{toggle} = 1;
                        } else {
                                $line{toggle} = 0;
                        }
-               $line{itemtype} = $description;
+        $line{itemtype} = $itemtype;
                $line{count} = $total;
                $grantotal += $total;
                push @results,\%line;
index 18449f7..792a772 100755 (executable)
@@ -139,8 +139,8 @@ my %select;
 
 # create itemtype arrayref for <select>.
 my @itemtypeloop;
-for my $itype ( sort {$itemtypes->{$a}->{description} cmp $itemtypes->{$b}->{description}} keys(%$itemtypes)) {
-       push @itemtypeloop, { code => $itype , description => $itemtypes->{$itype}->{description} } ;
+for my $itype ( sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys(%$itemtypes)) {
+       push @itemtypeloop, { code => $itype , description => $itemtypes->{$itype}->{translated_description} } ;
 }
 
     # location list
index a674248..93b919a 100755 (executable)
@@ -487,7 +487,7 @@ else {
     foreach my $thisitemtype ( sort keys %$itemtypes ) {
         my %row = (
             value       => $thisitemtype,
-            description => $itemtypes->{$thisitemtype}->{'description'},
+            description => $itemtypes->{$thisitemtype}->{translated_description},
         );
         push @itemtypesloop, \%row;
     }