-<HTML>
- <HEAD>
- <TITLE>Tax Report Criteria</TITLE>
- </HEAD>
- <BODY BGCOLOR="#e8e8e8">
- <H1>Tax Report Criteria</H1>
- <FORM ACTION="report_tax.cgi" METHOD="GET">
-
- <TABLE>
-
- <%= include( '/elements/tr-select-agent.html' ) %>
-
- <%= include( '/elements/tr-input-beginning_ending.html' ) %>
-
- <% my $conf = new FS::Conf;
- if ( $conf->exists('enable_taxclasses') ) {
- %>
- <TR>
- <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="show_taxclasses" VALUE="1"></TD>
- <TD>Show tax classes</TD>
- </TR>
- <% } %>
-
- <% my @pkg_class = qsearch('pkg_class', {});
- if ( @pkg_class ) {
- %>
- <TR>
- <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="show_pkgclasses" VALUE="1"></TD>
- <TD>Show package classes</TD>
- </TR>
- <% } %>
-
- </TABLE>
-
- <BR><INPUT TYPE="submit" VALUE="Get Report">
- </FORM>
-
- </BODY>
-</HTML>
+<% include('/elements/header.html', 'Tax Report' ) %>
+<FORM ACTION="report_tax.cgi" METHOD="GET">
+
+<TABLE>
+
+ <& /elements/tr-select-agent.html, 'disable_empty'=>0 &>
+
+ <& /elements/tr-input-beginning_ending.html &>
+
+ <tr>
+ <td></td>
+ <td colspan=2 style="font-weight: bold">
+ <& /elements/radio.html,
+ 'field' => 'all',
+ 'value' => 1,
+ 'curr_value' => 1,
+ &> All taxes
+ <& /elements/radio.html,
+ 'field' => 'all',
+ 'value' => 0,
+ &> A specific tax
+ </td>
+ </tr>
+ <& /elements/tr-select.html,
+ 'label' => 'Country',
+ 'field' => 'country',
+ 'options' => \@countries,
+ 'curr_value' => ($conf->config('countrydefault') || 'US'),
+ &>
+
+ <& /elements/tr-select.html,
+ 'label' => 'For tax named ',
+ 'field' => 'taxname',
+ 'options' => \@taxnames,
+ 'disable_empty' => 1,
+ &>
+
+ <& /elements/tr-checkbox-multiple.html,
+ 'label' => 'Break down by ',
+ 'field' => 'breakdown',
+ 'options' => \@breakdown,
+ 'option_labels' => {
+ taxclass => 'Tax class',
+ pkgclass => 'Package class',
+ city => 'City',
+ district => 'District',
+ },
+ &>
+ <TR>
+ <TD></TD>
+ <TD>Deduct credited tax if it was
+ <SELECT NAME="credit_date">
+ <OPTION VALUE="cust_bill" SELECTED>invoiced in this period</OPTION>
+ <OPTION VALUE="cust_credit_bill">credited in this period</OPTION>
+ </SELECT>
+ </TD>
+ </TR>
+
+</TABLE>
+
+<BR><INPUT TYPE="submit" VALUE="Get Report">
+
+</FORM>
+
+<script>
+$(document).ready(function() {
+ $('[name=all]').on('change', function(ev) {
+ // disable country/taxname/breakdown if 'all' = 1
+ if (this.checked) {
+ var disabled = (this.value == 1);
+ $('[name=country').prop('disabled', disabled);
+ $('[name=taxname').prop('disabled', disabled);
+ $('[name=breakdown').prop('disabled', disabled);
+ }
+ });
+ $('[name=all]').change();
+});
+</script>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+my $conf = new FS::Conf;
+
+my $sth = dbh->prepare('SELECT DISTINCT(COALESCE(taxname, \'Tax\')) FROM cust_main_county');
+$sth->execute or die $sth->errstr;
+my @taxnames = map { $_->[0] } @{ $sth->fetchall_arrayref };
+
+$sth = dbh->prepare('SELECT DISTINCT(country) FROM cust_location');
+$sth->execute or die $sth->errstr;
+my @countries = map { $_->[0] } @{ $sth->fetchall_arrayref };
+
+my @breakdown;
+if ( $conf->exists('enable_taxclasses') ) {
+ push @breakdown, 'taxclass';
+}
+if ( FS::pkg_class->count() > 0 ) {
+ push @breakdown, 'pkgclass';
+}
+if ( FS::cust_main_county->count("city is not null and city != ''") > 0 ) {
+ push @breakdown, 'city';
+}
+if ( FS::cust_main_county->count("district is not null") > 0 ) {
+ push @breakdown, 'district';
+}
+
+</%init>