Author | Andrei Makaranka | ||||||||
---|---|---|---|---|---|---|---|---|---|
JIRA task |
| ||||||||
Business Requirements | |||||||||
Architects Review |
| ||||||||
PO review |
|
...
- Ledger Fiscal Year Rollover already implemented.
- It is likely that we will be creating upwards of 75000 - 100000 encumbrances during this process. (statistics from Library).
- Prepare report with Unpaid invoices is UI responsibility.
...
Property | Type | Read Only | Default | Required | Notes |
---|---|---|---|---|---|
action | enum ["Preview", "Commit", "Rollback"] | true | Commit | Y |
|
Create
...
ledger fiscal year rollover Budget schemas
Shema name : ledger_fiscal_year_rollover_budget
Schema should be copy of ramls/acq-models/mod-finance/schemas/budget.json where all amounts are "persistent"(remove readOnly flag from all amounts). Also link on Ledger Rollover ("ledgerRolloverId")
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A budget", "type": "object", "javaName": "budget", "extends" : { "$ref" : "../../common/schemas/entity.json" }, "properties": { "id": { "description": "UUID of this budget", "$ref": "../../common/schemas/uuid.json" }, "ledgerRolloverId": { "description": "Ledger fiscal year rollover UUID", "$ref": "../../common/schemas/uuid.json" }, "name": { "description": "The name of the budget", "type": "string" }, "budgetStatus": { "description": "The status of the budget", "type": "string", "enum": [ "Active", "Frozen", "Inactive", "Planned", "Closed" ] }, "allowableEncumbrance": { "description": "The encumbrance percentage limit for this budget", "type": "number" }, "allowableExpenditure": { "description": "The expenditure percentage limit for this budget", "type": "number" }, "allocated": { "description": "The amount currently allocated to this budget", "type": "number" }, "awaitingPayment": { "default": 0, "description": "The amount currently awaiting payment for this budget", "type": "number" }, "available": { "description": "The amount currently available for this budge", "type": "number" }, "encumbered": { "default": 0, "description": "The amount currently encumbered for this budget", "type": "number" }, "expenditures": { "default": 0, "description": "The amount currently expended for this budget", "type": "number" }, "netTransfers": { "default": 0, "description": "Summing all the transfers on this budget", "type": "number" }, "unavailable" : { "description": "Unavailable amount for this budget", "type": "number" }, "overEncumbrance": { "description": "The amount currently over-encumbered for this budget", "type": "number" }, "overExpended": { "description": "Amount the budget is over expended.", "type": "number" }, "fundId": { "description": "UUID of fund", "$ref": "../../common/schemas/uuid.json" }, "fiscalYearId": { "description": "UUID of fiscal year", "$ref": "../../common/schemas/uuid.json" }, "acqUnitIds": { "description": "acquisition unit ids associated with this budget", "type": "array", "items": { "$ref": "../../common/schemas/uuid.json" } }, "tags": { "type": "object", "description": "arbitrary tags associated with this budget", "$ref": "../../../raml-util/schemas/tags.schema" }, "metadata": { "type": "object", "$ref": "../../../raml-util/schemas/metadata.schema", "readonly": true }, "initialAllocation": { "default": 0, "description": "The amount of the first allocation made to this budget", "type": "number" }, "allocationTo": { "default": 0, "description": "The sum of all allocation transaction amounts made TO this budget not including the Initial allocation", "type": "number" }, "allocationFrom": { "default": 0, "description": "The sum of all allocation transaction amounts made FROM this budget not including the Initial allocation", "type": "number" }, "totalFunding": { "description": "budget.allocated + budget.netTransfers", "type": "number" }, "cashBalance": { "description": "Total Funding minus Expended", "type": "number" } }, "additionalProperties": false, "required": [ "budgetStatus", "name", "fundId", "fiscalYearId" ] } |
...
Schema name: ledger_fiscal_year_rollover_
...
budget_collection
Code Block | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| {
| ||||||||||
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "Contains a list of budgets generated during the rollover. Also budgets include all calculated mounts", "type": "object", "properties": { "budgets": { "description": "The list of fiscal year rollover errors", "type": "array", "items": { "$ref": "ledger_fiscal_year_rollover_budget.json" } }, "totalRecords": { "description": "The number of records contained in this collection", "type": "integer", "minimum": 0 } }, "additionalProperties": false, "required": [ "budgets", "totalRecords" ] } |
APIs
Ledger Rollover generated Budgets Business API
...
Create new DB Table "ledger_fiscal_year_rollover_budgets"
In the database will be stored records with type of "ledger_fiscal_year_rollover_budget"
Create ledger fiscal year rollover Logs schemas
Schema name : ledger_fiscal_year_rollover_log
Property | Type | Read Only | Default | Required | Notes |
---|---|---|---|---|---|
ledgerRolloverId | UUID | true | NA | Y | |
startDate | date-time | true | NA | Y | This is "creratedDate" from rollover metadata. |
endDate | date-time | true | NA | This is "updatedDate" from rollover metadata. Should be provided only when "status" is "Success" or "Error". | |
status | ramls/acq-models/mod-finance/schemas/rollover_status.json | true | NA | Y | |
errorsLink | String or pattern | true | NA | N | If possible Link should included environment URL : https://okapi-bugfest-lotus.int.aws.folio.org/finance/ledger-rollovers-errors?query=ledgerRolloverId=={id}fff-e-errors |
budgetsLink | String or pattern | true | NA | N | If possible Link should included environment URL : https://okapi-bugfest-lotus.int.aws.folio.org/finance/ledger-rollovers-budgets?query=ledgerRolloverId=={id}fff- |
Schema name : ledger_fiscal_year_rollover_log_collection
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Contains a list of rollover runs",
"type": "object",
"properties": {
"logs": {
"description": "The list of rollover runs",
"type": "array",
"items": {
"$ref": "ledger_fiscal_year_rollover_log.json"
}
},
"totalRecords": {
"description": "The number of records contained in this collection",
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"budgets",
"totalRecords"
]
} |
APIs
Ledger Rollover generated Budgets Business API
Method | Path | Request | Response | Description | Interface | Notes |
---|---|---|---|---|---|---|
GET | /finance/ledger-rollovers-budgets/{id} | NA | ledger_fiscal_year_rollover_budget | GET budgets of the ledger fiscal year rollover by id | finance.ledger-rollovers-budgets.item.get | Status : 200 |
GET | /finance/ledger-rollovers-budgets | NA | ledger_fiscal_year_rollover_budget_collection | GET budgets of the ledger fiscal year rollovers | finance.ledger-rollovers-budgets.collection.get | Status : 200 |
Ledger Rollover generated Budgets Storage API
Method | Path | Request | Response | Description | Interface | Notes |
---|---|---|---|---|---|---|
GET | /finance/ledger-rollovers-budgets/{id} | NA | ledger_fiscal_year_rollover_budget | GET budgets of the ledger fiscal year rollover by id | finance.ledger-rollovers-budgets.item.get | Status : 200 |
GET | /finance/ledger-rollovers-budgets | NA | ledger_fiscal_year_rollover_budget_collection | GET budgets of the ledger fiscal year rollovers | finance.ledger-rollovers-budgets.collection.get | Status : 200 |
Ledger Rollover Logs Business API
Method | Path | Request | Response | Description | Interface | Notes |
---|---|---|---|---|---|---|
GET | /finance/ledger-rollovers/-logs/{id} | NA | preview_ledger_fiscal_year_rollover_log | GET logs of the ledger fiscal year rollover by id | finance.ledger-rollovers.-logs.item.get | Status : 200 |
GET | /finance/ledger-rollovers/-logs | NA | preview_ledger_fiscal_year_rollover_log_collection | GET logs of the ledger fiscal year rollovers | finance.ledger-rollovers.-logs.collection.get | Status : 200 |
...
Method | Path | Request | Response | Description | Interface | Notes |
---|---|---|---|---|---|---|
GET | /finance-storage/ledger-rollovers/-logs/{id} | NA | ledger_fiscal_year_rollover_logs_rolloverlog | GET logs of the ledger fiscal year rollover by id | finance-storage.ledger-rollovers.-logs.item.get | Status : 200 |
GET | /finance-storage/ledger-rollovers/-logs | NA | ledger_fiscal_year_rollover__logslog_collection | GET logs of the ledger fiscal year rollovers | finance-storage.ledger-rollovers.-logs.collection.get | Status : 200 |
...