- if ( defined( dbdef->table($class->table)->column('billpkgnum') ) &&
- defined( dbdef->table($class->table)->column('invnum') ) &&
- defined( dbdef->table($class->table)->column('pkgnum') )
- ) {
-
- warn "$me Checking for unmigrated invoice line item details\n" if $DEBUG;
-
- my @cbpd = qsearch({ 'table' => $class->table,
- 'hashref' => {},
- 'extra_sql' => 'WHERE invnum IS NOT NULL AND '.
- 'pkgnum IS NOT NULL',
- });
-
- if (scalar(@cbpd)) {
- warn "$me Found unmigrated invoice line item details\n" if $DEBUG;
-
- foreach my $cbpd ( @cbpd ) {
- my $detailnum = $cbpd->detailnum;
- warn "$me Contemplating detail $detailnum\n" if $DEBUG > 1;
- my $cust_bill_pkg =
- qsearchs({ 'table' => 'cust_bill_pkg',
- 'hashref' => { 'invnum' => $cbpd->invnum,
- 'pkgnum' => $cbpd->pkgnum,
- },
- 'order_by' => 'ORDER BY billpkgnum LIMIT 1',
- });
- if ($cust_bill_pkg) {
- $cbpd->billpkgnum($cust_bill_pkg->billpkgnum);
- $cbpd->invnum('');
- $cbpd->pkgnum('');
- my $error = $cbpd->replace;
-
- warn "*** WARNING: error replacing line item detail ".
- "(cust_bill_pkg_detail) $detailnum: $error ***\n"
- if $error;
- } else {
- warn "Found orphaned line item detail $detailnum during upgrade.\n";
- }