예제 #1
0
        public TotalesSubregistroNacimientosRespuesta ConsultaTotalesSubregistroNacimientos(Collection <string> colAnos, Collection <string> colMeses, Collection <Municipio> colMunicipios)
        {
            TotalesSubregistroNacimientosRespuesta totalesSubregistroNacimientosRespuesta = new TotalesSubregistroNacimientosRespuesta();

            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);

                totalesSubregistroNacimientosRespuesta = reporteDAO.ConsultaTotalesSubregistroNacimientos(anosUnion, mesesUnion, municipiosUnion);

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

                totalesSubregistroNacimientosRespuesta.Total = total;

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

                        int caseSwitch = s.IdGrupo;

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

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

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

                        default:
                            Console.WriteLine("Default case");
                            break;
                        }
                    }
                }
            }
            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);
                }
            }

            return(totalesSubregistroNacimientosRespuesta);
        }