Árbol de páginas

Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
titleCopiarDatosProyectos
Buscar los proyectos del SGI que cumplan las siguientes condiciones:
- activo
- estado Concedido
- que no sea externo (el modelo de ejecución al que pertenece tiene el flag externo a false)
- fechas de inicio y fin del proyecto contenga los años que se estan baremando
- es contrato o proyecto (es contrato si modelo de ejecución tiene el flag contrato = true y si lo tiene a false es un proyecto)   

EstosSe proyectosborran setodos crearánlos oproyectos secon actualizaránconvocatoriaBaremacionId en= elnull módulo de PRC. (actualizar o primero eliminar y crearlos nuevos)

Estos proyectos se crearán:

Se busca si ya existe un registro en la tabla ProduccionCientifica con el identificador de la tabla Proyecto de CSP (idRef), epigrafeCVN= "050.020.010.000"(si no es contrato) o epigrafeCVN= "050.020.020.000"(si es contrato ) y con "convocatoriaBaremacionId" = null.

Si no existe se crean registros en las siguientes tablas y con los siguientes campos:

Tabla ProduccionCientifica y EstadoProduccionCientifica
    - idRef: identificador interno de la tabla Proyecto de CSP
    - epigrafeCVN: se introducirá el valor "050.020.010.000" si no es un contrato o "050.020.020.000" si es un contrato
    - estado: se creará un registro en la tabla "EstadoProduccionCientifica" con el campo "estado" igual al valor del enumerado TipoEstadoProduccion.VALIDADO y con fecha, la fecha actual. 
    - convocatoriaBaremacionId: valor null.

Tabla CampoProduccionCientifica y ValorCampo
Se crearán los siguientes registros en la tabla "CampoProduccionCientifica"
 1) - codigoCVN: con valor "050.020.010.010"  si no es un contrato o "050.020.020.010" si es un contrato
    - se crea un registro en la tabla "ValorCampo" con el valor del campo "titulo" del Proyecto y el orden 1

 2) - codigoCVN:  con valor "050.020.010.270"  si no es un contrato o "050.020.020.180" si es un contrato
     - se crea un registro en la tabla "ValorCampo" con el valor del campo "fechaInicio" del Proyecto y el orden 1

 3) - codigoCVN: con valor "050.020.010.410"  si no es un contrato o "FECHA_FIN_CONTRATO" si es un contrato
     - se crea un registro en la tabla "ValorCampo" con el valor del campo "fechaFinDefinitiva" del Proyecto si esta informada y sino el campo "fechaFin" del Proyecto y el orden 1 

 4) - codigoCVN: con valor "050.020.010.040"  si no es un contrato
      - se crea un registro en la tabla "ValorCampo" con el valor indicado en el campo "valor" de la tabla "MapeoTipos". Se irá a buscar el identificador del ámbito geográfico del proyecto a dicha tabla (idTipoRef), con el campoCVN ="050.020.010.040"  y se guardará el dato almacenado en la columna valor. Y el orden 1. (El valor será 000, 010, 020, 030 o OTHERS)

 5) - codigoCVN: con valor "050.020.010.290"  si no es un contrato o "050.020.020.200" si es un contrato
     - se crea un registro en la tabla "ValorCampo" con el valor del campo "totalImporteConcedido" si viene informado en la entidad Proyecto y sino será la suma del campo "totalGastosConcedido" de todos los registros de la entidad ProyectoAnanualidad del Proyecto. Y orden 1.

 6) - codigoCVN: con valor "CONVOCATORIA_EXCELENCIA"  si no es un contrato.
    - se crea un registro en la tabla "ValorCampo" con el valor del campo "convocatoriaExcelencia" del Proyecto y el orden 1

 7) - codigoCVN: con valor "CUANTIA_COSTES_INDIRECTOS_PROYECTO"  si no es un contrato o "CUANTIA_COSTES_INDIRECTOS_CONTRATO" si es contrato
    - se crea un registro en la tabla "ValorCampo" con el valor del campo "importeConcedidoCostesIndirectos" si viene informado en la entidad Proyecto y sino será la suma del campo "importeConcedido" de todos los registros de la entidad AnualidadGasto que tenga un "conceptoGasto" con el flag de "costesIndirectos" a "true" del Proyecto. Y orden 1.


