X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_bill_event.cgi;h=3b5114122d1b5ad48eba3f09a1c5d56e27daa3b1;hb=cf4ffd334502af562e924c24376333200073ccb8;hp=da11fc77497f9b8ca92fe3cd7024080d6cf1b9f7;hpb=c8cccb4a92adceb943c635fe62dad0d034462ce0;p=freeside.git diff --git a/httemplate/edit/part_bill_event.cgi b/httemplate/edit/part_bill_event.cgi index da11fc774..3b5114122 100755 --- a/httemplate/edit/part_bill_event.cgi +++ b/httemplate/edit/part_bill_event.cgi @@ -1,46 +1,14 @@ - -% -% -%if ( $cgi->param('eventpart') && $cgi->param('eventpart') =~ /^(\d+)$/ ) { -% $cgi->param('eventpart', $1); -%} else { -% $cgi->param('eventpart', ''); -%} -% -%my ($query) = $cgi->keywords; -%my $action = ''; -%my $part_bill_event = ''; -%if ( $cgi->param('error') ) { -% $part_bill_event = new FS::part_bill_event ( { -% map { $_, scalar($cgi->param($_)) } fields('part_bill_event') -% } ); -%} -%if ( $query && $query =~ /^(\d+)$/ ) { -% $part_bill_event ||= qsearchs('part_bill_event',{'eventpart'=>$1}); -%} else { -% $part_bill_event ||= new FS::part_bill_event {}; -%} -%$action ||= $part_bill_event->eventpart ? 'Edit' : 'Add'; -%my $hashref = $part_bill_event->hashref; -% -% - - <% include('/elements/header.html', "$action Invoice Event Definition", menubar( - 'Main Menu' => popurl(2), 'View all invoice events' => popurl(2). 'browse/part_bill_event.cgi', ) ) %> -% if ( $cgi->param('error') ) { - - Error: <% $cgi->param('error') %> -% } +<% include('/elements/error.html') %> -
+ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> @@ -54,16 +22,11 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> For - {eventpart} ? '' : 'MULTIPLE SIZE=7'%>> % tie my %payby, 'Tie::IxHash', FS::payby->cust_payby2longname; % foreach my $payby ( keys %payby ) { -% - - % } - - customers @@ -133,55 +96,90 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % ''; %} % +%sub honor_dundate { +% my $label = shift; +% my $plandata = shift; +% ''. +% ''. +% qq('. +% '
Allow delay until dun date? {$label} eq "$label => 1," ? 'CHECKED' : '' ). +% '>'. +% '
' +%} +% %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%%%\' );', +% 'code' => '$cust_main->charge( %%%charge%%%, \'%%%reason%%%\', \'$%%%charge%%%\', \'%%%late_taxclass%%%\' );', % 'html' => % 'Amount '. -% '
Reason ', +% '
Reason '. +% $late_taxclass, % 'weight' => 10, % }, % 'fee_percent' => { % 'name' => 'Late fee (percentage)', -% 'code' => '$cust_main->charge( sprintf(\'%.2f\', $cust_bill->owed * %%%percent%%% / 100 ), \'%%%reason%%%\' );', +% 'code' => '$cust_main->charge( sprintf(\'%.2f\', $cust_bill->owed * %%%percent%%% / 100 ), \'%%%percent_reason%%%\', \'%%%percent%%% percent\', \'%%%late_percent_taxclass%%%\' );', % 'html' => % 'Percent %'. -% '
Reason ', +% '
Reason '. +% $late_percent_taxclass, % 'weight' => 10, % }, % 'suspend' => { % 'name' => 'Suspend', -% 'code' => '$cust_main->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%%% );', -% 'html' => " $money_char ". '', +% '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(%%%if_pkgpart%%%);', -% 'html' => sub { &select_pkgpart('if_pkgpart', @_) }, +% '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%%%);', -% 'html' => sub { &select_pkgpart('unless_pkgpart', @_) }, +% '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();', +% 'code' => '$cust_main->cancel(reason => %%%creason%%%);', % 'weight' => 10, +% 'reason' => 'C', % }, % % 'addpost' => { @@ -196,6 +194,13 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % 'weight' => 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();', @@ -233,6 +238,12 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % '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%%%\');', @@ -251,7 +262,11 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % % 'send_agent' => { % 'name' => 'Send invoice (email/print/fax) ', -% 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', [ %%%agentnum%%% ], \'%%%agent_invoice_from%%%\');', +% 'code' => '$cust_bill->send( \'%%%agent_templatename%%%\', +% [ %%%agentnum%%% ], +% \'%%%agent_invoice_from%%%\', +% %%%agent_balanceover%%% +% );', % 'html' => sub { % ' % @@ -270,6 +285,13 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % % % +% +% +% +% %
if balance (this invoice and previous) over +% +% '. $money_char. ' +%
'; % }, % 'weight' => 50, @@ -385,18 +407,13 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % % 'apply' => { % 'name' => 'Apply unapplied payments and credits', -% 'code' => '$cust_main->apply_payments; $cust_main->apply_credits; "";', +% 'code' => '$cust_main->apply_payments_and_credits; "";', % 'weight' => 70, % }, % -% 'collect' => { -% 'name' => 'Collect on invoices (normally only used with a Late Fee and Generate Invoice events)', -% 'code' => '$cust_main->collect();', -% 'weight' => 80, -% }, -% %; % + %foreach my $event ( keys %events ) { % my %plandata = map { /^(\w+) (.*)$/; ($1, $2); } % split(/\n/, $part_bill_event->plandata); @@ -409,23 +426,105 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %> % $html =~ s/%%%$field%%%/$plandata{$field}/; % } % + +% if ($event eq $part_bill_event->plan){ +% $currentreasonclass=$events{$event}{reason}; +% } % print ntable( "#cccccc", 2). % qq!plan; +% print qq!onClick="showhide_table()" !; % print qq!VALUE="!. $event. ":". $events{$event}{weight}. ":". % encode_entities($events{$event}{code}). % qq!">$events{$event}{name}!; % print ''. $html. '' if $html; % print qq!!; % print ''; +% print qq!
!; %} % -%#print ''; +% if ($currentreasonclass eq 'C'){ +% if ($cgi->param('creason') =~ /^(-?\d+)$/){ +% $creason = $1; +% }else{ +% $creason = $part_bill_event->reason; +% } +% if ($cgi->param('newcreasonT') =~ /^(\d+)$/){ +% $newcreasonT = $1; +% } +% if ($cgi->param('newcreason') =~ /^([\w\s]+)$/){ +% $newcreason = $1; +% } +% }elsif ($currentreasonclass eq 'S'){ +% if ($cgi->param('sreason') =~ /^(-?\d+)$/){ +% $sreason = $1; +% }else{ +% $sreason = $part_bill_event->reason; +% } +% if ($cgi->param('newsreasonT') =~ /^(\d+)$/){ +% $newsreasonT = $1; +% } +% if ($cgi->param('newsreason') =~ /^([\w\s]+)$/){ +% $newsreason = $1; +% } +% } % -%print < -% -%END + + + + + + + + +
+ +<% include('/elements/tr-select-reason.html', + 'field' => 'creason', + 'reason_class' => 'C', + 'curr_value' => $creason, + 'init_type' => $newcreasonT, + 'init_newreason' => $newcreason + ) +%> +
+
+ + + +
+ +<% include('/elements/tr-select-reason.html', + 'field' => 'sreason', + 'reason_class' => 'S', + 'curr_value' => $sreason, + 'init_type' => $newsreasonT, + 'init_newreason' => $newsreason + ) +%> +
+
+ % %print qq!{eventpart} ? $hashref->{eventpart} : "(NEW)" %> - - +<% include('/elements/footer.html') %> + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +if ( $cgi->param('eventpart') && $cgi->param('eventpart') =~ /^(\d+)$/ ) { + $cgi->param('eventpart', $1); +} else { + $cgi->param('eventpart', ''); +} + +my ($creason, $newcreasonT, $newcreason); +my ($sreason, $newsreasonT, $newsreason); + +my ($query) = $cgi->keywords; +my $action = ''; +my $part_bill_event = ''; +my $currentreasonclass = ''; +if ( $cgi->param('error') ) { + $part_bill_event = new FS::part_bill_event ( { + map { $_, scalar($cgi->param($_)) } fields('part_bill_event') + } ); +} +if ( $query && $query =~ /^(\d+)$/ ) { + $part_bill_event ||= qsearchs('part_bill_event',{'eventpart'=>$1}); +} else { + $part_bill_event ||= new FS::part_bill_event {}; +} +$action ||= $part_bill_event->eventpart ? 'Edit' : 'Add'; +my $hashref = $part_bill_event->hashref; +