/// <summary> /// Función para obtener el reporte de comisiones asignadas a agencias y vendedores /// </summary> /// <param name="UnidadesDeVentas">Unidades de venta para las cuales se quiere ver las comisiones asignadas</param> /// <param name="Agencias">Agencias para las cuales se quieren ver las comisiones asignadas</param> /// <param name="Vendedores">Vendedores para los cuales se quieren ver las comisiones asignadas</param> /// <returns>Devuelve un Dataset del tipo DsReporteComisiones con las comisiones asignadas a la agencia y los vendedores</returns> public DsReporteComisiones ObtenerComisionesAsignadasAAgenciasYVendedores(string UnidadesDeVentas, string Agencias, string Vendedores, DateTime FechaDesde, DateTime FechaHasta) { try { DsReporteComisiones ds = new DsReporteComisiones(); // Cargo los parametros SqlParameter pUnidadesDeVenta = new SqlParameter("@UnidadesDeVentas", UnidadesDeVentas); SqlParameter pAgencias = new SqlParameter("@Agencias", Agencias); SqlParameter pVendedores = new SqlParameter("@Vendedores", Vendedores); SqlParameter pFechaDesde = new SqlParameter("@DesdeFecha", FechaDesde); SqlParameter pFechaHasta = new SqlParameter("@HastaFecha", FechaHasta); // Cargo las agencias Config.Conexion.LlenarTypeDataSet(ds.Agencias, System.Data.CommandType.StoredProcedure, "AgenciaSelByListadosAgenciaId", pAgencias); // Cargo los vendedores Config.Conexion.LlenarTypeDataSet(ds.Vendedores, System.Data.CommandType.StoredProcedure, "VendedorSelByListadoVendedorId", pVendedores); // Obtengo las comisiones asignadas a las agencias Config.Conexion.LlenarTypeDataSet(ds.ComisionesAsignadasAAgencias, System.Data.CommandType.StoredProcedure, "ComisionesAsignadasAAgencias", pUnidadesDeVenta, pAgencias, pFechaDesde, pFechaHasta); // Obtengo las comisiones asignadas a los vendedores Config.Conexion.LlenarTypeDataSet(ds.ComisionesAsignadasAVendedores, System.Data.CommandType.StoredProcedure, "ComisionesAsignadasAVendedores", pUnidadesDeVenta, pVendedores, pFechaDesde, pFechaHasta); // Devuelvo los datos encontrados return(ds); } catch (Exception ex) { throw ex; } }
private void dtgComisionesAVendedores_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { // Reviso en que sección de la grilla estoy if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { double subtotalBaseDeCalculo = 0, subtotalComisionLiquidada = 0, subtotalComisionPagada = 0, subtotalimporteFijo = 0; // Estoy en el detalle de items. Obtengo los totales de la agencia if (Session["DsReporteComisionesVendedores"] != null) { DsReporteComisiones ds = (DsReporteComisiones)Session["DsReporteComisionesVendedores"]; // Total base de calculo subtotalBaseDeCalculo = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ImporteBaseCalculo)", "EntidadId = " + e.Item.Cells[1].Text).ToString()); // Total Comision Liquidada subtotalComisionLiquidada = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ComisionLiquidada)", "EntidadId = " + e.Item.Cells[1].Text).ToString()); // Total Comision Pagada subtotalComisionPagada = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ComisionPagada)", "EntidadId = " + e.Item.Cells[1].Text).ToString()); // Total Importe Fijo subtotalimporteFijo = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ImporteFijo)", "EntidadId = " + e.Item.Cells[1].Text).ToString()); } // Cargo los totales en la grilla // Base de cálculo e.Item.Cells[3].Text = string.Format("$ {0:#,###0.00}", subtotalBaseDeCalculo); // Comision liquidada e.Item.Cells[4].Text = string.Format("$ {0:#,###0.00}", subtotalComisionLiquidada); // Comision pagada e.Item.Cells[5].Text = string.Format("$ {0:#,###0.00}", subtotalComisionPagada); // Importe Fijo e.Item.Cells[6].Text = string.Format("$ {0:#,###0.00}", subtotalimporteFijo); } if (e.Item.ItemType == ListItemType.Footer) { // Estoy en el pie del reporte double totalBaseDeCalculo = 0, totalComisionLiquidada = 0, totalComisionPagada = 0, totalimporteFijo = 0; // Obtengo los datos a cargar en el pie if (Session["DsReporteComisionesVendedores"] != null) { DsReporteComisiones ds = (DsReporteComisiones)Session["DsReporteComisionesVendedores"]; // Total base de calculo totalBaseDeCalculo = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ImporteBaseCalculo)", "").ToString()); // Total Comision Liquidada totalComisionLiquidada = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ComisionLiquidada)", "").ToString()); // Total Comision Pagada totalComisionPagada = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ComisionPagada)", "").ToString()); // Total Importe Fijo totalimporteFijo = Validaciones.obtieneDouble(ds.ComisionesLiquidadasYPagadas.Compute("sum(ImporteFijo)", "").ToString()); } // Cargo los totales e.Item.Cells[0].ColumnSpan = 2; e.Item.Cells[0].Text = "Totales"; // Base de cálculo e.Item.Cells[2].Text = string.Format("$ {0:#,###0.00}", totalBaseDeCalculo); // Comision liquidada e.Item.Cells[3].Text = string.Format("$ {0:#,###0.00}", totalComisionLiquidada); // Comision pagada e.Item.Cells[4].Text = string.Format("$ {0:#,###0.00}", totalComisionPagada); // Importe Fijo e.Item.Cells[5].Text = string.Format("$ {0:#,###0.00}", totalimporteFijo); e.Item.Cells.Remove(e.Item.Cells[6]); } }
/// <summary> /// Funciones para obtener el reporte global de comisiones liquidadas /// </summary> /// <param name="DesdeFecha">Desde que fecha se quiere consultar</param> /// <param name="HastaFecha">Hasta que Fecha se quiere consultar</param> /// <param name="Agencias">Listado de agencias que se quiere consultar</param> /// <param name="IdSesion">ID de la sesión del usuario</param> /// <returns>Devuelve un DataSet del tipo DsReporteComisiones con el reporte global de comisiones liquidadas</returns> public DsReporteComisiones ObtenerReporteGlobalDeComisionesLiquidadas(DateTime DesdeFecha, DateTime HastaFecha, string Agencias, string IdSesion) { try { DsReporteComisiones ds = new DsReporteComisiones(); // Cargo los parametros SqlParameter paramDesdeFecha = new SqlParameter("@DesdeFecha", DesdeFecha); SqlParameter paramHastaFecha = new SqlParameter("@HastaFecha", HastaFecha); SqlParameter paramAgencias = new SqlParameter("@Agencias", Agencias); SqlParameter paramSesion = new SqlParameter("@IDSesion", IdSesion); SqlParameter paramTipoEntidad = new SqlParameter("@TipoEntidadID", 1); // Obtengo las comisiones liquidadas y pagadas Config.Conexion.LlenarTypeDataSet(ds.ComisionesGlobalesLiquidadas, System.Data.CommandType.StoredProcedure, "ReporteGlobalComisionesLiquidadas", paramDesdeFecha, paramHastaFecha, paramAgencias, paramSesion, paramTipoEntidad); // Devuelvo los datos encontrados return(ds); } catch (Exception ex) { throw ex; } }
/// <summary> /// Funciones para obtener el reporte de comisiones mensuales liquidadas y pagadas /// </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 DsReporteComisiones con el reporte de comisiones mensuales liquidadas y pagadas</returns> public DsReporteComisiones ObtenerComisionesMensualesLiquidadasYPagadas(DateTime DesdeFecha, DateTime HastaFecha, string Entidades, string UnidadesDeVentas, string IdSesion, int TipoEntidad, string conceptos) { try { DsReporteComisiones ds = new DsReporteComisiones(); // 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); SqlParameter paramConceptos = new SqlParameter("@ConceptosFacturables", conceptos); // 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.ComisionesLiquidadasYPagadas, System.Data.CommandType.StoredProcedure, "ComisionesLiquidadasYPagadasPorAgenciaYUnidadVenta", paramDesdeFecha, paramHastaFecha, paramEntidades, paramSesion, paramTipoEntidad, paramUnidadesDeVentas, paramConceptos); // Devuelvo los datos encontrados return(ds); } catch (Exception ex) { throw ex; } }
/// <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(DsReporteComisiones ds, int TipoEntidad) { int UnidadVentaId_AgenciaId = 0; // Cargo las unidades de ventas foreach (DsReporteComisiones.ComisionesLiquidadasYPagadasRow row in ds.ComisionesLiquidadasYPagadas) { if (row.IsUnidadVentaIdNull() == false) { 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++; DsReporteComisiones.UnidadesDeVentasRow nuevoRegistro = ds.UnidadesDeVentas.NewUnidadesDeVentasRow(); nuevoRegistro.UnidadVentaId_AgenciaId = UnidadVentaId_AgenciaId; nuevoRegistro.EntidadId = row.EntidadId; nuevoRegistro.UnidadVentaId = row.UnidadVentaId; nuevoRegistro.UnidadVentaDescripcion = row.UnidadVentaDescripcion; 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()); } } if (row.IsConceptoFacturacionIDNull() == false) { DataRow[] registroAuxiliar = ds.ConceptosFacturacion.Select("EntidadId = " + row.EntidadId.ToString() + " And ConceptoFacturacionId = " + row.ConceptoFacturacionID.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++; DsReporteComisiones.UnidadesDeVentasRow nuevoRegistro = ds.UnidadesDeVentas.NewUnidadesDeVentasRow(); nuevoRegistro.UnidadVentaId_AgenciaId = UnidadVentaId_AgenciaId; nuevoRegistro.EntidadId = row.EntidadId; nuevoRegistro.UnidadVentaId = row.ConceptoFacturacionID * -1; nuevoRegistro.UnidadVentaDescripcion = row.ConceptoFacturacionDescrip; nuevoRegistro.NumeroLiquidacion = row.NumeroLiquidacion; 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["ComisionesLiquidadasYPagadas"].Columns["UnidadVentaId_AgenciaId"]; DataRelation relacion3 = new DataRelation("UnidadesDeVentas_ComisionesLiquidadasYPagadas", dc5, dc6); ds.Relations.Add(relacion3); }