Tabla Autor

Se crearán tantos registros en la tabla "Autor" como investigadores tenga la tabla "ProyectoEquipo" del Proyecto con los siguientes campos:

    - firma: se pondrá a null
    - personaRef: campo "personaRef" de la tabla "ProyectoEquipo"
    - nombre: se pondrá a null     
    - apellidos: se pondrá a null
    - orden: se pondrá a null
    - orcidId: se pondrá a null
    - fechaInicio: campo "fechaInicio" de la tabla "ProyectoEquipo"
     - fechaFin: campo "fechaFin" de la tabla "ProyectoEquipo"
    - ip: se pondrá a "true" si el campo "rolProyecto" es un rol que tenga marcado el flag de "principal", sino se pondrá el valor "false"

Si existe el registro, las tablas ProduccionCientifica y EstadoProduccionCientifica no se modifican y las tablas CampoProduccionCientifica,  ValorCampo y Autor se eliminan sus registros y se vuelven a crear con lo mencionado en la parte de cuando no existe el registro.

Bloque de código
titleCopiarDatosInvenciones
Buscar las invenciones del SGI que cumplan las siguientes condiciones:
- invencióna activa
- titular Universidad entre las fechas de los años que se estan baremando. Para ello mirar la tabla PeriodoTitularidadTitular donde titularRef sea el identificador de la Universidad (mirar variable del módulo de Configuración) , participacion > 0 y las fechas comprendan los años que se están baremando. 
- tenga vías de solicitud con fecha de concesión entre el rango de años que se están baremando.

EstasSe borran invencionestodas selas crearáninvenciones ocon seconvocatoriaBaremacionId actualizarán= ennull el

Estas móduloinvenciones dese PRC.(actualizar o primero eliminar y crearlos nuevos)crearán.

  Se busca si ya existe un registro en la tabla ProduccionCientifica con el identificador de la tabla Invencion de PII (idRef),  epigrafeCVN=050.030.010.000  y con "convocatoriaBaremacionId" = null.

Si no existe se crean registros en las siguientes tablas y con los siguientes campos:

Tabla ProduccionCientifica y EstadoProduccionCientifica
    - idRef: identificador interno de la tabla Invencion de PII
    - epigrafeCVN: se introducirá el valor "050.030.010.000"
    - estado: se creará un registro en la tabla "EstadoProduccionCientifica" con el campo "estado" igual al valor del enumerado TipoEstadoProduccion.VALIDADO y con fecha, la fecha actual. 
    - convocatoriaBaremacionId: valor null.

