/// <summary>
        /// Procedimiento para cargar la tabla UnidadesDeVentas en el dataset del tipo DsReportesComisiones
        /// </summary>
        /// <param name="ds">DataSet en el cual hay que cargar las unidades de venta</param>
        /// <param name="TipoEntidad">Indica el tipo de entidad que se esta procesando: 1->Agencia; 2->Vendedores</param>
        private void CargarUnidadesDeVentasEnDataSet(DsReporteAnaliticoReal ds, int TipoEntidad)
        {
            int UnidadVentaId_AgenciaId = 0;

            // Cargo las unidades de ventas
            foreach (DsReporteAnaliticoReal.ReporteAnaliticoDeLoRealRow row in ds.ReporteAnaliticoDeLoReal)
            {
                DataRow[] registroAuxiliar = ds.UnidadesDeVentas.Select("EntidadId = " + row.EntidadId.ToString() + " And UnidadVentaId = " + row.UnidadVentaID.ToString() + " And NumeroLiquidacion = " + row.NumeroLiquidacion.ToString());
                // Reviso si ya se ha cargado la unidad de venta y agencia que se esta procesando
                if (registroAuxiliar.Length == 0)
                {
                    // No ha sido cargado la agencia y la unidad de venta. Agrego el registro
                    UnidadVentaId_AgenciaId++;
                    DsReporteAnaliticoReal.UnidadesDeVentasRow nuevoRegistro = ds.UnidadesDeVentas.NewUnidadesDeVentasRow();
                    nuevoRegistro.UnidadVentaId_AgenciaId = UnidadVentaId_AgenciaId;
                    nuevoRegistro.EntidadId              = row.EntidadId;
                    nuevoRegistro.UnidadVentaId          = row.UnidadVentaID;
                    nuevoRegistro.UnidadVentaDescripcion = row.UnidadVentaDescrip;
                    nuevoRegistro.NumeroLiquidacion      = row.NumeroLiquidacion;
                    nuevoRegistro.SoloCorporativo        = row.SoloCorporativo;
                    ds.UnidadesDeVentas.AddUnidadesDeVentasRow(nuevoRegistro);
                    // Cargo el id de vinculo con la tabla de comisiones liquidadas
                    row.UnidadVentaId_AgenciaId = UnidadVentaId_AgenciaId;
                }
                else
                {
                    // El registro ya se ha cargado
                    // Cargo el id de vinculo con la tabla de comisiones liquidadas
                    row.UnidadVentaId_AgenciaId = int.Parse(registroAuxiliar[0]["UnidadVentaId_AgenciaId"].ToString());
                }
            }
            // Reviso cual es el tipo de entidad que se esta procesando
            switch (TipoEntidad)
            {
            case 1:                     // Agencias
                                        // Creo la relación entre las tablas agencia y UnidadesDeVentas
                DataColumn   dc1      = ds.Tables["Agencias"].Columns["AgenciaId"];
                DataColumn   dc2      = ds.Tables["UnidadesDeVentas"].Columns["EntidadId"];
                DataRelation relacion = new DataRelation("Agencias_UnidadesDeVentas", dc1, dc2);
                ds.Relations.Add(relacion);
                break;

            case 2:                     // Vendedores
                                        // Creo la relación entre las tablas Vendedores y UnidadesDeVentas
                DataColumn   dc3       = ds.Tables["Vendedores"].Columns["VendedorId"];
                DataColumn   dc4       = ds.Tables["UnidadesDeVentas"].Columns["EntidadId"];
                DataRelation relacion2 = new DataRelation("Agencias_UnidadesDeVentas", dc3, dc4);
                ds.Relations.Add(relacion2);
                break;
            }
            // Creo la relación entrega las tablas UnidadesDeVentas y ComisionesLiquidadasYPagadas
            DataColumn   dc5       = ds.Tables["UnidadesDeVentas"].Columns["UnidadVentaId_AgenciaId"];
            DataColumn   dc6       = ds.Tables["ReporteAnaliticoDeLoReal"].Columns["UnidadVentaId_AgenciaId"];
            DataRelation relacion3 = new DataRelation("UnidadesDeVentas_ComisionesLiquidadasYPagadas", dc5, dc6);

            ds.Relations.Add(relacion3);
        }
        /// <summary>
        /// Funcion para obtener el reporte analítico de lo real
        /// </summary>
        /// <param name="DesdeFecha">Desde que fecha se quiere consultar</param>
        /// <param name="HastaFecha">Hasta que Fecha se quiere consultar</param>
        /// <param name="Entidades">Listado de entidades (agencias o vendedores) que se quiere consultar</param>
        /// <param name="UnidadesDeVentas">Listado de unidades de ventas que se quiere consultar</param>
        /// <param name="IdSesion">ID de la sesión del usuario</param>
        /// <param name="TipoEntidad">Tipo de entidad que se esta procesando. 1->Agencias; 2->Vendedores</param>
        /// <returns>Devuelve un DataSet del tipo DsReporteAnaliticoReal con el reporte analítico de lo real</returns>
        public DsReporteAnaliticoReal ObtenerReporteAnaliticoReal(DateTime DesdeFecha, DateTime HastaFecha, string Entidades, string UnidadesDeVentas, string IdSesion, int TipoEntidad)
        {
            try
            {
                DsReporteAnaliticoReal ds = new DsReporteAnaliticoReal();
                // Cargo los parametros
                SqlParameter paramDesdeFecha       = new SqlParameter("@DesdeFecha", DesdeFecha);
                SqlParameter paramHastaFecha       = new SqlParameter("@HastaFecha", HastaFecha);
                SqlParameter paramEntidades        = new SqlParameter("@Entidades", Entidades);
                SqlParameter paramAgencias         = new SqlParameter("@Agencias", Entidades);
                SqlParameter paramVendedores       = new SqlParameter("@Vendedores", Entidades);
                SqlParameter paramUnidadesDeVentas = new SqlParameter("@UnidadesDeVentas", UnidadesDeVentas);
                SqlParameter paramSesion           = new SqlParameter("@IDSesion", IdSesion);
                SqlParameter paramTipoEntidad      = new SqlParameter("@TipoEntidadID", TipoEntidad);
                // Reviso cual es el tipo de entidad que se esta procesando
                switch (TipoEntidad)
                {
                case 1:                         // Agencia
                                                // Cargo las agencias
                    Config.Conexion.LlenarTypeDataSet(ds.Agencias, System.Data.CommandType.StoredProcedure, "AgenciaSelByListadosAgenciaId", paramAgencias);
                    break;
//					case 2: // Vendedores
//						// Cargo los vendedores
//						Config.Conexion.LlenarTypeDataSet(ds.Vendedores, System.Data.CommandType.StoredProcedure, "VendedorSelByListadoVendedorId", paramVendedores);
//						break;
                }
                // Obtengo las comisiones liquidadas y pagadas
                Config.Conexion.LlenarTypeDataSet(ds.ReporteAnaliticoDeLoReal, System.Data.CommandType.StoredProcedure, "ReporteAnaliticoDeLoRealSel", paramDesdeFecha, paramHastaFecha, paramEntidades, paramSesion, paramTipoEntidad, paramUnidadesDeVentas);
                // Devuelvo los datos encontrados
                return(ds);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }