public string Registrar_ReporteSanFernando_Moderno_Mov(List <E_Reporte_Precio_Mov> oListaRepPrecio_Mov, List <E_Reporte_Fotografico_Mov> oListaRepFotografico_Mov,
                                                               List <E_Reporte_Competencia_Mov> oListaRepCompetencia_Mov, List <E_Reporte_Stock_Mov> oListaRepStock_Mov, List <E_Reporte_Impulso_Mov> oListaRepImpulso_Mov,
                                                               E_Visita_Mov oE_Visita_Mov, int AppEnvia)
        {
            D_Reporte_Precio      oD_Reporte_Precio      = new D_Reporte_Precio();
            D_Reporte_Fotografico oD_Reporte_Fotografico = new D_Reporte_Fotografico();
            D_Reporte_Competencia oD_Reporte_Competencia = new D_Reporte_Competencia();
            D_Reporte_Stock       oD_Reporte_Stock       = new D_Reporte_Stock();
            D_Reporte_Impulso     oD_Reporte_Impulso     = new D_Reporte_Impulso();
            D_Visita oD_Visita = new D_Visita();

            string mensaje_Precio      = string.Empty;
            string mensaje_Fotografico = string.Empty;
            string mensaje_Competencia = string.Empty;
            string mensaje_Stock       = string.Empty;
            string mensaje_Impulso     = string.Empty;
            string mensaje_Visita      = string.Empty;
            string mensaje_Final       = string.Empty;

            try
            {
                mensaje_Precio      = oD_Reporte_Precio.Registrar_Precio_Mov(oListaRepPrecio_Mov, AppEnvia.ToString());
                mensaje_Fotografico = oD_Reporte_Fotografico.RegistrarReporteFotografico_Mov(oListaRepFotografico_Mov, AppEnvia);
                mensaje_Competencia = oD_Reporte_Competencia.Registrar_Competencia_Mov(oListaRepCompetencia_Mov, AppEnvia.ToString());
                mensaje_Stock       = oD_Reporte_Stock.Registrar_Reporte_Stock_Mov(oListaRepStock_Mov, AppEnvia.ToString());
                mensaje_Impulso     = oD_Reporte_Impulso.Registrar_Impulso_Mov(oListaRepImpulso_Mov, AppEnvia.ToString());
                mensaje_Visita      = oD_Visita.RegistrarVisita_Mov(oE_Visita_Mov);

                if (!mensaje_Stock.Equals(""))
                {
                    mensaje_Stock = "Hubo Errores en Reporte Ventas. ";
                }
                if (!mensaje_Precio.Equals(""))
                {
                    mensaje_Precio = "Hubo Errores en Reporte Precios. ";
                }
                if (!mensaje_Fotografico.Equals(""))
                {
                    mensaje_Fotografico = "Hubo Errores en Reporte Fotográfico. ";
                }
                if (!mensaje_Competencia.Equals(""))
                {
                    mensaje_Competencia = "Hubo Errores en Reporte Competencia. ";
                }
                if (!mensaje_Impulso.Equals(""))
                {
                    mensaje_Impulso = "Hubo Errores en Reporte Impulso. ";
                }
                if (!mensaje_Visita.Equals(""))
                {
                    mensaje_Visita = "Hubo Errores en Registro de Visita. ";
                }
            }
            catch (Exception ex) {
                throw ex;
            }
            return(mensaje_Final = mensaje_Precio + mensaje_Fotografico + mensaje_Competencia + mensaje_Stock + mensaje_Impulso + mensaje_Visita);
        }
        public void RegistrarReporteFotografico(E_Reporte_Fotografico_General oE_Reporte_Fotografico, E_Visita oE_Visita)
        {
            try
            {
                D_Visita oD_Visita = new D_Visita();
                oD_Visita.RegistrarVisita(oE_Visita);

                //Tipo de Reporte por Defecto 01
                oCoon = new Conexion(2);
                oCoon.ejecutarDataTable("STP_JVM_INSERTAR_REPORTE_FOTOGRAFICO",
                                        Convert.ToInt32(oE_Reporte_Fotografico.Person_id),
                                        //El atributo Perfil_Id se reemplaza por el Canal_Id
                                        oE_Reporte_Fotografico.Perfil_id,
                                        oE_Reporte_Fotografico.Equipo_id,
                                        oE_Reporte_Fotografico.Cliente_id,
                                        oE_Reporte_Fotografico.ClientePDV_Code,
                                        "01",
                                        oE_Reporte_Fotografico.Categoria_id,
                                        oE_Reporte_Fotografico.Marca_id,
                                        oE_Reporte_Fotografico.FechaRegistro,
                                        oE_Reporte_Fotografico.Latitud,
                                        oE_Reporte_Fotografico.Longitud,
                                        oE_Reporte_Fotografico.OrigenCoordenada, " "
                                        //oE_Reporte_Fotografico.TipoReporteFotografico_id
                                        );


                //Insertar Foto Tipo de Proceso por defecto 1
                foreach (E_Foto Foto in oE_Reporte_Fotografico.listFotos)
                {
                    oCoon.ejecutarDataTable("stp_jvm_INSERTAR_FOTO",
                                            Convert.ToInt32(oE_Reporte_Fotografico.Person_id),
                                            oE_Reporte_Fotografico.Perfil_id,
                                            oE_Reporte_Fotografico.Equipo_id,
                                            oE_Reporte_Fotografico.Cliente_id,
                                            oE_Reporte_Fotografico.ClientePDV_Code,
                                            1,
                                            oE_Reporte_Fotografico.FechaRegistro,
                                            oE_Reporte_Fotografico.Comentario,
                                            DecodeFrom64(Foto.foto),
                                            " "//oE_Reporte_Fotografico.NombreFoto
                                            );
                }
            }
            catch (Exception ex) { }
        }
        /// <summary>
        /// Descripcion : Registrar Reportes de Colgate Mayorista para el App Movistar
        /// Fecha       : 18/05/2012 PSA
        /// </summary>
        /// <param name="oListRepPresencia"></param>
        /// <param name="oListRepFotogradico"></param>
        /// <param name="oListRepITT"></param>
        /// <param name="oE_Visita"></param>
        /// <returns></returns>
        public E_Reportes_Colgate_Mayoristas_Mov_Response Registrar_ReportesColgateMay_Mov(
            List <E_Reporte_Presencia_Mov> oListRepPresencia,
            List <E_Reporte_Fotografico_Mov> oListRepFotogradico,
            List <E_Reporte_Codigo_ITT_Mov> oListRepITT,
            E_Visita_Mov oE_Visita, int AppEnvia)
        {
            D_Reporte_Presencia   oD_Reporte_Presencia   = new D_Reporte_Presencia();
            D_Reporte_Codigo_ITT  oD_Reporte_Codigo_ITT  = new D_Reporte_Codigo_ITT();
            D_Reporte_Fotografico oD_Reporte_Fotografico = new D_Reporte_Fotografico();
            D_Visita oD_Visita = new D_Visita();

            String mensaje_Presencia   = string.Empty;
            String mensaje_Fotografico = string.Empty;
            String mensaje_Visita      = string.Empty;


            E_Reportes_Colgate_Mayoristas_Mov_Response oE_Reportes_Colgate_Mayoristas_Mov_Response = new E_Reportes_Colgate_Mayoristas_Mov_Response();

            try
            {
                mensaje_Presencia   = oD_Reporte_Presencia.Registrar_Presencia_Mov(oListRepPresencia, AppEnvia);
                mensaje_Fotografico = oD_Reporte_Fotografico.RegistrarReporteFotografico_Mov(oListRepFotogradico, AppEnvia);
                mensaje_Visita      = oD_Visita.RegistrarVisita_Mov(oE_Visita);

                if (!mensaje_Fotografico.Equals(""))
                {
                    mensaje_Fotografico = "Hubo Errores en Reporte Fotográfico. ";
                }
                if (!mensaje_Visita.Equals(""))
                {
                    mensaje_Visita = "Hubo Errores en Registro de Visita. ";
                }

                //oE_Reportes_Colgate_Mayoristas_Mov_Response.Registro_Reporte_Codigo_ITT_Mov_Response = oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Mov(oListRepITT);
                oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Mov(oListRepITT);
                oE_Reportes_Colgate_Mayoristas_Mov_Response.Mensaje_Response = mensaje_Fotografico + mensaje_Presencia + mensaje_Visita;
            }
            catch (Exception ex) {
            }
            return(oE_Reportes_Colgate_Mayoristas_Mov_Response);

            //return mensaje_Final = mensaje_Presencia + mensaje_Fotografico + mensaje_Codigo_ITT + mensaje_Visita;
        }
        /// <summary>
        /// Descripcion : Registrar Reportes de Colgate Bodega para el App Movistar
        /// Fecha       : 01/06/2012
        /// Autor       : Joseph Gonzales
        /// </summary>
        /// <param name="oListRepPresencia"></param>
        /// <param name="oListRepFotogradico"></param>
        /// <param name="oListRepITT"></param>
        /// <param name="oE_Visita"></param>
        /// <returns></returns>
        public E_Reportes_Colgate_Bodega_Mov_Response RegistrarReportesColgate_Bodega_Mov(
            List <E_Reporte_Presencia_Mov> oListRepPresencia,
            List <E_Reporte_Codigo_ITT_Mov> oListRepITT,
            E_Visita_Mov oE_Visita, int AppEnvia)
        {
            D_Reporte_Presencia  oD_Reporte_Presencia  = new D_Reporte_Presencia();
            D_Reporte_Codigo_ITT oD_Reporte_Codigo_ITT = new D_Reporte_Codigo_ITT();
            D_Visita             oD_Visita             = new D_Visita();

            E_Reportes_Colgate_Bodega_Mov_Response oE_Reportes_Colgate_Bodega_Mov_Response = new E_Reportes_Colgate_Bodega_Mov_Response();

            try
            {
                //E_Reporte_Codigo_ITT_Mov_Response oE_Reporte_Codigo_ITT_Mov_Response = new E_Reporte_Codigo_ITT_Mov_Response();
                //oE_Reporte_Codigo_ITT_Mov_Response =
                oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Mov(oListRepITT);

                E_Reporte_Presencia_Datos_Response oE_Reporte_Presencia_Datos_Response = new E_Reporte_Presencia_Datos_Response();
                oE_Reporte_Presencia_Datos_Response = oD_Reporte_Presencia.Registrar_Presencia_Bodega_Mov(oListRepPresencia, AppEnvia);

                String Registro_Visita_Response = oD_Visita.RegistrarVisita_Mov(oE_Visita);
                if (!Registro_Visita_Response.Equals(""))
                {
                    Registro_Visita_Response = "Hubo Errores en Registro de Visita. ";
                }

                //Response de Registro de Reportes Bodega
                //oE_Reportes_Colgate_Bodega_Mov_Response.Reporte_Codigo_ITT_Mov_Response = oE_Reporte_Codigo_ITT_Mov_Response;
                oE_Reportes_Colgate_Bodega_Mov_Response.Reporte_Presencia_Mov_Response = oE_Reporte_Presencia_Datos_Response;
                oE_Reportes_Colgate_Bodega_Mov_Response.Mensaje_Response = Registro_Visita_Response;
            }
            catch (Exception ex) {
                throw ex;
            }
            return(oE_Reportes_Colgate_Bodega_Mov_Response);
        }
        /// <summary>
        /// Fecha: 19/04/2012
        /// Autor: Joseph Gonzales
        /// Descripción: Se agrega la validación para evitar que se releve datos duplicados en un periodo x PDV x Reporte x Opción de Reporte x SKU, para los canales Mayor y Menor
        /// y se agrega el reporte de Codigos ITT
        /// </summary>
        public string RegistrarReportesColgate_Mayoristas(List <E_Reporte_Presencia> oListE_Reporte_Presencia, List <E_Reporte_Fotografico> oListE_Reporte_Fotografico, List <E_Reporte_Codigo_ITT> oListE_Reporte_CodigoITT, E_Visita oE_Visita)
        {
            oCoon = new Conexion(2);

            string mensaje = "";
            int    valor   = 1;

            foreach (E_Reporte_Fotografico oE_Reporte_Fotografico in oListE_Reporte_Fotografico)
            {
                //Solo inserta en caso de que no exista un reporte fotografico teniendo en cuenta: Person_id,Equipo_id,Cliente_id,ClientePDV_Code, Categoria_id, Fecha_Registro
                //Hasta resolver el inconveniente de envio de Fotos Duplicadas en LuckyGestor
                //04/04/2012 pSalas
                DataTable dt = oCoon.ejecutarDataTable("SP_JMV_EXISTE_FOTO", oE_Reporte_Fotografico.Person_id, oE_Reporte_Fotografico.Equipo_id,
                                                       oE_Reporte_Fotografico.Cliente_id, oE_Reporte_Fotografico.ClientePDV_Code, "01", oE_Reporte_Fotografico.Categoria_id, oE_Reporte_Fotografico.FechaRegistro);
                if (dt.Rows[0]["EXISTE_FOTO"].ToString() == "0")
                {
                    RegistrarReporteFotografico(oE_Reporte_Fotografico);
                }
            }

            foreach (E_Reporte_Presencia oReporte_Presencia in oListE_Reporte_Presencia)
            {
                if (oReporte_Presencia.OpcionReporte_id == "04" || oReporte_Presencia.OpcionReporte_id == "05")
                {
                    //Verificar si Existe Producto para Presencia Colgate, para un Id_Equipo,Id_Cliente,ClientePDV_Code,Categoria_id y periodo  20/03/2012 pSalas
                    //En caso de Existir no insertará un nuevo registro.
                    foreach (E_Reporte_Presencia_Detalle oDetalle in oReporte_Presencia.PresenciaDetalle)
                    {
                        DataTable dt = oCoon.ejecutarDataTable("STP_JVM_VERIFICAR_PRODUCTO", oReporte_Presencia.Equipo_id, oReporte_Presencia.Cliente_id, oReporte_Presencia.ClientPDV_Code, oReporte_Presencia.Categoria_id, oReporte_Presencia.OpcionReporte_id,
                                                               oReporte_Presencia.FechaRegistro, oDetalle.Codigo);
                        if (dt.Rows[0]["EXISTE_CAB"].ToString() == "1" && dt.Rows[0]["EXISTE_PRO"].ToString() == "0")
                        {
                            //insertar Detalle
                            RegistrarReportePresenciaDetalle(oDetalle, dt.Rows[0]["ID_REG_PRESENCIA"].ToString());
                            valor = valor * 1;
                        }
                        else if (dt.Rows[0]["EXISTE_CAB"].ToString() == "0" && dt.Rows[0]["EXISTE_PRO"].ToString() == "0")
                        {
                            //Registrar Cabecera y Detalle
                            RegistrarReportePresencia(oReporte_Presencia);
                            valor = valor * 1;
                        }
                        else
                        {
                            valor = valor * 0;
                        }
                    }
                }
                //
                else if (oReporte_Presencia.OpcionReporte_id == "03")
                {
                    //Verificar si Existe Material de Apoyo, para un Id_Equipo, Id_Cliente, ClientePVD_Code y periodo. pSalas. 02/04/2012
                    //En caso de Existir no insertará un nuevo registro.
                    foreach (E_Reporte_Presencia_Detalle oDetalle in oReporte_Presencia.PresenciaDetalle)
                    {
                        DataTable dt = oCoon.ejecutarDataTable("STP_JVM_VERIFICAR_MATERIAL_APOYO", oReporte_Presencia.Equipo_id, oReporte_Presencia.Cliente_id, oReporte_Presencia.ClientPDV_Code, oReporte_Presencia.OpcionReporte_id,
                                                               oReporte_Presencia.FechaRegistro, oDetalle.Codigo);
                        if (dt.Rows[0]["EXISTE_CAB"].ToString() == "1" && dt.Rows[0]["EXISTE_MATERIAL_APOYO"].ToString() == "0")
                        {
                            //insertar Detalle
                            RegistrarReportePresenciaDetalle(oDetalle, dt.Rows[0]["ID_REG_PRESENCIA"].ToString());
                            valor = valor * 1;
                        }
                        else if (dt.Rows[0]["EXISTE_CAB"].ToString() == "0" && dt.Rows[0]["EXISTE_MATERIAL_APOYO"].ToString() == "0")
                        {
                            //Registrar Cabecera y Detalle
                            RegistrarReportePresencia(oReporte_Presencia);
                            valor = valor * 1;
                        }
                        else
                        {
                            valor = valor * 0;
                        }
                    }
                }
                else
                {
                    RegistrarReportePresencia(oReporte_Presencia);
                    valor = valor * 1;
                }
            }

            D_Reporte_Codigo_ITT dReporte_Codigo_ITT = new D_Reporte_Codigo_ITT();

            dReporte_Codigo_ITT.Registrar_Presencia_Codigo_ITT(oListE_Reporte_CodigoITT);

            D_Visita oD_Visita = new D_Visita();

            oD_Visita.RegistrarVisita(oE_Visita);

            if (valor == 1)
            {
                mensaje = "Registro Ok";
            }
            else
            {
                mensaje = "Obs: Algunos insumos de Pres.Colg, Pres.Comp. y/o Elem. Vis. ya fueron ingresados";
            }
            return(mensaje);
        }
        public string Registrar_ReporteSanFernando_Tradicional_Mov(
            List <E_Reporte_Precio_Mov> oListaRepPrecio_Mov
            , List <E_Reporte_Exhibicion_Mov> oListaRepExhibicion_Mov
            , List <E_Reporte_Marcaje_Precio_Mov> oListaRepMarcaje_Mov
            , List <E_Reporte_Mat_Apoyo_Mov> oListaRepMatApoyo_Mov
            //, List<E_Reporte_Mandil_Mov> oListaRepMandil_Mov
            //, List<E_Reporte_MatAdicional_Mov> oListaRepMatAdicional_Mov
            //, List<E_Reporte_Observacion_Mov> oListaRepObservacion_Mov
            , List <E_Reporte_Capacitacion_Mov> oListRepCapacitacion_Mov
            , List <E_Reporte_Incidencia_Mov> oListRepIncidencia_Mov
            , List <E_Reporte_Credito_Competencia_Mov> oListaRepCredito_Competencia_Mov
            , List <E_Reporte_Presencia_Mov> oListaRepPresencia_Mov
            , E_Visita_Mov oE_Visita_Mov
            , int AppEnvia)
        {
            D_Reporte_Precio         oD_Reporte_Precio     = new D_Reporte_Precio();
            D_Reporte_Exhibicion     oD_Reporte_Exhibicion = new D_Reporte_Exhibicion();
            D_Reporte_Marcaje_Precio oD_Reporte_Marcaje    = new D_Reporte_Marcaje_Precio();
            //D_Reporte_Mandil oD_Reporte_Mandil = new D_Reporte_Mandil();
            //D_Reporte_MatAdicional oD_Reporte_MatAdicional = new D_Reporte_MatAdicional();
            D_Reporte_Mat_Apoyo oD_Reporte_Mat_Apoyo = new D_Reporte_Mat_Apoyo();                               //Add 26/07/2012 PSA
            //D_Reporte_Observacion oD_Reporte_Observacion = new D_Reporte_Observacion();
            D_Reporte_Capacitacion        oD_Reporte_Capacitacion        = new D_Reporte_Capacitacion();        //Agregado por DUEB, el 13/07/2012
            D_Reporte_Incidencia          oD_Reporte_Incidencia          = new D_Reporte_Incidencia();          //Add 26/07/2012 PSA
            D_Reporte_Credito_Competencia oD_Reporte_Credito_Competencia = new D_Reporte_Credito_Competencia(); //Agregado por DUEB, el 16/07/2012
            D_Reporte_Presencia           oD_Reporte_Presencia           = new D_Reporte_Presencia();           //Add 26/07/2012 PSA
            D_Visita oD_Visita = new D_Visita();

            string mensaje_Precio        = string.Empty;
            string mensaje_Exhibicion    = string.Empty;
            string mensaje_Marcaje       = string.Empty;
            string mensaje_MatApoyo      = string.Empty;
            string mensaje_Capacitacion  = string.Empty;
            string mensaje_Incidencia    = string.Empty;
            string mensaje_Credito_Compt = string.Empty;
            string mensaje_Presencia     = string.Empty;
            //string mensaje_Mandil = string.Empty;
            //string mensaje_MatAdicional = string.Empty;
            //string mensaje_Observacion = string.Empty;
            string mensaje_Visita = string.Empty;
            string mensaje_Final  = string.Empty;

            try
            {
                mensaje_Precio     = oD_Reporte_Precio.Registrar_Precio_Mov(oListaRepPrecio_Mov, AppEnvia.ToString());
                mensaje_Exhibicion = oD_Reporte_Exhibicion.Registrar_Reporte_Exhibicion_Mov(oListaRepExhibicion_Mov, AppEnvia.ToString());
                mensaje_Marcaje    = oD_Reporte_Marcaje.Registrar_Marcaje_Precio_Mov(oListaRepMarcaje_Mov, AppEnvia);
                mensaje_MatApoyo   = oD_Reporte_Mat_Apoyo.Registrar_Material_Apoyo_Mov(oListaRepMatApoyo_Mov, AppEnvia);
                //mensaje_Mandil = oD_Reporte_Mandil.Registrar_Mandil_Mov(oListaRepMandil_Mov, AppEnvia);
                //mensaje_MatAdicional = oD_Reporte_MatAdicional.Registrar_MatAdicional_Mov(oListaRepMatAdicional_Mov, AppEnvia);
                //mensaje_Observacion = oD_Reporte_Observacion.Registrar_Observacion_Mov(oListaRepObservacion_Mov, AppEnvia);
                mensaje_Capacitacion  = oD_Reporte_Capacitacion.Registrar_Reporte_Capacitacion_Mov(oListRepCapacitacion_Mov, AppEnvia);
                mensaje_Incidencia    = oD_Reporte_Incidencia.Registrar_Incidencia_Mov(oListRepIncidencia_Mov, AppEnvia.ToString());
                mensaje_Credito_Compt = oD_Reporte_Credito_Competencia.Registrar_Reporte_Credito_Competencia_Mov(oListaRepCredito_Competencia_Mov, AppEnvia);
                mensaje_Presencia     = oD_Reporte_Presencia.Registrar_Presencia_Mov(oListaRepPresencia_Mov, AppEnvia);
                mensaje_Visita        = oD_Visita.RegistrarVisita_Mov(oE_Visita_Mov);

                if (!mensaje_Precio.Equals(""))
                {
                    mensaje_Precio = "Hubo Errores en Reporte Precios. ";
                }
                if (!mensaje_Exhibicion.Equals(""))
                {
                    mensaje_Exhibicion = "Hubo Errores en Reporte Exhibición. ";
                }
                if (!mensaje_Marcaje.Equals(""))
                {
                    mensaje_Marcaje = "Hubo Errores en Reporte Marcaje Precios. ";
                }
                #region
                //if (!mensaje_Mandil.Equals(""))
                //    mensaje_Mandil = "Hubo Errores en Reporte Mandil. ";
                //if (!mensaje_MatAdicional.Equals(""))
                //    mensaje_MatAdicional = "Hubo Errores en Reporte Materiales Adicionales. ";
                //if (!mensaje_Observacion.Equals(""))
                //    mensaje_Observacion = "Hubo Errores en Reporte Observacion. ";
                #endregion
                if (!mensaje_MatApoyo.Equals(""))
                {
                    mensaje_MatApoyo = "Hubo Errores en Registro de Entrega de Materiales. ";
                }
                if (!mensaje_Capacitacion.Equals(""))//Agregado por DUEB, el 13/07/2012
                {
                    mensaje_Capacitacion = "Hubo Errores en el de Reporte Capacitacion. ";
                }
                if (!mensaje_Incidencia.Equals(""))
                {
                    mensaje_Incidencia = "Hubo Errores en Registro de Incidencias. ";
                }
                if (!mensaje_Credito_Compt.Equals(""))//Agregado por DUEB, el 16/07/2012
                {
                    mensaje_Credito_Compt = "Hubo Errores en el de Reporte de Credito. ";
                }
                if (!mensaje_Presencia.Equals(""))//Agregado por PSA , 26/07/2012
                {
                    mensaje_Presencia = "Hubo Errores en el de Reporte de Presencia. ";
                }
                if (!mensaje_Visita.Equals(""))
                {
                    mensaje_Visita = "Hubo Errores en Registro de Visita. ";
                }
            }
            catch (Exception ex) {
                throw ex;
            }
            return(mensaje_Final = mensaje_Precio +
                                   mensaje_Exhibicion +
                                   mensaje_Marcaje +
                                   mensaje_MatApoyo +
                                   mensaje_Incidencia +
                                   mensaje_Presencia +
                                   mensaje_Capacitacion +
                                   mensaje_Credito_Compt +
                                   mensaje_Visita);
        }