[freeside-commits] freeside/FS/FS cust_main.pm,1.537,1.538
Jeff Finucane,420,,
jeff at wavetail.420.am
Wed Aug 18 11:59:32 PDT 2010
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv22791
Modified Files:
cust_main.pm
Log Message:
still don't want invoices without line items
Index: cust_main.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_main.pm,v
retrieving revision 1.537
retrieving revision 1.538
diff -u -w -d -r1.537 -r1.538
--- cust_main.pm 18 Aug 2010 01:33:25 -0000 1.537
+++ cust_main.pm 18 Aug 2010 18:59:30 -0000 1.538
@@ -3020,7 +3020,7 @@
foreach my $pass (@passes) { # keys %cust_bill_pkg ) {
- my @cust_bill_pkg = @{ $cust_bill_pkg{$pass} };
+ my @cust_bill_pkg = _omit_zero_value_bundles(@{ $cust_bill_pkg{$pass} });
next unless @cust_bill_pkg; #don't create an invoice w/o line items
@@ -3066,6 +3066,9 @@
}
}
+ # it's silly to have a zero value postal_pkg, but....
+ @cust_bill_pkg = _omit_zero_value_bundles(@cust_bill_pkg);
+
}
}
@@ -3140,24 +3143,12 @@
return "can't create invoice for customer #". $self->custnum. ": $error";
}
- my @cust_bill_pkg_bundle = ();
foreach my $cust_bill_pkg ( @cust_bill_pkg ) {
$cust_bill_pkg->invnum($cust_bill->invnum);
- if (scalar(@cust_bill_pkg_bundle) && !$cust_bill_pkg->pkgpart_override) {
- $error = $self->_insert_cust_bill_pkg_bundle( @cust_bill_pkg_bundle );
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
- @cust_bill_pkg_bundle = ();
- }
- push @cust_bill_pkg_bundle, $cust_bill_pkg;
- }
- if (scalar(@cust_bill_pkg_bundle)) {
- $error = $self->_insert_cust_bill_pkg_bundle( @cust_bill_pkg_bundle );
+ my $error = $cust_bill_pkg->insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
- return $error;
+ return "can't create invoice line item: $error";
}
}
@@ -3177,19 +3168,25 @@
''; #no error
}
-#insert line items while discarding bundled packages of 0 value
-sub _insert_cust_bill_pkg_bundle {
- my $self = shift;
- my @cust_bill_pkg = @_;
+#discard bundled packages of 0 value
+sub _omit_zero_value_bundles {
+ my @cust_bill_pkg = ();
+ my @cust_bill_pkg_bundle = ();
my $sum = 0;
- $sum += $_->setup + $_->recur foreach @cust_bill_pkg;
- return '' unless $sum > 0;
- foreach my $cust_bill_pkg ( @cust_bill_pkg ) {
- my $error = $cust_bill_pkg->insert;
- return "can't create invoice line item: $error" if $error;
+ foreach my $cust_bill_pkg ( @_ ) {
+ if (scalar(@cust_bill_pkg_bundle) && !$cust_bill_pkg->pkgpart_override) {
+ push @cust_bill_pkg, @cust_bill_pkg_bundle if $sum > 0;
+ @cust_bill_pkg_bundle = ();
+ $sum = 0;
}
+ $sum += $cust_bill_pkg->setup + $cust_bill_pkg->recur;
+ push @cust_bill_pkg_bundle, $cust_bill_pkg;
+ }
+ push @cust_bill_pkg, @cust_bill_pkg_bundle if $sum > 0;
+
+ (@cust_bill_pkg);
}
More information about the freeside-commits
mailing list