Versions Compared

Key

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


AuthorAndrei Makaranka
JIRA task

Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyUXPROD-2899

Business Requirements
Architects Review

Raman Auramau

Status
colourYellow
titleIn Progress

PO review

Dennis Bridges

Status
colourYellow
titleIn Progress

...

  • 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.

...

PropertyTypeRead OnlyDefaultRequiredNotes

action

enum ["Preview", "Commit", "Rollback"]


trueCommit

Y

  • Current scheme for rollover records - add a column/flag to mark every rollover if it is a real or a preview one - this will also keep the history of completed previews

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
languagegroovy
themeMidnight
titleledger_fiscal_year_rollover_budget
collapsetrue
{
  "$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
languagejsgroovy
themeMidnight
collapsetrue
titleledger_fiscal_year_rollover_budget_collection
collapsetrue
{
  "$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

PropertyTypeRead OnlyDefaultRequiredNotes

ledgerRolloverId

UUID


trueNA

Y


startDatedate-timetrueNAYThis is "creratedDate" from rollover metadata. 
endDatedate-timetrueNA
This is "updatedDate" from rollover metadata. Should be provided only when "status" is "Success" or "Error". 
statusramls/acq-models/mod-finance/schemas/rollover_status.jsontrueNAY
errorsLinkString or patterntrueNANIf possible Link should included environment URL : https://okapi-bugfest-lotus.int.aws.folio.org/finance/ledger-rollovers-errors?query=ledgerRolloverId=={id}fff-e-errors 
budgetsLinkString or patterntrueNANIf 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
languagegroovy
themeMidnight
titleledger_fiscal_year_rollover_budget_collection
collapsetrue
{
  "$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 idfinance.ledger-rollovers-budgets.item.getStatus : 200
GET/finance/ledger-rollovers-budgetsNAledger_fiscal_year_rollover_budget_collectionGET budgets of the ledger fiscal year rolloversfinance.ledger-rollovers-budgets.collection.getStatus : 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 idfinance.ledger-rollovers-budgets.item.getStatus : 200
GET/finance/ledger-rollovers-budgetsNAledger_fiscal_year_rollover_budget_collectionGET budgets of the ledger fiscal year rolloversfinance.ledger-rollovers-budgets.collection.getStatus : 200

Ledger Rollover Logs Business API

Method

Path

Request

Response

Description

Interface

Notes

GET/finance/ledger-rollovers/-logs/{id}NApreview_

ledger_fiscal_year_rollover_log

GET logs of the ledger fiscal year rollover by idfinance.ledger-rollovers.-logs.item.getStatus : 200
GET/finance/ledger-rollovers/-logsNApreview_

ledger_fiscal_year_rollover_log_collection

GET logs of the ledger fiscal year rolloversfinance.ledger-rollovers.-logs.collection.getStatus : 200

...

Method

Path

Request

Response

Description

Interface

Notes

GET

/finance-storage/ledger-rollovers/-logs/{id}

NA

ledger_fiscal_year_rollover_

logs_rollover

log

GET logs of the ledger fiscal year rollover by idfinance-storage.ledger-rollovers.-logs.item.getStatus : 200
GET/finance-storage/ledger-rollovers/-logsNA

ledger_fiscal_year_rollover_

_logs

log_collection

GET logs of the ledger fiscal year rolloversfinance-storage.ledger-rollovers.-logs.collection.getStatus : 200

...