add svc_phone on new customer first package, RT#4315
[freeside.git] / httemplate / edit / cust_main / first_pkg / select-part_pkg.html
1 <% include('/elements/xmlhttp.html',
2               'url'  => $p.'misc/svc_acct-domains.cgi',
3               'subs' => [ $opt{'prefix'}. 'get_domains' ],
4            )
5 %>
6
7 <% include('/elements/xmlhttp.html',
8               'url'  => $p.'misc/part_svc-columns.cgi',
9               'subs' => [ $opt{'prefix'}. 'get_part_svc' ],
10            )
11 %>
12
13 <SCRIPT TYPE="text/javascript">
14
15   function selopt(what,value,text,selected) {
16     var optionName = new Option(text, value, false, selected);
17     var length = what.length;
18     what.options[length] = optionName;
19   }
20
21   var pkgpart_svcpart2svcdb = {
22 %   foreach my $pkgpart ( map $_->pkgpart, @part_pkg ) {
23       "<% $pkgpart_svcpart{$pkgpart} %>":"<% $svcdb{$pkgpart} %>",
24 %   }
25     '':''
26   };
27
28   function <% $opt{'prefix'} %>pkgpart_svcpart_changed_too(what,selected) {
29
30     pkgpart_svcpart = what.options[what.selectedIndex].value;
31
32     var svcdb = pkgpart_svcpart2svcdb[pkgpart_svcpart];
33
34     if ( svcdb == 'svc_acct' ) {
35
36       // go get the new domains
37       function <% $opt{'prefix'} %>update_domains(domains) {
38
39         // blank the current domain list
40         for ( var i = what.form.<% $opt{'prefix'} %>domsvc.length; i >= 0; i-- )
41             what.form.<% $opt{'prefix'} %>domsvc.options[i] = null;
42
43         // add the new domains
44         var domainArray = eval('(' + domains + ')' );
45         for ( var s = 0; s < domainArray.length; s=s+2 ) {
46             var domainLabel = domainArray[s+1];
47             if ( domainLabel == "" )
48                 domainLabel = '(n/a)';
49             selopt( what.form.<% $opt{'prefix'} %>domsvc,
50                     domainArray[s],
51                     domainLabel,
52                     (domainArray[s] == selected) ? true : false
53                   );
54         }
55
56       }
57
58       <% $opt{'prefix'} %>get_domains( pkgpart_svcpart,
59                                        <% $opt{'prefix'} %>update_domains
60                                      );
61
62     } else if ( svcdb == 'svc_phone' ) {
63
64       function <% $opt{'prefix'} %>update_svc_phone(part_svc_column) {
65         var colArray = eval('(' + part_svc_column + ')' );
66         for ( var s = 0; s < colArray.length; s=s+3 ) {
67           var name  = colArray[s];
68           var flag  = colArray[s+1];
69           var value = colArray[s+2];
70           var td_label = document.getElementById(name+'_label_td');
71           var td       = document.getElementById(name+'_td');
72           var input    = document.getElementById(name);
73           if ( flag == 'D' ) {
74             if ( ! input.value ) { input.value = value; }
75             td_label.style.display = ''
76             td.style.display = ''
77           } else if ( flag == 'F' ) {
78             input.value = value;
79             td_label.style.display = 'none'
80             td.style.display = 'none'
81           } else {
82             td_label.style.display = ''
83             td.style.display = ''
84           }
85         }
86       }
87
88       <% $opt{'prefix'} %>get_part_svc( pkgpart_svcpart,
89                                         <% $opt{'prefix'} %>update_svc_phone
90                                       );
91
92     }
93
94   }
95
96 </SCRIPT>
97
98 <% include( '/elements/selectlayers.html',
99               'field'        => $opt{'prefix'}. 'pkgpart_svcpart',
100               'curr_value'   => $opt{pkgpart_svcpart},
101               'options'      => \@options,
102               'labels'       => \%labels,
103               'html_between' => '</TD></TR></TABLE>',
104               #'onchange'     => $opt{'prefix'}. 'pkgpart_svcpart_changed(this,0);',
105               'onchange'     => $opt{'prefix'}. 'pkgpart_svcpart_changed_too(what,0)',
106
107               'layer_callback' => $layer_callback,
108               'layermap'       => \%layermap,
109           )
110 %>
111
112 <SCRIPT TYPE="text/javascript">
113   pkgpart_svcpart_changed_too( document.CustomerForm.pkgpart_svcpart,
114                                <% $opt{saved_domsvc} %>
115                              );
116 </SCRIPT>
117
118 <%init>
119
120 my %opt = @_;
121
122 foreach my $opt (qw( svc_part pkgparts saved_pkgpart saved_domsvc prefix)) {
123   $opt{$_} = '' unless exists($opt{$_}) && defined($opt{$_});
124 }
125 $opt{saved_domsvc} = 0 unless $opt{saved_domsvc};
126
127 my @part_pkg = @{$opt{'part_pkg'}};
128
129 my @first_svc = ( 'svc_acct', 'svc_phone' );
130
131 my %pkgpart_svcpart = ();
132 my %svcdb = ();
133 my %layermap = ();
134 foreach my $part_pkg ( @part_pkg ) {
135   my $pkgpart = $part_pkg->pkgpart;
136   my $pkgpart_svcpart         = $pkgpart. "_". $part_pkg->svcpart(\@first_svc);
137   $pkgpart_svcpart{$pkgpart}  = $pkgpart_svcpart;
138   $svcdb{$pkgpart}            = $part_pkg->part_svc(\@first_svc)->svcdb;
139   $layermap{$pkgpart_svcpart} = $svcdb{$pkgpart};
140 }
141
142 my @options = ( '', map $pkgpart_svcpart{ $_->pkgpart }, @part_pkg );
143 my %labels = ( '' => '(none)',
144                map { $pkgpart_svcpart{ $_->pkgpart }
145                        => $_->pkg. " - ". $_->comment
146                    }
147                    @part_pkg
148              );
149
150 my $layer_callback = sub {
151   my $layer = shift;
152   #$layer_fields, $layer_values, $layer_prefix
153
154 #  my( $pkgpart, $svcpart ) = split('_', $layer);
155 #  my $svcdb = $svcdb{$pkgpart};
156   my $svcdb = $layer;
157
158   return '' unless $svcdb; #'<BR><BR><BR><BR><BR>'
159
160   #full path cause we're being slung around as a coderef (mason closures?)
161   include("/edit/cust_main/first_pkg/$svcdb.html", %opt, );
162 };
163
164 </%init>