LedgerSMB::DBObject::Payment

LedgerSMB::DBObject::PUsernContributed Perl DLedgerSMB::DBObject::Payment(3pm)



NAME
       LedgerSMB::DBOject::Payment - Payment Handling Back-end Routines for
       LedgerSMB

SYNOPSIS
       Provides the functions for generating the data structures payments made
       in LedgerSMB.   This module currently handles only basic payment logic,
       and does handle overpayment logic, though these features will be moved
       into this module in the near future.

COPYRIGHT
       Copyright (c) 2007 The LedgerSMB Core Team.  Licensed under the GNU
       General Public License version 2 or at your option any later version.
       Please see the included COPYRIGHT and LICENSE files for more
       information.

METHODS
       LedgerSMB::DBObject::Payment->new()
           Inherited from LedgerSMB::DBObject.  Please see that documnetation
           for details.

       $payment->get_open_accounts()
           This function returns a list of open accounts depending on the
           $payment->{account_class} property.  If this property is 1, it
           returns a list of vendor accounts, for 2, a list of customer
           accounts are returned.

           The returned list of hashrefs is stored in the $payment->{accounts}
           property.  Each hashref has the following keys:  id (entity id),
           name, and entity_class.

           An account is considered open if there are outstanding, unpaid
           invoices attached to it.  Customer/vendor payment threshold is not
           considered for this calculation.

       text_amount($value)
           Returns the textual representation, as defined in localization
           rules, for the numeric value passed.

       get_metadata()
           Semi-private method for preparing the object for other tasks, such
           as displaying payment options.

       search()
           Seturns a series of payments matching the search criteria.

           Search results are also stored at $payment->{search_results}.

       get_open_accounts()
           Returns a list of open accounts for the payment operation.

           These are also stored on $payment->{accounts}

       $payment->get_entity_credit_account()
           Returns billing information for the current account, and saves it
           to an arrayref at $payment->{entity_accounts}/

       $payment->get_all_accounts()
           This function returns a list of open or closed accounts depending
           on the $payment->{account_class} property.  If this property is 1,
           it returns a list of vendor accounts, for 2, a list of customer
           accounts are returned.

           The returned list of hashrefs is stored in the $payment->{accounts}
           property.  Each hashref has the following keys:  id (entity id),
           name, and entity_class.

       $payment->reverse()
           This function reverses a payment.  A payment is defined as one
           source ($payment->{source}) to one cash account
           ($payment->{cash_accno}) to one date ($payment->{date_paid}) to one
           vendor/customer ($payment->{credit_id}, $payment->{account_class}).
           This reverses the entries with that source.

       $payment->get_open_invoices()
           This function returns a list of open invoices depending on the
           $payment->{account_class}, $payment->{entity_id}, and
           $payment->{curr} properties.  Account classes follow the
           conventions above.  This list is hence specific to a customer or
           vendor and currency as well.

           The returned list of hashrefs is stored in the
           $payment->{open_invoices} property. Each hashref has the following
           keys:  id (entity id), name, and entity_class.

       $payment->get_open_invoice()
           This function is an especific case of get_open_invoices(), because
           get_open_invoice() can search for a specific invoice, wich can be
           searched by the $payment->{invnumber} variable

       $payment->get_all_contact_invoices()
           This function returns a list of open accounts depending on the
           $payment->{account_class} property.  If this property is 1, it
           returns a list of vendor accounts, for 2, a list of customer
           accounts are returned.  Attached to each account is a list of open
           invoices.  The data structure is somewhat complex.

           Each item in the list has the following keys: contact_id,
           contact_name, \ account_number, total_due, and invoices.

           The invoices entry is a reference to an array of hashrefs.  Each of
           these hashrefs has the following keys: invoice_id, invnumber,
           invoice_date, amount, discount, and due.

           These are filtered based on the (required) properties:
           $payment->{account_class}, $payment->{business_type},
           $payment->{date_from}, $payment->{date_to}, and
           $payment->{ar_ap_accno}.

           The $payment->{ar_ap_accno} property is used to filter out by AR or
           AP account.

           The following can also be optionally passed: $payment->{batch_id}.
           If this is patched, vouchers in the current batch will be picked up
           as well.

           The returned list of hashrefs is stored in the $payment->{contact}
           property.  Each hashref has the following keys:  id (entity id),
           name, and entity_class.

       list_open_projects
           This method gets the current date attribute, and provides a list of
           open projects.  The list is attached to $self->{projects} and
           returned.

       list_departments
           This method gets the type of document as a parameter, and provides
           a list of departments of the required type.  The list is attached
           to $self->{departments} and returned.

       list_open_vc
           This method gets the type of vc (vendor or customer) as a
           parameter, and provides a list of departments of the required type.
           The list is attached to $self->{departments} and returned.

       get_open_currencies
           This method gets a list of the open currencies inside the database,
           it requires that $self->{account_class} (must be 1 or 2)  exist to
           work.

           WARNING THIS IS NOT BEEING USED BY THE SINGLE PAYMENT SYSTEM....

       list_accounting
           This method lists all accounts that match the role specified in
           account_class property and are available to store the payment or
           receipts.  =back

       list_overpayment_accounting
           This method lists all accounts that match the role specified in
           account_class property and are available to store an overpayment /
           advanced payment / pre-payment.  =back

       get_sources
           This method builds all the possible sources of money, in the future
           it will look inside the DB.  =back

       get_exchange_rate(currency, date)
           This method gets the exchange rate for the specified currency and
           date

       get_default_currency
           This method gets the default currency =back

       get_current_date
           This method returns the system's current date

       get_vc_info
           This method returns the contact informatino for a customer or
           vendor according to $self->{account_class}

       get_payment_detail_data
           This method sets appropriate project, department, etc. fields.

       post_bulk
           This function posts the payments in bulk.  Note that queue_payments
           is not a common setting and rather this provides a hook for an add-
           on.

           This API was developed early in 1.3 and is likely to change for
           better encapsulation.  Currenty it uses the following structure:

           Within the main hashref:

           contact_count
               The number of payments.  One per contact.

           contact_$row
               for (1 .. contact_count), contact_$_ is the entity credit
               account's id associated with the current contact.  We will call
               this $contact_id below.

               For each contact id, we have the following, suffixed with
               _$contact_id:

               source
               invoice_count
                   Number of invoices to loop through

               invoice_${contact_id}_$row
                   for $row in (1 .. invoice_count), each this provides the
                   transaction id of the invoice.

               Each invoice has the following attributes, suffxed with
               ${invoice_id}

               amount
               paid
               net

           In the future the payment posting API will become more standardized
           and the conversion between flat and hierarchical representation
           will be moved to the workflow scripts.

       check_job
           To be moved into payment_queue addon.

       post_payment
           This method uses payment_post to store a payment (not a bulk
           payment) on the database.

       gather_printable_info
           This method retrieves all the payment related info needed to build
           a document and print it. IT IS NECESSARY TO ALREADY HAVE payment_id
           on $self

       get_open_overpayment_entities
           This method retrieves all the entities with the specified
           account_class which have unused overpayments

       get_unused_overpayments
           This is a simple wrapper around payment_get_unused_overpayments sql
           function.

       get_available_overpayment_amount
           Simple wrapper around payment_get_available_overpayment_amount sql
           function.

       init
           Initializes the num2text system

       num2text
           Translates numbers into words.



perl v5.14.2                      2012-10-16 LedgerSMB::DBObject::Payment(3pm)