Informe con el que podemos generar el Planning de la explotación.
El botón que genera está en Reproducción → Informes → Informes RE, el id de referencia es imprimePla, el id del informe es admin/central/14. La interfaz está definida en client/principal/f_informes_RE.xml.
Primero obtenemos los registros de los animales que tenemos en la tabla de la interfaz de
Informes RE
Consultamos la entidad EAnimales
para obtener los registros de la base de datos para los animales de la tabla anterior.
Con estos datos conformamos un Hashtable y hacemos una consulta nuevamente la entidad EAnimales
con el flag de consulta planin
con valor si
, también con el valor “mostra” que es el valor que tenemos en un selector que tenemos en la interfaz.
En la entidad EAnimales creamos un EntityResult con el valor generado por el método fai_planin
Borramos los datos de la entidad EInf_planing
Comenzamos a iterar por los animales
Para cada animal obtenemos primero los datos de la explotación a la que pertenece
Si en el selector que tenemos en la interfaz seleccionamos “muestra” creamos una variable nom
con el valor “nombre”, si seleccionamos “n_establo” se nos llena la variable nom
con el valor del número de establo que tenga asignado el animal.
De la entidad EExplotaciones
obtenemos el nombre del propietario y el cea y si no hubiesen resultados entonces los obtenemos desde la tabla de Animales
Utilizamos el método calculaFechaMeses
para calcular las fechas correspondientes al siguiente mes, luego al siguiente y así hasta los 12 meses siguientes.
Inicializamos las variables mes_1
, mes_2
hasta mes_12
que contendrán las cadenas para los títulos de las columnas de los meses
Inicializamos las variables mes1
, mes2
, hasta el mes12
que contienen el valor numérico de los meses siguientes
Lo mismo para el año
Rellenamos las variables de mes1
, mes2
… para que sean cadenas como 01/2023, 02/2023, etc..
Pasamos estas variables a un Hashtable llamado av
Inicializamos el Hashtable con los valores para cada mes y para cada línea de cada casilla
Inicializamos en el Hashtable con el nombre del padre del animal, el número de saneamiento, la fecha de nacimiento, el nombre del técnico, teléfono, fecha de parto´, ícono del parto, fecha de la 1ª inseminación, fecha de la última inseminación, el número de inseminaciones.
Si el animal tiene relleno el campo del padre, entonces rellenamos el nombre del toro
Rellenamos el Hashtable con los datos del número de saneamiento y la fecha de nacimiento
Obtenemos los datos del técnico de ETecnicos, si no existen entonces de EAdministradores, si no hubiesen entonces de EGanaderos
Consultamos la tabla del Historial Animales para el último registro que no sea ni Mamitis ni Alta y que sea menos a la fecha en la que se consulta
Si hay resultados entonces rellenamos fecha de parto si existe, también con la fecha de la 1ª inseminación, la de última inseminación, el número de inseminaciones
También en el historial obtenemos el estado y el nombre corto del toro
Si la fecha de parto que obtuvimos en el paso 21 contiene algún valor, entonces consultamos en EAcciones_animales_RE
para obtener el registro para el animal en la fecha de parto y de ahí obtenemos si es parto múltiple, macho o hembra.
Ahora volvemos a consultar la tabla de Historial Animal para el último registro, que no sea ni Mamitis ni Alta, y de aquí sacamos la fecha de parto y secado previsto
Además tenemos una variable parida con la que vamos controlando si la vaca está parida basándonos en el tipo de acciones insertadas
Si de la consulta de acciones obtenemos solo un resultado entonces en la segunda línea ponemos las fechas de secado previsto y el ícono de ojo secado previsto
Si de la consulta de acciones obtenemos dos resultados entonces en la tercera línea ponemos las fechas de parto previsto y el ícono de ojo parto previsto
Si de la consulta de acciones no obtenemos ningún resultado entonces en la segunda y tercera línea ponemos las fechas de secado y parto previsto y el ícono los íconos correspondientes
Ahora vamos rellenando los datos para las fechas de los posteriores 12 meses
Finalmente en dependencia del estado del animal rellenamos el valor “est” y el “todo_gest” al Hashtable
Insertamos el valor del Hashtable en la table Einformes_planin y tambien a un al EntityResult que le pasamos el método generador de informes.