Package psdi.app.invoice

The invoice package is a collection of MBOs used for creating and maintaining invoices.

See: Description

  • Interface Summary 
    Interface Description
    InvoiceCostRemote
    Remote Interface to the InvoiceCost object.
    InvoiceCostSetRemote
    Remote Interface to the set of InvoiceCost.
    InvoiceLineRemote
    Remote Interface to the InvoiceLine object.
    InvoiceLineSetRemote
    Remote Interface to the set of InvoiceLine.
    InvoiceMatchRemote
    Remote Interface to the InvoiceMatch object.
    InvoiceMatchSetRemote
    Remote Interface to the set of InvoiceMatch.
    InvoiceRemote
    Remote Interface to the Invoice object.
    InvoiceServiceRemote
    Remote Interface to the POService object.
    InvoiceSetRemote
    Remote Interface to the set of Invoice.
    InvoiceStatusRemote
    Remote Interface to the InvoiceStatus object.
    InvoiceStatusSetRemote
    Remote Interface to the set of InvoiceStatus.
    InvoiceTermRemote
    Remote Interface to the InvoiceTerm object.
    InvoiceTermSetRemote
    Remote Interface to the set of Invoice Term.
    InvoiceTransRemote
    Remote Interface to the Invoice object.
    InvoiceTransSetRemote
    Remote Interface to the set of InvoiceTrans.
  • Class Summary 
    Class Description
    FldInvoiceBaseTotalCostForUI
    Invoice.BaseTotalCostForUI is a non-persistent field that corresponding with BaseTotalCost.
    FldInvoiceContractRefNum
    This is the field validation class for ContractRefNum field of Invoice.
    FldInvoiceCostAssetNum
    InvoiceCost.assetnum validation class: The base class FldCommonAssetnum checks if the asset entered here is a valid asset.
    FldInvoiceCostAssetNumNonPer
    InvoiceCost.assetnumnonper (non-persistent) validation class: This class is needed to handle the non-persistent field assetnumnonper which is displayed on the invoice line tab.
    FldInvoiceCostChargeStore
    InvoiceCost.chargestore validation class: Specifies if the invoice cost line has to be charged to a store.
    FldInvoiceCostGLCreditAcct
    InvoiceCost.glcreditacct validation class: The base class FldPartialGLAccount checks if the GL account entered here is a valid.
    FldInvoiceCostGLCreditAcctNonPer
    InvoiceCost.glcreditacctnonper (non-persistent) validation class: This class is needed to handle the non-persistent field glcreditacctnonper which is displayed on the invoice line tab.
    FldInvoiceCostGLDebitAcct
    InvoiceCost.gldebitacct validation class: The base class FldPartialGLAccount checks if the GL account entered here is a valid.
    FldInvoiceCostGLDebitAcctNonPer
    InvoiceCost.gldebitacctnonper (non-persistent) validation class: This class is needed to handle the non-persistent field gldebitacctnonper which is displayed on the invoice line tab.
    FldInvoiceCostLineCost
    InvoiceCost.linecost validation class: Checks if the invoice cost line cost is not greater than the invoice line cost.
    FldInvoiceCostLineCostForUI
    InvoiceCost.LineCostForUI is a non-persistent field that corresponding with LineCost.
    FldInvoiceCostLocation
    InvoiceCost.location validation class: The base class FldCommonLocation checks if the location entered here is a valid location and belongs to a valid asset.
    FldInvoiceCostLocationNonPer
    InvoiceCost.assetnumnonper (non-persistent) validation class: This class is needed to handle the non-persistent field locationnonper which is displayed on the invoice line tab.
    FldInvoiceCostPercentage
    InvoiceCost.percentage validation class: Updates the invoice cost quantity and linecost based on the percentage.
    FldInvoiceCostQty
    InvoiceCost.quantity validation class: Checks if the quantity entered is not greater than the invoice line quantity.
    FldInvoiceCostQtyForUI
    InvoiceCost.QtyForUI is a non-persistent field that corresponding with Quantity.
    FldInvoiceCostRefWO
    InvoiceCost.refwo validation class: The base class FldCommonWonum checks if the work order entered here is a valid work order.
    FldInvoiceCostTaskID
    InvoiceCost.taskid validation class: The base class FldTaskID updates the refwo attribute.
    FldInvoiceCostTaskIDNonPer
    InvoiceCost.taskidnonper (non-persistent) validation class: This class is needed to handle the non-persistent field taskidnonper which is displayed on the invoice line tab.
    FldInvoiceCostToSiteID
    InvoiceCost.tositeid validation class: This class validates the tositeid field of the invoice cost.
    FldInvoiceCostToSiteIDNonPer
    InvoiceCost.tositeidnonper (non-persistent) validation class: This class is needed to handle the non-persistent field tositeidnonper which is displayed on the invoice line tab.
    FldInvoiceCostUnitCost
    InvoiceCost.unitcost validation class: Sets the invoice cost linecost equals to unitcost by quantity if both are not null.
    FldInvoiceCostWONum
    InvoiceCost.wonum validation class: The base class FldInterfaceWonum sets value of the refwo attribute of the invoice cost.
    FldInvoiceCostWONumNonPer
    InvoiceCost.wonumnonper (non-persistent) validation class: This class is needed to handle the non-persistent field wonumnonper which is displayed on the invoice line tab.
    FldInvoiceCurrencyCode
    Invoice currencycode validation class validates if the currency code entered is valid and if valid sets the new exchangerate and exchangedate and sets the unitcost and Extends the common class FldCommonCurrencyCode which further extends FldCurrencyCode.
    FldInvoiceDocType
    Invoice.documenttype validation class: This field identifies the type of the invoice which means it has to be of INVOICE, CREDIT or DEBIT type.
    FldInvoiceExchangeRate
    Invoice.exchangerate validation class: Exchange Rate field stores the exchange rate between the invoice currency and the base currency.
    FldInvoiceInclusive
    Invoice.inclusive1-5 validation class: Calculates the invoice pre-tax total, total cost and base total cost when the field is toggled.
    FldInvoiceInvoiceDate
    Invoice.invoicedate validation class: Invoice date field stores the invoice vendor's document date.
    FldInvoiceLineContractRefNum
    This is the field validation class for ContractRefNum field of InvoiceLine.
    FldInvoiceLineIsDistributed
    InvoiceLine.isdistributed(non-persistant attribute) validation class: isdistributed is a non-persistant field that is set to true for any invoiceline that has more than one invoicecost line associated with it.
    FldInvoiceLineItemNum
    This class is the validation class for the itemnum on the InvoiceLine.
    FldInvoiceLineLeaseAsset
    InvoiceLine.leaseasset validation class: This class validates that the asset entered here is valid and is used on the contract for this invoice.
    FldInvoiceLineLineCost
    InvoiceLine.linecost validation class: The base class FldMatServLineCost sets the invoice line tax that sets the invoice totaltax which in turn sets invoice pretaxtotal and/or totalcost depending on the syscode.
    FldInvoiceLineLineCostForUI
    InvoiceLine.LineCostForUI is a non-persistent field that corresponding with LineCost.
    FldInvoiceLineLineType
    'LINETYPE' field validation for InvoiceLine only.
    FldInvoiceLineLoadedCost
    InvoiceLine.LoadedCost validation class: Sets the invoice line loaded cost.
    FldInvoiceLineLoadedCostForUI
    InvoiceLine.LoadedCostForUI is a non-persistent field that corresponding with LoadedCost.
    FldInvoiceLinePOLineNum
    InvoiceLine.polinenum validation class: The base class FldPOLineNum checks that the ponum/polinenum combination entered is valid.
    FldInvoiceLinePONum
    InvoiceLine.ponum validation class: Validates that the entered PO is a valid PO and the invoice line PO is the same as the Invoice PO.
    FldInvoiceLineProrateCost
    InvoiceCost.chargestore validation class: Specifies if the invoice cost line has to be charged to a store.
    FldInvoiceLineQty
    InvoiceLine.invoiceqty validation class: Sets the invoice line unitcost and linecost depending the quantity value entered.
    FldInvoiceLineQtyForUI
    InvoiceLine.QtyForUI is a non-persistent field that corresponding with InvoiceQty.
    FldInvoiceLineTax
    InvoiceLine.tax1-5 validation class: The base class FldCommonTax recalculates the totaltax1-5 on the invoice.
    FldInvoiceLineTaxExempt
    This is the field validation class for the tax exempt field in invoiceline.
    FldInvoiceLineTaxForUI
    InvoiceLine.TaxForUI is a non-persistent field that corresponding with Tax1-Tax5.
    FldInvoiceLineTotal
    Invoice.LineTotal is a non-persistent field that shows the sum of Line Cost of Invoice Line.
    FldInvoiceLineUnitCost
    InvoiceLine.unitcost validation class: Sets the invoice line quantity and linecost depending the unitcost value entered.
    FldInvoiceMatchPOLineNum
    InvoiceMatch.polinenum validation Class: The base class FldPOLineNum checks if the entered ponum/polinenum coombination is valid.
    FldInvoiceNum
    Common validation class for: Invoice identifier - invoicenum The validation only checks that the entered value exists in the invoice table.
    FldInvoiceOrigInvoice
    Invoice.originvoicenum validation class: The base class FldInvoiceNum checks if the entered original invoice is a valid invoice.
    FldInvoicePersonID
    Field validation for enterby attribute of INVOICE object.
    FldInvoicePONum
    Invoice.ponum validation class: The base class FldPONnum checks if the entered ponum is valid.
    FldInvoicePreTaxTotal
    Invoice.pretaxtotal(non-persistent attribute) validation class: Pretaxtotal is a non-persistent field which stores the invoice total cost before taxes.
    FldInvoicePreTaxTotalForUI
    Invoice.PreTaxTotalForUI is a non-persistent field corresponding with another non-persisitent field PreTaxTotal.
    FldInvoiceScheduleNum
    Invoice.schedulenum validation class: Checks if the entered schedule number is valid.
    FldInvoiceTotalCost
    Invoice.totalcost validation class: This class recalculates and set the invoice pretaxtotal based on the syscode.
    FldInvoiceTotalCostForUI
    Invoice.TotalCostForUI is a non-persistent field that corresponding with TotalCost.
    FldInvoiceTotalTax
    Invoice.totaltax1-5 validation class: This class recalculates and sets the pretaxtotal, totalcost and the basetotalcost depending upon the syscode.
    FldInvoiceTotalTaxForUI
    Invoice.TotalTaxForUI is a non-persistent field that corresponding with TotalTax1-TotalTax5.
    FldInvoiceTransCurrLineCost
    InvoiceTrans.currencylinecost validation class: This class calculates and sets the InvoiceTrans linecost and linecost2 in invoice currency (currencylinecost * exchangerate).
    FldInvoiceTransInvoiceNum
    InvoiceTrans.invoicenum validation class: Copy currencycode, exchangerate and exchangerate2 from the related Invoice.
    FldInvoiceTransTransDate
    InvoiceTrans.transdate validation class: This class sets a valid financial period based on the transaction date.
    FldInvoiceTransTransType
    InvoiceTrans.transtype validation class: The base class validates if the entered InvoiceTrans type exists in the valuelist "INVCXTYP".
    FldInvoiceUnInvoicedTotal
    Invoice.uninvoicedtotal(non-persistant attribute) validation class: UnInvoicedTital is a non-persistant field which displays the cost which has not been invoiced against the PO's total cost.
    FldInvoiceVariance
    Invoice.Variance is a non-persistent field that shows the difference between pretax total and linetotal.
    FldInvoiceVendor
    Invoice.vendor validation class: The base class FldCompany checks if the vendor entered here is valid.
    Invoice
    Mbo object to represent Invoice.
    InvoiceCost
    Mbo object to represent InvoiceCost.
    InvoiceCostSet
    Represents the set of InvoiceCost objects.
    InvoiceLine
    Mbo object to represent InvoiceLine.
    InvoiceLineSet
    Represents the set of InvoiceLine objects.
    InvoiceMatch
    Mbo object to represent InvoiceMatch.
    InvoiceMatchSet
    Represents the set of InvoiceMatch objects.
    InvoiceService  
    InvoiceSet
    Represents the set of Invoice objects.
    InvoiceStatus
    Mbo object to represent InvoiceStatus.
    InvoiceStatusHandler
    Handles all the status changes for a invoice object.
    InvoiceStatusSet
    Represents the set of InvoiceStatus objects.
    InvoiceSysCode
    Object to provide convenient access to syscode attribute of invoice object.
    InvoiceTerm
    MBO to represent Invoice Terms and Conditions.
    InvoiceTermSet
    Represents the set of Invoice Term
    InvoiceTrans
    Mbo object to represent InvoiceTrans.
    InvoiceTransSet
    Represents the set of InvoiceTrans objects.

