( $beginning, $ending );
}
+sub parse_lt_gt {
+ my($cgi, $field) = @_;
+
+ my @search = ();
+
+ my %op = (
+ 'lt' => '<',
+ 'gt' => '>',
+ );
+
+ foreach my $op (keys %op) {
+
+ warn "checking for ${field}_$op field\n"
+ if $DEBUG;
+
+ if ( $cgi->param($field."_$op") =~ /^\s*\$?\s*([\d\,\s]+(\.\d\d)?)\s*$/ ) {
+
+ my $num = $1;
+ $num =~ s/[\,\s]+//g;
+ my $search = "$field $op{$op} $num";
+ push @search, $search;
+
+ warn "found ${field}_$op field; adding search element $search\n"
+ if $DEBUG;
+ }
+
+ }
+
+ @search;
+
+}
+
###
# cust_main report subroutines
###
<TR>
- <TD ALIGN="right">From: </TD>
+ <TD ALIGN="right">From date: </TD>
<TD><INPUT TYPE="text" NAME="beginning" ID="beginning_text" VALUE="" SIZE=<%$size%> MAXLENGTH=<%$maxlength%>> <IMG SRC="../images/calendar.png" ID="beginning_button" STYLE="cursor: pointer" TITLE="Select date"><BR><i>m/d/y<% $time_hint %></i></TD>
<SCRIPT TYPE="text/javascript">
Calendar.setup({
</TR>
<TR>
- <TD ALIGN="right">To: </TD>
+ <TD ALIGN="right">To date: </TD>
<TD><INPUT TYPE="text" NAME="ending" ID="ending_text" VALUE="" SIZE=<%$size%> MAXLENGTH=<%$maxlength%>> <IMG SRC="../images/calendar.png" ID="ending_button" STYLE="cursor: pointer" TITLE="Select date"><BR><i>m/d/y<% $time_hint %></i></TD>
<SCRIPT TYPE="text/javascript">
Calendar.setup({
--- /dev/null
+<TR>
+ <TD ALIGN="right"><% $opt{label} %> less than: </TD>
+ <TD><INPUT TYPE="text" NAME="<% $opt{field} %>_lt" SIZE=7></TD>
+</TR>
+
+<TR>
+ <TD ALIGN="right"><% $opt{label} %> greater than: </TD>
+ <TD><INPUT TYPE="text" NAME="<% $opt{field} %>_gt" SIZE=7></TD>
+</TR>
+
+<%init>
+ my %opt = @_;
+</%init>
% $title = $agent->agent. " $title";
% }
%
-% #false laziness with cust_pkg.cgi and cust_pay.cgi
-% if ( $cgi->param('beginning')
-% && $cgi->param('beginning') =~ /^([ 0-9\-\/]{1,10})$/ ) {
-% my $beginning = str2time($1);
-% push @search, "_date >= $beginning ";
-% }
-% if ( $cgi->param('ending')
-% && $cgi->param('ending') =~ /^([ 0-9\-\/]{1,10})$/ ) {
-% my $ending = str2time($1) + 86399;
-% push @search, " _date <= $ending ";
-% }
+% my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
+% push @search, "_date >= $beginning ",
+% "_date <= $ending";
%
-% if ( $cgi->param('begin')
-% && $cgi->param('begin') =~ /^(\d+)$/ ) {
-% push @search, "_date >= $1 ";
-% }
-% if ( $cgi->param('end')
-% && $cgi->param('end') =~ /^(\d+)$/ ) {
-% push @search, " _date < $1 ";
-% }
+% push @search, FS::UI::Web::parse_lt_gt($cgi, 'amount' );
%
% #here is the agent virtualization
% push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
% my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
% push @search, "_date >= $beginning ",
% "_date <= $ending";
+%
+% push @search, FS::UI::Web::parse_lt_gt($cgi, 'paid' );
%
% $orderby = '_date';
%
<TABLE>
<TR>
<TD ALIGN="right">Credits by employee: </TD>
-%
-% my $sth = dbh->prepare("SELECT DISTINCT otaker FROM cust_credit")
-% or die dbh->errstr;
-% $sth->execute or die $sth->errstr;
-% my @otakers = map { $_->[0] } @{$sth->fetchall_arrayref};
-%
-
- <TD><SELECT NAME="otaker">
- <OPTION VALUE="">all</OPTION>
-% foreach my $otaker ( @otakers ) {
-
- <OPTION VALUE="<% $otaker %>"><% $otaker %></OPTION>
-% }
-
- </SELECT>
+ <TD>
+ <SELECT NAME="otaker">
+ <OPTION VALUE="">all</OPTION>
+% foreach my $otaker ( @otakers ) {
+ <OPTION VALUE="<% $otaker %>"><% $otaker %></OPTION>
+% }
+ </SELECT>
</TD>
</TR>
+
<% include( '/elements/tr-select-agent.html',
$cgi->param('agentnum'),
'label' => 'for agent: ',
)
%>
+
<% include( '/elements/tr-input-beginning_ending.html' ) %>
+
+ <% include( '/elements/tr-input-lessthan_greaterthan.html',
+ 'label' => 'Amount',
+ 'field' => 'amount',
+ )
+ %>
+
</TABLE>
<BR>
</FORM>
<% include('/elements/footer.html') %>
+
+<%init>
+
+my $sth = dbh->prepare("SELECT DISTINCT otaker FROM cust_credit")
+ or die dbh->errstr;
+$sth->execute or die $sth->errstr;
+my @otakers = map { $_->[0] } @{$sth->fetchall_arrayref};
+
+</%init>
<% include( '/elements/tr-input-beginning_ending.html' ) %>
+ <% include( '/elements/tr-input-lessthan_greaterthan.html',
+ 'label' => 'Amount',
+ 'field' => 'paid',
+ )
+ %>
+
</TABLE>
<BR>