$error = $record->insert;
- $error = $new_record->replace($old_record);
-
- $error = $record->delete;
-
$error = $record->check;
=head1 DESCRIPTION
}
}
+ my $tax_location = $self->get('cust_bill_pkg_tax_location');
+ if ( $tax_location ) {
+ foreach my $cust_bill_pkg_tax_location ( @$tax_location ) {
+ $cust_bill_pkg_tax_location->billpkgnum($self->billpkgnum);
+ warn $cust_bill_pkg_tax_location;
+ $error = $cust_bill_pkg_tax_location->insert;
+ warn $error;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+ }
+
+ my $tax_rate_location = $self->get('cust_bill_pkg_tax_rate_location');
+ if ( $tax_rate_location ) {
+ foreach my $cust_bill_pkg_tax_rate_location ( @$tax_rate_location ) {
+ $cust_bill_pkg_tax_rate_location->billpkgnum($self->billpkgnum);
+ $error = $cust_bill_pkg_tax_rate_location->insert;
+ warn $error;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+ }
+
+ my $cust_tax_adjustment = $self->get('cust_tax_adjustment');
+ if ( $cust_tax_adjustment ) {
+ $cust_tax_adjustment->billpkgnum($self->billpkgnum);
+ $error = $cust_tax_adjustment->replace;
+ warn $error;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
'';
return "Can't delete cust_bill_pkg records!";
}
-=item replace OLD_RECORD
-
-Currently unimplemented. This would be even more of an accounting nightmare
-than deleteing the items. Just don't do it.
-
-=cut
-
-sub replace {
- return "Can't modify cust_bill_pkg records!";
-}
+#alas, bin/follow-tax-rename
+#
+#=item replace OLD_RECORD
+#
+#Currently unimplemented. This would be even more of an accounting nightmare
+#than deleteing the items. Just don't do it.
+#
+#=cut
+#
+#sub replace {
+# return "Can't modify cust_bill_pkg records!";
+#}
=item check
|| $self->ut_numbern('sdate')
|| $self->ut_numbern('edate')
|| $self->ut_textn('itemdesc')
+ || $self->ut_textn('itemcomment')
;
return $error if $error;
qsearchs( 'cust_bill', { 'invnum' => $self->invnum } );
}
+=item previous_cust_bill_pkg
+
+Returns the previous cust_bill_pkg for this package, if any.
+
+=cut
+
+sub previous_cust_bill_pkg {
+ my $self = shift;
+ qsearchs({
+ 'table' => 'cust_bill_pkg',
+ 'hashref' => { 'pkgnum' => $self->pkgnum,
+ 'sdate' => { op=>'<', value=>$self->sdate },
+ },
+ 'order_by' => 'ORDER BY sdate DESC LIMIT 1',
+ });
+}
+
=item details [ OPTION => VALUE ... ]
Returns an array of detail information for the invoice line item.
if ( $self->pkgnum > 0 ) {
$self->itemdesc || $self->part_pkg->pkg;
} else {
- $self->itemdesc || 'Tax';
+ my $desc = $self->itemdesc || 'Tax';
+ $desc .= ' '. $self->itemcomment if $self->itemcomment =~ /\S/;
+ $desc;
}
}