make migration_tools.apply_circ_matrix_to_specific_circ use the more recent apply_cir...
[migration-tools.git] / sql / base / base.sql
index 896a566..6a46f22 100644 (file)
@@ -1253,10 +1253,10 @@ BEGIN
       INTO this_duration_rule,
            this_fine_rule,
            this_max_fine_rule
-      duration_rule,
-      recurring_fine_rule,
-      max_fine_rule
-      FROM action.item_user_circ_test(
+      (matchpoint).duration_rule,
+      (matchpoint).recurring_fine_rule,
+      (matchpoint).max_fine_rule
+      FROM action.find_circ_matrix_matchpoint(
         circ_lib,
         target_copy,
         usr,
@@ -1282,7 +1282,8 @@ BEGIN
           WHEN TRUE THEN (rmf.amount / 100.0) * ac.price
           ELSE rmf.amount
         END,
-      renewal_remaining = rcd.max_renewals
+      renewal_remaining = rcd.max_renewals,
+      grace_period = rrf.grace_period
     FROM
       config.rule_circ_duration rcd,
       config.rule_recurring_fine rrf,
@@ -2124,8 +2125,8 @@ CREATE OR REPLACE FUNCTION migration_tools.duplicate_template (INTEGER, INTEGER[
     END;
 $$ LANGUAGE PLPGSQL STRICT VOLATILE;
 
-CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT) RETURNS TEXT AS $$
-    my ($marcxml, $tag, $subfield) = @_;
+CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT, TEXT) RETURNS TEXT AS $$
+    my ($marcxml, $tag, $subfield, $delimiter) = @_;
 
     use MARC::Record;
     use MARC::File::XML;
@@ -2136,6 +2137,25 @@ CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT) RETUR
         my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8');
         $field = $marc->field($tag);
     };
-    return $field->as_string($subfield);
+    return $field->as_string($subfield,$delimiter);
+$$ LANGUAGE PLPERLU STABLE;
+
+CREATE OR REPLACE FUNCTION migration_tools.get_marc_tags (TEXT, TEXT, TEXT, TEXT) RETURNS TEXT[] AS $$
+    my ($marcxml, $tag, $subfield, $delimiter) = @_;
+
+    use MARC::Record;
+    use MARC::File::XML;
+    use MARC::Field;
+
+    my @fields;
+    eval {
+        my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8');
+        @fields = $marc->field($tag);
+    };
+    my @texts;
+    foreach my $field (@fields) {
+        push @texts, $field->as_string($subfield,$delimiter);
+    }
+    return \@texts;
 $$ LANGUAGE PLPERLU STABLE;