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,
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,
END;
$$ LANGUAGE PLPGSQL STRICT VOLATILE;
+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;
+ use MARC::Field;
+
+ my $field;
+ eval {
+ my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8');
+ $field = $marc->field($tag);
+ };
+ 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;
+