prevent bug causing 'Error crediting customer for service remaining: FS::cust_pkg...
authorivan <ivan>
Wed, 2 Mar 2005 00:03:48 +0000 (00:03 +0000)
committerivan <ivan>
Wed, 2 Mar 2005 00:03:48 +0000 (00:03 +0000)
FS/FS/cust_pkg.pm
FS/FS/part_pkg.pm

index a6115a0..cd808d4 100644 (file)
@@ -396,12 +396,16 @@ sub cancel {
   }
 
   # Add a credit for remaining service
-  my $remaining_value= $self->calc_remain();
-  if ($remaining_value > 0) {
-    my $error = $self->credit($remaining_value, 'Credit for service remaining');
+  my $remaining_value = $self->calc_remain();
+  if ( $remaining_value > 0 ) {
+    my $error = $self->cust_main->credit(
+      $remaining_value,
+      'Credit for unused time on'. $self->part_pkg->pkg,
+    );
     if ($error) {
       $dbh->rollback if $oldAutoCommit;
-      return "Error crediting customer for service remaining: $error";
+      return "Error crediting customer \$$remaining_value for unused time on".
+             $self->part_pkg->pkg. ": $error";
     }                                                                          
   }                                                                            
 
index a0683c8..faaf485 100644 (file)
@@ -672,6 +672,11 @@ sub _calc_eval {
   $value;
 }
 
+#fallback that return 0 for old legacy packages with no plan
+
+sub calc_remain { 0; }
+sub calc_cancel { 0; }
+
 =back
 
 =head1 SUBROUTINES