Ejecución económica
Entidades
Entidad | Descripción |
---|---|
DatoEconomico | Entidad que representa cualquier dato económico. Tendrá que venir identificado por un identificador único, por el proyecto al que pertenece, anualidad, partida presupuestaria y un código económico (opcional en algunos de los casos). El resto de campos del dato económico se tratarán como columnas dinámicas. Se indicará por cada columna el identificador del campo, el nombre del campo y si es una columna sobre la que se tiene que hacer una suma para mostrarlo en el SGI como un campo totalizador. |
Columna | Contiene el listado de columnas que serán mostradas en las pantallas del SGI dependiendo de la pantalla en la que se esta: Ejecución presupuestaria, detalle de operaciones, validación de gastos, etc... Por cada columna se tendrá el identificador del campo, el nombre del campo y si es una columna sobre la que se tiene que hacer una suma para mostrarlo en el SGI como un campo totalizador. |
DatoEconomicoDetalle | Entidad que representa el detalle de un dato económico con todos sus campos para mostrarlo en una pantalla de consulta del dato económico. Tendrá unos campos fijos (identificador único, identificador del proyecto al que pertenece, anualidad, partida presupuestaria y un código económico) y unos campos dinámicos. Por cada campo se detallará el nombre y el valor del campo para mostrarlo en la pantalla del SGI |
Campo | Contiene el listado de campos dinámicos que serán mostradas en las pantallas de detalle de un dato económico. Por cada campo se tendrá el el nombre y el valor del campo |
Documento | Entidad que representa los documentos que pueda tener relacionados un dato económico (en este caso los gastos). |
Enumerados
Entidad | Descripción |
---|---|
TipoDatoEconomico | Puede tomar los siguientes valores:
|
TipoOperacion | Puede tomar los siguientes valores:
|
Estado (en validación de gastos) | Puede tomar los siguientes valores:
|
Modelo lógico
API
Características generales que todas las API REST deben de cumplir:
Definición de los objetos
DatoEconomico
Nombre | Tipo | Descripción |
id | String | Identificador del dato económico. Tiene que ser un identificador único. |
proyectoId | String | Identificador del proyecto económico |
partidaPresupuestaria | String | Código de la Partida presupuestaria |
codigoEconomico | CodigoEconomico | Contiene la entidad Código económico asignado al gasto/ingreso |
anualidad | String | Anualidad |
tipo | String | Dos valores:
|
columnas | Map[clave,valor] | Mapa de propiedades El valor será un String salvo en aquellas columnas que sean acumulables (se tenga que hacer sumas sobre ellas) donde será de tipo Numérico (sin separador de miles y como separador decimal el punto) |
DatoEconomicoDetalle
Nombre | Tipo | Descripción |
id | String | Identificador del dato económico. Tiene que ser un identificador único. |
proyectoId | String | Identificador del proyecto económico |
partidaPresupuestaria | String | Código de la Partida presupuestaria |
codigoEconomico | CodigoEconomico | Contiene la entidad Código económico asignado al gasto/ingreso |
anualidad | String | Anualidad |
campos | Lista[Campo] | Lista de campos, por cada campo se define el nombre y el valor del campo |
Columna
Nombre | Tipo | Descripción |
id | String | Identificador de la columna |
nombre | String | Nombre de la columna |
acumulable | Boolean | Indica si se tiene que sumar o no para mostrar los totales en la pantalla del SGI. Dos valores:
|
Documento
Nombre | Tipo | Descripción |
id | String | Identificador único del documento |
nombre | String | Nombre del documento a mostrar |
nombreFichero | String | Nombre del fichero con extensión |
Comentario
Nombre | Tipo | Descripción |
comentario | String | Comentario relacionado con el cambio de estado de un gasto |
Método | URL | Parámetros | Respuesta | Descripción |
---|---|---|---|---|
GET | /ejecucion-economica/columnas | q+s (query + sort) La query estará formada por:
El campo reducida puede tomar los siguientes valores:
Si no esta informado el campo reducida se considera false. El tipoOperacion puede tomar los siguientes valores:
| Lista[Columna] | Listado con las columnas que va a devolver la llamada /ejecucion-economica Por cada columna se indica un id, nombre, si es una columna totalizadora (se va a hacer una suma de ella en el SGI) y si es visible o no en la pantalla principal del SGI Cuando tipoOperacion=='EPA' las columnas a devolver en la Universidad de Murcia serán:
Cuando tipoOperacion=='EPG' las columnas a devolver en la Universidad de Murcia serán:
Cuando tipoOperacion=='EPI' las columnas a devolver en la Universidad de Murcia serán:
|
GET | /ejecucion-economica | q+s (query + sort) La query estará formada por:
El campo reducida puede tomar los siguientes valores:
Si no esta informado el campo reducida se considera false. El tipoOperacion puede tomar los siguientes valores:
| Lista[DatoEconomico] | Listado con los datos económicos pedidos según el campo tipoOperacion. Por cada dato económico se devolverán las siguientes columnas:
|
GET | /ejecucion-economica/{id} | DatoEconomicoDetalle | Detalle del dato económico con todas sus columnas.
| |
Validación de gastos | ||||
GET | /gastos/columnas | q+s (query + sort) La query estará formada por:
El campo estado puede tomar dos valores:
| Lista[Columna] | Listado con las columnas que va a devolver la llamada /gastos Por cada columna se indica un id, nombre, si es una columna totalizadora (se va a hacer una suma de ella en el SGI en la pantalla principal) y si es visible o no en la pantalla principal del SGI. Las columnas a devolver en la Universidad de Murcia serán:
|
GET | /gastos | q+s (query + sort) La query estará formada por:
El campo estado puede tomar dos valores:
| Lista[DatoEconomico] | Listado de gastos pendientes de pasar por la "Validación de gastos" si en el campo del filtrado estado = 'Pendiente' o listado de gastos que ya han sido validados (han pasado por la "Validación de gastos") si en el campo del filtrado estado = 'Validado' Para cada gasto se devolverán los siguientes datos:
|
GET | /gastos/{id} | DatoEconomicoDetalle | Detalle de un gasto. Para cada gasto se devolverán los siguientes datos:
| |
PATCH | /gastos/{id}/validar | Comentario | Se valida el gasto y recibe como parámetro el comentario en caso de que lo tuviese. | |
PATCH | /gastos/{id}/rechazar | Comentario | Se rechaza el gasto y recibe como parámetro el comentario en caso de que lo tuviese. | |
Se necesita un servicio que reciba como parámetros la lista de identificadores del gasto y devuelve las columnas a mostrar en la validación de gastos con la suma ya realizada, en este caso "Importe validado" e "Importe pagado" (realiza la sumas de esos importes de todos los gastos pasados como parámetro) Se necesitará primero la función que devuelva el nombre de las columnas? | ||||
Se necesita un servicio que reciba como parámetro la lista de códigos económicos usados en el proyecto (en elegibilidad) y devuelva para cada código económico la suma del importe de todos los gastos pendientes para ese código económico Se necesitará primero la función que devuelva el nombre de las columnas? | ||||
GET | /documentos/{id} | Documento | Devuelve el detalle del documento | |
GET | /documentos/{id}/archivo | Binario (en la cabecera ira el contentType) | Devuelve el binario del documento |
Ejemplos
Ejecución presupuestaria - Estado actual - Columnas (/ejecucion-economica/columnas)
proyectoId=="123456";anualidad=in=("2020","2021");tipoOperacion=="EJ: Estado actual"
[ { "id": "1" "nombre":"Importe presupuestado" "acumulable": "true" }, { "id":"2", "nombre":"Importe actual", "acumulable": "true" }, { "id":"3", "nombre":"Importe disponible para gastos", "acumulable": "true" }, { "id":"4", "nombre":"Derechos", "acumulable": "true" }, { "id":"5", "nombre":"Cobros", "acumulable": "true" } ]
Ejecución presupuestaria - Estado actual (/ejecucion-economica)
proyectoId=="123456";anualidad=in=("2020","2021");tipoOperacion=="EJ: Estado actual"
[ { "proyectoId":"123456", "partidaPresupuestaria": "8002B541A64406" "anualidad":"2020", "tipo":"Gasto", "columnas": { "1":2000, "2":500, "3":1000.50, "4":1000.50, "5":1000.50 } }, { "proyectoId":"123456", "partidaPresupuestaria": "8002B541A64406" "anualidad":"2021", "tipo":"Gasto", "columnas": { "1":2000, "2":500.50, "3":1000.50, "4":1000.50, "5":1000.50 } } ]
Facturas y justificantes - Facturas y gastos - Columnas (/ejecucion-economica/columnas)
proyectoId=="123456";anualidad=in=("2020","2021");fechaPago=bt=("2020-12-01T00:00:00Z","2021-01-31T23:59:59Z");tipoOperacion=="FJ: Facturas"
[ { "id": "1" "nombre":"Número registro Justo" "acumulable": "false" }, { "id":"2", "nombre":"Tipo operación", "acumulable": "false" }, { "id":"3", "nombre":"Proveedor", "acumulable": "false" }, { "id":"4", "nombre":"Número de registro del proveedor", "acumulable": "false" }, { "id":"5", "nombre":"Descripción", "acumulable": "false" }, { "id":"6", "nombre":"Importe base imponible", "acumulable": "true" }, { "id":"7", "nombre":"Importe IVA", "acumulable": "true" }, { "id":"8", "nombre":"Fecha de devengo", "acumulable": "false" }, { "id":"9", "nombre":"Fecha de contabilización", "acumulable": "false" }, { "id":"10", "nombre":"Fecha de pago", "acumulable": "false" }, { "id":"11", "nombre":"Nº documento de gasto", "acumulable": "false" }, { "id":"12", "nombre":"Nº de señalamiento", "acumulable": "false" } ]
Facturas y justificantes - Facturas y gastos (/ejecucion-economica)
proyectoId=="123456";anualidad=in=("2020","2021");fechaPago=bt=("2020-12-01","2021-01-31");tipoOperacion=="FJ: Facturas"
[ { "id":"11-2020-Factura" "proyectoId":"123456", "partidaPresupuestaria": "8002B541A64406", "codigoEconomico": { "id": "FU", "nombre": "Fungible", "tipo": "Gasto" } "anualidad":"2020", "tipo":"Gasto", "columnas": { "1":"1243", "2":"Factura", "3":"Proveedor1", "4":"24555", "5":"Gasto de material inventariable", "6":500.00, "7":0.00, "8":"20/12/2020", "9":"20/12/2020", "10":"20/12/2020", "11":"11222", "12":"4567" } }, { "id":"12-2020-Factura" "proyectoId":"123456", "partidaPresupuestaria": "8002B541A64406", "codigoEconomico": { "id": "FU", "nombre": "Fungible", "tipo": "Gasto" } "anualidad":"2020", "tipo":"Gasto", "columnas":{ "1":"1243", "2":"Factura", "3":"Proveedor1", "4":"24555", "5":"Gasto de material inventariable", "6":500.00, "7":0.00, "8":"20/12/2020", "9":"20/12/2020", "10":"20/12/2020", "11":"11222", "12":"4567" } } ]
Validaciones de gastos pendientes - Columnas (/gastos/columnas)
proyectoId=="123456";estado=="Pendiente"
[ { "id": "1" "nombre":"Fecha gasto" "acumulable": "false" }, { "id":"2", "nombre":"Proveedor", "acumulable": "false" }, { "id":"3", "nombre":"Importe", "acumulable": "false" } ]
Validaciones de gastos pendientes (/gastos)
proyectoId=="123456";estado=="Pendiente"
[ { "id":"1", "proyectoId":"123456", "partidaPresupuestaria": "08002B541A64406", "codigoEconomico": { "id": "VI", "nombre": "Viajes y dietas", "tipo": "Gasto" } "anualidad":"2021", "columnas": { "1":"05/11/2021", "2":"Empresa S.A", "3":"1000.50" } }, { "id":"2", "proyectoId":"123456", "partidaPresupuestaria": "08002B541A64406", "codigoEconomico": { "id": "VI", "nombre": "Viajes y dietas", "tipo": "Gasto" } "anualidad":"2021", "columnas" { "1":"07/11/2021", "2":"Empresa S.A", "3":"1000.50" } } ]
Detalle gasto (/gastos/{id})
"id":"1", "proyectoId":"123456", "partidaPresupuestaria": "08002B541A64406", "codigoEconomico": { "id": "VI", "nombre": "Viajes y dietas", "tipo": "Gasto" } "anualidad":"2021", "campos":[ { "nombre":"Fecha gasto", "valor":"2020-11-05" }, { "nombre":"Proveedor", "valor":"Empresa S.A" }, { "nombre":"Importe", "valor":"1000.50" } ] "documentos":[ { "id": "11", "nombre":"Factura", "nombreFichero":"factura.pdf" }, { "id": "12", "nombre":"Otro documento", "nombreFichero":"otroDocumento.pdf" } ]