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 nombre del campo, su valor, si es una columna sobre la que se tiene que hacer una suma para mostrarlo en el SGI como un campo totalizador, y si es visible desde la pantalla principal del SGI (desde la que se hace la búsqueda) |
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 nombre del campo, su valor, si es una columna sobre la que se tiene que hacer una suma para mostrarlo en el SGI como un campo totalizador, y si es visible desde la pantalla principal del SGI (desde la que se hace la búsqueda) |
Documento | Entidad que representa los documentos que pueda tener relacionados un dato económico (en este caso los gastos). |
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) |
Columna
Nombre | Tipo | Descripción |
id | String | Identificador de la columna |
nombre | String | Nombre de la columna |
valor | String o Numérico | 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) |
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} | DatoEconomico | 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} | DatoEconomico | 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" "esTotalizadora": "true", "esVisible": "true" }, { "id":"2", "nombre":"Importe actual", "esTotalizadora": "true", "esVisible": "true" }, { "id":"3", "nombre":"Importe disponible para gastos", "esTotalizadora": "true", "esVisible": "true" }, { "id":"4", "nombre":"Derechos", "esTotalizadora": "true", "esVisible": "true" }, { "id":"5", "nombre":"Cobros", "esTotalizadora": "true", "esVisible": "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, "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" "esTotalizadora": "false" }, { "id":"2", "nombre":"Tipo operación", "esTotalizadora": "false" }, { "id":"3", "nombre":"Proveedor", "esTotalizadora": "false" }, { "id":"4", "nombre":"Número de registro del proveedor", "esTotalizadora": "false", "esVisible": "false" }, { "id":"5", "nombre":"Descripción", "esTotalizadora": "false", "esVisible": "false" }, { "id":"6", "nombre":"Importe base imponible", "esTotalizadora": "true", "esVisible": "true" }, { "id":"7", "nombre":"Importe IVA", "esTotalizadora": "true", "esVisible": "true" }, { "id":"8", "nombre":"Fecha de devengo", "esTotalizadora": "false", "esVisible": "false" }, { "id":"9", "nombre":"Fecha de contabilización", "esTotalizadora": "false", "esVisible": "false" }, { "id":"10", "nombre":"Fecha de pago", "esTotalizadora": "false", "esVisible": "false" }, { "id":"11", "nombre":"Nº documento de gasto", "esTotalizadora": "false", "esVisible": "false" }, { "id":"12", "nombre":"Nº de señalamiento", "esTotalizadora": "false", "esVisible": "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":[ { "id": "1" "valor":"1243" }, { "id":"2", "valor":"Factura" }, { "id":"3", "valor":"Proveedor1" }, { "id":"4", "valor":"24555" }, { "id":"5", "valor":"Gasto de material inventariable" }, { "id":"6", "valor":500.00 }, { "id":"7", "valor":0.00 }, { "id":"8", "valor":"20/12/2020" }, { "id":"9", "valor":"20/12/2020" }, { "id":"10", "valor":"20/12/2020" }, { "id":"11", "valor":"11222" }, { "id":"12", "valor":"4567" } }, { "id":"12-2020-Factura" "proyectoId":"123456", "partidaPresupuestaria": "8002B541A64406", "codigoEconomico": { "id": "FU", "nombre": "Fungible", "tipo": "Gasto" } "anualidad":"2020", "tipo":"Gasto", "columnas":[ { "id": "1" "valor":"1243" }, { "id":"2", "valor":"Factura" }, { "id":"3", "valor":"Proveedor1" }, { "id":"4", "valor":"24556" }, { "id":"5", "valor":"Gasto2 de material inventariable" }, { "id":"6", "valor":550.50 }, { "id":"7", "valor":0.00 }, { "id":"8", "valor":"21/12/2021" }, { "id":"9", "valor":"21/12/2021" }, { "id":"10", "valor":"21/12/2021" }, { "id":"11", "valor":"11223" }, { "id":"12", "valor":"4568" } } ]
Validaciones de gastos pendientes - Columnas (/gastos/columnas)
proyectoId=="123456";estado=="Pendiente"
[ { "id": "1" "nombre":"Fecha gasto" "esTotalizadora": "false", "esVisible": "true" }, { "id":"2", "nombre":"Proveedor", "esTotalizadora": "false", "esVisible": "true" }, { "id":"3", "nombre":"Importe", "esTotalizadora": "false", "esVisible": "true" } ]
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":[ { "id":"1", "valor":"2020-11-05" }, { "id":"2", "valor":"Empresa S.A" }, { "id":"3", "valor":"1000.50" } ] }, { "id":"2", "proyectoId":"123456", "partidaPresupuestaria": "08002B541A64406", "codigoEconomico": { "id": "VI", "nombre": "Viajes y dietas", "tipo": "Gasto" } "anualidad":"2021", "columnas":[ { "id":"1", "valor":"2020-11-01" }, { "id":"2", "valor":"Empresa S.A" }, { "id":"3", "valor":"1000.50" } ] } ]
Detalle gasto (/gastos/{id})
"id":"1", "proyectoId":"123456", "partidaPresupuestaria": "08002B541A64406", "codigoEconomico": { "id": "VI", "nombre": "Viajes y dietas", "tipo": "Gasto" } "anualidad":"2021", "columnas":[ { "id":"1", "nombre":"Fecha gasto", "valor":"2020-11-05" }, { "id":"2", "nombre":"Proveedor", "valor":"Empresa S.A" }, { "id":"3", "nombre":"Importe", "valor":"1000.50" } ] "documentos":[ { "nombre":"Factura", "mimeType":"application/pdf" }, { "nombre":"Otro documento", "mimeType":"application/pdf" } ]