[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