Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / search / report_cust_main.html
1 <& /elements/header.html, mt('Customer Report') &>
2
3 <FORM ACTION="cust_main.html" METHOD="GET">
4 <INPUT TYPE="hidden" NAME="magic" VALUE="bill">
5
6   <TABLE BGCOLOR="#cccccc" CELLSPACING=0>
7
8     <TR>
9       <TH CLASS="background" COLSPAN=2 ALIGN="left"><FONT SIZE="+1"><% mt('Basic search options') |h %></FONT></TH>
10     </TR>
11
12     <& /elements/tr-select-agent.html,
13                   'curr_value'    => scalar($cgi->param('agentnum')),
14                   'disable_empty' => 0,
15     &>
16
17     <& /elements/tr-select-sales.html,
18                   'curr_value'    => scalar($cgi->param('salesnum')),
19                   'pre_options'   => [ '' => 'all',
20                                        0  => '(none)', ],
21                   'disable_empty' => 1,
22     &>
23
24     <& /elements/tr-select-cust_main-status.html,
25                   'label' => emt('Status'),
26     &>
27
28     <& /elements/tr-select-cust_class.html,
29                   'label'        => emt('Class'),
30                   'multiple'     => 1,
31                   'pre_options'  => [ '' => emt('(none)') ],
32                   'all_selected' => 1,
33     &>
34
35     <& /elements/tr-select-part_referral.html,
36                   'label'        => emt('Advertising Source'),
37                   'multiple'     => 1,
38                   #no, causes customers with disabled ones to disappear
39                   #'all_selected' => 1,
40     &>
41
42     <TR>
43         <TD ALIGN="right" VALIGN="center"><% mt('Signup date') |h %></TD>
44         <TD>
45         <TABLE>
46             <& /elements/tr-input-beginning_ending.html,
47                       prefix   => 'signupdate',
48                       layout   => 'horiz',
49             &>
50         </TABLE>
51         </TD>
52     </TR>
53
54 %    if ( $conf->exists('cust_main-enable_birthdate') ) {
55       <TR>
56           <TD ALIGN="right" VALIGN="center"><% mt('Date of Birth') |h %></TD>
57           <TD>
58           <TABLE>
59               <& /elements/tr-input-beginning_ending.html,
60                         prefix   => 'birthdate',
61                         layout   => 'horiz',
62               &>
63           </TABLE>
64           </TD>
65       </TR>
66 %   }
67
68 %    if ( $conf->exists('cust_main-enable_spouse_birthdate') ) {
69       <TR>
70           <TD ALIGN="right" VALIGN="center"><% mt('Spouse Date of Birth') |h %></TD>
71           <TD>
72           <TABLE>
73               <& /elements/tr-input-beginning_ending.html,
74                         prefix   => 'spouse_birthdate',
75                         layout   => 'horiz',
76               &>
77           </TABLE>
78           </TD>
79       </TR>
80 %   }
81
82 %    if ( $conf->exists('cust_main-enable_anniversary_date') ) {
83       <TR>
84           <TD ALIGN="right" VALIGN="center"><% mt('Anniversary Date') |h %></TD>
85           <TD>
86           <TABLE>
87               <& /elements/tr-input-beginning_ending.html,
88                         prefix   => 'anniversary_date',
89                         layout   => 'horiz',
90               &>
91           </TABLE>
92           </TD>
93       </TR>
94 %   }
95
96       <TR>
97         <TD ALIGN="right">Tags</TD>
98         <TD>
99             <& /elements/select-cust_tag.html,
100                           'cgi'         => $cgi,
101                           'is_report'   => 1,
102                           'multiple'    => 1,
103             &>
104           <DIV STYLE="display:inline-block; vertical-align:baseline">
105             <INPUT TYPE="radio" NAME="all_tags" VALUE="0" CHECKED> Any of these
106             <BR>
107             <INPUT TYPE="radio" NAME="all_tags" VALUE="1"> All of these
108           </DIV>
109         </TD>
110       </TR>
111
112       <TR>
113         <TD ALIGN="right">With package of class</TD>
114         <TD>
115             <& /elements/select-pkg_class.html,
116                           'field'       => 'pkg_classnum',
117                           'multiple'    => 1,
118             &>
119           <DIV STYLE="display:inline-block; vertical-align:baseline">
120             <INPUT TYPE="radio" NAME="all_pkg_classnums" VALUE="0" CHECKED>
121               Any of these
122             <BR>
123             <INPUT TYPE="radio" NAME="all_pkg_classnums" VALUE="1">
124               All of these
125           </DIV>
126         </TD>
127       </TR>
128
129     <TR>
130       <TH CLASS="background" COLSPAN=2>&nbsp;</TH>
131     </TR>
132
133     <TR>
134       <TH CLASS="background" COLSPAN=2 ALIGN="left"><FONT SIZE="+1"><% mt('Location search options') |h %></FONT></TH>
135     </TR>
136
137     <TR>
138       <TD ALIGN="right" VALIGN="center"><% mt('Address') |h %></TD>
139       <TD><INPUT TYPE="text" NAME="address" SIZE=54></TD>
140     </TR>
141
142     <TR>
143       <TD ALIGN="right" VALIGN="center"><% mt('City') |h %></TD>
144       <TD>
145         <& /elements/city.html,
146              disable_empty => 0,
147              empty_label   => '(all)',
148              disable_text  => 1,
149         &>
150       </TD>
151     </TR>
152
153     <TR>
154       <TD ALIGN="right" VALIGN="center"><% mt('County') |h %></TD>
155       <TD>
156         <& /elements/select-county.html,
157              disable_empty => 0,
158              empty_label   => '(all)',
159         &>
160       </TD>
161     </TR>
162     
163     <TR>
164       <TD ALIGN="right" VALIGN="center"><% mt('State') |h %></TD>
165       <TD>
166         <& /elements/select-state.html,
167              disable_empty => 0,
168              empty_label   => '(all)',
169         &>
170       </TD>
171     </TR>
172     
173     <TR>
174       <TD ALIGN="right" VALIGN="center"><% mt('Zip') |h %></TD>
175       <TD><INPUT TYPE="text" NAME="zip" SIZE=12></TD>
176     </TR>
177
178     <TR>
179       <TD ALIGN="right" VALIGN="center"><% mt('Country') |h %></TD>
180       <TD>
181         <& /elements/select-country.html,
182              disable_empty       => 0,
183              state_disable_empty => 0,
184              state_empty_label   => '(all)',
185         &>
186       </TD>
187     </TR>
188
189     <TR>
190       <TH CLASS="background" COLSPAN=2>&nbsp;</TH>
191     </TR>
192
193     <TR>
194       <TH CLASS="background" COLSPAN=2 ALIGN="left"><FONT SIZE="+1"><% mt('Billing search options') |h %></FONT></TH>
195     </TR>
196
197 % my @exempt_groups = grep /\S/, $conf->config('tax-cust_exempt-groups');
198 % unless ( @exempt_groups ) { 
199
200 %   #falze laziness with With/Without postal mail invoices
201      <TR>
202       <TD ALIGN="right" VALIGN="center"><% mt('Tax exempt') |h %></TD>
203         <TD><INPUT TYPE="checkbox" NAME="tax" ID="tax" onClick="tax_changed();"></TD>
204     </TR>
205
206     <TR>
207       <TD ALIGN="right" VALIGN="center"><% mt('Not tax exempt') |h %></TD>
208         <TD><INPUT TYPE="checkbox" NAME="no_tax" ID="no_tax" onClick="no_tax_changed();"></TD>
209     </TR>
210
211     <SCRIPT TYPE="text/javascript">
212       function  tax_changed() {
213         if ( document.getElementById('tax').checked == true ) {
214           document.getElementById('no_tax').checked = false;
215         }
216       }
217       function no_tax_changed() {
218         if ( document.getElementById('no_tax').checked == true ) {
219           document.getElementById('tax').checked = false;
220         }
221       }
222     </SCRIPT>
223 % }
224
225     <TR>
226       <TD ALIGN="right"><% mt('Invoice terms') |h %></TD>
227       <TD>
228 %       my @agentnums = $FS::CurrentUser::CurrentUser->agentnums;
229 %       my $agentnum = scalar(@agentnums) == 1 ? $agentnums[0] : '';
230         <& /elements/select-terms.html,
231              'pre_options' => [ '' => emt('all') ],
232              'empty_value' => 'NULL',
233              'agentnum'    => $agentnum,
234         &>
235       </TD>
236     </TR>
237     
238     <& /elements/tr-input-lessthan_greaterthan.html,
239                   label   => emt('Current balance'),
240                   field   => 'current_balance',
241     &>
242
243     <TR>
244       <TD ALIGN="right" VALIGN="center"><% mt('With invoicing email address(es)') |h %></TD>
245         <TD><INPUT TYPE="checkbox" NAME="with_email"></TD>
246     </TR>
247
248     <TR>
249       <TD ALIGN="right" VALIGN="center"><% mt('With postal mail invoices') |h %></TD>
250         <TD><INPUT TYPE="checkbox" NAME="POST" ID="POST" onClick="POST_changed();"></TD>
251     </TR>
252
253     <TR>
254       <TD ALIGN="right" VALIGN="center"><% mt('Without postal mail invoices') |h %></TD>
255         <TD><INPUT TYPE="checkbox" NAME="no_POST" ID="no_POST" onClick="no_POST_changed();"></TD>
256     </TR>
257
258     <SCRIPT TYPE="text/javascript">
259       function POST_changed() {
260         if ( document.getElementById('POST').checked == true ) {
261           document.getElementById('no_POST').checked = false;
262         }
263       }
264       function no_POST_changed() {
265         if ( document.getElementById('no_POST').checked == true ) {
266           document.getElementById('POST').checked = false;
267         }
268       }
269     </SCRIPT>
270
271     <TR>
272       <TH CLASS="background" COLSPAN=2>&nbsp;</TH>
273     </TR>
274
275     <TR>
276       <TH CLASS="background" COLSPAN=2 ALIGN="left"><FONT SIZE="+1"><% mt('Display options') |h %></FONT></TH>
277     </TR>
278     <& /elements/tr-select-cust-fields.html &>
279
280     <TR>
281       <TD ALIGN="right" VALIGN="center"><% mt('Add package columns') |h %></TD>
282         <TD><INPUT TYPE="checkbox" NAME="flattened_pkgs"></TD>
283     </TR>
284
285     <TR>
286       <TD ALIGN="right" VALIGN="center"><% mt('Include cancelled packages') |h %></TD>
287         <TD><INPUT TYPE="checkbox" NAME="cancelled_pkgs"></TD>
288     </TR>
289
290   </TABLE>
291
292 <BR>
293 <INPUT TYPE="submit" VALUE="<% mt('Get Report') |h %>">
294
295 </FORM>
296
297 <& /elements/footer.html &>
298 <%init>
299
300 die "access denied"
301   unless $FS::CurrentUser::CurrentUser->access_right('Advanced customer search');
302
303 my $conf = new FS::Conf;
304
305 </%init>