diff options
-rw-r--r-- | FS/FS/part_event/Condition/billday.pm | 23 | ||||
-rw-r--r-- | httemplate/edit/cust_main/billing.html | 29 |
2 files changed, 36 insertions, 16 deletions
diff --git a/FS/FS/part_event/Condition/billday.pm b/FS/FS/part_event/Condition/billday.pm index e067f87f7..7cd74a1f9 100644 --- a/FS/FS/part_event/Condition/billday.pm +++ b/FS/FS/part_event/Condition/billday.pm @@ -9,22 +9,37 @@ sub description { "Customer's monthly billing day is before or on current day or customer has no billing day"; } +sub option_fields { + ( + 'delay' => { label => 'Delay additional days', + type => 'text', + value => '1', + }, + ); +} + + sub condition { my( $self, $object ) = @_; my $cust_main = $self->cust_main($object); my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + + my $delay = $self->option('delay'); + $delay = 0 unless length($delay); - (!$cust_main->billday) || ($mday >= $cust_main->billday); + (!$cust_main->billday) || ($mday >= $cust_main->billday + $delay); } sub condition_sql { - my( $self, $table ) = @_; + my( $class, $table, %opt ) = @_; my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); - - "cust_main.billday is null or $mday >= cust_main.billday"; + + my $delay = $class->condition_sql_option_integer('delay', $opt{'driver_name'}); + + "cust_main.billday is null or $mday >= (cust_main.billday + $delay)"; } 1; diff --git a/httemplate/edit/cust_main/billing.html b/httemplate/edit/cust_main/billing.html index 57c0e523b..d6995af05 100644 --- a/httemplate/edit/cust_main/billing.html +++ b/httemplate/edit/cust_main/billing.html @@ -106,10 +106,10 @@ var f = (payauto_field.name == 'CARD_payauto') ? 'card_billday' : 'chek_billday'; f = document.getElementById(f); if ( f == null) return; - if(payauto_field.checked) f.style.display = 'inline'; + if(payauto_field.checked) f.style.display = ''; else f.style.display = 'none'; } - + </SCRIPT> <& /elements/init_overlib.html &> @@ -144,8 +144,9 @@ % } % $ret; % } -% my $billday_card_display = $payby eq 'CARD' ? 'inline' : 'none'; -% my $billday_chek_display = $payby eq 'CHEK' ? 'inline' : 'none'; +% +% my $card_billday_style = $payby eq 'CARD' ? '' : 'style="display: none"'; +% my $chek_billday_style = $payby eq 'CHEK' ? '' : 'style="display: none"'; % % my %payby = ( % @@ -197,16 +198,18 @@ % qq!<TR><TD ALIGN="right" WIDTH="200">${r}!.emt('Exact name on card').qq! </TD>!. % qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="CARD_payname" VALUE="!. ( $payby =~ /^(CARD|DCRD)$/ ? $cust_main->payname : '' ). qq!"></TD></TR>!. % -% qq!<TR><TD COLSPAN=2 WIDTH="608"><INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CARD_payauto" NAME="CARD_payauto" $CARD_payauto_checked> !.emt('Charge future payments to this [_1] automatically','credit card').qq!</TD></TR>!. +% qq!<TR><TD COLSPAN=2 WIDTH="608">!. +% qq!<INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CARD_payauto" NAME="CARD_payauto" $CARD_payauto_checked> !. +% emt('Charge future payments to this [_1] automatically','credit card'). % % ( $conf->exists('cust_main-select-billday') ? -% qq!<TR><TD COLSPAN="2" id="card_billday" style="display: $billday_card_display"> +% qq!<BR><DIV id="card_billday" $card_billday_style> % Charge on this day of each month <SELECT NAME="billday">! -% . billday_options($cust_main->billday) . qq!</SELECT> </TD></TR>! +% . billday_options($cust_main->billday) . qq!</SELECT> </DIV>! % : '' % ). % -% '</TABLE>', +% '</TD></TR></TABLE>', % % 'CHEK' => % @@ -242,16 +245,18 @@ % ). % % -% qq!<TR><TD COLSPAN=4 WIDTH="608"><INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CHEK_payauto" NAME="CHEK_payauto" $CHEK_payauto_checked> !.emt('Charge future payments to this [_1] automatically','electronic check').qq!</TD></TR>!. +% qq!<TR><TD COLSPAN=4 WIDTH="608">!. +% qq!<INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CHEK_payauto" NAME="CHEK_payauto" $CHEK_payauto_checked> !. +% emt('Charge future payments to this [_1] automatically','electronic check'). % % ( $conf->exists('cust_main-select-billday') ? -% qq!<TR><TD COLSPAN="4" id="chek_billday" style="display: $billday_chek_display"> +% qq!<DIV id="chek_billday" $chek_billday_style> % Charge on this day of each month <SELECT NAME="billday">! -% . billday_options($cust_main->billday) . qq!</SELECT> </TD></TR>! +% . billday_options($cust_main->billday) . qq!</SELECT> </DIV>! % : '' % ). % -% '</TABLE>', +% '</TD></TR></TABLE>', % % 'LECB' => % |