summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-09-14 14:53:22 -0700
committerIvan Kohler <ivan@freeside.biz>2017-09-14 14:53:22 -0700
commit31234485e8baf227ae4b013d4104d947c3afa250 (patch)
tree4403078041d21c4bc178ec89d49d7680eb2f63f3 /FS
parente7c2e62ad9e8bbcf6d5c9f2a19c9de77f2a71e64 (diff)
add quantity, setup and recur to package import, RT#76992
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_pkg/Import.pm28
1 files changed, 27 insertions, 1 deletions
diff --git a/FS/FS/cust_pkg/Import.pm b/FS/FS/cust_pkg/Import.pm
index 96c6272b7..2467e6fde 100644
--- a/FS/FS/cust_pkg/Import.pm
+++ b/FS/FS/cust_pkg/Import.pm
@@ -105,6 +105,7 @@ my %formatfields = (
'svc_phone' => [qw( countrycode phonenum sip_password pin )],
'svc_external' => [qw( id title )],
'location' => [qw( address1 address2 city state zip country )],
+ 'quan_price' => [qw( quantity setup_fee recur_fee )],
);
sub _formatfields {
@@ -116,8 +117,11 @@ my %import_options = (
'preinsert_callback' => sub {
my($record, $param) = @_;
- my @location_params = grep /^location\./, keys %$param;
+
+ my @location_params = grep { /^location\./ && length($param->{$_}) }
+ keys %$param;
if (@location_params) {
+warn join('-', @location_params);
my $cust_location = FS::cust_location->new({
'custnum' => $record->custnum,
});
@@ -130,6 +134,28 @@ my %import_options = (
return "error creating location: $error" if $error;
$record->set('locationnum', $cust_location->locationnum);
}
+
+ $record->quantity( $param->{'quan_price.quantity'} )
+ if $param->{'quan_price.quantity'} > 0;
+
+ my $s = $param->{'quan_price.setup_fee'};
+ my $r = $param->{'quan_price.recur_fee'};
+ my $part_pkg = $record->part_pkg;
+ if ( ( $s && $s != $part_pkg->option('setup_fee') )
+ or ( $r && $r != $part_pkg->option('recur_fee') )
+ )
+ {
+ my $custom_part_pkg = $part_pkg->clone;
+ $custom_part_pkg->disabled('Y');
+ my %options = $part_pkg->options;
+ $options{'setup_fee'} = $s if $s;
+ $options{'recur_fee'} = $r if $r;
+ my $error = $custom_part_pkg->insert( options=>\%options );
+ return "error customizing package: $error" if $error;
+ $record->pkgpart( $custom_part_pkg->pkgpart );
+ }
+
+
'';
},