Con este informe vamos a consultar la tasa de preñez y otros datos mirando un año atrás.
El botón que genera está en Reproducción → Informes → Informes RE, el id de referencia es imprimeTasPre
, el id del informe es admin/central/20. 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 taspre
con valor si
En la entidad EAnimales creamos un EntityResult con el valor generado por el método fai_tasa_pre
Creamos un array con los intervalos de fechas de 21 en 21 días, así hasta llegar a los 17 períodos de 21 días del año.
Obtenemos los datos técnico si existe, en caso contrario, del administrador, en caso contrario del ganadero
Iteramos por cada animal de la consulta del paso 2
Para cada animal vamos haciendo lo siguiente
Obtenemos el id_explotacion, el id_animal, nombre_corto, fecha_nacimiento, tipo de animal, estado del animal.
Con el id de la explotación obtenemos los datos de la explotación consultando la entidad EExplotaciones
Iteramos 16 veces que son los campos que queremos obtener para el informe y hacemos los siguiente en cada iteración
Para el animal en el que estamos iterando consultamos el Historial los campos acción, fecha, tipo, estado, n_inseminaciones, fecha_ult_inseminacion, n_lactacion entre las fechas del intervalo de fechas que estamos consultando y que no sean acciones de condición corporal ni de estatura y peso.
Por cada acción que obtenemos iteramos por cada una.
Si la acción es de un animal tipo Vaca comprobamos que: si la fecha de inseminación no es nula, entonces si la vaca no esta vacía ni de baja, entonces la contamos como vaca inseminada fecundada. Si la vaca se comprueba que tiene un diagnóstico de gestación en EHistorialAnimales
entonces la contamos como vaca gestante fecundada
Si el estado del animal en la acción de la iteración no es inseminada, o no es aborto, o no preñada, entonces la contamos como susceptible
Si el estado del animal en la acción de la iteración es no inseminada y no es celo, la contamos como vaca celo
En la iteración del paso 13, si no tenemos acciones entonces consultamos las acciones en EHistorialAnimales
por el registro más reciente que esté en la fecha del período que estamos consultando.
Comprobamos que el animal sea del tipo vaca, que no esté vacía o de baja
La contamos como vaca inseminada fecundada
Si además tiene un diagnóstico de Gestación y estado Gestante entonces la contamos como vaca gestante fecundada
Si el estado del animal en la acción de la iteración no es inseminada, o no es aborto, o no preñada, entonces la contamos como susceptible
Si el estado del animal en la acción de la iteración es no inseminada y no es celo, la contamos como vaca celo
Una vez tenemos los totales en cada categoría vamos a iterar para calcular los parámetros del informe
Tasa de celos: vacas en celo por vacas susceptibles por cien
Fertilidad: vacas gestante fecundadas por vacas inseminadas fecundadas por cien
Tasa de preñez: Tasa de celos por Fertilidad por cien
También vamos sumando las vacas inseminadas, susceptibles, celos y vacas preñadas para obtener las medias
Una vez tengamos estos datos, lo pasamos mediante un EntityResult al método generador de informes.