Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Description:

This module manages the invoicing workflow within acquisitions.


Documentation:

Attached below you will find a data-flow model that describes what data is being passed between this module and other modules within FOLIO. You will also find an Entity Relationship Diagram that illustrates what specific data elements are being stored in this module and what data elements are being retrieved from other modules. The dark grey tables indicate elements that are hard coded.

Interface Fields:

Invoice

ColumnsRelates to:Data typeReq?Repeatable?SearchableFilter on this?Hardcoded/Editable?Can edit post approvalMapped from OrderValuesNotes
approved_byuser.idUUIDRNYNAPINN/A
Will be captured by the system when an invoice is approved. Will only display in invoice details after the invoice has been approved
chk_subscription_overlap
boolNNNNCheckboxN

IF TRUE the system will check if there is another invoice for this subscription and whether the dates overlap. IF the dates overlap, the system should issue an alert. Default should be Ture
date_created
dateYNYY (Date Range would be ideal)DateNN/A
Would like to be able to search and fitler by a range.
created_byuser.idstringYNYNAPINN/A

currencycurrencystringYNNNAPINN/A
Ideally this is the ISO code and not something the user defines
folio_invoice_no
stringYNYNGeneratedNN/A

invoice_date
dateYNYY (Date Range would be ideal)DateNN/A

note
stringNNNNFree TextYN/A

acquisitions_unit (formerly owner, team, approved_by)library.idstringY (Option in Settings to not Require)NNYAPIYN/A
The location/branch/division etc that's responsible for this invoice. This may or may not be the same as the PO. ie. North Branch
payment_due
dateNNNY (Date Range would be ideal)DateYN/A
When this is required to be paid. Generally governed by the relationship with the Vendor
payment_terms
stringNNNNFree TextNN/A
Eg. net 30...
payment_methodpayment_method_idstringYNNYEditableYN/A
Inherited from vendor record
prepaid
bool







Reference: pg. 134: FOLIO Plan of Attack. This field would be better served on the order
prorata
boolNNNNCheckbox


IF TRUE the additional charges will be applied to each line item and reflected in the total. IF FALSE each charge will be added to the invoice as it's own line item. (Default would be Yes) Ideally this can be done by price.
approvalDate
dateYNNY (Date Range would be ideal)DateNN/A
Date the invoice was approved for processing
paidDate
dateYNNY (Date Range would be ideal)DateNN/A
Date the invoice transitioned to the status "Paid"
statusinvoice_statusstringYNNYEnumeratedYN/A
Open: Record has been created, Reviewed: details have been verified, Approved: encumbered Funds are released and set as awaiting payment, Paid: funds are expended confirmation that funds have been exchanged and available details have been returned from AP system, Cancelled: invoice will not be process for payment.
Note: invoices are never partially paid.
source
stringYNNYEnumeratedNN/AUser, API, EDIThis does not denote a user ID but describes how the record was created. Eg. Manually, EDIFACT, MARC etc
total
decimalNNNNCalculatedNN/A
invoice amount after adjustments
adjustment-total
decimalNNNNCalculatedNN/A
sum of invoiceLine adjustments + (non prorated) invoice adjustments
sub-total
decimalNNNNCalculatedNN/A
invoice amount before invoice adjustments
lock-total
booleanNNNNEditableNN/A
indicates that the total was keyed in and shouldn't be updated based on calculations. The calculated total must match this before the invoice can be approved
vat_per_invoice_line
bool







IF some of the invoice lines require vat, but others do not, this should be set to TRUE.(Remove)
vendor_invoice_no
stringYNYNEditableYN/A
this is the number from the vendor's invoice this mayor may notbe the same as the invoice_no
workflow_statusworkflow_statusstring







pending, in review, reviewed, approved, not approved update required, declined, cancelled.
disbursement_number
stringNNYNEditable


