[freeside-commits] branch master updated. 72a0a28efb317980aeec19462f197052c44a0e68
Ivan
ivan at 420.am
Tue Oct 24 17:09:52 PDT 2017
The branch, master has been updated
via 72a0a28efb317980aeec19462f197052c44a0e68 (commit)
from 64603c878f75796eb105aabd45eaa230f0ea5c22 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 72a0a28efb317980aeec19462f197052c44a0e68
Author: Ivan Kohler <ivan at freeside.biz>
Date: Tue Oct 24 17:09:51 2017 -0700
fix package import custom pricing vs. services, RT#78291, RT#76992
diff --git a/FS/FS/cust_pkg/Import.pm b/FS/FS/cust_pkg/Import.pm
index b827bcf..93bd88d 100644
--- a/FS/FS/cust_pkg/Import.pm
+++ b/FS/FS/cust_pkg/Import.pm
@@ -121,7 +121,6 @@ my %import_options = (
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,
});
@@ -145,6 +144,9 @@ warn join('-', @location_params);
or ( length($r) && $r != $part_pkg->option('recur_fee') )
)
{
+
+ local($FS::part_pkg::skip_pkg_svc_hack) = 1;
+
my $custom_part_pkg = $part_pkg->clone;
$custom_part_pkg->disabled('Y');
my %options = $part_pkg->options;
@@ -152,6 +154,16 @@ warn join('-', @location_params);
$options{'recur_fee'} = $r if length($r);
my $error = $custom_part_pkg->insert( options=>\%options );
return "error customizing package: $error" if $error;
+
+ #not ->pkg_svc, we want to ignore links and clone the actual package def
+ foreach my $pkg_svc ( $part_pkg->_pkg_svc ) {
+ my $c_pkg_svc = new FS::pkg_svc { $pkg_svc->hash };
+ $c_pkg_svc->pkgsvcnum('');
+ $c_pkg_svc->pkgpart( $custom_part_pkg->pkgpart );
+ my $error = $c_pkg_svc->insert;
+ return "error customizing package: $error" if $error;
+ }
+
$record->pkgpart( $custom_part_pkg->pkgpart );
}
@@ -187,6 +199,7 @@ warn join('-', @location_params);
my $ff = $formatfields->{$svc_x};
if ( grep $param->{"$svc_x.$_"}, @$ff ) {
+
my $svc = "FS::$svc_x"->new( {
'pkgnum' => $record->pkgnum,
'svcpart' => $record->part_pkg->svcpart($svc_x),
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_pkg/Import.pm | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
More information about the freeside-commits
mailing list