Update funds via csv
https://folio-org.atlassian.net/browse/UXPROD-199
Problem statement
Some libraries need the ability to update funds via spreadsheet rather than within the UI. This is particularly relevant for libraries with a large number of funds requiring simultaneous update.
Requirements and use cases
Requirement | Status | Use cases |
---|---|---|
Library needs the ability to upload fund allocations via spreadsheet
| pending |
|
Library needs the ability to update fund allocations via spreadsheet | pending |
|
Budgets require granular tracking for any changes made via batch upload | pending |
|
Library needs some “roll back” ability to account for errors | pending |
|
Questions
What fields should be editable via csv update?
Initial allocation, increase, decrease, status (fund and budget), allowable encumbrance, allowable expenditure
Should total funding be editable?
No. Total funding should always be a calculated value for audit purposes
Budgetname can be edited to account for any valid FY (i.e. any FY that has been created in the system, whether it is active or not.)
What fields should be included in the spreadsheet?
Fund name, fund code, status (fund), group (code), acq unit, ext account number, budget name, status, allowable encumbrance, allowable expenditure, Initial allocation, increase, decrease
Should total funding be included?
Should we include UUIDs or should that be a BE lookup on load?
How should changes in allocation be recorded (for audit trail purposes)?
What should happen if a change in allocation results in a budget being overspent?
Should increase/decrease be total/aggregate increase/decrease or additional increase/decrease?
Example: Initial allocation is $10,000. A prior adjustment of +$1000 is present. If another $1000 adjustment is to be made, should the uploaded spreadsheet have a $1000 or a $2000 adjustment?
If $1000, then the initial spreadsheet should include increase/decrease fields, but they should be blank
What is the expected audit behavior if total funding is editable?
Do we treat as replacement initial allocation or as increase/decrease? Most likely increase/decrease
Should an error in one line cause the entire batch to fail?
How many warnings do we need to include that this can really mess things up if you’re not paying attention?
Do we want to allow creation of budgets with negative allocations? Do we want to allow adjustments to allow budgets to have negative allocations?
Proposed flow:
Authorized user selects a Ledger or Group
User clicks Actions → Export budget template
Prompt: Select Fiscal Year (Available FYs limited to current FY, future FYs that exist and past FYs that have open budgets)
Budget template downloads with FY, Ledger, Group and Fund details pre-populated and financial details NOT pre-populated
UUIDs for existing budgets should be included
Line item should exist for each fund associated with the chosen ledger or group
User fills out spreadsheet
Fillable spaces: increase allocation, decrease allocation, allowable encumbrance (percent), allowable expenditure (percent), fund status (active or inactive)
User clicks Actions → Import budget
CSV is uploaded to FOLIO
FOLIO checks for UUID match on budget
If present, allocation is increased or decreased
If NOT present, FOLIO checks for UUID matches on Fund and FY
FOLIO creates a new budget based on Fund and FY
FOLIO sets value in increase box as initial allocation
FOLIO rejects new budgets with negative allocations
All changes are associated with the user carrying out the upload
Any errors will cause the entire upload to be rejected
When processed, a preview screen will open, showing a list of new values associated with changes. Preview screen will have “commit” and “cancel” buttons.
When user clicks “commit”, the uploaded data will overwrite the existing data.
Miro board: