/// <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; } }