X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fbulk-part_pkg.html;h=4153ffc13f8360cfb9fa5c95ef89e65d5a0c24d7;hp=bc5137cdd2956aacd9e353591274db464942996b;hb=3f2a7b01b59902faed5767d81e2959e131bdbdfd;hpb=b3f963a85180a0840a7ae7406bf869fd2a2a70b2 diff --git a/httemplate/edit/process/bulk-part_pkg.html b/httemplate/edit/process/bulk-part_pkg.html index bc5137cdd..4153ffc13 100644 --- a/httemplate/edit/process/bulk-part_pkg.html +++ b/httemplate/edit/process/bulk-part_pkg.html @@ -1,35 +1,54 @@ -% if ( $error ) { -% $cgi->param('error', $error); -<% $cgi->redirect(popurl(3).'/edit/bulk-part_pkg.html?', $cgi->query_string) %> -% } else { -<% $cgi->redirect(popurl(3).'/browse/part_pkg.cgi') %> -% } +<& /elements/popup-topreload.html, emt($message) &> + <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Bulk edit package definitions'); my @pkgparts = $cgi->param('pkgpart') or die "no package definitions selected"; -my %delete = map { 'report_option_'.($_->num) => 1 } - qsearch('part_pkg_report_option', {}); -my %insert; - -foreach my $param (grep { /^report_option_\d+$/ } $cgi->param) { - if ( $cgi->param($param) == 1 ) { - $insert{$param} = 1; - delete $delete{$param}; - } elsif ( $cgi->param($param) == -1 ) { - # leave it alone - delete $delete{$param}; - } # else it's empty, so leave it on the delete list +my $error; + +if ($cgi->param('report_class')) { + my %delete = map { 'report_option_'.($_->num) => 1 } + qsearch('part_pkg_report_option', {}); + my %insert; + + foreach my $param (grep { /^report_option_\d+$/ } $cgi->param) { + if ( $cgi->param($param) == 1 ) { + $insert{$param} = 1; + delete $delete{$param}; + } elsif ( $cgi->param($param) == -1 ) { + # leave it alone + delete $delete{$param}; + } # else it's empty, so leave it on the delete list + } + + foreach my $pkgpart (@pkgparts) { + my $part_pkg = FS::part_pkg->by_key($pkgpart); + my %options = ( $part_pkg->options, %insert ); + delete $options{$_} foreach keys(%delete); + $error ||= $part_pkg->replace( options => \%options ); + } } +if ($cgi->param('pricing')) { + my $setup_fee_increase = $cgi->param('setup_fee_increase'); + my $recurring_fee_increase = $cgi->param('recurring_fee_increase'); -my $error; -foreach my $pkgpart (@pkgparts) { - my $part_pkg = FS::part_pkg->by_key($pkgpart); - my %options = ( $part_pkg->options, %insert ); - delete $options{$_} foreach keys(%delete); - $error ||= $part_pkg->replace( options => \%options ); + foreach my $pkgpart (@pkgparts) { + my $part_pkg = FS::part_pkg->by_key($pkgpart); + my %options = $part_pkg->options; + if ($recurring_fee_increase) { + $options{'recur_fee'} = $options{'recur_fee'} + ($options{'recur_fee'} * ($recurring_fee_increase / 100)); + } + if ($setup_fee_increase) { + $options{'setup_fee'} = $options{'setup_fee'} + ($options{'setup_fee'} * ($setup_fee_increase / 100)); + } + $error ||= $part_pkg->replace( options => \%options ); + } } + +my $message = "Packages updated successfully"; +$message = $error."=error" if $error; +