X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_credit.pm;h=7ffb1d1784386af412c147cf0ea7858db7792214;hb=d77dad830dda5fbe6d807445e09fe6770efdb550;hp=8ec255b95e77056540e9a7409382c7cc472e10a1;hpb=87227cd405166484ca7b791b2bd3c8829ce8d969;p=freeside.git diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index 8ec255b95..7ffb1d178 100644 --- 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 FS::Record qw( qsearch qsearchs ); 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; -@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 { @@ -75,6 +76,12 @@ Creates a new credit. To add the credit to the database, see L<"insert">. =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 @@ -106,6 +113,8 @@ sub insert { 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; @@ -125,10 +134,13 @@ sub insert { =item delete -Currently unimplemented. +Unless the closed flag is set, deletes this credit and all associated +applications (see L). In most cases, you want to use +the void method instead to leave a record of the deleted credit. =cut +# very similar to FS::cust_pay::delete 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 '' ) { - 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 @@ -194,8 +206,7 @@ sub delete { =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