%}
<%init>
-die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Edit package definitions')
- || $FS::CurrentUser::CurrentUser->access_right('Edit global package definitions');
-
my $dbh = dbh;
my $conf = new FS::Conf;
!$pkgpart && $conf->exists('agent-defaultpkg')
);
+$cgi->param('tax_override') =~ /^([\d,]+)$/;
+my (@tax_overrides) = (grep "$_", split (",", $1));
+
my $new = new FS::part_pkg ( {
map {
$_ => scalar($cgi->param($_));
map { $_->svcpart }
qsearch('part_svc', {} );
+my $curuser = $FS::CurrentUser::CurrentUser;
+
my $custnum = '';
if ( $error ) {
} elsif ( $pkgpart ) {
+ die "access denied"
+ unless $curuser->access_right('Edit package definitions')
+ || $curuser->access_right('Edit global package definitions');
+
$error = $new->replace( $old,
pkg_svc => \%pkg_svc,
primary_svc => scalar($cgi->param('pkg_svc_primary')),
);
} else {
+ die "access denied"
+ unless $curuser->access_right('Edit package definitions')
+ || $curuser->access_right('Edit global package definitions')
+ || ( $cgi->param('pkgnum') && $curuser->access_right('Customize customer package') );
+
$error = $new->insert( pkg_svc => \%pkg_svc,
primary_svc => scalar($cgi->param('pkg_svc_primary')),
cust_pkg => $cgi->param('pkgnum'),
}
unless ( $error || $conf->exists('agent_defaultpkg') ) {
- my $error = $new->process_m2m(
+ $error = $new->process_m2m(
'link_table' => 'type_pkgs',
'target_table' => 'agent_type',
'params' => \@agents,
);
}
-</%init>
+unless ( $error ) {
+ $error = $new->process_m2m(
+ 'link_table' => 'part_pkg_taxoverride',
+ 'target_table' => 'tax_rate',
+ 'params' => \@tax_overrides,
+ );
+}
+</%init>