Difference between revisions of "Freeside:3:Documentation:Developer/FS/cust credit"

From Freeside
Jump to: navigation, search
m (Edit via perl MediaWiki framework (1.13))
m (Edit via perl MediaWiki framework (1.13))
Line 44: Line 44:
 
; new HASHREF
 
; new HASHREF
 
:Creates a new credit. To add the credit to the database, see [[#insert|"insert"]].
 
:Creates a new credit. To add the credit to the database, see [[#insert|"insert"]].
; insert
+
; insert [ OPTION => VALUE ... ]
 
:Adds this credit to the database ("Posts" the credit). If there is an error, returns the error, otherwise returns false.
 
:Adds this credit to the database ("Posts" the credit). If there is an error, returns the error, otherwise returns false.
 +
 +
:Ooptions are passed as a list of keys and values. Available options:
 +
:; reason_type
 +
::[[Freeside:3:Documentation:Developer/Reason|FS/reason type|Reason|FS::reason_type]] type for newly-inserted reason
 +
:; cust_credit_source_bill_pkg
 +
::An arrayref of [[Freeside:3:Documentation:Developer/FS/cust credit source bilL pkg|FS/cust credit source bill pkg|FS::cust_credit_source_bilL_pkg|FS::cust_credit_source_bill_pkg]] objects. They will have their crednum set and will be inserted along with this credit.
 
; delete
 
; delete
 
:Unless the closed flag is set, deletes this credit and all associated applications (see [[Freeside:3:Documentation:Developer/FS/cust credit bill|FS::cust_credit_bill]]). In most cases, you want to use the void method instead to leave a record of the deleted credit.
 
:Unless the closed flag is set, deletes this credit and all associated applications (see [[Freeside:3:Documentation:Developer/FS/cust credit bill|FS::cust_credit_bill]]). In most cases, you want to use the void method instead to leave a record of the deleted credit.
Line 66: Line 72:
 
; cust_main
 
; cust_main
 
:Returns the customer (see [[Freeside:3:Documentation:Developer/FS/cust main|FS::cust_main]]) for this credit.
 
:Returns the customer (see [[Freeside:3:Documentation:Developer/FS/cust main|FS::cust_main]]) for this credit.
; reason
 
:Returns the text of the associated reason (see [[Freeside:3:Documentation:Developer/FS/reason|FS::reason]]) for this credit.
 
  
 
==CLASS METHODS==
 
==CLASS METHODS==

Revision as of 07:30, 24 March 2015

NAME

FS::cust_credit - Object methods for cust_credit records

SYNOPSIS

 use FS::cust_credit;

 $record = new FS::cust_credit \%hash;
 $record = new FS::cust_credit { 'column' => 'value' };

 $error = $record->insert;

 $error = $new_record->replace($old_record);

 $error = $record->delete;

 $error = $record->check;

DESCRIPTION

An FS::cust_credit object represents a credit; the equivalent of a negative cust_bill record (see FS::cust_bill). FS::cust_credit inherits from FS::Record. The following fields are currently supported:

crednum
Primary key (assigned automatically for new credits)
custnum
Customer (see FS::cust_main)
amount
Amount of the credit
_date
Specified as a UNIX timestamp; see "time" in perlfunc. Also see Time::Local and Date::Parse for conversion functions.
usernum
Order taker (see FS::access_user)
reason
Text ( deprecated )
reasonnum
Reason (see FS::reason)
addlinfo
Text
closed
Books closed flag, empty or `Y'
pkgnum
Desired pkgnum when using experimental package balances.

METHODS

new HASHREF
Creates a new credit. To add the credit to the database, see "insert".
insert [ OPTION => VALUE ... ]
Adds this credit to the database ("Posts" the credit). If there is an error, returns the error, otherwise returns false.
Ooptions are passed as a list of keys and values. Available options:
reason_type
FS/reason type|Reason|FS::reason_type type for newly-inserted reason
cust_credit_source_bill_pkg
An arrayref of FS/cust credit source bill pkg|FS::cust_credit_source_bilL_pkg|FS::cust_credit_source_bill_pkg objects. They will have their crednum set and will be inserted along with this credit.
delete
Unless the closed flag is set, deletes this credit and all associated applications (see FS::cust_credit_bill). In most cases, you want to use the void method instead to leave a record of the deleted credit.
replace [ OLD_RECORD ]
You can, but probably shouldn't modify credits...
Replaces the OLD_RECORD with this one in the database, or, if OLD_RECORD is not supplied, replaces this record. If there is an error, returns the error, otherwise returns false.
check
Checks all fields to make sure this is a valid credit. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
void [ REASON ]
Voids this credit: deletes the credit and all associated applications and adds a record of the voided credit to the cust_credit_void table.
cust_credit_refund
Returns all refund applications (see FS::cust_credit_refund) for this credit.
cust_credit_bill
Returns all application to invoices (see FS::cust_credit_bill) for this credit.
unapplied
Returns the amount of this credit that is still unapplied/outstanding; amount minus all refund applications (see FS::cust_credit_refund) and applications to invoices (see FS::cust_credit_bill).
credited
Deprecated name for the unapplied method.
cust_main
Returns the customer (see FS::cust_main) for this credit.

CLASS METHODS

unapplied_sql
Returns an SQL fragment to retreive the unapplied amount.
credited_sql
Deprecated name for the unapplied_sql method.
credit_lineitems
Example:

 my $error = FS::cust_credit->credit_lineitems(

   #the lineitems to credit
   'billpkgnums'       => \@billpkgnums,
   'setuprecurs'       => \@setuprecurs,
   'amounts'           => \@amounts,
   'apply'             => 1, #0 leaves the credit unapplied

   #the credit
   map { $_ => scalar($cgi->param($_)) }
     #fields('cust_credit')  
     qw( custnum _date amount reasonnum addlinfo ), #pkgnum eventnum

 );

SUBROUTINES

process_batch_import

BUGS

The delete method. The replace method.

credited and credited_sql are now called unapplied and unapplied_sql. The old method names should start to give warnings.

SEE ALSO

FS::Record, FS::cust_credit_refund, FS::cust_refund, FS::cust_credit_bill FS::cust_bill, schema.html from the base documentation.