The identifier for the physical transaction corresponding to a payment (Eg. Check #, EFT # etc.) Brought in from external source
voucher_number
stringYNYNEditableNN/A
Number generated by folio that will eventually identify the payment request sent out to external financial system.
payment(voucher)_id
uuidYNNNAPINN/A

disbursement_date
dateY (if you have a disburment #)NNY (Date Range would be ideal)Editable


Date payment was made from financial system (eg. corresponding check date)
po_numbers
stringNYYNAPINpo_number
May or may not be provided; references the PO associated to the invoice
vendor_contact_idcontact_info.iduuid







THIS seems iffy. Should be reviewed.
vendor_idvendor.iduuidYNYNAPINN/A
Should be shown in the UI as a Vendor Name or CODE
accounting_code
stringYNYNAPIYN/A
pulled based on selected Vendor and associated invoice lines. Would be a select list in there are multiple account numbers assciated with the invoice lines. However, there can only be one accounting code defined for the Invoice. Note: This should allow you to select OR input a code manually.
export_to_accounting
boolN/ANNYCheckboxNN/A
This would keep the invoice from being feed into the batch process (Not generate a external voucher/payment) but would still move values in the system. Note: this is ideally defined by the vendor relationship and exposed for override on the invoice. (Not yet added to Vendor Information)
Bill to
stringNNNN
Y

Location that is used for us that we are feeding to the university system - May also be referenced from the order but invoice would be the authority. Should store in invoice but populate initially by first associated PO bill to address if possible.
Ship to
string







Relevant only as reference from the Order
adjustments
objectNRNN
N

array of adjustments
eclosureNeeded
booleanNNNNbooleanN

When payment type is check this would indicate that an enclosure is needed for the check












Invoice Line
ColumnsRelates to:Data typeReq?Repeatable?SearchableFilter on this?Hardcoded/Editable?

ValuesNotes
description (Title)
stringYNNNEditableYTitle
Title as capured in the Purchase Order Line. In the absence of a POL link this could be used to describe the Invoice line
po_line_ids
uuidNNYNAPINpol_number
UUID of the POL displayed as POL number
invoice_line_number
stringYNYNGeneratedNN/AStart at one and increase similar to POL Number. 999 would be a reasonable maxSequenstially generated and not editable by the user. May have as many as 800 on an order at Chicago
invoice_line_status
stringYNNYSet by SystemYN/A
This will mirror the invoice status but include an error status to flag lines the were loaded automatically and need attention. Possibly missing a POL link.
vendor_ref_no
stringNNNNAPIYvendor_ref_no
This is the number used to match POLs created by import to invoices created by import. This will need to be stored in the invoice as there may not be an order in unique situations
account_number
stringNNNNAPINaccount_number
Taken from POL or based on selected Vendor. This will be a select list as a Vendor could have more than one account number
accounting_code
stringNNNNAPINaccounting_code
pulled based on account number.
product_id
stringNNNNAPINproduct_id
Item information pulled from PO Line
product_id_type
stringNNNNAPINproduct_id_type
Item information pulled from PO Line
comment
stringNNNNEditableYnotes

total
decimalNNYNCalculatedNN/A
includes adjustments
adjustment-total
decimalNNNNCalculatedN

sum of the invoiceLine adjustments (including prorated)
sub-total
decimalYN



list price x quantity
invoice amount before adjustments
quantity
decimalYNNN
Nquantity physical + electronic
not used in calculation of total
release_encumbrance
boolYNNNcheckboxYN/A
If this is intended to not only release encumbrances but to indicate that this is the final invoice. Should the label be changed? This should take into account the fiscal year. We may release encumbrance for this FY but for on-going orders expect to encumber again next year.
subscription_info
stringNNNNEditableNN/A
the user should use this field to provide info on the subscription (eg. which volumes are being invoiced). It is MANDATORY if the chk_subscription_overlap is FALSE AND there is no start date provided
subscription_start
dateNNNY (Date Range would be ideal)DateNsubscription_from

subscription_end
dateNNNY (Date Range would be ideal)DateNsubscription_to

invoice_id
uuidYNNN
NN/A
Connection to the invoice from the invoice line
tags

YNYYEditableYPOL Tags

fund_distributionsFund distributionsobjectYYNNAPINfund_distributions
Only valid at invoice level
adjustments
objectNRNN
NN/A
array of adjustments
descriptionAdjustmentsstringYNNNEditable in settingsNN/A
Displayed in invoice line as a name for the input
typeAdjustmentsenumerationYNNNEditable in settingsNN/APercentage, AmountIndicates what the amount has been reported in (currency or percentage)
valueAdjustmentsnumberYNNNEditableNN/A
Amount of adjustment
pro_rateAdjustmentsenumerationYNNNdropdownNN/ABy amount, By line, By quantity, Not proratedDisplayed in invoice per adjustment in toggled on in settings. Only valid at invoice level
relation_to_totalAdjustmentsenumerationYNNNdropdownNN/AIn addition to, Included in, Separate fromIn addition to: added to the subtotal, Included in: reported as a portion of the subtotal, Separate from: Calculated based on the subtotal and reported, but not included in the invoice total.
always_showAdjustmentsbooleanYNNNBooleanNN/A
Allow this adjustment to be added to all invoices by default

Voucher:

ColumnsRelates to:Data typeReq?Repeatable?Show on invoiceSearchableFilter on this?Hardcoded/Editable?Keep in sync with Invoice fieldValuesNotes
id
uuidYNNNN


unique id for this record
system_currencycurrencystringYNNNNAPI

The currency in which the voucher was paid
invoice_currency

YNNNNAPI

Currency invoice was originally defined in
exchange rate

NNYNNEditableY
Exchange rate used to generate transaction. Should be editable by the user and the system in case this needs to be updated
export_to_accounting
boolYN/AYNYCheckbox

Export this voucher record to a financial system if connected properly. Setting inherited from invoice
sentToAccounting
boolYN/AYNYCheckbox

This voucher has been sent in a batch to the AP system
payment_methodpayment_methodstringYY


Reference

Values: Accounting Department, Cash, Credit Card, EFT, Deposit Account, Check, Bank Draft (Inherited from Invoice) Small group thinks this is not needed for the Voucher; university will already know how they are going to pay the vendor
voucher_typepayment_typestringYNYNYEnum
Payment, Pre-payment, Credit,Indicates type of payment to account for pre-payment and other unique payments,
voucher_statuspayment_statusstringYNYNYEnum
Awaiting payment, PaidAwaiting Payment, Paid
voucher_amount
decimalYNYYNCalculated

The amount that is actually paid; in FOLIO system currency
voucher_date
dateNNYNYCalculated

The date the invoice status changes to approved
voucher_no
stringYNYYNGenerated

Assigned sequentially by FOLIO; if manually edited, then do not skip any real sequential number (different from what we do for POs); need setting to keep this field from being editable if library does not allow override; if dropped out of automated processing or manually created, ignore the sequential number generator and make the voucher number editable.
* Format must be alpha numberic only
* Editable if gerated manually - in these situations a number should not be generated in the first place
* No perscribed character limit
* User can define format and starting value in the sequence
** Eg. (R36001, R36002)

batch_no
stringY*NNNNGenerated

Only required when voucher is being output automatically; date formatted or allow library to specify structure and start
batchGroupbatch group ID that displays as name






Y
Eg.
“PERKLIB”
“MEDLIB”
”LAWLIB” or
“FORDLIB”
Derived from invoice data

invoice_id
uuidYYNNNAPI

Display invocie number, date and total on the voucher. A voucher could relate to many invoices but still roll them up by external account numbers at the voucher line level. All will need to ref the same accounting code and be in the same currency
user_id
uuidYNN (Only if allowed in settings)NYAPI

Potentially need to capture a user id when possible. Need to decide what the ID would be when it's system or EDI. This is the ID of the user who transitioned the invoice to approved. (Or manually created the voucher if that is possible)
voucher_lines
arrayYYYN/AN/AGenerated



accounting_code

YNYNNGeneratedY
Number that represents the vendor is an external accounting system which may include details like "Address code" in it. This is the number as stated on the invoice. (Consider specifying Vendor Accounting Code in the label to make clear)
disbursement_number
stringNNYYNEditable

The identifier for the physical transaction corresponding to a payment (Eg. Check #, EFT # etc.) Brought in from external source
disbursement_date
dateY (if you have a disburment #)NYNY (Date Range would be ideal)Editable

Date payment was made from financial system (eg. corresponding check date)
disbursement_amount
decimalNNNNNEditable

The amount of the payment made outside of FOLIO













Voucher Line
external_account_number
stringYNYYNAPI

Captured base on fund distributions on the invoices lines. All distributions that come flrom funds with the same account number are grouped by voucher line
voucher_line_amount
decimalYNYYNCalculated

Total of the fund distributions that share an external account number from the invoice
source_idinovice_line.iduuidYYYNNAPI

There could be many invoice lines against a single voucher line. These are group on a voucher line based on "External account number"
fund_group?









Certain institution may need to see the FUnd group identified on the voucher and some may not. Will discuss after revisiting Finance app
fund_id

YY
NYAPI



fund_distributions
uuidYYNNNAPI

Amount associated with that particular fund. Not required by all institutions but may need to display on voucher. This is not stored in the voucher but referenced from the invoice
sub_transaction_id
uuidYYNNNAPI

could be multiple UUIDs if the payment is draw from multiple funds $50, broken into $20 and $30


























Batch export
batchID
stringY*NNNNGenerated

UUID for batch
batchGroupbatch group ID that displays as name








Eg.
“PERKLIB”
“MEDLIB”
”LAWLIB” or
“FORDLIB”
Derived from invoice data

dateCreatedDate and time batch was createddateYNYNYGenerated

The date and time the batch was created. This will also be used as human readable ID
Start











End











status
stringYNYNYEnum
Pending, Generated, Uploaded, Paid (Uploaded and we have marked all related vouchers as paid)Pending: Generated: Uploaded: Paid:File was successfully created and sent to ftp location (Result: All vouchers marked as paid)

createdByUsed when export is run manually to identify the user who created the fileUUID
NNNNAPI
System, User IDCaptured automatically by the system
Exported Voucher
voucherNo









“H”
folioInvoiceNo


N





Folio invoice number that will provide exact match for the user if searching for the source of the voucher
invoiceIDReference - Vendor invoice number








Invoice number
accountingCodeAP Vendor identifier








R3 Vendor Code
batchGroupbatch group ID that displays as name








Eg.
“PERKLIB”
“MEDLIB”
”LAWLIB” or
“FORDLIB”
Derived from invoice data

voucherTypepayment_typestringYNYNYEnum
Payment, Pre-payment, Credit,Indicates type of payment to account for pre-payment and other unique payments,
voucherStatuspayment_statusstringYNYNYEnum
Awaiting payment, PaidAwaiting Payment, Paid
voucherAmount
decimalYNYYNCalculated

The amount that is actually paid; in FOLIO system currency
voucherDate
dateNNYNYCalculated

The date the invoice status changes to approved
BUKRSCompany Code








Should ledger be indentified in ledger? Or institution? Is this information not related to Accounting Code, batch group or Fund ID? Thus, is it necessary?Will still need to verify with the SIG
systemCurrencycurrencystringYNNNNAPI

The currency in which the voucher was paid
invoiceCurrency

YNNNNAPI

Currency invoice was originally defined in
exchangeRate

NNYNNEditable

Exchange rate used to generate transaction. Should be editable by the user and the system in case this needs to be updated
invoiceNoteInvoice notes








Populated based on contents of Aleph invoice note field. If contains “PI” for pay immediately, set this to “N00”; otherwise blankThis could also be used to indicate that a check may need to have an enclosure (ENC) Some would indicate they need to pick it up and enclose it themselves
vendorNameName of Vendor (1 time)








Should be retrievable with accountCode
vendorAddressVendor address (1 time)








How would this be retrieved? Is it needed? What organization address would be used if multiple are returned?
disbursementNumber
stringNNYYNEditable

The identifier for the physical transaction corresponding to a payment (Eg. Check #, EFT # etc.) Brought in from external source
disbursementDate
dateY (if you have a disburment #)NYNY (Date Range would be ideal)Editable

Date payment was made from financial system (eg. corresponding check date)
disbursementAmount
decimalNNNNNEditable

The amount of the payment made outside of FOLIO
voucherLines
arrayYYYN/AN/AGenerated



eclosureNeeded
booleanNNNNNboolean

Inherited from When payment type is check this would indicate that an enclosure is needed
Exported Voucher lines
externalAccountNumber
stringYNYYNAPI

Captured base on fund distributions on the invoices lines. All distributions that come flrom funds with the same account number are grouped by voucher line
adjustmentsAmount of payment that is Tax or discount and what type of tax it is.








Describes the related adjustments so steps can be taken to account for any associated taxes. Do we need a total? Could we indicate in adjustment that it needs to be a shown on voucher?Need to report adjustments for each voucher line. Should be percentage for percentage and can be amount for the amounts.
voucherLineAmount
decimalYNYYNCalculated

Total of the fund distributions that share an external account number from the invoice
fundCode

YY
NYAPI

The Fund code should provide desired context
description (Title)Title information from invoice line description often the Title








Description info from the invoice lineSmall group indicated this detail isn't necessary in voucher.


Data Flow(s):

 


ERD (Entity Relationship Diagram):