X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fconfirm-cust_pkg-edit_dates.html;h=a0f79cdf0b5f96f2cf8d16a9d28b6346fd1e9839;hb=50fc1d226ec89bf5fb66622ee913ec9e470b8d6c;hp=27b9a82f4a971ac2bdc9a0eebc8dab58d5dcdcce;hpb=a65d16767bcaa1077be0f41568a4349c9db18990;p=freeside.git
diff --git a/httemplate/misc/confirm-cust_pkg-edit_dates.html b/httemplate/misc/confirm-cust_pkg-edit_dates.html
index 27b9a82f4..a0f79cdf0 100755
--- a/httemplate/misc/confirm-cust_pkg-edit_dates.html
+++ b/httemplate/misc/confirm-cust_pkg-edit_dates.html
@@ -2,15 +2,19 @@
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{$_};
@@ -63,7 +67,7 @@ if ( $hash{'setup'} != $cust_pkg->get('setup') ) {
} else {
push @confirm, '';
}
- } elsif ( $cust_pkg->get('setup') ) {
+ } elsif ( $hash{'setup'} and !$cust_pkg->get('setup') ) {
my $text = 'Add a setup date of [_1]';
$text .= ' to this and all its supplemental packages' if @supp_pkgs;
$text .= '.';
@@ -110,7 +114,7 @@ if ( $hash{'last_bill'} != $cust_pkg->get('last_bill') ) {
# Bill date change
if ( $hash{'bill'} != $cust_pkg->get('bill') ) {
my $bill = time2str($date_format, $hash{'bill'});
- $bill = 'the current day' if !$hash{'bill'}; # or 'the end of today'?...
+ $bill = 'today' if !$hash{'bill'}; # or 'the end of today'?...
my $name = 'next bill date';
$name = 'end of the prepaid period' if $part_pkg->is_prepaid;
push @changes, mt('Set the [_1] to [_2].', $name, $bill);
@@ -119,6 +123,12 @@ if ( $hash{'bill'} != $cust_pkg->get('bill') ) {
push @confirm,
mt('The customer will be charged for the interval from [_1] until now.',
$bill);
+ } elsif ( !$hash{'bill'} and ($hash{'last_bill'} or $hash{'setup'}) ) {
+ my $last_bill =
+ time2str($date_format, $hash{'last_bill'} || $hash{'setup'});
+ push @confirm,
+ mt('The customer will be charged for the interval from [_1] until now.',
+ $last_bill);
} else {
push @confirm, '';
}
@@ -256,6 +266,9 @@ if ( @errors ) {
% foreach (keys %hash) {
% }
+% if ($contract_only) {
+
+% }