diff options
| -rw-r--r-- | README.1.7.0 | 1 | ||||
| -rw-r--r-- | htetc/handler.pl | 2 | ||||
| -rw-r--r-- | httemplate/docs/upgrade10.html | 2 | ||||
| -rw-r--r-- | httemplate/elements/select-month_year.html | 19 | ||||
| -rw-r--r-- | httemplate/elements/select-pkg_class.html | 7 | ||||
| -rw-r--r-- | httemplate/elements/select-table.html | 11 | ||||
| -rw-r--r-- | httemplate/elements/tr-select-from_to.html | 51 | ||||
| -rw-r--r-- | httemplate/elements/tr-select-pkg_class.html | 15 | ||||
| -rwxr-xr-x | httemplate/graph/cust_bill_pkg-graph.cgi (renamed from httemplate/graph/money_time-graph.cgi) | 0 | ||||
| -rw-r--r-- | httemplate/graph/cust_bill_pkg.cgi | 104 | ||||
| -rw-r--r-- | httemplate/graph/elements/monthly.html | 157 | ||||
| -rw-r--r-- | httemplate/graph/money_time.cgi | 97 | ||||
| -rw-r--r-- | httemplate/graph/report_cust_bill_pkg.html | 29 | ||||
| -rw-r--r-- | httemplate/graph/report_money_time.html | 58 | 
14 files changed, 419 insertions, 134 deletions
diff --git a/README.1.7.0 b/README.1.7.0 index 62d6232c1..30f7ec7de 100644 --- a/README.1.7.0 +++ b/README.1.7.0 @@ -1,5 +1,6 @@  install DBIx::DBSchema 0.31 (or later) +install Color::Scheme  make install-perl-modules  run "freeside-upgrade username" to uprade your database schema diff --git a/htetc/handler.pl b/htetc/handler.pl index dcbe72733..e8cd3333b 100644 --- a/htetc/handler.pl +++ b/htetc/handler.pl @@ -113,6 +113,8 @@ sub handler        use Business::CreditCard;        use String::Approx qw(amatch);        use Chart::LinesPoints; +      use Chart::Mountain; +      use Color::Scheme;        use HTML::Widgets::SelectLayers 0.05;        use Locale::Country;        use FS; diff --git a/httemplate/docs/upgrade10.html b/httemplate/docs/upgrade10.html index 8d90ab7a2..7cd1d8e50 100644 --- a/httemplate/docs/upgrade10.html +++ b/httemplate/docs/upgrade10.html @@ -31,7 +31,7 @@ Perl or Linux.    <li>install NetAddr::IP, Chart::Base, Locale::SubCountry, Text::CSV_XS,   Spreadsheet::WriteExcel, IO-stringy (IO::Scalar), Frontier::RPC  (Frontier::RPC2), MIME::Entity (MIME-tools), IPC::Run3, Net::Whois::Raw, -JSON and Term::ReadKey +JSON, Term::ReadKey and Color::Scheme  <!-- and Crypt::YAPassGen-->    <li>Apply the following changes to your database: diff --git a/httemplate/elements/select-month_year.html b/httemplate/elements/select-month_year.html index a0ea74ddd..2866960bd 100644 --- a/httemplate/elements/select-month_year.html +++ b/httemplate/elements/select-month_year.html @@ -5,13 +5,22 @@    my $prefix = $opt{'prefix'} || '';    my $disabled = $opt{'disabled'} || '';    my $empty = $opt{'empty_option'} || ''; +  my $start_year = $opt{'start_year'}; +  my $end_year = $opt{'end_year'} || '2037'; + +  my @mon; +  if ( $opt{'show_month_abbr'} ) { +    @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); +  } else { +    @mon = ( 1 .. 12 ); +  } +    my $date = $opt{'selected_date'} || '';    $date = '' if $date eq '-';    #$date ||= '01-2000' unless $empty; -  my $start_year = $opt{'start_year'}; -  my $end_year = $opt{'end_year'} || '2037'; -  my( $mon, $year ) = (0, 0); +  my $mon  = $opt{'selected_mon'}  || 0; +  my $year = $opt{'selected_year'} || 0;    if ( $date ) {      if ( $date  =~ /^(\d{4})-(\d{1,2})-\d{1,2}$/ ) { #PostgreSQL date format        ( $mon, $year ) = ( $2, $1 ); @@ -34,8 +43,8 @@  <%= $empty ? '<OPTION VALUE="">' : '' %> -<% for ( 1 .. 12 ) { %> -   <OPTION<%= $_ == $mon ? ' SELECTED' : '' %> VALUE="<%= $_ %>"><%= $_ %> +<% foreach ( 1 .. 12 ) { %> +   <OPTION<%= $_ == $mon ? ' SELECTED' : '' %> VALUE="<%= $_ %>"><%= $mon[$_-1] %>  <% } %>  </SELECT>/<SELECT NAME="<%= $prefix %>_year" SIZE="1" <%= $disabled%>> diff --git a/httemplate/elements/select-pkg_class.html b/httemplate/elements/select-pkg_class.html index 5486e0877..032c7abda 100644 --- a/httemplate/elements/select-pkg_class.html +++ b/httemplate/elements/select-pkg_class.html @@ -1,16 +1,17 @@  <%    my( $classnum, %opt ) = @_; -  my %select_opt = (); -  $select_opt{'records'} = $opt{'pkg_class'} +  $opt{'records'} = delete $opt{'pkg_class'}      if $opt{'pkg_class'}; +  #warn "***** select-pkg-class: \n". Dumper(%opt); +  %><%= include( '/elements/select-table.html',                   'table'       => 'pkg_class',                   'name_col'    => 'classname',                   'value'       => $classnum,                   'empty_label' => '(none)',                   #'hashref'     => { 'disabled' => '' }, -                 #%select_opt, +                 %opt,               )  %> diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html index 10cc8b995..96f0177fb 100644 --- a/httemplate/elements/select-table.html +++ b/httemplate/elements/select-table.html @@ -11,9 +11,12 @@    # 'empty_label' => '', #better specify it though, the default might change    # 'hashref'     => {},    # 'records'     => \@records, #instead of hashref +  # 'pre_options' => [ 'value' => 'option' ], #before normal options    my( %opt ) = @_; +  #warn "***** select-table: \n". Dumper(%opt); +    my $key = dbdef->table($opt{'table'})->primary_key; #? $opt{'primary_key'} ||    my $name_col = $opt{'name_col'}; @@ -25,11 +28,17 @@      @records = qsearch( $opt{'table'}, ( $opt{'hashref'} || {} ) );    } +  my @pre_options = $opt{'pre_options'} ? @{ $opt{'pre_options'} } : (); +  %>  <SELECT NAME="<%= $key %>"> -  <OPTION VALUE=""><%= $opt{'empty_label'} || 'all' %></OPTION> +  <% while ( @pre_options ) { %> +    <OPTION VALUE="<%= shift(@pre_options) %>"><%= shift(@pre_options) %> +  <% } %> + +  <OPTION VALUE=""><%= $opt{'empty_label'} || 'all' %>    <% foreach my $record ( sort { $a->$name_col() cmp $b->$name_col() }                                 @records diff --git a/httemplate/elements/tr-select-from_to.html b/httemplate/elements/tr-select-from_to.html new file mode 100644 index 000000000..d7e5a8337 --- /dev/null +++ b/httemplate/elements/tr-select-from_to.html @@ -0,0 +1,51 @@ +<% + +  #my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +  my ($curmon,$curyear) = (localtime(time))[4,5]; +   +  #find first month +  my $syear = 1899+$curyear; +  my $smonth = $curmon+1; +   +  #want 12 month by default, not 13 +  $smonth++; +  if ( $smonth > 12 ) { $smonth-=12; $syear++ } +   +  #find last month +  my $eyear = 1900+$curyear; +  my $emonth = $curmon+1; + +  my %hash = ( +    'show_month_abbr' => 1, +    'start_year'      => '1999', +    'end_year'        => '2012', #haha, well... +     @_, +  ); + +%> + +<TR> +  <TD ALIGN="right">From: </TD> +  <TD> +    <%= include('/elements/select-month_year.html', +                  'prefix'        => 'start', +                  'selected_mon'  => $smonth, +                  'selected_year' => $syear, +                  %hash, +               ) +    %> +  </TD> +</TR> + +<TR> +  <TD ALIGN="right">To: </TD> +  <TD> +    <%= include('/elements/select-month_year.html', +                  'prefix'        => 'end', +                  'selected_mon'  => $emonth, +                  'selected_year' => $eyear, +                  %hash, +               ) +    %> +  </TD> +</TR> diff --git a/httemplate/elements/tr-select-pkg_class.html b/httemplate/elements/tr-select-pkg_class.html index de10885c8..fbab0db14 100644 --- a/httemplate/elements/tr-select-pkg_class.html +++ b/httemplate/elements/tr-select-pkg_class.html @@ -1,16 +1,12 @@  <%    my( $classnum, %opt ) = @_; -  my @pkg_class; -  if ( $opt{'pkg_class'} ) { -    @pkg_class = @{ $opt{'pkg_class'} }; -  } else { -    @pkg_class = qsearch( 'pkg_class', {} ); # { disabled=>'' } ); -  } +  $opt{'pkg_class'} ||= [ qsearch( 'pkg_class', {} ) ]; # { disabled=>'' } ) +  #warn "***** tr-select-pkg-class: \n". Dumper(%opt);  %> -<% if ( scalar(@pkg_class) == 0 ) { %> +<% if ( scalar(@{ $opt{'pkg_class'} }) == 0 ) { %>    <INPUT TYPE="hidden" NAME="classnum" VALUE=""> @@ -19,10 +15,7 @@    <TR>      <TD ALIGN="right"><%= $opt{'label'} || 'Package class' %></TD>      <TD> -      <%= include( '/elements/select-pkg_class.html', $classnum, -                     'pkg_class' => \@pkg_class, -                 ) -      %> +      <%= include( '/elements/select-pkg_class.html', $classnum, %opt ) %>      </TD>    </TR> diff --git a/httemplate/graph/money_time-graph.cgi b/httemplate/graph/cust_bill_pkg-graph.cgi index 637a3bf94..637a3bf94 100755 --- a/httemplate/graph/money_time-graph.cgi +++ b/httemplate/graph/cust_bill_pkg-graph.cgi diff --git a/httemplate/graph/cust_bill_pkg.cgi b/httemplate/graph/cust_bill_pkg.cgi new file mode 100644 index 000000000..0dbd222ce --- /dev/null +++ b/httemplate/graph/cust_bill_pkg.cgi @@ -0,0 +1,104 @@ +<% + + +#find first month +my $syear = $cgi->param('start_year'); # || 1899+$curyear; +my $smonth = $cgi->param('start_month'); # || $curmon+1; + +#find last month +my $eyear = $cgi->param('end_year'); # || 1900+$curyear; +my $emonth = $cgi->param('end_month'); # || $curmon+1; + +#XXX or virtual +my( $agentnum, $sel_agent ) = ('', ''); +if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { +  $agentnum = $1; +  $sel_agent = qsearchs('agent', { 'agentnum' => $agentnum } ); +  die "agentnum $agentnum not found!" unless $sel_agent; +} +my $title = $sel_agent ? $sel_agent->agent.' ' : ''; + +my $classnum = 0; +my @pkg_class = (); +if ( $cgi->param('classnum') =~ /^(\d*)$/ ) { +  $classnum = $1; +  if ( $classnum ) { +    @pkg_class = ( qsearchs('pkg_class', { 'classnum' => $classnum } ) ); +    die "classnum $classnum not found!" unless $pkg_class[0]; +    $title .= $pkg_class[0]->classname.' '; +  } elsif ( $classnum eq '' ) { +    $title .= 'Empty class '; +    @pkg_class = ( '(empty class)' ); +  } elsif ( $classnum eq '0' ) { +    @pkg_class = qsearch('pkg_class', {} ); # { 'disabled' => '' } ); +    push @pkg_class, '(empty class)'; +  } +} + +my $hue = 0; +my $hue_increment = 145; + +my @items = (); +my @params = (); +my @labels = (); +my @colors = (); + +foreach my $agent ( $sel_agent || qsearch('agent', { 'disabled' => '' } ) ) { + +  my $col_scheme = Color::Scheme->new +                     ->from_hue($hue) +                     ->scheme('analogic') +                   ; +  my @recur_colors = (); +  my @onetime_colors = (); + +  ### fixup the color handling for package classes... +  my $n = 0; + +  foreach my $pkg_class ( @pkg_class ) { + +    push @items, 'cust_bill_pkg'; + + +    push @labels, +      ( $sel_agent ? '' : $agent->agent.' ' ). +      ( $classnum eq '0' +          ? ( ref($pkg_class) ? $pkg_class->classname : $pkg_class )  +          : '' +      ); + +    # push some params +    push @params, +      [ 'classnum' => ( ref($pkg_class) ? $pkg_class->classnum : '' ) ]; + +    @recur_colors = ($col_scheme->colors)[0,4,8,1,5,9] +      unless @recur_colors; +    @onetime_colors = ($col_scheme->colors)[2,6,10,3,7,11] +      unless @onetime_colors; +    push @colors, shift @recur_colors; + +  } + +  $hue += $hue_increment; + +} + +use Data::Dumper; +warn Dumper(\@items); + +%><%= include('elements/monthly.html', +                'title'        => $title. 'Sales Report', +                'graph_type'   => 'Mountain', +                'items'        => \@items, +                'params'       => \@params, +                'labels'       => \@labels, +                'graph_labels' => \@labels, +                'colors'       => \@colors, +                #'links'        => \%link, +                'start_month'  => $smonth, +                'start_year'   => $syear, +                'end_month'    => $emonth, +                'end_year'     => $eyear, +                'agentnum'     => $agentnum, +             ) +%> diff --git a/httemplate/graph/elements/monthly.html b/httemplate/graph/elements/monthly.html new file mode 100644 index 000000000..c45113fa3 --- /dev/null +++ b/httemplate/graph/elements/monthly.html @@ -0,0 +1,157 @@ +<% + +  # options example... +  # +  # 'title'        => 'Page title', +  # 'items'        => \@items, +  # 'params'       => \@params, # opt, +  # 'labels'       => \@labels, # or \%labels (keys are items) +  # 'graph_labels' => \%graph_labels, +  # 'colors'       => \%colors, +  # 'links         => \%link, #opt +  # 'start_month'  => $smonth, +  # 'start_year'   => $syear, +  # 'end_month'    => $emonth, +  # 'end_year'     => $eyear, +  # 'agentnum'     => $agentnum, #opt +  # 'nototal'      => 1, #opt, +  # 'graph_type'   => 'LinesPoints', #opt + +  my(%opt) = @_; +  my @items = @{ $opt{'items'} }; + +  #foreach my $other (qw( labels graph_labels colors links )) { +  foreach my $other (qw( labels graph_labels colors )) { +    if ( ref($opt{$other}) eq 'HASH' ) { +      $opt{$other} = [ map $opt{$other}{$_}, @items ]; +    } +  } + +  my $report = new FS::Report::Table::Monthly ( +    #'items'       => $opt{'items'}, +    'items'       => \@items, +    'params'      => $opt{'params'}, +    'start_month' => $opt{'start_month'}, +    'start_year'  => $opt{'start_year'}, +    'end_month'   => $opt{'end_month'}, +    'end_year'    => $opt{'end_year'}, +    'agentnum'    => $opt{'agentnum'}, +  ); +  my $data = $report->data; + +  if ( $cgi->param('_type') =~ /^(png)$/ ) { + +    #my $chart = Chart::LinesPoints->new(1024,480); +    #my $chart = Chart::LinesPoints->new(768,480); + +    my $graph_type = 'LinesPoints'; +    if ( $opt{'graph_type'} =~ /^(LinesPoints|Mountain)$/ ) { +      $graph_type = $1; +    } +    my $class = "Chart::$graph_type"; + +    my $chart = $class->new(976,384); +     +    my $d = 0; +    $chart->set( +      #'min_val' => 0, +      'legend' => 'bottom', +      'colors' => { (  +                      map { my $color = $_; +                            'dataset'.$d++ => +                              [ map hex($_), unpack 'a2a2a2', $color ] +                          } +                          @{ $opt{'colors'} } +                    ), +                    #'grey_background' => [ 211, 211, 211 ], +                    'grey_background' => 'white', +                    'background' => [ 0xe8, 0xe8, 0xe8 ], #grey +                  }, +      #'grey_background' => 'false', +      'legend_labels' => $opt{'graph_labels'}, +      'brush_size' => 4, +      #'pt_size' => 12, +    ); + +    #my @data = map { $data->{$_} } ( 'label', @items ); +    my @data = @{ $data->{data} }; +    unshift @data, $data->{'label'}; +     +    http_header('Content-Type' => 'image/png' ); + +    $chart->_set_colors(); + +    %><%= $chart->scalar_png(\@data) %><% + +  } else { + +    my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); + +%><%= include('/elements/header.html', $opt{'title'} ) %> + +<% $cgi->param('_type', 'png'); %> +<IMG SRC="<%= $cgi->self_url %>" WIDTH="976" HEIGHT="384"> +<BR> + +<%= table('e8e8e8') %> + +<TR> + +  <TD></TD> + +  <% foreach my $column ( @{$data->{label}} ) { +       #$column =~ s/^(\d+)\//$mon[$1-1]<BR>/e; +       $column =~ s/^(\d+)\//$mon[$1-1]<BR>/; +  %> +    <TH><%= $column %></TH> +  <% } %> + +  <% unless ( $opt{'nototal'} ) { %> +    <TH>Total</TH> +  <% } %> + +</TR> + +<% foreach my $row (@items) { + +     my $color = shift( @{ $opt{'colors'} } ); +%> + +  <TR> + +    <TH><FONT COLOR="#<%= $color %>"><%= shift( @{ $opt{'labels'} } ) %></FONT></TH> + +    <% my $link = exists($opt{'links'}{$row}) +         ? qq(<A HREF="$opt{'links'}{$row}) +         : ''; +       my @speriod = @{$data->{speriod}}; +       my @eperiod = @{$data->{eperiod}}; +       my $total = 0; +    %> +    <% foreach my $column ( @{ shift( @{$data->{data}} ) } ) { # ( @{$data->{$row}} ) { +    %> + +      <TD ALIGN="right" BGCOLOR="#ffffff"> +        <%= $link ? $link. 'begin='. shift(@speriod). ';end='. shift(@eperiod). '">' : '' %><FONT COLOR="#<%= $color %>">$<%= sprintf("%.2f", $column) %></FONT><%= $link ? '</A>' : '' %> +      </TD> +      <% $total += $column; %> + +    <% } %> + +    <% unless ( $opt{'nototal'} ) { %> + +      <TD ALIGN="right" BGCOLOR="#f5f6be"> +        <%= $link ? $link. 'begin='. @{$data->{speriod}}[0]. ';end='. @{$data->{eperiod}}[-1]. '">' : '' %><FONT COLOR="#<%= $color %>">$<%= sprintf("%.2f", $total) %></FONT><%= $link ? '</A>' : '' %> +      </TD> + +    <% } %> + +  </TR> + +<% } %> + +</TABLE> + +<%= include('/elements/footer.html') %> + +<% } %> diff --git a/httemplate/graph/money_time.cgi b/httemplate/graph/money_time.cgi index 73f9d23a2..f085c2264 100644 --- a/httemplate/graph/money_time.cgi +++ b/httemplate/graph/money_time.cgi @@ -1,15 +1,12 @@  <% -#	#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -#	my ($curmon,$curyear) = (localtime(time))[4,5]; -  #find first month -my $syear = $cgi->param('syear'); # || 1899+$curyear; -my $smonth = $cgi->param('smonth'); # || $curmon+1; +my $syear = $cgi->param('start_year'); # || 1899+$curyear; +my $smonth = $cgi->param('start_month'); # || $curmon+1;  #find last month -my $eyear = $cgi->param('eyear'); # || 1900+$curyear; -my $emonth = $cgi->param('emonth'); # || $curmon+1; +my $eyear = $cgi->param('end_year'); # || 1900+$curyear; +my $emonth = $cgi->param('end_month'); # || $curmon+1;  #XXX or virtual  my( $agentnum, $agent ) = ('', ''); @@ -20,18 +17,6 @@ if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {  }  my $agentname = $agent ? $agent->agent.' ' : ''; -%> -<%= include('/elements/header.html', -              $agentname. 'Sales, Credits and Receipts Summary' -           ) -%> - -<IMG SRC="money_time-graph.cgi?<%= $cgi->query_string %>" WIDTH="976" HEIGHT="384"> -<BR> - -<%= table('e8e8e8') %> -<% -  my @items = qw( invoiced netsales credits payments receipts );  if ( $cgi->param('12mo') == 1 ) {    @items = map $_.'_12mo', @items; @@ -44,9 +29,22 @@ my %label = (    'payments' => 'Gross Receipts',    'receipts' => 'Net Receipts',  ); + +my %graph_suffix = ( + 'invoiced' => ' (invoiced)',  + 'netsales' => ' (invoiced - applied credits)', + 'credits'  => '', + 'payments' => ' (payments)', + 'receipts' => '/Cashflow (payments - refunds)', +); +my %graph_label = map { $_ => $label{$_}.$graph_suffix{$_} } keys %label; +  $label{$_.'_12mo'} = $label{$_}. " (previous 12 months)"    foreach keys %label; +$graph_label{$_.'_12mo'} = $graph_label{$_}. " (previous 12 months)" +  foreach keys %graph_label; +  my %color = (    'invoiced' => '9999ff', #light blue    'netsales' => '0000cc', #blue @@ -64,50 +62,19 @@ my %link = (  );  # XXX link 12mo? -my $report = new FS::Report::Table::Monthly ( -  'items' => \@items, -  'start_month' => $smonth, -  'start_year'  => $syear, -  'end_month'   => $emonth, -  'end_year'    => $eyear, -  'agentnum'    => $agentnum, -); -my $data = $report->data; - -my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); - +%><%= include('elements/monthly.html', +                'title'        => $agentname. +                                  'Sales, Credits and Receipts Summary', +                'items'        => \@items, +                'labels'       => \%label, +                'graph_labels' => \%graph_label, +                'colors'       => \%color, +                'links'        => \%link, +                'start_month'  => $smonth, +                'start_year'   => $syear, +                'end_month'    => $emonth, +                'end_year'     => $eyear, +                'agentnum'     => $agentnum, +                'nototal'      => scalar($cgi->param('12mo')), +             )  %> - -<TR><TD></TD> -<% foreach my $column ( @{$data->{label}} ) { -     #$column =~ s/^(\d+)\//$mon[$1-1]<BR>/e; -     $column =~ s/^(\d+)\//$mon[$1-1]<BR>/; -     %> -     <TH><%= $column %></TH> -<% } %> -  <TH>Total</TH> -</TR> - -<% foreach my $row (@items) { %> -  <TR><TH><FONT COLOR="#<%= $color{$row} %>"><%= $label{$row} %></FONT></TH> -  <% my $link = exists($link{$row}) -       ? qq(<A HREF="$link{$row}) -       : ''; -     my @speriod = @{$data->{speriod}}; -     my @eperiod = @{$data->{eperiod}}; -     my $total = 0; -  %> -  <% foreach my $column ( @{$data->{$row}} ) { %> -    <TD ALIGN="right" BGCOLOR="#ffffff"> -      <%= $link ? $link. 'begin='. shift(@speriod). ';end='. shift(@eperiod). '">' : '' %><FONT COLOR="#<%= $color{$row} %>">$<%= sprintf("%.2f", $column) %></FONT><%= $link ? '</A>' : '' %> -    </TD> -    <% $total += $column; %> -  <% } %> -  <TD ALIGN="right" BGCOLOR="#f5f6be"> -    <%= $link ? $link. 'begin='. @{$data->{speriod}}[0]. ';end='. @{$data->{eperiod}}[-1]. '">' : '' %><FONT COLOR="#<%= $color{$row} %>">$<%= sprintf("%.2f", $total) %></FONT><%= $link ? '</A>' : '' %> -  </TD> -  </TR> -<% } %> -</TABLE> - -<%= include('/elements/footer.html') %> diff --git a/httemplate/graph/report_cust_bill_pkg.html b/httemplate/graph/report_cust_bill_pkg.html new file mode 100644 index 000000000..4f29b761f --- /dev/null +++ b/httemplate/graph/report_cust_bill_pkg.html @@ -0,0 +1,29 @@ +<%= include('/elements/header.html', 'Sales Report' ) %> + +<FORM ACTION="cust_bill_pkg.cgi" METHOD="GET"> + +<TABLE> + +<%= include('/elements/tr-select-from_to.html' ) %> + +<%= include('/elements/tr-select-agent.html', 'label' => 'For agent: ' ) %> + +<%= include('/elements/tr-select-pkg_class.html', '', +              'pre_options' => [ '0' => 'all' ], +              'empty_label' => '(empty class)', +           ) +%> + +<!-- +<TR> +  <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="separate_0freq" VALUE="1"></TD> +  <TD>Separate one-time vs. recurring sales</TD> +</TR> +--> + +</TABLE> + +<BR><INPUT TYPE="submit" VALUE="Display"> +</FORM> + +<%= include('/elements/footer.html') %> diff --git a/httemplate/graph/report_money_time.html b/httemplate/graph/report_money_time.html index 6c7e42716..564749686 100644 --- a/httemplate/graph/report_money_time.html +++ b/httemplate/graph/report_money_time.html @@ -1,23 +1,3 @@ -<% - -#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -my ($curmon,$curyear) = (localtime(time))[4,5]; - -#find first month -my $syear = 1899+$curyear; -my $smonth = $curmon+1; - -#want 12 month by default, not 13 -$smonth++; -if ( $smonth > 12 ) { $smonth-=12; $syear++ } - -#find last month -my $eyear = 1900+$curyear; -my $emonth = $curmon+1; - -my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); - -%>  <%= include('/elements/header.html', 'Sales, Credits and Receipts Summary' ) %>  <FORM ACTION="money_time.cgi" METHOD="GET"> @@ -34,38 +14,20 @@ my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);  <BR>  --> -From: <SELECT NAME="smonth"> -<% foreach my $mon ( 1..12 ) { %> -<OPTION VALUE="<%= $mon %>"<%= $mon == $smonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> -<% } %> -</SELECT> -<SELECT NAME="syear"> -<% foreach my $y ( 1999 .. 2010 ) { %> -<OPTION VALUE="<%= $y %>"<%= $y == $syear ? ' SELECTED' : '' %>><%= $y %> -<% } %> -</SELECT> -<BR> +<TABLE> -To: <SELECT NAME="emonth"> -<% foreach my $mon ( 1..12 ) { %> -<OPTION VALUE="<%= $mon %>"<%= $mon == $emonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> -<% } %> -</SELECT> -<SELECT NAME="eyear"> -<% foreach my $y ( 1999 .. 2010 ) { %> -<OPTION VALUE="<%= $y %>"<%= $y == $eyear ? ' SELECTED' : '' %>><%= $y %> -<% } %> -</SELECT> -<BR> +<%= include('/elements/tr-select-from_to.html' ) %> -For agent: <%= include('/elements/select-agent.html' ) %> -<BR> +<%= include('/elements/tr-select-agent.html', '', 'label' => 'For agent: ' ) %> -<INPUT TYPE="checkbox" NAME="12mo" VALUE="1"> Show 12 month totals instead of monthly values. -<BR> +<TR> +  <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="12mo" VALUE="1"></TD> +  <TD>Show 12 month totals instead of monthly values</TD> +</TR> + +</TABLE> -<INPUT TYPE="submit" VALUE="Display"> +<BR><INPUT TYPE="submit" VALUE="Display">  </FORM>  <%= include('/elements/footer.html') %> -  | 
