/// <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);
        }
        /// <summary>
        /// Descripcion :Registrar el PDV y Devuelve el CódigoPDV_Cliente.
        /// Fecha       :04/05/2012 PSA
        /// </summary>
        /// <param name="oE_Reporte"></param>
        /// <returns></returns>
        public E_Reporte_RegistroPDV_Response Reporte_Registrar_PDV(E_Reporte_RegistroPDV_Mov oE_Reporte)
        {
            //string CodigoPDV_Cliente = string.Empty;

            E_Reporte_RegistroPDV_Response oResponse = new E_Reporte_RegistroPDV_Response();

            try {
                if (!Registrar_PDV(oE_Reporte).Equals(0))
                {
                    if (!ClientPDV_Code.Equals(""))
                    {
                        //List<E_Distribuidora> oListDistribuidoras = new List<E_Distribuidora>();
                        D_Reporte_Codigo_ITT oD_Reporte_Codigo_ITT = new D_Reporte_Codigo_ITT();

                        //if (oE_Reporte.ListaNuevaDistribuidora != null)
                        //{
                        //    if (oE_Reporte.ListaNuevaDistribuidora.Count > 0)
                        //    {
                        //        foreach (E_Codigo_ITT_Nueva_Distribuidora oNuevaDistribuidora in oE_Reporte.ListaNuevaDistribuidora)
                        //        {
                        //            E_Distribuidora oE_Distribuidora = new E_Distribuidora();
                        //            oE_Distribuidora.CodDistribuidora = oD_Reporte_Codigo_ITT.Registrar_Nueva_Distribuidora(oNuevaDistribuidora).ToString();
                        //            oE_Distribuidora.NombreDistribuidora = oNuevaDistribuidora.NombreDistribuidora;
                        //            oE_Distribuidora.CodReporte = "102";
                        //            oListDistribuidoras.Add(oE_Distribuidora);
                        //        }

                        //        foreach (E_Distribuidora oDistribuidora in oListDistribuidoras)
                        //        {
                        //            oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Nueva_Distribuidora(int.Parse(oDistribuidora.CodDistribuidora), ClientPDV_Code);
                        //        }

                        //foreach (E_Codigo_ITT_Distribuidora oDistribuidora in oE_Reporte.ListaDistribuidora)
                        //{
                        //    oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Distribuidora(oDistribuidora, ClientPDV_Code);
                        //}
                        //    }
                        //}
                        ///>>>>Warning Falta Crear la Entidad E_Punto_de_Venta<<<<<
                        D_Producto dProducto = new D_Producto();
                        oResponse.NuevoCliente = dProducto.obtenerPtoVenta(ClientPDV_Code);

                        //Joseph Gonzales
                        //Modificación para almacenar los codigos ITT
                        if (oE_Reporte.ListaDistribuidora != null)
                        {
                            foreach (E_Codigo_ITT_Distribuidora oDistribuidora in oE_Reporte.ListaDistribuidora)
                            {
                                oD_Reporte_Codigo_ITT.Registrar_Codigo_ITT_Distribuidora(oDistribuidora, ClientPDV_Code);
                            }
                        }

                        //oResponse.ListaDistribuidoras = oD_Reporte_Codigo_ITT.ObtenerDistribuidorasXCodPuntoVenta(ClientPDV_Code);
                        oResponse.ListaDistribuidoras = new List <E_Distribuidora>();
                        oResponse.Mensaje             = "Se Registro Punto de Venta con Exito";
                    }
                }
                else
                {
                    oResponse.Mensaje = "Error al Registrar Punto De Venta";
                }
            }
            catch (Exception ex) {
                oResponse.Mensaje = "Error en Aplicación Movil consultar con el Equipo de TI.";
                throw ex;
            }
            return(oResponse);
        }