estadisticas del dia
This commit is contained in:
+129
-7
@@ -35,20 +35,74 @@ namespace compabetov2
|
|||||||
DateTime.TryParseExact(fechaBuscaStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime fechaBuscar);
|
DateTime.TryParseExact(fechaBuscaStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime fechaBuscar);
|
||||||
resumen = service.estadisticas(fechaBuscar);
|
resumen = service.estadisticas(fechaBuscar);
|
||||||
List<DetalleVentaModel> productosMes = estadisticasMes();
|
List<DetalleVentaModel> productosMes = estadisticasMes();
|
||||||
|
List<DetalleVentaModel> productosDia = estadisticasDia();
|
||||||
|
|
||||||
Dictionary<string,dynamic> estadisticas = new Dictionary<string, dynamic>
|
Dictionary<string,dynamic> estadisticas = new Dictionary<string, dynamic>
|
||||||
{
|
{
|
||||||
{ "mes", new Dictionary<string, dynamic>{
|
{ "mes", new Dictionary<string, dynamic>{
|
||||||
{ "productos", productosMes },
|
{ "productos", productosMes },
|
||||||
{ "productoMasVendido", prodctoMasVendidoMes(productosMes) },
|
{ "productoMasVendido", prodctoMasVendido(productosMes) },
|
||||||
{ "mejorVendedor", mejorVenderdorMes() },
|
{ "mejorVendedor", mejorVenderdorMes() },
|
||||||
} }
|
}
|
||||||
|
},
|
||||||
|
{ "dia", new Dictionary<string, dynamic>{
|
||||||
|
{ "productos", productosDia },
|
||||||
|
{ "productoMasVendido", prodctoMasVendido(productosDia) },
|
||||||
|
{ "mejorVendedor", mejorVenderdorDia() },
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
mostrarDatos(estadisticas);
|
mostrarDatos(estadisticas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<DetalleVentaModel> estadisticasDia()
|
||||||
|
{
|
||||||
|
//solo copie y pegue le metodo estadisticas dia y cambie el key en resumen de mes a dia
|
||||||
|
List<Dictionary<string, dynamic>> mes = resumen["dia"];
|
||||||
|
|
||||||
|
List<DetalleVentaModel> detallesMes = new List<DetalleVentaModel>();
|
||||||
|
foreach (Dictionary<string, dynamic> venta_y_detalles in mes)
|
||||||
|
{
|
||||||
|
foreach (DetalleVentaModel detallesVenta in venta_y_detalles["detalles"])
|
||||||
|
{
|
||||||
|
int totalElementos = detallesMes.Count;
|
||||||
|
int contador = 0;
|
||||||
|
for (int i = 0; i <= totalElementos; i++)
|
||||||
|
{
|
||||||
|
contador++;
|
||||||
|
if (i == totalElementos)
|
||||||
|
{
|
||||||
|
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detallesVenta.cantidad, detallesVenta.producto, detallesVenta.idVenta);
|
||||||
|
detallesMes.Add(detalleAgregar);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
DetalleVentaModel producto = detallesMes[i];
|
||||||
|
|
||||||
|
if (producto.producto.nombre.Equals(detallesVenta.producto.nombre))
|
||||||
|
{
|
||||||
|
producto.cantidad += detallesVenta.cantidad;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//si no existe el producto lo agrega
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (contador == 0)
|
||||||
|
{
|
||||||
|
detallesMes.Add(detallesVenta);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return detallesMes;
|
||||||
|
}
|
||||||
|
|
||||||
private void mostrarDatos(Dictionary<string, dynamic> estadisticas)
|
private void mostrarDatos(Dictionary<string, dynamic> estadisticas)
|
||||||
{
|
{
|
||||||
|
dgvDia.Rows.Clear();
|
||||||
|
dgvMes.Rows.Clear();
|
||||||
List<DetalleVentaModel> detallesMes = estadisticas["mes"]["productos"];
|
List<DetalleVentaModel> detallesMes = estadisticas["mes"]["productos"];
|
||||||
decimal totalVendidoMes = 0;
|
decimal totalVendidoMes = 0;
|
||||||
foreach (DetalleVentaModel producto in detallesMes)
|
foreach (DetalleVentaModel producto in detallesMes)
|
||||||
@@ -82,6 +136,41 @@ namespace compabetov2
|
|||||||
lbTotalMes.Text = $"Total de mes: ${totalVendidoMes}";
|
lbTotalMes.Text = $"Total de mes: ${totalVendidoMes}";
|
||||||
lbProductoMes.Text = $"Producto mas vendido: {estadisticas["mes"]["productoMasVendido"]}";
|
lbProductoMes.Text = $"Producto mas vendido: {estadisticas["mes"]["productoMasVendido"]}";
|
||||||
lbVendedorMes.Text = $"Mejor vendedor: {estadisticas["mes"]["mejorVendedor"]}";
|
lbVendedorMes.Text = $"Mejor vendedor: {estadisticas["mes"]["mejorVendedor"]}";
|
||||||
|
|
||||||
|
//dia
|
||||||
|
List<DetalleVentaModel> detallesDia = estadisticas["dia"]["productos"];
|
||||||
|
decimal totalVendidoDia = 0;
|
||||||
|
foreach (DetalleVentaModel producto in detallesDia)
|
||||||
|
{
|
||||||
|
totalVendidoDia += producto.cantidad * producto.producto.precion;
|
||||||
|
// Crear una nueva fila
|
||||||
|
DataGridViewRow nuevaFila = new DataGridViewRow();
|
||||||
|
|
||||||
|
// Crear celdas para la nueva fila
|
||||||
|
DataGridViewCell productoN = new DataGridViewTextBoxCell();
|
||||||
|
DataGridViewCell precio = new DataGridViewTextBoxCell();
|
||||||
|
DataGridViewCell cantidad = new DataGridViewTextBoxCell();
|
||||||
|
DataGridViewCell total = new DataGridViewTextBoxCell();
|
||||||
|
|
||||||
|
// Establecer los valores de las celdas (puedes ajustar según tu necesidad)
|
||||||
|
productoN.Value = $"{producto.producto.nombre}";
|
||||||
|
precio.Value = $"{producto.producto.precion}";
|
||||||
|
cantidad.Value = $"{producto.cantidad}";
|
||||||
|
total.Value = $"{producto.cantidad * producto.producto.precion}";
|
||||||
|
|
||||||
|
// Agregar las celdas a la fila
|
||||||
|
nuevaFila.Cells.Add(productoN);
|
||||||
|
nuevaFila.Cells.Add(precio);
|
||||||
|
nuevaFila.Cells.Add(cantidad);
|
||||||
|
nuevaFila.Cells.Add(total);
|
||||||
|
|
||||||
|
// Agregar la nueva fila al DataGridView
|
||||||
|
dgvDia.Rows.Add(nuevaFila);
|
||||||
|
}
|
||||||
|
|
||||||
|
lbTotalDia.Text = $"Total de dia: ${totalVendidoDia}";
|
||||||
|
lbProductDia.Text = $"Producto mas vendido: {estadisticas["dia"]["productoMasVendido"]}";
|
||||||
|
lbVendedorDia.Text = $"Mejor vendedor: {estadisticas["dia"]["mejorVendedor"]}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<DetalleVentaModel> estadisticasMes()
|
private List<DetalleVentaModel> estadisticasMes()
|
||||||
@@ -99,7 +188,8 @@ namespace compabetov2
|
|||||||
contador++;
|
contador++;
|
||||||
if (i == totalElementos)
|
if (i == totalElementos)
|
||||||
{
|
{
|
||||||
detallesMes.Add(detallesVenta);
|
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detallesVenta.cantidad, detallesVenta.producto, detallesVenta.idVenta);
|
||||||
|
detallesMes.Add(detalleAgregar);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,13 +248,14 @@ namespace compabetov2
|
|||||||
return mejorVendedor;
|
return mejorVendedor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string prodctoMasVendidoMes(List<DetalleVentaModel> productosMes)
|
|
||||||
|
private string prodctoMasVendido(List<DetalleVentaModel> productos)
|
||||||
{
|
{
|
||||||
string productoMasVendido = "";
|
string productoMasVendido = "";
|
||||||
int cantidadProducto = 0;
|
int cantidadProducto = 0;
|
||||||
Dictionary<string, int> productosNombres = new Dictionary<string,int>();
|
|
||||||
|
|
||||||
foreach(DetalleVentaModel producto in productosMes)
|
|
||||||
|
foreach(DetalleVentaModel producto in productos)
|
||||||
{
|
{
|
||||||
if(producto.cantidad > cantidadProducto)
|
if(producto.cantidad > cantidadProducto)
|
||||||
{
|
{
|
||||||
@@ -176,6 +267,37 @@ namespace compabetov2
|
|||||||
return productoMasVendido;
|
return productoMasVendido;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string mejorVenderdorDia()
|
||||||
|
{
|
||||||
|
List<Dictionary<string, dynamic>> mes = resumen["dia"];
|
||||||
|
string mejorVendedor = "";
|
||||||
|
int contadorNumeroVentas = 0;
|
||||||
|
|
||||||
|
Dictionary<string, int> empleados = new Dictionary<string, int>();
|
||||||
|
foreach (Dictionary<string, dynamic> venta_y_detalle in mes)
|
||||||
|
{
|
||||||
|
VentaModel venta = venta_y_detalle["venta"];
|
||||||
|
|
||||||
|
if (empleados.ContainsKey(venta.responzable))
|
||||||
|
{
|
||||||
|
empleados[venta.responzable] += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
empleados.Add(venta.responzable, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (string empleado in empleados.Keys)
|
||||||
|
{
|
||||||
|
if (empleados[empleado] > contadorNumeroVentas)
|
||||||
|
{
|
||||||
|
contadorNumeroVentas = empleados[empleado];
|
||||||
|
mejorVendedor = empleado;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mejorVendedor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user