diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-09-14 14:53:22 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-09-14 14:53:22 -0700 |
commit | 31234485e8baf227ae4b013d4104d947c3afa250 (patch) | |
tree | 4403078041d21c4bc178ec89d49d7680eb2f63f3 | |
parent | e7c2e62ad9e8bbcf6d5c9f2a19c9de77f2a71e64 (diff) |
add quantity, setup and recur to package import, RT#76992
-rw-r--r-- | FS/FS/cust_pkg/Import.pm | 28 | ||||
-rw-r--r-- | httemplate/misc/cust_pkg-import.html | 17 |
2 files changed, 37 insertions, 8 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 ); + } + + ''; }, diff --git a/httemplate/misc/cust_pkg-import.html b/httemplate/misc/cust_pkg-import.html index ac25e9314..6fdaea157 100644 --- a/httemplate/misc/cust_pkg-import.html +++ b/httemplate/misc/cust_pkg-import.html @@ -48,9 +48,9 @@ Import a file containing customer packages. <OPTION VALUE="location">Location <OPTION VALUE="location-agent_custid">Location with agent_custid <OPTION VALUE="location-agent_custid-agent_pkgid">Location with agent_custid and agent_pkgid - <OPTION VALUE="location-svc_phone">Location with phone service - <OPTION VALUE="location-svc_phone-agent_custid">Location with phone service and agent_custid - <OPTION VALUE="location-svc_phone-agent_custid-agent_pkgid">Location with phone service and agent_custid and agent_pkgid + <OPTION VALUE="location-quan_price-svc_phone">Location, quantity and price customizations with phone service + <OPTION VALUE="location-quan_price-svc_phone-agent_custid">Location, quantity and price customizations with phone service and agent_custid + <OPTION VALUE="location-quan_price-svc_phone-agent_custid-agent_pkgid">Location, quantity and price customizations with phone service and agent_custid and agent_pkgid </SELECT> </TD> </TR> @@ -153,28 +153,31 @@ address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$ </i> <BR><BR> -<b>Location with phone service</b> format has the following field order: <i>custnum<%$req%>, +<b>Location, quantity and price customizations with phone service</b> format has the following field order: <i>custnum<%$req%>, pkgpart<%$req%>, discountnum, start_date, setup, bill, last_bill, susp, adjourn, cancel, expire, +quantity, setup_fee, recur_fee, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin </i> <BR><BR> -<b>Location with phone service and agent_custid</b> format has the following field order: <i>agent_custid<%$req%>, +<b>Location, quantity and price customizations with phone service and agent_custid</b> format has the following field order: <i>agent_custid<%$req%>, pkgpart<%$req%>, discountnum, start_date, setup, bill, last_bill, susp, adjourn, cancel, expire, +quantity, setup_fee, recur_fee, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin </i> <BR><BR> -<b>Location with phone service and agent_custid and agent_pkgid</b> format has the following field order: <i>agent_custid<%$req%>, agent_pkgid, +<b>Location, quantity and price customizations with phone service and agent_custid and agent_pkgid</b> format has the following field order: <i>agent_custid<%$req%>, agent_pkgid, pkgpart<%$req%>, discountnum, start_date, setup, bill, last_bill, susp, adjourn, cancel, expire, +quantity, setup_fee, recur_fee, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin </i> <BR><BR> -<%$req%> Required fields +<%$req%> Required fields (for address fields, required if an address is specified) <BR><BR> Field information: |