https://github.com/folio-org/mod-orders
API for running Orders rollover
Start Orders rollover process
POST /orders/rollover
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Ledger fiscal year rollover",
"type": "object",
"properties": {
"id": {
"description": "id of ledger fiscal year rollover",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"ledgerId": {
"description": "Ledger UUID for which rollover was started",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"rolloverType": {
"description": "Type of rollover. Action Commit means run real rollover",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaName": "RolloverType",
"enum": [
"Preview",
"Commit",
"Rollback"
],
"javaEnums": [
{
"name": "PREVIEW",
"title": "Preview",
"description": "Run only budget and encumbrance rollover. Result will be not saved in real tables."
},
{
"name": "COMMIT",
"title": "Commit",
"description": "Run real for budgets, encumbrances and orders rollover. Result will be saved in real tables."
},
{
"name": "ROLLBACK",
"title": "Rollback",
"description": "Rollback budgets, encumbrances and orders rollover."
}
],
"default": "Commit"
},
"fromFiscalYearId": {
"description": "UUID of the fiscal year from which rollover will be happened",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"toFiscalYearId": {
"description": "UUID of the fiscal year to which rollover will be happened",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"restrictEncumbrance": {
"description": "Imposes restrictions on encumbrances",
"type": "boolean",
"default": false
},
"restrictExpenditures": {
"description": "Imposes restrictions on payments",
"type": "boolean",
"default": false
},
"needCloseBudgets": {
"description": "Control that all budget must be closed in rollover time",
"type": "boolean",
"default": true
},
"currencyFactor": {
"description": "Currency factor",
"type": "integer",
"readonly": true
},
"budgetsRollover": {
"description": "Budget rollover info",
"type": "array",
"id": "budgetsRollover",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Budget rollover info",
"javaType": "org.folio.rest.jaxrs.model.BudgetRollover",
"properties": {
"fundTypeId": {
"description": "Fund type UUID",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"rolloverAllocation": {
"description": "Should allocated amount needs to be rollover",
"type": "boolean",
"default": false
},
"rolloverBudgetValue": {
"description": "Which type of value to be rollover: None, CashBalance or Available",
"type": "string",
"enum": [
"None",
"CashBalance",
"Available"
],
"default": "None"
},
"setAllowances": {
"description": "Indicate to get Allowances from previous year budget if false and if true then values will be specified",
"type": "boolean",
"default": false
},
"adjustAllocation": {
"description": "How much should we increase the allocation",
"type": "number",
"default": 0
},
"addAvailableTo": {
"description": "Where to add available : Available or Allocation",
"type": "string",
"enum": [
"Available",
"Allocation"
],
"default": "Available"
},
"allowableEncumbrance": {
"description": "The encumbrance percentage limit for this budget",
"type": "number"
},
"allowableExpenditure": {
"description": "The expenditure percentage limit for this budget",
"type": "number"
}
},
"additionalProperties": false
}
},
"encumbrancesRollover": {
"description": "Encumbrances rollover info",
"id": "encumbrancesRollover",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Encumbrance rollover info",
"javaName": "EncumbranceRollover",
"properties": {
"orderType": {
"description": "Order type",
"type": "string",
"enum": [
"Ongoing",
"Ongoing-Subscription",
"One-time"
]
},
"basedOn": {
"description": "Based on Expended, Remaining or InitialAmount",
"type": "string",
"enum": [
"Expended",
"Remaining",
"InitialAmount"
]
},
"increaseBy": {
"description": "How much should we increase the encumbrance amount based on basedOn",
"type": "number",
"default": 0
}
},
"additionalProperties": false,
"required": [
"orderType",
"basedOn"
]
}
},
"metadata": {
"readonly": true,
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"additionalProperties": false,
"required": [
"ledgerId",
"fromFiscalYearId",
"toFiscalYearId",
"budgetsRollover",
"encumbrancesRollover"
]
}
Example:
{
"id": "e7ed4439-a5ea-4976-b7e6-264e495fbfe8",
"rolloverType": "Commit",
"ledgerId": "7cef8378-7cbd-1fae-bcdd-8b9d7c0af9de",
"fromFiscalYearId": "ac2164c7-ba3d-1bc2-a12c-e35ceccbfaf2",
"toFiscalYearId": "517efc6a-f218-4d25-a832-10de4dc32f25",
"restrictEncumbrance": false,
"restrictExpenditures": false,
"needCloseBudgets": true,
"budgetsRollover": [
{
"fundTypeId": "c93373df-e7ec-4d31-b200-719736610d89",
"rolloverAllocation": true,
"rolloverBudgetValue": "Available",
"adjustAllocation": 5,
"addAvailableTo": "Available",
"allowableEncumbrance": 100,
"allowableExpenditure": 100
}
],
"encumbrancesRollover": [
{
"orderType": "Ongoing",
"basedOn": "Expended",
"increaseBy": 5
},
{
"orderType": "One-time",
"basedOn": "Expended",
"increaseBy": 4
}
]
}
Rollover completed successfully
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: application/json
Type: any
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Media type: text/plain
Type: any
Example:
"unable to add <<resourcePathName|!singularize>> -- malformed JSON at 13:3"
Internal server error, e.g. due to misconfiguration
Media type: application/json
Type: any
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator