summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2011-08-11 00:39:00 +0000
committerivan <ivan>2011-08-11 00:39:00 +0000
commitd3e18527e2fa36b7b7fe7b8b0a5906caae3cb8de (patch)
tree07d4d1dc02ba4c8bea9dad8866e1a57a09c4c268 /FS
parent0534412bf84b022fe23f9231cb66424b7f6033df (diff)
hide start date on package order for specific package definitions, RT#13783
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_pkg.pm2
-rw-r--r--FS/FS/part_pkg.pm2
-rw-r--r--FS/FS/part_pkg/delayed_Mixin.pm6
-rw-r--r--FS/FS/part_pkg/flat.pm2
4 files changed, 9 insertions, 3 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 740561771..c2b3c04b5 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -284,7 +284,7 @@ sub insert {
}
my $free_days = $part_pkg->option('free_days');
- if ( $free_days && $part_pkg->option('delay_setup') ) { #&& !$self->start_date
+ if ( $free_days && $part_pkg->option('delay_setup',1) ) { #&& !$self->start_date
my ($mday,$mon,$year) = (localtime(time) )[3,4,5];
#my $start_date = ($self->start_date || timelocal(0,0,0,$mday,$mon,$year)) + 86400 * $free_days;
my $start_date = timelocal(0,0,0,$mday,$mon,$year) + 86400 * $free_days;
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index f658dcf99..03239aeff 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -798,6 +798,8 @@ sub is_free {
sub can_discount { 0; }
+sub can_start_date { 1; }
+
sub freqs_href {
# moved to FS::Misc to make this accessible to other packages
# at initialization
diff --git a/FS/FS/part_pkg/delayed_Mixin.pm b/FS/FS/part_pkg/delayed_Mixin.pm
index 027cfff06..4228a4a3d 100644
--- a/FS/FS/part_pkg/delayed_Mixin.pm
+++ b/FS/FS/part_pkg/delayed_Mixin.pm
@@ -25,7 +25,7 @@ use vars qw(%info);
sub calc_setup {
my($self, $cust_pkg, $time ) = @_;
- unless ( $self->option('delay_setup') ) {
+ unless ( $self->option('delay_setup', 1) ) {
my $d = $cust_pkg->bill || $time;
$d += 86400 * $self->option('free_days');
$cust_pkg->bill($d);
@@ -37,7 +37,7 @@ sub calc_setup {
sub calc_remain {
my ($self, $cust_pkg, %options) = @_;
- unless ( $self->option('delay_setup') ) {
+ unless ( $self->option('delay_setup', 1) ) {
my $last_bill = $cust_pkg->last_bill || 0;
my $next_bill = $cust_pkg->getfield('bill') || 0;
my $free_days = $self->option('free_days');
@@ -49,4 +49,6 @@ sub calc_remain {
return $self->SUPER::calc_remain($cust_pkg, %options);
}
+sub can_start_date { ! shift->option('delay_setup', 1) }
+
1;
diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm
index 4566c87ce..c1d1f56b2 100644
--- a/FS/FS/part_pkg/flat.pm
+++ b/FS/FS/part_pkg/flat.pm
@@ -196,6 +196,8 @@ sub is_free_options {
sub is_prepaid { 0; } #no, we're postpaid
+sub can_start_date { ! shift->option('start_1st', 1) }
+
#XXX discounts only on recurring fees for now (no setup/one-time or usage)
sub can_discount {
my $self = shift;