my $curuser = $FS::CurrentUser::CurrentUser;
die "access denied"
- unless $curuser->access_right('Edit customer package dates');
+ unless $curuser->access_right('Edit customer package dates')
+ or $curuser->access_right('Change package contract end date');
my %arg = $cgi->Vars;
+my $contract_only = $curuser->access_right('Edit customer package dates') ? 0 : 1;
+$contract_only = 1 if $arg{'contract_only'};
+
my $pkgnum = $arg{'pkgnum'};
$pkgnum =~ /^\d+$/ or die "bad pkgnum '$pkgnum'";
my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
my %hash = $cust_pkg->hash;
-foreach (qw( start_date setup bill last_bill contract_end )) {
+foreach ( $contract_only ? qw( contract_end ) : qw( start_date setup bill last_bill contract_end )) {
# adjourn, expire, resume not editable this way
if( $arg{$_} =~ /^\d+$/ ) {
$hash{$_} = $arg{$_};
% foreach (keys %hash) {
<INPUT TYPE="hidden" NAME="<%$_%>" VALUE="<% $hash{$_} |h%>">
% }
+% if ($contract_only) {
+<INPUT TYPE="hidden" NAME="contract_only" VALUE="1">
+% }
</FORM>
<SCRIPT>
function submit_ready() {