Tabla CampoProduccionCientifica y ValorCampo
Se crearán los siguientes registros en la tabla "CampoProduccionCientifica"
 1) - codigoCVN: con valor "050.030.010.020"      
    - se crea un registro en la tabla "ValorCampo" con el valor del campo "titulo" de la Invención y el orden 1

 2) - codigoCVN:  con valor "PORCENTAJE_TITULARIDAD"  
    - se crean tantos registros en la tabla "ValorCampo" con el valor del campo "participacion" de la Invención (tabla PeriodoTitularidadTitular, si son 3 años los que se esta baremando, se pondrán 3 valores a 31 de diciembre de cada año, si uno de los años no hay titularidad, se pondrá el valor 0 en el porcentaje.

 3) - codigoCVN: con valor "050.030.010.030"  
    - se crea un registro en la tabla "ValorCampo" con el valor indicado en el campo "valor" de la tabla "MapeoTipos". Se irá a buscar el identificador del Tipo de protección de la Invención a dicha tabla (idTipoRef), con el campoCVN ="050.030.010.030"  y se guardará el dato almacenado en la columna valor. Y el orden 1. (El valor será 109, 122, 126, 141, 177 o OTHERS)

 4) - codigoCVN: con valor "050.030.010.320" 
    - se crean tantos registros en la tabla "ValorCampo" como solicitudes de protección con fechaConcesión se encuentre en el rango de años de baremación. En el campo "valor" se pondrá el valor del campo "fechaConcesion" de la tabla "SolicitudProteccion" y en el orden se irá poniendo 1, 2, 3, etc, por orden ascendente de la fecha de concesión.

 5) - codigoCVN: con valor "050.030.010.160" 
    - se crean tantos registros en la tabla "ValorCampo" como solicitudes de protección con fechaConcesión se encuentre en el rango de años de baremación. En el campo "valor" se pondrá "true" o "false" dependiendo de si el campo "ViaProteccion" asociado a la solicitud  es "España" o no y en el orden se irá poniendo 1, 2, 3, etc, por orden ascendente de la fecha de concesión. Para saber si la vía de protección es "España" se irá a buscar en la tabla "MapeoTipos" el campoCVN "050.030.010.160" y en el  "idTipoRef" el identificador de la vía de protección. (El valor será true o false) 

 6) - codigoCVN: con valor "050.030.010.170" 
    - se crean tantos registros en la tabla "ValorCampo" como solicitudes de protección con fechaConcesión se encuentre en el rango de años de baremación. En el campo "valor" se pondrá "true" o "false" dependiendo de si el campo "ViaProteccion" asociado a la solicitud  es "Europea" o no y en el orden se irá poniendo 1, 2, 3, etc, por orden ascendente de la fecha de concesión. Para saber si la vía de protección es "Europea" se irá a buscar en la tabla "MapeoTipos" el campoCVN "050.030.010.170" y en el  "idTipoRef" el identificador de la vía de protección. (El valor será true o false) 

 7) - codigoCVN: con valor "CUANTIA_LICENCIAS"
    - se crea un registro en la tabla "ValorCampo" con el valor calculado de "Sumar todos los ingresos de los proyectos relacionados con la invención". Para obtener los ingresos de cada proyecto relacionado a una invención se tendrá que llamar a la API de ESB de PII a los servicios /ingresos-invencion/columnas (para obtener el campo que es el importe, el que tiene el valor "importeReparto" a true) y /ingresos-invencion?q=proyectoId=="XXXXX" , de todos los ingresos se suman el campo indicado como que es el "importeReparto". Esto se hace para todos los contratos relacionados con la invención.

Tabla Autor
Se crearán tantos registros en la tabla "Autor" como investigadores tenga la tabla "InvencionInventor" de la Invención con los siguientes campos:

    - firma: se pondrá a null
    - personaRef: campo "personaRef" de la tabla "InvencionInventor"
    - nombre: se pondrá a null     
    - apellidos: se pondrá a null
    - orden: se pondrá a null
    - orcidId: se pondrá a null
    - ip: se pondrá a null

Si existe el registro, las tablas ProduccionCientifica y EstadoProduccionCientifica no se modifican y las tablas CampoProduccionCientifica,  ValorCampo y Autor se eliminan sus registros y se vuelven a crear con lo mencionado en la parte de cuando no existe el registro.


...

Bloque de código
titleObtenerCopiarSexenios
 Se borran todas los sexenios con convocatoriaBaremacionId = null  

Para cada año que se barema
    lista_investigadores: Obtener los investigadores (personaRef) que a 31 de diciembre del año que se esta baremando pertenecen a un grupo de   investigación con un rol con el flag de baremable a true.La lista no tendrá personas repetidas, se guardará la personaRef de cada investigador. Si ya esta en la lista no se añade, sino esta en la lista se añade.
Fin para

