X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fpart_pkg.cgi;h=7eada7bc88ea9730a14eed6cf56e41ddecf660c5;hb=eb9668a6f3181ee02cb335272c5ee4616e61fd09;hp=5240d8cc2f2672d79271d8f3ff2baf21b0f27563;hpb=0bdec843e4a9bb7f947c9ba980a40f7bf37020fb;p=freeside.git diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index 5240d8cc2..7eada7bc8 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -1,4 +1,3 @@ - <% my $dbh = dbh; @@ -11,7 +10,7 @@ my $old = qsearchs('part_pkg',{'pkgpart'=>$pkgpart}) if $pkgpart; my $plandata = $cgi->param('plandata'); my @plandata = split(',', $plandata); $cgi->param('plandata', - join('', map { "$_=". $cgi->param($_). "\n" } @plandata ) + join('', map { "$_=". join(', ', $cgi->param($_)). "\n" } @plandata ) ); foreach (qw( setuptax recurtax disabled )) { @@ -61,18 +60,26 @@ if ( $error ) { myexit(); } -foreach $part_svc (qsearch('part_svc',{})) { +foreach my $part_svc (qsearch('part_svc',{})) { my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0; + my $primary_svc = + $cgi->param('pkg_svc_primary') == $part_svc->svcpart ? 'Y' : ''; my $old_pkg_svc = qsearchs('pkg_svc', { 'pkgpart' => $pkgpart, 'svcpart' => $part_svc->svcpart, } ); my $old_quantity = $old_pkg_svc ? $old_pkg_svc->quantity : 0; - next unless $old_quantity != $quantity; #!here + my $old_primary_svc = + ( $old_pkg_svc && $old_pkg_svc->dbdef_table->column('primary_svc') ) + ? $old_pkg_svc->primary_svc + : ''; + next unless $old_quantity != $quantity || $old_primary_svc ne $primary_svc; + my $new_pkg_svc = new FS::pkg_svc( { - 'pkgpart' => $pkgpart, - 'svcpart' => $part_svc->svcpart, - 'quantity' => $quantity, + 'pkgpart' => $pkgpart, + 'svcpart' => $part_svc->svcpart, + 'quantity' => $quantity, + 'primary_svc' => $primary_svc, } ); if ( $old_pkg_svc ) { my $myerror = $new_pkg_svc->replace($old_pkg_svc);