diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-06-07 23:41:46 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-06-07 23:41:46 -0700 |
commit | 42eaf0aec334e15163848eb2bed33db9fd349efa (patch) | |
tree | c163f88770596f1adbd6eacc814f7966525e45b3 | |
parent | 08d132eca6a97c3417dc0f13bb603f080bd0e222 (diff) | |
parent | d785bd7751b24ca30cf4679413db9dff5d15a80c (diff) |
Merge branch 'master' of git.freeside.biz:/home/git/freeside
-rw-r--r-- | FS/FS/Cron/bill.pm | 9 | ||||
-rw-r--r-- | FS/FS/Template_Mixin.pm | 2 | ||||
-rw-r--r-- | FS/FS/cust_credit_bill_pkg.pm | 64 | ||||
-rw-r--r-- | httemplate/edit/elements/part_svc_column.html | 13 |
4 files changed, 27 insertions, 61 deletions
diff --git a/FS/FS/Cron/bill.pm b/FS/FS/Cron/bill.pm index 98ce8fa73..d04693049 100644 --- a/FS/FS/Cron/bill.pm +++ b/FS/FS/Cron/bill.pm @@ -41,9 +41,10 @@ sub bill { #$FS::cust_event::DEBUG = $opt{'l'} if $opt{'l'}; my $conf = new FS::Conf; + my $disable_bill = 0; if ( $conf->exists('disable_cron_billing') ) { warn "disable_cron_billing set, skipping billing\n" if $debug; - return; + $disable_bill = 1; } #we're at now now (and later). @@ -127,7 +128,11 @@ sub bill { } else { my $cust_main = qsearchs( 'cust_main', { 'custnum' => $custnum } ); - $cust_main->bill_and_collect( %args, 'debug' => $debug ); + if ( $disable_bill ) { + $cust_main->collect( %args, 'debug' => $debug ); + } else { + $cust_main->bill_and_collect( %args, 'debug' => $debug ); + } } diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index e4db2eeda..e597e73a3 100644 --- a/FS/FS/Template_Mixin.pm +++ b/FS/FS/Template_Mixin.pm @@ -800,7 +800,7 @@ sub print_generic { $adjust_section->{'sort_weight'} = $adjust_weight; my $unsquelched = $params{unsquelch_cdr} || $cust_main->squelch_cdr ne 'Y'; - my $multisection = $conf->exists($tc.'_sections', $cust_main->agentnum); + my $multisection = $conf->exists($tc.'sections', $cust_main->agentnum); $invoice_data{'multisection'} = $multisection; my $late_sections = []; my $extra_sections = []; diff --git a/FS/FS/cust_credit_bill_pkg.pm b/FS/FS/cust_credit_bill_pkg.pm index 3cb44a092..657a88904 100644 --- a/FS/FS/cust_credit_bill_pkg.pm +++ b/FS/FS/cust_credit_bill_pkg.pm @@ -223,65 +223,21 @@ sub delete { local $FS::UID::AutoCommit = 0; my $dbh = dbh; - my $original_cust_bill_pkg = $self->cust_bill_pkg; - my $cust_bill = $original_cust_bill_pkg->cust_bill; - - my %hash = $original_cust_bill_pkg->hash; - delete $hash{$_} for qw( billpkgnum setup recur ); - $hash{$self->setuprecur} = $self->amount; - my $cust_bill_pkg = new FS::cust_bill_pkg { %hash }; - - use Data::Dumper; - my @exemptions = qsearch( 'cust_tax_exempt_pkg', - { creditbillpkgnum => $self->creditbillpkgnum } - ); - my %seen = (); - my @generated_exemptions = (); - my @unseen_exemptions = (); - foreach my $exemption ( @exemptions ) { - my $error = $exemption->delete; + my @negative_exemptions = qsearch('cust_tax_exempt_pkg', { + 'creditbillpkgnum' => $self->creditbillpkgnum + }); + + # de-anti-exempt those negative exemptions + my $error; + foreach (@negative_exemptions) { + $error = $_->delete; if ( $error ) { $dbh->rollback if $oldAutoCommit; - return "error deleting cust_tax_exempt_pkg: $error"; + return $error; } - - next if $seen{$exemption->taxnum}; - $seen{$exemption->taxnum} = 1; - push @unseen_exemptions, $exemption; } - foreach my $exemption ( @unseen_exemptions ) { - my $tax_object = $exemption->cust_main_county; - unless ($tax_object) { - $dbh->rollback if $oldAutoCommit; - return "can't find exempted tax"; - } - - my $hashref_or_error = - $tax_object->taxline( [ $cust_bill_pkg ], - 'custnum' => $cust_bill->custnum, - 'invoice_time' => $cust_bill->_date, - ); - unless (ref($hashref_or_error)) { - $dbh->rollback if $oldAutoCommit; - return "error calculating taxes: $hashref_or_error"; - } - - push @generated_exemptions, @{ $cust_bill_pkg->cust_tax_exempt_pkg }; - } - - foreach my $taxnum ( keys %seen ) { - my $sum = 0; - $sum += $_->amount for grep {$_->taxnum == $taxnum} @exemptions; - $sum -= $_->amount for grep {$_->taxnum == $taxnum} @generated_exemptions; - $sum = sprintf("%.2f", $sum); - unless ($sum eq '0.00' || $sum eq '-0.00') { - $dbh->rollback if $oldAutoCommit; - return "Can't unapply credit without charging tax of $sum"; - } - } - - my $error = $self->SUPER::delete(@_); + $error = $self->SUPER::delete(@_); if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error; diff --git a/httemplate/edit/elements/part_svc_column.html b/httemplate/edit/elements/part_svc_column.html index fbea9bd6d..1c5b45314 100644 --- a/httemplate/edit/elements/part_svc_column.html +++ b/httemplate/edit/elements/part_svc_column.html @@ -207,15 +207,20 @@ that field. NAME="<%$name%>" ID="<%$name%>" VALUE="<%$value%>"> -% # inventory class selection +% my $mode = 'inventory'; +% my $multiple = 1; +% if ( $def->{'type'} eq 'select-hardware' ) { +% $mode = 'hardware'; +% $multiple = 0; +% } <& /elements/select-table.html, 'field' => $name.'_classnum', 'id' => $name.'_select', - 'table' => 'inventory_class', + 'table' => $mode.'_class', 'name_col' => 'classname', 'curr_value' => $value, - 'empty_label' => 'Select inventory class', - 'multiple' => 1, + 'empty_label' => "Select $mode class", + 'multiple' => 0, &> % } </TD> |