summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2018-02-12 21:04:05 -0800
committerIvan Kohler <ivan@freeside.biz>2018-02-12 21:04:05 -0800
commit81e69f7d093e9df23e814e15ed35b6c6e6545ae7 (patch)
treeee1ee09796b05c79a4883524b8b97b5f5b4f03e5 /FS/FS/part_pkg.pm
parent00f058e191f1c2450fad45eecf31fb7b17fc4e76 (diff)
auto-create package class from string name on import, RT#79383
Diffstat (limited to 'FS/FS/part_pkg.pm')
-rw-r--r--FS/FS/part_pkg.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index bb8c6bc..4492c40 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -232,6 +232,19 @@ sub insert {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
+ if ( length($self->classnum) && $self->classnum !~ /^(\d+)$/ ) {
+ my $pkg_class = qsearchs('pkg_class', { 'classname' => $self->classnum } )
+ || new FS::pkg_class { classname => $self->classnum };
+ unless ( $pkg_class->classnum ) {
+ my $error = $pkg_class->insert;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+ $self->classnum( $pkg_class->classnum );
+ }
+
warn " inserting part_pkg record" if $DEBUG;
my $error = $self->SUPER::insert( $options{options} );
if ( $error ) {