====== Informe de Tasa de Preñez ====== 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. La ejecución comienza imprimeTasPre.addActionListener - Primero obtenemos los registros de los animales que tenemos en la tabla de la interfaz de [[barra_menu_principal:menu_reproduccion#informes_re|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. Un ejemplo del informe {{ ::informe_de_tasa_de_prenez.png?nolink&600 |}}