estadisticas en proceso
This commit is contained in:
+127
-89
@@ -15,7 +15,9 @@ namespace compabetov2
|
||||
{
|
||||
public partial class Estadiscticas : Form
|
||||
{
|
||||
Dictionary<string, List<Dictionary<string, dynamic>>> resumen;
|
||||
private List<VentaModel> ventasDia;
|
||||
private List<VentaModel> ventasMes;
|
||||
|
||||
public Estadiscticas()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -33,11 +35,15 @@ namespace compabetov2
|
||||
string fechaBuscaStr = dtpBuscar.Text;
|
||||
|
||||
DateTime.TryParseExact(fechaBuscaStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime fechaBuscar);
|
||||
resumen = service.estadisticas(fechaBuscar);
|
||||
ventasDia = service.conseguirVentasDia(fechaBuscar);
|
||||
ventasMes = service.conseguirVentasMes(fechaBuscar);
|
||||
|
||||
List<DetalleVentaModel> productosMes = estadisticasMes();
|
||||
List<DetalleVentaModel> productosDia = estadisticasDia();
|
||||
decimal totalmes = totalMes();
|
||||
decimal totaldia = totalDia();
|
||||
|
||||
decimal totaldianeto = totalDiaNeto();
|
||||
Dictionary<string, List<Envio>> envios = service.conseguirEnvioMes(fechaBuscar);
|
||||
|
||||
Dictionary<string,dynamic> estadisticas = new Dictionary<string, dynamic>
|
||||
@@ -55,6 +61,7 @@ namespace compabetov2
|
||||
{ "productoMasVendido", prodctoMasVendido(productosDia) },
|
||||
{ "mejorVendedor", mejorVenderdorDia() },
|
||||
{ "totalDia", totalDia()},
|
||||
{ "totalNetoDia", totaldianeto },
|
||||
{ "EnvioCantidad", totalDiaSinEnvio(envios) },
|
||||
}
|
||||
}
|
||||
@@ -74,74 +81,118 @@ namespace compabetov2
|
||||
}
|
||||
|
||||
private decimal totalMes()
|
||||
{
|
||||
List<Dictionary<string, dynamic>> mes = resumen["mes"];
|
||||
|
||||
return calcularTotal(mes);
|
||||
}
|
||||
|
||||
private decimal totalDia()
|
||||
{
|
||||
List<Dictionary<string, dynamic>> dia = resumen["dia"];
|
||||
|
||||
return calcularTotal(dia);
|
||||
}
|
||||
|
||||
private decimal calcularTotal(List<Dictionary<string, dynamic>> resumen)
|
||||
{
|
||||
decimal total = 0;
|
||||
foreach (Dictionary<string, dynamic> venta_y_detalles in resumen)
|
||||
foreach(VentaModel venta in ventasMes)
|
||||
{
|
||||
VentaModel venta = venta_y_detalles["venta"];
|
||||
|
||||
total += venta.total;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
private List<DetalleVentaModel> estadisticasDia()
|
||||
private decimal totalDia()
|
||||
{
|
||||
//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"];
|
||||
decimal total = 0;
|
||||
|
||||
List<DetalleVentaModel> detallesMes = new List<DetalleVentaModel>();
|
||||
foreach (Dictionary<string, dynamic> venta_y_detalles in mes)
|
||||
foreach (VentaModel venta in ventasDia)
|
||||
{
|
||||
foreach (DetalleVentaModel detallesVenta in venta_y_detalles["detalles"])
|
||||
total += venta.total;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
private decimal totalDiaNeto()
|
||||
{
|
||||
decimal total = 0;
|
||||
foreach (VentaModel venta in ventasDia)
|
||||
{
|
||||
List<DetalleVentaModel> detalles = service.conseguirDetallesVenta(venta);
|
||||
decimal totalDetalle = 0;
|
||||
foreach(DetalleVentaModel detalle in detalles)
|
||||
{
|
||||
totalDetalle += detalle.cantidad * (detalle.producto.precio - detalle.producto.precioCompra);
|
||||
}
|
||||
total += totalDetalle;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
private List<DetalleVentaModel> estadisticasMes()
|
||||
{
|
||||
List<DetalleVentaModel> detallesMes = new List<DetalleVentaModel>();
|
||||
//recorre las ventas del mes
|
||||
foreach (VentaModel venta in ventasMes)
|
||||
{
|
||||
//consigue los detalles de la venta
|
||||
List<DetalleVentaModel> detallesVenta = service.conseguirDetallesVenta(venta);
|
||||
|
||||
//recorre los detalles de la venta
|
||||
foreach (DetalleVentaModel detalle in detallesVenta)
|
||||
{
|
||||
int totalElementos = detallesMes.Count;
|
||||
int contador = 0;
|
||||
for (int i = 0; i <= totalElementos; i++)
|
||||
{
|
||||
contador++;
|
||||
//si no encuentra el producto lo agrega
|
||||
if (i == totalElementos)
|
||||
{
|
||||
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detallesVenta.cantidad, detallesVenta.producto, detallesVenta.idVenta);
|
||||
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detalle.cantidad, detalle.producto, detalle.idVenta);
|
||||
detallesMes.Add(detalleAgregar);
|
||||
break;
|
||||
}
|
||||
|
||||
DetalleVentaModel producto = detallesMes[i];
|
||||
|
||||
if (producto.producto.nombre.Equals(detallesVenta.producto.nombre))
|
||||
//si encuentra el produco solo aumneta la cantidad
|
||||
if (producto.producto.nombre.Equals(detalle.producto.nombre))
|
||||
{
|
||||
producto.cantidad += detallesVenta.cantidad;
|
||||
producto.cantidad += detalle.cantidad;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return detallesMes;
|
||||
}
|
||||
|
||||
private List<DetalleVentaModel> estadisticasDia()
|
||||
{
|
||||
List<DetalleVentaModel> detallesDia = new List<DetalleVentaModel>();
|
||||
//recorre las ventas del mes
|
||||
foreach (VentaModel venta in ventasDia)
|
||||
{
|
||||
//consigue los detalles de la venta
|
||||
List<DetalleVentaModel> detallesVenta = service.conseguirDetallesVenta(venta);
|
||||
|
||||
//recorre los detalles de la venta
|
||||
foreach (DetalleVentaModel detalle in detallesVenta)
|
||||
{
|
||||
int totalElementos = detallesDia.Count;
|
||||
int contador = 0;
|
||||
for (int i = 0; i <= totalElementos; i++)
|
||||
{
|
||||
contador++;
|
||||
//si no encuentra el producto lo agrega
|
||||
if (i == totalElementos)
|
||||
{
|
||||
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detalle.cantidad, detalle.producto, detalle.idVenta);
|
||||
detallesDia.Add(detalleAgregar);
|
||||
break;
|
||||
}
|
||||
|
||||
//si no existe el producto lo agrega
|
||||
|
||||
DetalleVentaModel producto = detallesDia[i];
|
||||
//si encuentra el produco solo aumneta la cantidad
|
||||
if (producto.producto.nombre.Equals(detalle.producto.nombre))
|
||||
{
|
||||
producto.cantidad += detalle.cantidad;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (contador == 0)
|
||||
{
|
||||
detallesMes.Add(detallesVenta);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return detallesMes;
|
||||
|
||||
return detallesDia;
|
||||
}
|
||||
|
||||
private void mostrarDatos(Dictionary<string, dynamic> estadisticas)
|
||||
@@ -159,20 +210,27 @@ namespace compabetov2
|
||||
// Crear celdas para la nueva fila
|
||||
DataGridViewCell productoN = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell precio = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell precioCompra = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell cantidad = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell total = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell totalNeto = new DataGridViewTextBoxCell();
|
||||
|
||||
// Establecer los valores de las celdas (puedes ajustar según tu necesidad)
|
||||
productoN.Value = $"{producto.producto.nombre}";
|
||||
precio.Value = $"{producto.producto.precio}";
|
||||
precioCompra.Value = $"{producto.producto.precioCompra}";
|
||||
cantidad.Value = $"{producto.cantidad}";
|
||||
total.Value = $"{producto.cantidad * producto.producto.precio}";
|
||||
|
||||
totalNeto.Value = $"{producto.cantidad * (producto.producto.precio - producto.producto.precioCompra)}";
|
||||
|
||||
// Agregar las celdas a la fila
|
||||
nuevaFila.Cells.Add(productoN);
|
||||
nuevaFila.Cells.Add(precio);
|
||||
nuevaFila.Cells.Add(precioCompra);
|
||||
nuevaFila.Cells.Add(cantidad);
|
||||
nuevaFila.Cells.Add(total);
|
||||
nuevaFila.Cells.Add(totalNeto);
|
||||
|
||||
// Agregar la nueva fila al DataGridView
|
||||
dgvMes.Rows.Add(nuevaFila);
|
||||
@@ -195,20 +253,26 @@ namespace compabetov2
|
||||
// Crear celdas para la nueva fila
|
||||
DataGridViewCell productoN = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell precio = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell precioCompra = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell cantidad = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell total = new DataGridViewTextBoxCell();
|
||||
DataGridViewCell totalNeto = new DataGridViewTextBoxCell();
|
||||
|
||||
// Establecer los valores de las celdas (puedes ajustar según tu necesidad)
|
||||
productoN.Value = $"{producto.producto.nombre}";
|
||||
precio.Value = $"{producto.producto.precio}";
|
||||
precioCompra.Value = $"{producto.producto.precioCompra}";
|
||||
cantidad.Value = $"{producto.cantidad}";
|
||||
total.Value = $"{producto.cantidad * producto.producto.precio}";
|
||||
totalNeto.Value = $"{producto.cantidad * (producto.producto.precio - producto.producto.precioCompra)}";
|
||||
|
||||
// Agregar las celdas a la fila
|
||||
nuevaFila.Cells.Add(productoN);
|
||||
nuevaFila.Cells.Add(precio);
|
||||
nuevaFila.Cells.Add(precioCompra);
|
||||
nuevaFila.Cells.Add(cantidad);
|
||||
nuevaFila.Cells.Add(total);
|
||||
nuevaFila.Cells.Add(totalNeto);
|
||||
|
||||
// Agregar la nueva fila al DataGridView
|
||||
dgvDia.Rows.Add(nuevaFila);
|
||||
@@ -219,61 +283,19 @@ namespace compabetov2
|
||||
lbProductDia.Text = $"Producto mas vendido: {estadisticas["dia"]["productoMasVendido"]}";
|
||||
lbVendedorDia.Text = $"Mejor vendedor: {estadisticas["dia"]["mejorVendedor"]}";
|
||||
lbDiaSEnvio.Text = $"Total del dia sin envios: ${totalSinEnvioDia}";
|
||||
lbTotalDiaNeto.Text = $"Total neto del dia: ${estadisticas["dia"]["totalNetoDia"]}";
|
||||
}
|
||||
|
||||
private List<DetalleVentaModel> estadisticasMes()
|
||||
{
|
||||
List<Dictionary<string, dynamic>> mes = resumen["mes"];
|
||||
|
||||
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++;
|
||||
//si no encuentra el producto lo agrega
|
||||
if (i == totalElementos)
|
||||
{
|
||||
DetalleVentaModel detalleAgregar = new DetalleVentaModel(detallesVenta.cantidad, detallesVenta.producto, detallesVenta.idVenta);
|
||||
detallesMes.Add(detalleAgregar);
|
||||
break;
|
||||
}
|
||||
|
||||
DetalleVentaModel producto = detallesMes[i];
|
||||
//si encuentra el produco solo aumneta la cantidad
|
||||
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 string mejorVenderdorMes()
|
||||
{
|
||||
List<Dictionary<string, dynamic>> mes = resumen["mes"];
|
||||
string mejorVendedor = "";
|
||||
int contadorNumeroVentas = 0;
|
||||
|
||||
Dictionary<string,int> empleados = new Dictionary<string,int>();
|
||||
foreach(Dictionary<string, dynamic> venta_y_detalle in mes)
|
||||
foreach(VentaModel venta in ventasMes)
|
||||
{
|
||||
VentaModel venta = venta_y_detalle["venta"];
|
||||
|
||||
if (empleados.ContainsKey(venta.responzable))
|
||||
{
|
||||
@@ -303,7 +325,6 @@ namespace compabetov2
|
||||
string productoMasVendido = "";
|
||||
int cantidadProducto = 0;
|
||||
|
||||
|
||||
foreach(DetalleVentaModel producto in productos)
|
||||
{
|
||||
if(producto.cantidad > cantidadProducto)
|
||||
@@ -318,14 +339,12 @@ namespace compabetov2
|
||||
|
||||
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)
|
||||
foreach (VentaModel venta in ventasDia)
|
||||
{
|
||||
VentaModel venta = venta_y_detalle["venta"];
|
||||
|
||||
if (empleados.ContainsKey(venta.responzable))
|
||||
{
|
||||
@@ -383,5 +402,24 @@ namespace compabetov2
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void dgvDia_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void btnVentasDia_Click(object sender, EventArgs e)
|
||||
{
|
||||
RegistroVentas ventana = new RegistroVentas(ventasDia,this);
|
||||
ventana.Owner = this;
|
||||
ventana.Show();
|
||||
}
|
||||
|
||||
private void btnVentasMes_Click(object sender, EventArgs e)
|
||||
{
|
||||
RegistroVentas ventana = new RegistroVentas(ventasMes, this);
|
||||
ventana.Owner = this;
|
||||
ventana.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user