"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;
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 &>
% }
% $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 = (
%
% 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' =>
%
% ).
%
%
-% 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' =>
%