Freeside:4:Documentation:Developer/FS/cust credit

From Freeside
< Freeside:4:Documentation:Developer‎ | FS
Revision as of 07:20, 18 November 2015 by Jeremyd (talk | contribs) (Edit via perl MediaWiki framework (1.13))

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.
calculate_tax_adjustment PARAMS
Calculate the amount of tax that needs to be credited as part of a lineitem credit.
PARAMS must include:
- billpkgnums: arrayref identifying the line items to credit - setuprecurs: arrayref of 'setup' or 'recur', indicating which part of the lineitem charge is being credited - amounts: arrayref of the amounts to credit on each line item - custnum: the customer all of these invoices belong to, for error checking
Returns a hash containing: - subtotal: the total non-tax amount to be credited (the sum of the 'amounts') - taxtotal: the total tax amount to be credited - taxlines: an arrayref of hashrefs for each tax line to be credited, each with: - table: "cust_bill_pkg_tax_location" or "cust_bill_pkg_tax_rate_location" - num: the key within that table - credit: the credit amount to apply to that line
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.