Package psdi.app.invoice Description

The invoice package is a collection of MBOs used for creating and maintaining invoices. An invoice is a financial document that is normally sent by a supplier/vendor to a buyer. It lists the goods/services that the vendor supplied to the buyer and the value of those goods/services, including any charges (shipping & handling, taxes) that might apply. The invoice is a financial document, and creates an accounts payable liability in the receiving organization. An invoice may be created against a single PO, multiple POs or without a PO.

Package Specification

The MBOs included in the Invoice package are:

  • Invoice -- This MBO represents an invoice. The invoice application is a set of related objects working closely together, with the invoice object at the top level. It contains all the header information for that particular invoice like the PO against which it is created, vendor, currency, total cost, total taxes, and other invoice specific information. An invoice can be created against a single PO, multiple POs or without a PO. In case of a PO, it contains information such as the invoice number, corresponding PO number, any receipts recorded for that PO, and other information specific to the invoice. In case of an invoice related to multiple POs, the invoice object only contains invoice specific information with POs listed on the invoice lines. If the invoice is without a PO, it represents a bill for which there is no PR or PO. This could be appropriate if, for example, you receive an invoice for a rent or utilities. In this case the invoice object only contains invoice specific information. Invoice can be of type invoice, credit, and debit. You might use a credit type if you are returning items to a vendor, and a debit type if the vendor had additional charges that were not on the invoice. An invoice cannot be approved without invoice lines.
  • InvoiceLine -- Invoice can have one or more InvoiceLine, which in turn has one or more InvoiceCost. InvoiceLine can either be a material line in which case it has an item, or it can be service line. A service line can be for a PO or it can be a standard service. Example of a standard service InvoiceLine is installation costs appearing on the vendor's invoice, which were not originally specified on the PO. An InvoiceLine contains the total value and quantity that is associated to that line. You cannot approve an Invoice without any InvoiceLine.
  • InvoiceCost -- InvoiceCost contains the accounting distribution/charge details for the InvoiceLine. The cost of an individual InvoiceLine is spread to more than one general ledger account, work order, location, or piece of equipment. Each InvoiceLine should have at least one InvoiceCost. Costs can only be distributed if the POLine related to this InvoiceCost's owner InvoiceLine is a direct issue, or the InvoiceLine is a service without a PO.
  • InvoiceStatus -- InvoiceStatus represents all the statuses an Invoice goes through during its lifetime. A new InvoiceStatus object is created every time a new invoice is created and also every time when an existing Invoice changes status. This object stores all the status change information for a particular Invoice like the current status, change date, the user who changed it, and a memo. You can only change an Invoice's status if you have the required privileges to do so.
  • InvoiceMatch -- InvoiceMatch MBO is associated to the InvoiceLine in the sense that it contains one or more records that match to the receipt line for that invoice. The total quantity of the matched receipt cannot exceed the total received receipts of PO-POLine associated with this particular invoice. If receipt was not required on the POLine, creation of InvoiceMatch is not needed. If it is a service InvoiceLine, the match should be done against service receipts, otherwise material receipts. An Invoice cannot be approved if it is not fully matched.
  • InvoiceTrans -- InvoiceTrans MBO represents the transactions written during invoice approval. These may be variance transactions, tax transactions, or total transactions. The variance transactions are of two types CURVAR (currency variance) and INVCEVAR (price variance). Currency variance exists when the PO and the Invoice both have the same currencies, and the exchange rate from the PO currency to the base currency has changed from the time of receipt to Invoice. Price variance exists when the price of the cost of the invoiced item is different from what it was when it was used on the PO, and also when the PO and the Invoice currencies are different. Tax transactions of type TAX1 to TAX5 are written depending upon the Add Tax to Line and Pay Tax to Vendor settings. If tax transactions are written, they need to be done for each tax type code so potentially there could be five transactions for each InvoiceLine. InvoiceTrans of type TOTAL is written for the Invoice as a whole, on approval.
  • SCharges -- SCharges stores the charges for services to be used on Invoice or PO/PR. These are additional service costs that may be included on the vendor's Invoice, but were not originally specified on the PO. SCharges or standard services as they are also called, can include charges incurred with a purchase (freight, shipping, installation fees) or utility fees (telephone, gas, electric). Typically, you would enter a standard service as a separate line item.
  • Tolerance -- Tolerance MBO represents the level of price tolerance for an Invoice. Invoice cannot be approved if the tolerance level does not fall within the set limit. You can specify Tolerance levels for POlines, taxes and special charges.

Other classes included in the Invoice package are:

  • InvoiceService -- Service class for the package.
  • InvoiceStatusHandler -- Helper class for maintaining InvoiceStatus MBOs. All invoice status changes go through this class. This class checks the privileges of the user to decide if the status change is allowed or not. Informative messages are given to the user as to why the status change failed.
  • InvoiceSysCode -- InvoiceSysCode object provides convenient access to the syscode field of invoice. This class is internally used by the Invoice package objects.

Related Documentation

  • Workflow Mbo

Last updated: March 22, 2002

Updated by: Aman Thakur