Exemple #1
0
        /// <summary>
        /// Genera los datos del reporte
        /// </summary>
        /// <param name="datosReporte"></param>
        /// <returns></returns>
        private List <ReporteVentaMuerteInfo> GenerarReporte(ReporteVentaMuerteDatos datosReporte)
        {
            var resultado = new List <ReporteVentaMuerteInfo>();

            datosReporte.MovimientosEnfermeria.ForEach(animalEnfermo =>
            {
                var reporteVentaMuerte = new ReporteVentaMuerteInfo
                {
                    Arete      = animalEnfermo.Arete,
                    Causa      = animalEnfermo.Causa,
                    Enfermeria =
                        animalEnfermo.
                        Enfermeria,
                    Sexo     = animalEnfermo.Sexo,
                    Fecha    = animalEnfermo.Fecha.ToShortDateString(),
                    Detector = animalEnfermo.Detector
                };

                reporteVentaMuerte.CorralOrigen =
                    datosReporte.MovimientosProduccion.Where(
                        condicion =>
                        condicion.AnimalID == animalEnfermo.AnimalID).
                    Select(corral => corral.CorralProduccion).
                    FirstOrDefault();

                reporteVentaMuerte.LugarGeneracion =
                    reporteVentaMuerte.CorralOrigen;

                List <ReporteVentaMuerteTratamiento> tratamientos =
                    datosReporte.Tratamientos.Where(
                        condicion =>
                        condicion.AnimalID == animalEnfermo.AnimalID).
                    Select(
                        tratamiento => tratamiento)
                    .ToList();
                if (tratamientos.Any())
                {
                    AsignarTratamientos(tratamientos, reporteVentaMuerte);
                }

                ReporteVentaMuerteFolio folio =
                    datosReporte.Folios.FirstOrDefault(
                        condicion =>
                        condicion.AnimalID == animalEnfermo.AnimalID);
                if (folio != null)
                {
                    reporteVentaMuerte.Partida            = folio.FolioEntrada;
                    reporteVentaMuerte.OrganizacionOrigen =
                        folio.Organizacion;
                    reporteVentaMuerte.DiasEngorda = folio.DiasEngorda;
                }

                resultado.Add(reporteVentaMuerte);
            });
            return(resultado);
        }
Exemple #2
0
        /// <summary>
        /// Asigna los tratamientos al animal
        /// </summary>
        /// <param name="tratamientos"></param>
        /// <param name="reporteVentaMuerte"></param>
        private void AsignarTratamientos(List <ReporteVentaMuerteTratamiento> tratamientos, ReporteVentaMuerteInfo reporteVentaMuerte)
        {
            List <DateTime> fechasTratamientos =
                tratamientos.Select(fecha => fecha.FechaMovimiento).OrderBy(aplicacion => aplicacion).Distinct().ToList();

            for (var indexFechas = 0; indexFechas < fechasTratamientos.Count; indexFechas++)
            {
                List <string> aplicaciones =
                    tratamientos.Where(fecha => fecha.FechaMovimiento.Equals(fechasTratamientos[indexFechas])).Select(
                        codigos => codigos.Producto).ToList();
                if (aplicaciones.Any())
                {
                    if (string.IsNullOrWhiteSpace(reporteVentaMuerte.PrimerTratamiento))
                    {
                        reporteVentaMuerte.PrimerTratamiento =
                            string.Join(", ", aplicaciones.ToArray());
                        reporteVentaMuerte.FechaPrimerTratamiento = fechasTratamientos[indexFechas].ToShortDateString();
                    }
                    else
                    {
                        if (string.IsNullOrWhiteSpace(reporteVentaMuerte.SegundoTratamiento))
                        {
                            reporteVentaMuerte.SegundoTratamiento =
                                string.Join(", ", aplicaciones.ToArray());
                            reporteVentaMuerte.FechaSegundoTratamiento = fechasTratamientos[indexFechas].ToShortDateString();
                        }
                        else
                        {
                            if (string.IsNullOrWhiteSpace(reporteVentaMuerte.TercerTratamiento))
                            {
                                reporteVentaMuerte.TercerTratamiento =
                                    string.Join(", ", aplicaciones.ToArray());
                                reporteVentaMuerte.FechaTercerTratamiento = fechasTratamientos[indexFechas].ToShortDateString();
                            }
                        }
                    }
                }
            }
        }