projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
some cleanup while i'm here
[freeside.git]
/
FS
/
FS
/
cust_credit.pm
diff --git
a/FS/FS/cust_credit.pm
b/FS/FS/cust_credit.pm
index
19a5453
..
7ffb1d1
100644
(file)
--- a/
FS/FS/cust_credit.pm
+++ b/
FS/FS/cust_credit.pm
@@
-4,13
+4,14
@@
use strict;
use vars qw( @ISA $conf $unsuspendauto );
use Date::Format;
use FS::UID qw( dbh getotaker );
use vars qw( @ISA $conf $unsuspendauto );
use Date::Format;
use FS::UID qw( dbh getotaker );
-use FS::Record qw( qsearch qsearchs );
use FS::Misc qw(send_email);
use FS::Misc qw(send_email);
+use FS::Record qw( qsearch qsearchs );
+use FS::cust_main_Mixin;
use FS::cust_main;
use FS::cust_refund;
use FS::cust_credit_bill;
use FS::cust_main;
use FS::cust_refund;
use FS::cust_credit_bill;
-@ISA = qw( FS::Record );
+@ISA = qw( FS::
cust_main_Mixin FS::
Record );
#ask FS::UID to run this stuff for us later
$FS::UID::callback{'FS::cust_credit'} = sub {
#ask FS::UID to run this stuff for us later
$FS::UID::callback{'FS::cust_credit'} = sub {
@@
-75,6
+76,12
@@
Creates a new credit. To add the credit to the database, see L<"insert">.
=cut
sub table { 'cust_credit'; }
=cut
sub table { 'cust_credit'; }
+sub cust_linked { $_[0]->cust_main_custnum; }
+sub cust_unlinked_msg {
+ my $self = shift;
+ "WARNING: can't find cust_main.custnum ". $self->custnum.
+ ' (cust_credit.crednum '. $self->crednum. ')';
+}
=item insert
=item insert
@@
-106,6
+113,8
@@
sub insert {
return "error inserting $self: $error";
}
return "error inserting $self: $error";
}
+ $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
#false laziness w/ cust_credit::insert
if ( $unsuspendauto && $old_balance && $cust_main->balance <= 0 ) {
my @errors = $cust_main->unsuspend;
#false laziness w/ cust_credit::insert
if ( $unsuspendauto && $old_balance && $cust_main->balance <= 0 ) {
my @errors = $cust_main->unsuspend;
@@
-125,10
+134,13
@@
sub insert {
=item delete
=item delete
-Currently unimplemented.
+Unless the closed flag is set, deletes this credit and all associated
+applications (see L<FS::cust_credit_bill>). In most cases, you want to use
+the void method instead to leave a record of the deleted credit.
=cut
=cut
+# very similar to FS::cust_pay::delete
sub delete {
my $self = shift;
return "Can't delete closed credit" if $self->closed =~ /^Y/i;
sub delete {
my $self = shift;
return "Can't delete closed credit" if $self->closed =~ /^Y/i;
@@
-160,7
+172,7
@@
sub delete {
if ( $conf->config('deletecredits') ne '' ) {
if ( $conf->config('deletecredits') ne '' ) {
- my $cust_main =
qsearchs('cust_main',{ 'custnum' => $self->custnum })
;
+ my $cust_main =
$self->cust_main
;
my $error = send_email(
'from' => $conf->config('invoice_from'), #??? well as good as any
my $error = send_email(
'from' => $conf->config('invoice_from'), #??? well as good as any
@@
-194,8
+206,7
@@
sub delete {
=item replace OLD_RECORD
=item replace OLD_RECORD
-Credits may not be modified; there would then be no record the credit was ever
-posted.
+You can, but probably shouldn't modify credits...
=cut
=cut
@@
-300,6
+311,18
@@
sub credited {
sprintf( "%.2f", $amount );
}
sprintf( "%.2f", $amount );
}
+=item cust_main
+
+Returns the customer (see L<FS::cust_main>) for this credit.
+
+=cut
+
+sub cust_main {
+ my $self = shift;
+ qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+}
+
+
=back
=head1 BUGS
=back
=head1 BUGS