[freeside-commits] freeside/httemplate/search cust_credit_bill.html, NONE, 1.1

Ivan,,, ivan at wavetail.420.am
Fri Mar 14 00:48:46 PDT 2008


Update of /home/cvs/cvsroot/freeside/httemplate/search
In directory wavetail.420.am:/tmp/cvs-serv26062/httemplate/search

Added Files:
	cust_credit_bill.html 
Log Message:
add net credits to sales/credits/receipts report

--- NEW FILE: cust_credit_bill.html ---
<% include( 'elements/search.html',
                'title'       => $title,
                'name'        => 'net credits',
                'query'       => $sql_query,
                'count_query' => $count_query,
                'count_addl'  => [ '$%.2f total credited (net)', ],
                'header'      => [ 'Net applied',
                                   'to Invoice',
                                   'Credit',
                                   'By',
                                   'Reason',
                                   FS::UI::Web::cust_header(),
                                 ],
                'fields'      => [
                   sub { $money_char. sprintf('%.2f', shift->amount ) },
                   sub { my $ccb = shift;
                         '#'.$ccb->invnum. ' '.
                         time2str('%b %d %Y', $ccb->cust_bill_date ).
                         " ($money_char".
                           sprintf('%.2f', $ccb->cust_bill_amount).
                         ")" 
                       },
                   sub { my $ccb = shift;
                         time2str('%b %d %Y', $ccb->_date ).
                         " ($money_char".
                         sprintf('%.2f', $ccb->cust_credit_amount ).
                         ")"
                       },
                   sub { shift->cust_credit->otaker },
                   sub { shift->cust_credit->reason },
                   \&FS::UI::Web::cust_fields,
                ],
                'align' => 'rrrll'.FS::UI::Web::cust_aligns(),
                'links' => [
                             '',
                             $cust_bill_link,
                             '',
                             '',
                             '',
                             ( map { $_ ne 'Cust. Status' ? $cust_link : '' }
                                   FS::UI::Web::cust_header()
                             ),
                           ],
                'color' => [ 
                             '',
                             '',
                             '',
                             '',
                             '',
                             FS::UI::Web::cust_colors(),
                           ],
                'style' => [ 
                             '',
                             '',
                             '',
                             '',
                             '',
                             FS::UI::Web::cust_styles(),
                           ],
          )
%>
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');

my $conf = new FS::Conf;
my $money_char = $conf->config('money_char') || '$';

my $title = 'Net Credit Search Results';

my @search = ();

if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
  push @search, "agentnum = $1";
  my $agent = qsearchs('agent', { 'agentnum' => $1 } );
  die "unknown agentnum $1" unless $agent;
  $title = $agent->agent. " $title";
}

my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
push @search, "cust_bill._date >= $beginning ",
              "cust_bill._date <= $ending";

#here is the agent virtualization
push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;

my $where = 'WHERE '. join(' AND ', @search);
#
my $count_query = 'SELECT COUNT(*), SUM(amount)
                   FROM cust_credit_bill
                     LEFT JOIN cust_bill USING ( invnum  )
                     LEFT JOIN cust_main USING ( custnum ) '.
                  $where;

my $sql_query   = {
  'table'     => 'cust_credit_bill',
  'select'    => join(', ',
                   'cust_credit_bill.*',
                   'cust_credit.amount  AS cust_credit_amount',
                   'cust_bill._date     AS cust_bill_date',
                   'cust_bill.charged   AS cust_bill_charged',
                   'cust_credit.custnum AS custnum',
                   'cust_main.custnum   AS cust_main_custnum',
                   FS::UI::Web::cust_sql_fields(),
                 ),
  'hashref'   => {},
  'extra_sql' => $where,
  'addl_from' => 'LEFT JOIN cust_bill   USING ( invnum  )
                  LEFT JOIN cust_credit USING ( crednum )
                  LEFT JOIN cust_main ON ( cust_bill.custnum = cust_main.custnum )',
};

my $cust_bill_link = sub {
  my $cust_credit_bill = shift;
  $cust_credit_bill->invnum
    ? [ "${p}view/cust_bill.cgi?", 'invnum' ]
    : '';
};

#my $cust_credit_link = sub {
#  my $cust_credit_bill = shift;
#  $cust_credit_bill->crednum
#    ? [ "${p}view/cust_credit.cgi?", 'crednum' ]
#    : '';
#};

my $cust_link = sub {
  my $cust_credit_bill = shift;
  $cust_credit_bill->cust_main_custnum
    ? [ "${p}view/cust_main.cgi?", 'cust_main_custnum' ]
    : '';
};

</%init>



More information about the freeside-commits mailing list