# 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);
@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
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
}
+=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