use Carp qw( confess );
use HTML::Entities;
use FS::Conf;
-use FS::Misc::DateTime qw( parse_datetime );
+use FS::Misc::DateTime qw( parse_datetime day_end );
use FS::Record qw(dbdef);
use FS::cust_main; # are sql_balance and sql_date_balance in the right module?
my $beginning = 0;
if ( $cgi->param($prefix.'begin') =~ /^(\d+)$/ ) {
$beginning = $1;
- } elsif ( $cgi->param($prefix.'beginning') =~ /^([ 0-9\-\/]{1,64})$/ ) {
+ } elsif ( $cgi->param($prefix.'beginning') =~ /^([ 0-9\-\/\:]{1,64})$/ ) {
$beginning = parse_datetime($1) || 0;
}
my $ending = 4294967295; #2^32-1
if ( $cgi->param($prefix.'end') =~ /^(\d+)$/ ) {
$ending = $1 - 1;
- } elsif ( $cgi->param($prefix.'ending') =~ /^([ 0-9\-\/]{1,64})$/ ) {
- #probably need an option to turn off the + 86399
- $ending = parse_datetime($1) + 86399;
+ } elsif ( $cgi->param($prefix.'ending') =~ /^([ 0-9\-\/\:]{1,64})$/ ) {
+ $ending = parse_datetime($1);
+ $ending = day_end($ending) unless $ending =~ /:/;
}
( $beginning, $ending );
argument isn't present at all, the join will just say "USING (custnum)",
which might work.
+As a special case, if TABLE is 'cust_main', only the joins to cust_location
+will be returned.
+
LOCATION_TABLE is an optional table name to use for joining ship_location,
in case your query also includes package information and you want the
"service address" columns to reflect package addresses.
($location_table, $locationnum) = split(/\./, $location_table);
$locationnum ||= 'locationnum';
- my $sql = ' LEFT JOIN cust_main ';
+ my $sql = '';
if ( $cust_table ) {
- $sql .= "ON (cust_main.custnum = $cust_table.$custnum)";
+ $sql = " LEFT JOIN cust_main ON (cust_main.custnum = $cust_table.$custnum)"
+ unless $cust_table eq 'cust_main';
} else {
- $sql .= "USING (custnum)";
+ $sql = " LEFT JOIN cust_main USING (custnum)";
}
if ( !@cust_fields or grep /^bill_/, @cust_fields ) {
use Storable qw(nfreeze);
use MIME::Base64;
use JSON;
-use FS::UID qw(getotaker);
+use FS::CurrentUser;
use FS::Record qw(qsearchs);
use FS::queue;
use FS::CGI qw(rooturl);
push @{$param{$field}}, $value;
}
}
- $param{CurrentUser} = getotaker();
+ $param{CurrentUser} = $FS::CurrentUser::CurrentUser->username;
$param{RootURL} = rooturl($self->{cgi}->self_url);
warn "FS::UI::Web::start_job\n".
join('', map {