added autocomplete="off"
[koha.git] / C4 / ClassSource.pm
index 8d8478d..5d76497 100644 (file)
@@ -13,14 +13,16 @@ package C4::ClassSource;
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 use strict;
+use warnings;
+
 require Exporter;
 use C4::Context;
-use C4::Koha;
+use C4::ClassSortRoutine;
 
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
@@ -47,18 +49,20 @@ sources and sorting rules.
 
 @ISA    = qw(Exporter);
 @EXPORT = qw(
-   &GetClassSources
-   &AddClassSource
-   &GetClassSource
-   &ModClassSource
-   &DelClassSource
-   &GetClassSortRules
-   &AddClassSortRule
-   &GetClassSortRule
-   &ModClassSortRule
-   &DelClassSortRule
+    &GetClassSources
+    &AddClassSource
+    &GetClassSource
+    &ModClassSource
+    &DelClassSource
+    &GetClassSortRules
+    &AddClassSortRule
+    &GetClassSortRule
+    &ModClassSortRule
+    &DelClassSortRule
   
-   &GetSourcesForSortRule
+    &GetSourcesForSortRule
+    &GetClassSort
+    
 );
 
 =head2 GetClassSources
@@ -183,22 +187,22 @@ sub DelClassSource {
 
   my $sort_rules = GetClassSortRules();
 
-  Returns reference to hash of references to
-  the class sorting rules, keyed on class_sort_rule
-  
+Returns reference to hash of references to
+the class sorting rules, keyed on class_sort_rule
+
 =head3 Example
 
-my $sort_rules = GetClassSortRules();
-my @sort_rules = ();
-foreach my $sort_rule (sort keys %$sort_rules) {
-    my $sort_rule = $sort_rules->{$sort_rule};
-    push @sort_rules,
-      {
-        rule        => $sort_rule->{'class_sort_rule'},
-        description => $sort_rule->{'description'},
-        sort_routine    => $sort_rule->{'sort_routine'}
+  my $sort_rules = GetClassSortRules();
+  my @sort_rules = ();
+  foreach my $sort_rule (sort keys %$sort_rules) {
+      my $sort_rule = $sort_rules->{$sort_rule};
+      push @sort_rules,
+          {
+          rule        => $sort_rule->{'class_sort_rule'},
+          description => $sort_rule->{'description'},
+          sort_routine    => $sort_rule->{'sort_routine'}
       }
-}
+   }
 
 =cut
 
@@ -320,10 +324,39 @@ sub GetSourcesForSortRule {
 
 }
 
+=head2 GetClassSort
+
+  my $cn_sort = GetClassSort($cn_source, $cn_class, $cn_item);
+
+Get the sort key corresponding to the classification part and item part
+and the defined call number source.
+
+=cut
+
+sub GetClassSort {
+
+    my ($cn_source, $cn_class, $cn_item) = @_;
+
+    my $source_ref = GetClassSource($cn_source);
+    unless (defined $source_ref) {
+        $source_ref = GetClassSource(C4::Context->preference("DefaultClassificationSource"));
+    }
+    my $routine = "";
+    if (defined $source_ref) {
+        my $rule_ref = GetClassSortRule($source_ref->{'class_sort_rule'});
+        if (defined $rule_ref) {
+            $routine = $rule_ref->{'sort_routine'};
+        }
+    } 
+
+    return GetClassSortKey($routine, $cn_class, $cn_item);
+
+}
+
 1;
 
 =head1 AUTHOR
 
-Koha Developement team <info@koha.org>
+Koha Development Team <http://koha-community.org/>
 
 =cut