Action |
%
%
%#print ntable();
%
%sub select_pkgpart {
% my $label = shift;
% my $plandata = shift;
% my %selected = map { $_=>1 } split(/,\s*/, $plandata->{$label});
% qq(';
%}
%
%sub select_agentnum {
% my $plandata = shift;
% #my $agentnum = $plandata->{'agentnum'};
% my %agentnums = map { $_=>1 } split(/,\s*/, $plandata->{'agentnum'});
% '';
%}
%
%sub honor_dundate {
% my $label = shift;
% my $plandata = shift;
% ''
%}
%
%my $conf = new FS::Conf;
%my $money_char = $conf->config('money_char') || '$';
%
%my $late_taxclass = '';
%my $late_percent_taxclass = '';
%if ( $conf->exists('enable_taxclasses') ) {
% $late_taxclass =
% ' Taxclass '.
% include('/elements/select-taxclass.html',
% 'curr_value' => '%%%late_taxclass%%%',
% 'name' => 'late_taxclass' );
% $late_percent_taxclass =
% ' Taxclass '.
% include('/elements/select-taxclass.html',
% 'curr_value' => '%%%late_percent_taxclass%%%',
% 'name' => 'late_percent_taxclass' );
%}
%
%#this is pretty kludgy right here.
%tie my %events, 'Tie::IxHash',
%
% 'fee' => {
% 'name' => 'Late fee (flat)',
% 'code' => '$cust_main->charge( %%%charge%%%, \'%%%reason%%%\', \'$%%%charge%%%\', \'%%%late_taxclass%%%\' );',
% 'html' =>
% 'Amount '.
% ' Reason '.
% $late_taxclass,
% 'weight' => 10,
% },
% 'fee_percent' => {
% 'name' => 'Late fee (percentage)',
% 'code' => '$cust_main->charge( sprintf(\'%.2f\', $cust_bill->owed * %%%percent%%% / 100 ), \'%%%percent_reason%%%\', \'%%%percent%%% percent\', \'%%%late_percent_taxclass%%%\' );',
% 'html' =>
% 'Percent %'.
% ' Reason '.
% $late_percent_taxclass,
% 'weight' => 10,
% },
% 'suspend' => {
% 'name' => 'Suspend',
% 'code' => '$cust_main->suspend(reason => %%%sreason%%%, %%%honor_dundate%%% );',
% 'html' => sub { &honor_dundate('honor_dundate', @_) },
% 'weight' => 10,
% 'reason' => 'S',
% },
% 'suspend-if-balance' => {
% 'name' => 'Suspend if balance (this invoice and previous) over',
% 'code' => '$cust_bill->cust_suspend_if_balance_over( %%%balanceover%%%, reason => %%%sreason%%%, %%%balance_honor_dundate%%% );',
% 'html' => sub { " $money_char ". ' '. &honor_dundate('balance_honor_dundate', @_) },
% 'weight' => 10,
% 'reason' => 'S',
% },
% 'suspend-if-pkgpart' => {
% 'name' => 'Suspend packages',
% 'code' => '$cust_main->suspend_if_pkgpart({pkgparts => [%%%if_pkgpart%%%,], reason => %%%sreason%%%, %%%if_pkgpart_honor_dundate%%% });',
% 'html' => sub { &select_pkgpart('if_pkgpart', @_). &honor_dundate('if_pkgpart_honor_dundate', @_) },
% 'weight' => 10,
% 'reason' => 'S',
% },
% 'suspend-unless-pkgpart' => {
% 'name' => 'Suspend packages except',
% 'code' => '$cust_main->suspend_unless_pkgpart({unless_pkgpart => [%%%unless_pkgpart%%%], reason => %%%sreason%%%, %%%unless_pkgpart_honor_dundate%%% });',
% 'html' => sub { &select_pkgpart('unless_pkgpart', @_). &honor_dundate('unless_pkgpart_honor_dundate' => @_) },
% 'weight' => 10,
% 'reason' => 'S',
% },
% 'cancel' => {
% 'name' => 'Cancel',
% 'code' => '$cust_main->cancel(reason => %%%creason%%%);',
% 'weight' => 80, #10,
% 'reason' => 'C',
% },
%
% 'addpost' => {
% 'name' => 'Add postal invoicing',
% 'code' => '$cust_main->invoicing_list_addpost(); "";',
% 'weight' => 20,
% },
%
% 'comp' => {
% 'name' => 'Pay invoice with a complimentary "payment"',
% 'code' => '$cust_bill->comp();',
% 'weight' => 90, #30,
% },
%
% 'credit' => {
% 'name' => "Create and apply a credit for the customer's balance (i.e. write off as bad debt)",
% 'code' => '$cust_main->credit( $cust_main->balance, \'%%%credit_reason%%%\' );',
% 'html' => '',
% 'weight' => 30,
% },
%
% 'realtime-card' => {
% 'name' => 'Run card with a Business::OnlinePayment realtime gateway',
% 'code' => '$cust_bill->realtime_card();',
% 'weight' => 30,
% },
%
% 'realtime-check' => {
% 'name' => 'Run check with a Business::OnlinePayment realtime gateway',
% 'code' => '$cust_bill->realtime_ach();',
% 'weight' => 30,
% },
%
% 'realtime-lec' => {
% 'name' => 'Run phone bill ("LEC") billing with a Business::OnlinePayment realtime gateway',
% 'code' => '$cust_bill->realtime_lec();',
% 'weight' => 30,
% },
%
% 'batch-card' => {
% 'name' => 'Add card or check to a pending batch',
% 'code' => '$cust_bill->batch_card(%options);',
% 'weight' => 40,
% },
%
%
% #'retriable' => {
% # 'name' => 'Mark batched card event as retriable',
% # 'code' => '$cust_pay_batch->retriable();',
% # 'weight' => 60,
% #},
%
% 'send' => {
% 'name' => 'Send invoice (email/print/fax)',
% 'code' => '$cust_bill->send();',
% 'weight' => 50,
% },
%
% 'send_email' => {
% 'name' => 'Send invoice (email only)',
% 'code' => '$cust_bill->email();',
% 'weight' => 50,
% },
%
% 'send_alternate' => {
% 'name' => 'Send invoice (email/print/fax) with alternate template',
% 'code' => '$cust_bill->send(\'%%%templatename%%%\');',
% 'html' =>
% '',
% 'weight' => 50,
% },
%
% 'send_if_newest' => {
% 'name' => 'Send invoice (email/print/fax) with alternate template, if it is still the newest invoice (useful for late notices - set to 31 days or later)',
% 'code' => '$cust_bill->send_if_newest(\'%%%if_newest_templatename%%%\');',
% 'html' =>
% '',
% 'weight' => 50,
% },
%
% 'send_agent' => {
% 'name' => 'Send invoice (email/print/fax) ',
% 'code' => '$cust_bill->send( \'%%%agent_templatename%%%\',
% [ %%%agentnum%%% ],
% \'%%%agent_invoice_from%%%\',
% %%%agent_balanceover%%%
% );',
% 'html' => sub {
% '';
% },
% 'weight' => 50,
% },
%
% 'send_csv_ftp' => {
% 'name' => 'Upload CSV invoice data to an FTP server',
% 'code' => '$cust_bill->send_csv( protocol => \'ftp\',
% server => \'%%%ftpserver%%%\',
% username => \'%%%ftpusername%%%\',
% password => \'%%%ftppassword%%%\',
% dir => \'%%%ftpdir%%%\',
% \'format\' => \'%%%ftpformat%%%\',
% );',
% 'html' =>
% '',
% 'weight' => 50,
% },
%
% 'spool_csv' => {
% 'name' => 'Spool CSV invoice data',
% 'code' => '$cust_bill->spool_csv(
% \'format\' => \'%%%spoolformat%%%\',
% \'dest\' => \'%%%spooldest%%%\',
% \'balanceover\' => \'%%%spoolbalanceover%%%\',
% \'agent_spools\' => \'%%%spoolagent_spools%%%\',
% );',
% 'html' => sub {
% my $plandata = shift;
%
% my $html =
% '';
%
% $html;
% },
% 'weight' => 50,
% },
%
% 'bill' => {
% 'name' => 'Generate invoices (normally only used with a Late Fee event)',
% 'code' => '$cust_main->bill();',
% 'weight' => 60,
% },
%
% 'apply' => {
% 'name' => 'Apply unapplied payments and credits',
% 'code' => '$cust_main->apply_payments_and_credits; "";',
% 'weight' => 70,
% },
%
%;
%
%foreach my $event ( keys %events ) {
% my %plandata = map { /^(\w+) (.*)$/; ($1, $2); }
% split(/\n/, $part_bill_event->plandata);
% my $html = $events{$event}{html};
% if ( ref($html) eq 'CODE' ) {
% $html = &{$html}(\%plandata);
% }
% while ( $html =~ /%%%(\w+)%%%/ ) {
% my $field = $1;
% $html =~ s/%%%$field%%%/$plandata{$field}/;
% }
%
% if ($event eq $part_bill_event->plan){
% $currentreasonclass=$events{$event}{reason};
% }
% print ntable( "#cccccc", 2).
% qq! |