diff --git a/Estadiscticas.cs b/Estadiscticas.cs index 86f69e2..403fc0d 100644 --- a/Estadiscticas.cs +++ b/Estadiscticas.cs @@ -35,20 +35,74 @@ namespace compabetov2 DateTime.TryParseExact(fechaBuscaStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime fechaBuscar); resumen = service.estadisticas(fechaBuscar); List productosMes = estadisticasMes(); + List productosDia = estadisticasDia(); + Dictionary estadisticas = new Dictionary { { "mes", new Dictionary{ - { "productos", productosMes }, - { "productoMasVendido", prodctoMasVendidoMes(productosMes) }, - { "mejorVendedor", mejorVenderdorMes() }, - } } + { "productos", productosMes }, + { "productoMasVendido", prodctoMasVendido(productosMes) }, + { "mejorVendedor", mejorVenderdorMes() }, + } + }, + { "dia", new Dictionary{ + { "productos", productosDia }, + { "productoMasVendido", prodctoMasVendido(productosDia) }, + { "mejorVendedor", mejorVenderdorDia() }, + } + } }; mostrarDatos(estadisticas); } + private List estadisticasDia() + { + //solo copie y pegue le metodo estadisticas dia y cambie el key en resumen de mes a dia + List> mes = resumen["dia"]; + + List detallesMes = new List(); + foreach (Dictionary 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 estadisticas) { - + dgvDia.Rows.Clear(); + dgvMes.Rows.Clear(); List detallesMes = estadisticas["mes"]["productos"]; decimal totalVendidoMes = 0; foreach (DetalleVentaModel producto in detallesMes) @@ -82,6 +136,41 @@ namespace compabetov2 lbTotalMes.Text = $"Total de mes: ${totalVendidoMes}"; lbProductoMes.Text = $"Producto mas vendido: {estadisticas["mes"]["productoMasVendido"]}"; lbVendedorMes.Text = $"Mejor vendedor: {estadisticas["mes"]["mejorVendedor"]}"; + + //dia + List 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 estadisticasMes() @@ -99,7 +188,8 @@ namespace compabetov2 contador++; if (i == totalElementos) { - detallesMes.Add(detallesVenta); + DetalleVentaModel detalleAgregar = new DetalleVentaModel(detallesVenta.cantidad, detallesVenta.producto, detallesVenta.idVenta); + detallesMes.Add(detalleAgregar); break; } @@ -158,13 +248,14 @@ namespace compabetov2 return mejorVendedor; } - private string prodctoMasVendidoMes(List productosMes) + + private string prodctoMasVendido(List productos) { string productoMasVendido = ""; int cantidadProducto = 0; - Dictionary productosNombres = new Dictionary(); - foreach(DetalleVentaModel producto in productosMes) + + foreach(DetalleVentaModel producto in productos) { if(producto.cantidad > cantidadProducto) { @@ -176,6 +267,37 @@ namespace compabetov2 return productoMasVendido; } + private string mejorVenderdorDia() + { + List> mes = resumen["dia"]; + string mejorVendedor = ""; + int contadorNumeroVentas = 0; + Dictionary empleados = new Dictionary(); + foreach (Dictionary 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; + } } } diff --git a/bin/Debug/compabetov2.exe b/bin/Debug/compabetov2.exe index a24b32f..733f4a9 100644 Binary files a/bin/Debug/compabetov2.exe and b/bin/Debug/compabetov2.exe differ diff --git a/bin/Debug/compabetov2.pdb b/bin/Debug/compabetov2.pdb index 81f3c25..134b235 100644 Binary files a/bin/Debug/compabetov2.pdb and b/bin/Debug/compabetov2.pdb differ diff --git a/obj/Debug/compabetov2.exe b/obj/Debug/compabetov2.exe index a24b32f..733f4a9 100644 Binary files a/obj/Debug/compabetov2.exe and b/obj/Debug/compabetov2.exe differ diff --git a/obj/Debug/compabetov2.pdb b/obj/Debug/compabetov2.pdb index 81f3c25..134b235 100644 Binary files a/obj/Debug/compabetov2.pdb and b/obj/Debug/compabetov2.pdb differ