Se llamará al servicio de SGP GET /sexenios (https://confluence.um.es/confluence/display/HERCULES/REQ-INT-0020-SGP-0062+-+Consultar+sexenios) para cada año de baremación que devuelve una lista de la entidad Sexenio con la personaRef y número de sexenios de esta persona y país
Por cada investigador de los de la lista sacada antes se creará su sexenio en el módulo de PRC


Se crean registros en las siguientes tablas y con los siguientes campos:

Tabla ProduccionCientifica y EstadoProduccionCientifica
    - idRef: "SEX_" + personaRef + anioBaremacion
    - epigrafeCVN: se introducirá el valor "060.030.070.000"
    - estado: se creará un registro en la tabla "EstadoProduccionCientifica" con el campo "estado" igual al valor del enumerado TipoEstadoProduccion.VALIDADO y con fecha, la fecha actual. 
    - convocatoriaBaremacionId: id de la convocatoria que estamos baremando

Tablavalor null.


 Tabla CampoProduccionCientifica y ValorCampo
Se crearán los siguientes registros en la tabla "CampoProduccionCientifica"
 1) - codigoCVN: con valor "060.030.070.010"      
    - se crea un registro en la tabla "ValorCampo" con el valor del campo "numero" del Sexenio (o suma del campo "numero" de los Sexenios) y el orden 1

 2)  - codigoCVN: con valor "ANIO_SEXENIOS"      
    - se crea un registro en la tabla "ValorCampo" con el valor del campo año de baremación  y el orden 1
 

Tabla Autor
Se crearán un registro en la tabla "Autor" con el dato del investigador (personaRef)

    - firma: se pondrá a null
    - personaRef: campo "personaRef"
    - nombre: se pondrá a null     
    - apellidos: se pondrá a null
    - orden: se pondrá a null
    - orcidId: se pondrá a null
    - ip: se pondrá a null  



Bloque de código
titleObtenerCopiarDireccionTesis
 Se borran todas las direcciones de tesis con convocatoriaBaremacionId = null  y que en idRef empiece por "TES_" (para no borrar las que vienen del CVN).

Para cada año que se barema
    lista_investigadores: Obtener los investigadores (personaRef) que a 31 de diciembre del año que se esta baremando pertenecen a un grupo de   investigación con un rol con el flag de baremable a true.La lista no tendrá personas repetidas, se guardará la personaRef de cada investigador. Si ya esta en la lista no se añade, sino esta en la lista se añade.
Fin para

Se llamará al servicio de SGP GET /direcciones-tesis  para cada año de baremación que devuelve una lista de la entidad DireccionTesis

Por cada dirección de tesis que en personaRef o coDirectorRef tenga a uno de la lista de los investigadores (lista_investigadores)  se creará su DireccionTesis en el módulo de PRC

Bloque de código
titleEvaluarPublicaciones
 Para cada item de la tabla ProduccionCientifica con epigrafeCVN = "060.010.010.000" y con CampoProduccionCientifica que tiene en ConfiguracionCampo el campo fechaReferenciaIni = true esta en el año que se esta baremando y estado "Validado" o "Validado Parcialmente"
 
        puntos = EvaluarItemPublicacion(elemento,anio)
        
        Si puntos >  0 entonces
              autores_UMU =  los que existen en la tabla Autor con personaRef informado y que pertenecen a un grupo con un rol con el flag de baremable a true a fecha 31 de diciembre del año que se esta baremando y con el campo "especial investigación" a valor "No" a fecha 31 de diciembre del año que se esta baremando                
              
              n_autores = Contar(autores_UMU)

              puntos_investigador = puntos/n_autores
 
              para cada autor en autores_UMU y en estado "Validado" (si el item tiene estado actual "Validado" o el item esta en estado "Validado parcialemnte" en la taba "ProduccionCientifica" y esta en la tabla AutorGrupo con un estado "Validado") hacer

                    Aplicar los baremos de (Regional/Autonómico - IP,Nacional - IP, Nacional - IP y Europeo/Internacional - IP y Resto - IP) para Proyectos y de ( Editor) para Comites
 
                    puntos_elto_investigador = puntos_investigador * índice_experimentalidad
 
                    Almacenar el registro en la tabla PuntuacionItemInvestigador (id_investigador,id_elemento,puntos_elto_investigador,anio) (el id_elemento es el id del item de produccion cientifica asignado a la convocatoria)
 
             fin para
 fin para
 

...