my $pkgnum = $arg{'pkgnum'};
$pkgnum =~ /^\d+$/ or die "bad pkgnum '$pkgnum'";
my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
my %hash = $cust_pkg->hash;
my $pkgnum = $arg{'pkgnum'};
$pkgnum =~ /^\d+$/ or die "bad pkgnum '$pkgnum'";
my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
my %hash = $cust_pkg->hash;
# adjourn, expire, resume not editable this way
if( $arg{$_} =~ /^\d+$/ ) {
$hash{$_} = $arg{$_};
# adjourn, expire, resume not editable this way
if( $arg{$_} =~ /^\d+$/ ) {
$hash{$_} = $arg{$_};
my $text = 'Add a setup date of [_1]';
$text .= ' to this and all its supplemental packages' if @supp_pkgs;
$text .= '.';
my $text = 'Add a setup date of [_1]';
$text .= ' to this and all its supplemental packages' if @supp_pkgs;
$text .= '.';
# Bill date change
if ( $hash{'bill'} != $cust_pkg->get('bill') ) {
my $bill = time2str($date_format, $hash{'bill'});
# Bill date change
if ( $hash{'bill'} != $cust_pkg->get('bill') ) {
my $bill = time2str($date_format, $hash{'bill'});
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);
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);
+ } 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);