projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add safety check for existence of h_svc_* modules, #39779, #34107, #22009, #15902...
[freeside.git]
/
FS
/
FS
/
part_svc.pm
diff --git
a/FS/FS/part_svc.pm
b/FS/FS/part_svc.pm
index
518e847
..
08003dd
100644
(file)
--- a/
FS/FS/part_svc.pm
+++ b/
FS/FS/part_svc.pm
@@
-12,6
+12,11
@@
use FS::export_svc;
use FS::cust_svc;
use FS::part_svc_class;
use FS::cust_svc;
use FS::part_svc_class;
+FS::UID->install_callback(sub {
+ # preload the cache and make sure all modules load
+ my $svc_defs = FS::part_svc->_svc_defs;
+});
+
$DEBUG = 0;
=head1 NAME
$DEBUG = 0;
=head1 NAME
@@
-649,9
+654,17
@@
sub _svc_defs {
next;
}
$info{$mod} = $info;
next;
}
$info{$mod} = $info;
+
+ # all svc_* modules are required to have h_svc_* modules for invoice
+ # display. check for them as early as possible.
+ eval "use FS::h_$mod;";
+ if ( $@ ) {
+ die "couldn't load history record module h_$mod: $@\n";
+ }
}
}
}
}
+
tie my %svc_defs, 'Tie::IxHash',
map { $_ => $info{$_}->{'fields'} }
sort { $info{$a}->{'display_weight'} <=> $info{$b}->{'display_weight'} }
tie my %svc_defs, 'Tie::IxHash',
map { $_ => $info{$_}->{'fields'} }
sort { $info{$a}->{'display_weight'} <=> $info{$b}->{'display_weight'} }