5 description => "Fix wrongly formatted values for monetary values in circulation rules",
8 my ( $dbh, $out ) = @$args{qw(dbh out)};
10 my $rules = $dbh->selectall_arrayref(
11 q|SELECT * FROM circulation_rules WHERE rule_name IN ('fine', 'overduefinescap', 'recall_overdue_fine', 'article_request_fee')|,
15 my $query = $dbh->prepare("UPDATE circulation_rules SET rule_value = ? WHERE id = ?");
18 for my $rule ( @{$rules} ) {
20 defined( $rule->{'branchcode'} ) ? $rule->{'branchcode'} : "All";
22 defined( $rule->{'categorycode'} )
23 ? $rule->{'categorycode'}
26 defined( $rule->{'itemtype'} ) ? $rule->{'itemtype'} : "All";
27 if ( !( $rule->{'rule_value'} =~ /^[0-9.]*$/ ) ) {
29 "Rule ID: $rule->{'id'} ($library-$category-$itemtype) \tRule: $rule->{'rule_name'}\tValue: $rule->{'rule_value'}\n";
34 "Circulation rules contain invalid monetary values:\n$error\nPlease fix these before you restart the update."
37 say $out "Circulation rules have been validated. All circulation rule values are correctly formatted.";