más cambios ahora funciona el tema de las facturas pero no el emailer

This commit is contained in:
fedpo
2024-10-01 02:48:17 +01:00
parent 37ff7022cf
commit 76d9b597d6
30 changed files with 156 additions and 6617 deletions

View File

@@ -30,37 +30,25 @@ namespace Vista
dgvProductos.DataSource = null;
dgvProductos.DataSource = ControladoraFacturas.Instance.ListarProductos();
dgvDetalles.AutoGenerateColumns = false;
dgvClientes.DataSource = null;
dgvClientes.DataSource = ControladoraFacturas.Instance.ListarClientes();
// Definir las columnas manualmente
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
foreach (DataGridViewColumn column in dgvDetalles.Columns)
{
DataPropertyName = "Id", // Usa la propiedad NombreProducto
HeaderText = "Id",
Name = "Id"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
column.Visible = column.Name == "Id" || column.Name == "Producto" || column.Name == "Cantidad"
|| column.Name == "PrecioUnitario" || column.Name == "Subtotal";
}
foreach (DataGridViewColumn column in dgvClientes.Columns)
{
DataPropertyName = "Producto", // Usa la propiedad NombreProducto
HeaderText = "Producto",
Name = "Producto"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
column.Visible = column.Name == "Cuit" || column.Name == "NombreCompleto" || column.Name == "Correo";
}
foreach (DataGridViewColumn column in dgvProductos.Columns)
{
DataPropertyName = "CantidadDeProductos",
HeaderText = "Cantidad",
Name = "CantidadDeProductos"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "PrecioUnitario",
HeaderText = "PrecioUnitario"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Subtotal",
HeaderText = "Subtotal"
});
column.Visible = column.Name == "Id" || column.Name == "Nombre" || column.Name == "Precio";
}
}
@@ -100,7 +88,7 @@ namespace Vista
string devolucion = "";
if (string.IsNullOrEmpty(numid.Text)) devolucion += "El ID no puede ser nulo o vacío\n";
//if (cmbCliente.SelectedIndex == -1) devolucion += "Debe seleccionar un cliente\n";
//if (dgvClientes.Enabled == true) devolucion += "Debe seleccionar un cliente\n";
if (devolucion == "")
{
@@ -120,8 +108,7 @@ namespace Vista
{
factura.Total = Convert.ToDouble(numtotal.Value);
factura.Fecha = datepick.Value;
factura.Id = Convert.ToInt32(numid.Value);
factura.Cliente = new Cliente { Cuit = (long)dgvClientes.SelectedRows[0].Cells["Cuit"].Value };
string mensaje = ControladoraFacturas.Instance.Añadir(factura);
MessageBox.Show(mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
@@ -131,7 +118,10 @@ namespace Vista
private void btnAddDetalle_Click(object sender, EventArgs e)
{
// Validar los datos antes de crear el detalle
// No quiero que cambien de cliente una vez que ya empezaron a armar la factura
dgvClientes.Enabled = false;
if (ValidarDatosdetalle()) return;
if (dgvProductos.SelectedRows.Count > 0)
{
@@ -147,9 +137,8 @@ namespace Vista
factura.AñadirDetalle(new DetalleFactura
{
Id = int.Parse(detalleid++.ToString()),
Cantidad = (int)numCantidad.Value,
IdFactura = factura.Id,
Producto = ControladoraProductos.Instance.Listar().First(x => x.Id == producto.Id),
});
ActualizarGrillaDetalles();

View File

@@ -10,73 +10,48 @@ namespace Vista
public FrmFacturas()
{
InitializeComponent();
ConfigurarDataGridViewDetalle();
ActualizarGrilla();
ActualizarGrillas();
}
private void ActualizarGrilla()
private void ActualizarGrillas()
{
dgvFacturas.DataSource = null;
dgvFacturas.DataSource = ControladoraFacturas.Instance.Listar();
foreach (DataGridViewColumn column in dgvFacturas.Columns)
{
column.Visible = column.Name == "Total" || column.Name == "Fecha"
|| column.Name == "NombreCliente" || column.Name == "Cuit";
}
}
private void BtnAdd_Click(object sender, EventArgs e)
{
var form = new FrmFactura();
form.ShowDialog();
ActualizarGrilla();
ActualizarGrillas();
}
private void ConfigurarDataGridViewDetalle()
{
dgvDetalles.AutoGenerateColumns = false;
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Producto",
HeaderText = "Producto",
Name = "Producto"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Cantidad",
HeaderText = "Cantidad",
Name = "Cantidad"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "PrecioUnitario",
HeaderText = "PrecioUnitario",
Name = "PrecioUnitario"
});
dgvDetalles.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Subtotal",
HeaderText = "Subtotal",
Name = "Subtotal"
});
}
private void ActualizarGrillaDetalles(ReadOnlyCollection<DetalleFactura> detalles)
private void ActualizarGrillaDetalles(Factura fac)
{
dgvDetalles.DataSource = null;
if (detalles.Any())
{
var loteDatos = detalles.Select(detalle => new
{
Producto = detalle.Producto.Nombre,
Cantidad = detalle.Cantidad,
Subtotal = detalle.Subtotal,
PrecioUnitario = detalle.Producto.Precio,
}).ToList();
dgvDetalles.DataSource = fac.Detalles;
dgvDetalles.DataSource = loteDatos;
foreach (DataGridViewColumn column in dgvDetalles.Columns)
{
column.Visible = column.Name == "Cantidad" || column.Name == "NombreProducto"
|| column.Name == "PrecioUnitario" || column.Name == "Subtotal";
}
}
private void dgvFacturas_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
if (dgvFacturas.SelectedRows.Count > 0 )
{
var selectedFactura = (Factura)dgvFacturas.Rows[e.RowIndex].DataBoundItem;
var detalles = ControladoraFacturas.Instance.ListarDetallesFactura(selectedFactura);
ActualizarGrillaDetalles(detalles);
var factura = ControladoraFacturas.Instance.ObtenerPorId((Factura)dgvFacturas.SelectedRows[0].DataBoundItem);
ActualizarGrillaDetalles(factura);
}
}

View File

@@ -80,6 +80,7 @@
//
numStock.Enabled = false;
numStock.Location = new Point(317, 269);
numStock.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 });
numStock.Name = "numStock";
numStock.Size = new Size(120, 23);
numStock.TabIndex = 13;