Beispiel #1
0
        public SubregistroNacimientosRespuesta ConsultaSubregistroNacimientos(Collection <string> colAnos, Collection <string> colMeses, Collection <Municipio> colMunicipios)
        {
            SubregistroNacimientosRespuesta respuesta = new SubregistroNacimientosRespuesta();

            try
            {
                IList <string> anosLista = new List <string>(colAnos);
                string         anosUnion = string.Join(",", anosLista);

                IList <string> mesesLista = new List <string>(colMeses);
                string         mesesUnion = string.Join(",", mesesLista);

                IList <string> municipiosLista = new List <string>();
                foreach (Municipio m in colMunicipios)
                {
                    municipiosLista.Add(m.MpioId.ToString());
                }
                string municipiosUnion = string.Join(",", municipiosLista);

                respuesta = reporteDAO.ConsultaDTSubregistroNacimientos(anosUnion, mesesUnion, municipiosUnion);

                int total = 0;
                int totalConDuplicados = 0;
                foreach (SubregistroTotal s in respuesta.ColTotales)
                {
                    if (s.IdGrupo < Constantes.REGISTRO_DUPLICADO)
                    {
                        total += s.Total;
                    }
                    totalConDuplicados += s.Total;
                }

                respuesta.Total = totalConDuplicados;
                decimal d = (decimal)totalConDuplicados * 100 / total;
                respuesta.TotalPorcentaje = Math.Round(d, 2);

                foreach (SubregistroTotal s in respuesta.ColTotales)
                {
                    //if (s.IdGrupo < Constantes.REGISTRO_DUPLICADO)
                    //{
                    d = (decimal)s.Total * 100 / total;
                    s.TotalPorcentaje = Math.Round(d, 2);

                    int caseSwitch = s.IdGrupo;

                    switch (caseSwitch)
                    {
                    case Constantes.SUBREGISTRO:
                        respuesta.TotalSubregistro      = s.Total;
                        respuesta.PorcentajeSubregistro = s.TotalPorcentaje;
                        break;

                    case Constantes.REGISTRO_OPORTUNO:
                        respuesta.TotalRegistroOportuno      = s.Total;
                        respuesta.PorcentajeRegistroOportuno = s.TotalPorcentaje;
                        break;

                    case Constantes.REGISTRO_EXTEMPORANEO:
                        respuesta.TotalRegistroExtemporaneo      = s.Total;
                        respuesta.PorcentajeRegistroExtemporaneo = s.TotalPorcentaje;
                        break;

                    case Constantes.REGISTRO_DUPLICADO:
                        respuesta.TotalRegistroDuplicado      = s.Total;
                        respuesta.PorcentajeRegistroDuplicado = s.TotalPorcentaje;
                        break;

                    default:
                        Console.WriteLine("Default case");
                        break;
                    }
                    //}
                }

                return(respuesta);
            }
            catch (DAOException e)
            {
                Bitacora.Error(e.Message);
                if (e.Codigo == 1)
                {
                    throw new BusinessException(e.Message);
                }
                else
                {
                    throw new BusinessException("No se completó la consulta de subregistro, favor de intentar nuevamente: " + e.Message);
                }
            }
        }