X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FUI%2FWeb.pm;h=61617060e5e7b14da1cce20cb48d8b4357fbaec9;hb=9f17681a11d2e20f5baa7acf19873daf33058aa9;hp=c8ad430b278e45006ea6d96ca6dc82ab1039801e;hpb=a7ec2c2a6b5fcc26e8da765abdf4d459cc41a20a;p=freeside.git diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm index c8ad430b2..61617060e 100644 --- a/FS/FS/UI/Web.pm +++ b/FS/FS/UI/Web.pm @@ -229,18 +229,25 @@ sub cust_header { 'Cust#' => 'custnum', 'Name' => 'contact', 'Company' => 'company', + + # obsolete but might still be referenced in configuration '(bill) Customer' => 'name', '(service) Customer' => 'ship_name', '(bill) Name' => 'contact', '(service) Name' => 'ship_contact', '(bill) Company' => 'company', '(service) Company' => 'ship_company', + '(bill) Day phone' => 'daytime', + '(bill) Night phone' => 'night', + '(bill) Fax number' => 'fax', + + 'Customer' => 'name', 'Address 1' => 'bill_address1', 'Address 2' => 'bill_address2', 'City' => 'bill_city', 'State' => 'bill_state', 'Zip' => 'bill_zip', - 'Country' => 'country_full', + 'Country' => 'bill_country_full', 'Day phone' => 'daytime', # XXX should use msgcat, but how? 'Night phone' => 'night', # XXX should use msgcat, but how? 'Fax number' => 'fax', @@ -249,19 +256,13 @@ sub cust_header { '(bill) City' => 'bill_city', '(bill) State' => 'bill_state', '(bill) Zip' => 'bill_zip', - '(bill) Country' => 'country_full', - '(bill) Day phone' => 'daytime', # XXX should use msgcat, but how? - '(bill) Night phone' => 'night', # XXX should use msgcat, but how? - '(bill) Fax number' => 'fax', + '(bill) Country' => 'bill_country_full', '(service) Address 1' => 'ship_address1', '(service) Address 2' => 'ship_address2', '(service) City' => 'ship_city', '(service) State' => 'ship_state', '(service) Zip' => 'ship_zip', '(service) Country' => 'ship_country_full', - '(service) Day phone' => 'ship_daytime', # XXX should use msgcat, how? - '(service) Night phone' => 'ship_night', # XXX should use msgcat, how? - '(service) Fax number' => 'ship_fax', 'Invoicing email(s)' => 'invoicing_list_emailonly_scalar', 'Payment Type' => 'payby', 'Current Balance' => 'current_balance', @@ -322,6 +323,14 @@ sub cust_header { @cust_header; } +sub cust_sort_fields { + cust_header(@_) if( @_ or !@cust_fields ); + #inefficientish, but tiny lists and only run once per page + + map { $_ eq 'custnum' ? 'custnum' : '' } @cust_fields; + +} + =item cust_sql_fields [ CUST_FIELDS_VALUE ] Returns a list of fields for the SELECT portion of an SQL query. @@ -337,7 +346,7 @@ sub cust_sql_fields { my @fields = qw( last first company ); # push @fields, map "ship_$_", @fields; - cust_header(@_); + cust_header(@_) if( @_ or !@cust_fields ); #inefficientish, but tiny lists and only run once per page my @location_fields; @@ -348,8 +357,15 @@ sub cust_sql_fields { } } } - - push @fields, 'payby' if grep { $_ eq 'payby'} @cust_fields; + foreach my $pre ('bill_','ship_') { + if ( grep { $_ eq $pre.'country_full' } @cust_fields ) { + push @location_fields, $pre.'locationnum'; + } + } + + foreach my $field (qw(daytime night fax payby)) { + push @fields, $field if (grep { $_ eq $field } @cust_fields); + } push @fields, 'agent_custid'; my @extra_fields = (); @@ -470,6 +486,7 @@ element. sub cust_fields_subs { my $unlinked_warn = 0; + return map { my $f = $_; if ( $unlinked_warn++ ) { @@ -582,7 +599,7 @@ use Carp; use Storable qw(nfreeze); use MIME::Base64; use JSON::XS; -use FS::UID qw(getotaker); +use FS::CurrentUser; use FS::Record qw(qsearchs); use FS::queue; use FS::CGI qw(rooturl); @@ -656,7 +673,7 @@ sub start_job { 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 { @@ -678,6 +695,10 @@ sub start_job { #warn 'froze string of size '. length(nfreeze(\%param)). " for job args\n" # if $DEBUG; + # + # XXX FS::queue::insert knows how to do this. + # not changing it here because that requires changing it everywhere else, + # too, but we should eventually fix it my $error = $job->insert( '_JOB', encode_base64(nfreeze(\%param)) );