use FS::access_usergroup;
use FS::agent;
use FS::cust_main;
+use FS::sales;
$DEBUG = 0;
$me = '[FS::access_user]';
|| $self->ut_text('last')
|| $self->ut_text('first')
|| $self->ut_foreign_keyn('user_custnum', 'cust_main', 'custnum')
+ || $self->ut_foreign_keyn('report_salesnum', 'sales', 'salesnum')
|| $self->ut_enum('disabled', [ '', 'Y' ] )
;
return $error if $error;
qsearchs( 'cust_main', { 'custnum' => $self->user_custnum } );
}
+=item report_sales
+
+Returns the FS::sales object (see L<FS::sales>), if any, for this
+user.
+
+=cut
+
+sub report_sales {
+ my $self = shift;
+ qsearchs( 'sales', { 'salesnum' => $self->report_salesnum } );
+}
+
=item access_usergroup
Returns links to the the groups this user is a part of, as FS::access_usergroup
'table' => 'agent',
'hashref' => { disabled=>'' },
'extra_sql' => ' AND '. $self->agentnums_sql(@_),
+ 'order_by' => 'ORDER BY agent',
});
}
}
-=item spreadsheet_format
+=item spreadsheet_format [ OVERRIDE ]
Returns a hashref of this user's Excel spreadsheet download settings:
'extension' (xls or xlsx), 'class' (Spreadsheet::WriteExcel or
-Excel::Writer::XLSX), and 'mime_type'.
+Excel::Writer::XLSX), and 'mime_type'. If OVERRIDE is 'XLS' or 'XLSX',
+use that instead of the user's setting.
=cut
+# is there a better place to put this?
my %formats = (
XLS => {
extension => '.xls',
sub spreadsheet_format {
my $self = shift;
+ my $override = shift;
- my $f = $self->option('spreadsheet_format')
- || $conf->config('spreadsheet_format')
- || 'XLS';
+ my $f = $override
+ || $self->option('spreadsheet_format')
+ || $conf->config('spreadsheet_format')
+ || 'XLS';
$formats{$f};
}