summaryrefslogtreecommitdiff
path: root/httemplate/elements/select-cust_location.html
blob: 24df352ae123a3620d1411bbe21d2e402bed9702 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
% my @pre_options  = $opt{pre_options}  ? @{ $opt{pre_options} } : ();
% if (     ! @pre_options
%       && ! $cust_main
%       && ! $opt{is_optional}
%       && ! @{ $opt{cust_location} }
%       && $addnew
% ) {
    <INPUT NAME="locationnum" ID="locationnum" TYPE="hidden" VALUE="-1">
% } else {

<SELECT NAME     = "locationnum"
        ID       = "locationnum"
%     if ( $opt{onchange} ) {
        onchange = "<% $opt{onchange} %>"
%     }
    >

% #false laziness w/select-table.html
% while ( @pre_options ) { 
%   my $pre_opt   = shift(@pre_options);
%   my $pre_label = shift(@pre_options);
%   my $selected = #$opt{'all_selected'}
%                  # || ( ref($locationnum) && $locationnum->{$pre_opt} )
%                  # ||
%                       ( $locationnum eq $pre_opt );
    <OPTION VALUE="<% $pre_opt %>"
            <% $selected ? 'SELECTED' : '' %>
    ><% $pre_label %>
% } 

% if ( $cust_main ) {
%   my $selected = ( $locationnum == $cust_main->ship_locationnum );
    <OPTION VALUE="<% $cust_main->ship_locationnum %>"
            <% $selected ? 'SELECTED' : '' %>
    ><% $opt{'empty_label'} || '(default service address)' |h %>
% }

% if ( $opt{'is_optional'} ) {
  <OPTION VALUE="-2" <% $locationnum == -2 ? 'SELECTED' : ''%>><% $opt{'optional_label'} || '(not required)' |h %>
% }

% foreach my $loc ( @{ $opt{cust_location} } ) {
%   # don't show the ship_location redundantly
%   next if $cust_main && $cust_main->ship_locationnum == $loc->locationnum;
    <OPTION VALUE="<% $loc->locationnum %>"
            <% $locationnum == $loc->locationnum ? 'SELECTED' : '' %>
    ><% $loc->line( cust_main      => $cust_main,
                    countrydefault => $countrydefault,
                  )
     |h %>
% }

% if ( $addnew ) {
    <OPTION VALUE="-1"
            <% $locationnum == -1 ? 'SELECTED' : '' %>
    >Add new location
% }

</SELECT>
% }
<%init>

my $conf = new FS::Conf;
my $countrydefault = $conf->config('countrydefault') || 'US';

my %opt = @_;
my $cust_main     = $opt{'cust_main'};
my $locationnum   = $opt{'curr_value'};

$opt{'cust_location'} ||= [ $cust_main ? $cust_main->cust_location : () ];

my $addnew = exists($opt{addnew}) ? $opt{addnew}
                                  : $cust_main ? 1 : ( $locationnum>0 ? 0 : 1 );

</%init>