From 900ac9f6aadc3908d1179bd988e58e9ca27a1964 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 31 Jan 2004 06:33:47 +0000 Subject: add pkg_svc.primary_svc flag to enable an explicit first package flag --- httemplate/edit/part_pkg.cgi | 30 ++++++++++++++++++++++-------- httemplate/edit/process/part_pkg.cgi | 16 ++++++++++++---- 2 files changed, 34 insertions(+), 12 deletions(-) (limited to 'httemplate/edit') diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 7f7b2b0d4..9271222ad 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -152,9 +152,11 @@ print ' CHECKED' if $hashref->{disabled} eq "Y"; print '>'; print ''; -my $thead = "\n\n". ntable('#cccccc', 2). <Quan.Service -END +my $thead = "\n\n". ntable('#cccccc', 2). + 'Quan.'; +$thead .= 'Primary' + if dbdef->table('pkg_svc')->column('primary_svc'); +$thead .= 'Service'; #unless ( $cgi->param('clone') ) { #dunno why... @@ -176,9 +178,10 @@ foreach my $part_svc ( @part_svc ) { 'pkgpart' => $pkgpart, 'svcpart' => $svcpart, } ) || new FS::pkg_svc ( { - 'pkgpart' => $pkgpart, - 'svcpart' => $svcpart, - 'quantity' => 0, + 'pkgpart' => $pkgpart, + 'svcpart' => $svcpart, + 'quantity' => 0, + 'primary_svc' => '', }); #? #next unless $pkg_svc; @@ -190,7 +193,13 @@ foreach my $part_svc ( @part_svc ) { print ''; # if $count == 0 ; print qq!quantity || 0, - qq!">!; + if ( dbdef->table('pkg_svc')->column('primary_svc') ) { + print qq!primary_svc =~ /^Y/i; + print '>'; + } + print qq!!, $part_svc->getfield('svc'), ""; # print "$thead" if ++$count == int(scalar(@part_svc) / 2); $count+=1; @@ -488,6 +497,10 @@ if ( $conf->exists('enable_taxclasses') ) { push @fixups, 'taxclass'; #hidden } +my @form_radio = (); +if ( dbdef->table('pkg_svc')->column('primary_svc') ) { + push @form_radio, 'pkg_svc_primary'; +} my $widget = new HTML::Widgets::SelectLayers( 'selected_layer' => $part_pkg->plan, @@ -496,7 +509,8 @@ my $widget = new HTML::Widgets::SelectLayers( 'form_action' => 'process/part_pkg.cgi', 'form_text' => [ qw(pkg comment freq clone pkgnum pkgpart), @fixups ], 'form_checkbox' => [ qw(setuptax recurtax disabled) ], - 'form_select' => [ @form_select ], + 'form_radio' => \@form_radio, + 'form_select' => \@form_select, 'fixup_callback' => sub { #my $ = @_; my $html = ''; diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index d489426f9..7eada7bc8 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -62,16 +62,24 @@ if ( $error ) { 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); -- cgit v1.2.1