1 <& /elements/header.html, mt('Customer Report') &>
3 <FORM ACTION="cust_main.html" METHOD="GET">
4 <INPUT TYPE="hidden" NAME="magic" VALUE="bill">
6 <FONT CLASS="fsinnerbox-title"><% emt('Basic search options') %></FONT>
7 <TABLE CLASS="fsinnerbox">
9 <& /elements/tr-select-agent.html,
10 'curr_value' => scalar($cgi->param('agentnum')),
14 <& /elements/tr-select-sales.html,
15 'curr_value' => scalar($cgi->param('salesnum')),
16 'pre_options' => [ '' => 'all',
22 <& /elements/tr-select-cust_main-status.html,
23 'label' => emt('Status'),
26 <& /elements/tr-select-cust_class.html,
27 'label' => emt('Class'),
29 'pre_options' => [ '' => emt('(none)') ],
33 <& /elements/tr-select-part_referral.html,
34 'label' => emt('Advertising Source'),
36 #no, causes customers with disabled ones to disappear
41 <TH ALIGN="right" VALIGN="center"><% mt('Signup date') |h %></TH>
44 <& /elements/tr-input-beginning_ending.html,
45 prefix => 'signupdate',
52 % if ( $conf->exists('cust_main-enable_birthdate') ) {
54 <TH ALIGN="right" VALIGN="center"><% mt('Date of Birth') |h %></TH>
57 <& /elements/tr-input-beginning_ending.html,
58 prefix => 'birthdate',
66 % if ( $conf->exists('cust_main-enable_spouse_birthdate') ) {
68 <TH ALIGN="right" VALIGN="center"><% mt('Spouse Date of Birth') |h %></TH>
71 <& /elements/tr-input-beginning_ending.html,
72 prefix => 'spouse_birthdate',
80 % if ( $conf->exists('cust_main-enable_anniversary_date') ) {
82 <TH ALIGN="right" VALIGN="center"><% mt('Anniversary Date') |h %></TH>
85 <& /elements/tr-input-beginning_ending.html,
86 prefix => 'anniversary_date',
95 <TH ALIGN="right">Tags</TH>
97 <& /elements/select-cust_tag.html,
102 <DIV STYLE="display:inline-block; vertical-align:baseline">
103 <INPUT TYPE="radio" NAME="all_tags" VALUE="0" CHECKED> Any of these
105 <INPUT TYPE="radio" NAME="all_tags" VALUE="1"> All of these
113 <FONT CLASS="fsinnerbox-title"><% emt('Package search options') %></FONT>
114 <TABLE CLASS="fsinnerbox">
118 <TH ALIGN="right">With</TH>
119 <TD><SELECT NAME="any_pkg_status">
120 <OPTION VALUE="0">active packages
121 <OPTION VALUE="1">any status packages
126 <TH ALIGN="right">of class</TH>
128 <& /elements/select-pkg_class.html,
129 'field' => 'pkg_classnum',
132 <DIV STYLE="display:inline-block; vertical-align:baseline">
133 <INPUT TYPE="radio" NAME="all_pkg_classnums" VALUE="0" CHECKED>
136 <INPUT TYPE="radio" NAME="all_pkg_classnums" VALUE="1">
145 <FONT CLASS="fsinnerbox-title"><% emt('Location search options') %></FONT>
146 <TABLE CLASS="fsinnerbox">
149 <TH ALIGN="right" VALIGN="center"><% mt('Address') |h %></TH>
150 <TD><INPUT TYPE="text" NAME="address" SIZE=54></TD>
154 <TH ALIGN="right" VALIGN="center"><% mt('City') |h %></TH>
156 <& /elements/city.html,
158 empty_label => '(all)',
165 <TH ALIGN="right" VALIGN="center"><% mt('County') |h %></TH>
167 <& /elements/select-county.html,
169 empty_label => '(all)',
175 <TH ALIGN="right" VALIGN="center"><% mt('State') |h %></TH>
177 <& /elements/select-state.html,
179 empty_label => '(all)',
185 <TH ALIGN="right" VALIGN="center"><% mt('Zip') |h %></TH>
186 <TD><INPUT TYPE="text" NAME="zip" SIZE=12></TD>
190 <TH ALIGN="right" VALIGN="center"><% mt('Country') |h %></TH>
192 <& /elements/select-country.html,
194 state_disable_empty => 0,
195 state_empty_label => '(all)',
201 <TH ALIGN="right" VALIGN="center"><% mt('Search historical addresses') %></TH>
202 <TD><INPUT TYPE="checkbox" NAME="location_history" VALUE="1"></TD>
207 <FONT CLASS="fsinnerbox-title"><% emt('Billing search options') %></FONT>
208 <TABLE CLASS="fsinnerbox">
210 % my @exempt_groups = grep /\S/, $conf->config('tax-cust_exempt-groups');
211 % unless ( @exempt_groups ) {
213 % #falze laziness with With/Without postal mail invoices
215 <TH ALIGN="right" VALIGN="center"><% mt('Tax exempt') |h %></TH>
216 <TD><INPUT TYPE="checkbox" NAME="tax" ID="tax" onClick="tax_changed();"></TD>
220 <TH ALIGN="right" VALIGN="center"><% mt('Not tax exempt') |h %></TH>
221 <TD><INPUT TYPE="checkbox" NAME="no_tax" ID="no_tax" onClick="no_tax_changed();"></TD>
224 <SCRIPT TYPE="text/javascript">
225 function tax_changed() {
226 if ( document.getElementById('tax').checked == true ) {
227 document.getElementById('no_tax').checked = false;
230 function no_tax_changed() {
231 if ( document.getElementById('no_tax').checked == true ) {
232 document.getElementById('tax').checked = false;
239 <TH ALIGN="right"><% mt('Invoice terms') |h %></TH>
241 % my @agentnums = $FS::CurrentUser::CurrentUser->agentnums;
242 % my $agentnum = scalar(@agentnums) == 1 ? $agentnums[0] : '';
243 <& /elements/select-terms.html,
244 'pre_options' => [ '' => emt('all') ],
245 'empty_value' => 'NULL',
246 'agentnum' => $agentnum,
251 <& /elements/tr-input-lessthan_greaterthan.html,
252 label => emt('Current balance'),
253 field => 'current_balance',
257 <TH ALIGN="right" VALIGN="center"><% mt('With invoicing email address(es)') |h %></TH>
258 <TD><INPUT TYPE="checkbox" NAME="with_email"></TD>
262 <TH ALIGN="right" VALIGN="center"><% mt('With postal mail invoices') |h %></TH>
263 <TD><INPUT TYPE="checkbox" NAME="POST" ID="POST" onClick="POST_changed();"></TD>
267 <TH ALIGN="right" VALIGN="center"><% mt('Without postal mail invoices') |h %></TH>
268 <TD><INPUT TYPE="checkbox" NAME="no_POST" ID="no_POST" onClick="no_POST_changed();"></TD>
271 <SCRIPT TYPE="text/javascript">
272 function POST_changed() {
273 if ( document.getElementById('POST').checked == true ) {
274 document.getElementById('no_POST').checked = false;
277 function no_POST_changed() {
278 if ( document.getElementById('no_POST').checked == true ) {
279 document.getElementById('POST').checked = false;
287 <FONT CLASS="fsinnerbox-title"><% emt('Display options') %></FONT>
288 <TABLE CLASS="fsinnerbox">
290 <& /elements/tr-select-cust-fields.html &>
293 <TH ALIGN="right" VALIGN="center"><% mt('Add package columns') |h %></TH>
294 <TD><INPUT TYPE="checkbox" NAME="flattened_pkgs"></TD>
298 <TH ALIGN="right" VALIGN="center"><% mt('Include cancelled packages') |h %></TH>
299 <TD><INPUT TYPE="checkbox" NAME="cancelled_pkgs"></TD>
305 <INPUT TYPE="submit" VALUE="<% mt('Get Report') |h %>">
309 <& /elements/footer.html &>
313 unless $FS::CurrentUser::CurrentUser->access_right('Advanced customer search');
315 my $conf = new FS::Conf;