guardado hecho hasta ordenes de compra
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Controladora;
|
||||
using Entidades;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -13,31 +14,119 @@ namespace Vista
|
||||
{
|
||||
public partial class FrmOrdenDeCompra : Form
|
||||
{
|
||||
private OrdenDeCompra orden = new OrdenDeCompra();
|
||||
private List<DetalleOrdenDeCompra> detalles = new List<DetalleOrdenDeCompra>();
|
||||
private int detalleid = 0;
|
||||
public FrmOrdenDeCompra()
|
||||
{
|
||||
InitializeComponent();
|
||||
CargarDatos();
|
||||
}
|
||||
|
||||
private void CargarDatos()
|
||||
{
|
||||
dgvPresupuesto.DataSource = null;
|
||||
var listapresupuesto = ControladoraPresupuestos.Instance.Listar();
|
||||
dgvPresupuesto.DataSource = listapresupuesto;
|
||||
|
||||
numId.Value = (listapresupuesto.Count > 0) ?
|
||||
listapresupuesto.Max(x => x.Id + 1) :
|
||||
var listaOrden = ControladoraOrdenDeCompras.Instance.Listar();
|
||||
numId.Value = (listaOrden.Count > 0) ?
|
||||
listaOrden.Max(x => x.Id + 1) :
|
||||
0;
|
||||
numId.Enabled = false;
|
||||
|
||||
//Asegúrate de que solo las columnas que deseas mostrar están visibles
|
||||
foreach (DataGridViewColumn column in dgvPresupuesto.Columns)
|
||||
{
|
||||
column.Visible = column.Name == "Id" || column.Name == "Fecha" || column.Name == "ProveedorNombre";
|
||||
}
|
||||
|
||||
dgvProveedor.DataSource = null;
|
||||
dgvProveedor.DataSource = ControladoraProveedores.Instance.Listar();
|
||||
|
||||
}
|
||||
|
||||
private void btnAddProducto_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (dgvPresupuesto.SelectedRows.Count > 0)
|
||||
{
|
||||
dgvProveedor.Enabled = false;
|
||||
foreach (DataGridViewRow selectedRow in dgvPresupuesto.SelectedRows)
|
||||
{
|
||||
Presupuesto? pres = new Presupuesto
|
||||
{
|
||||
Id = Convert.ToInt32(selectedRow.Cells["Id"].Value.ToString()),
|
||||
};
|
||||
pres = ControladoraPresupuestos.Instance.MostrarPresupuestoPorId(pres);
|
||||
|
||||
if (pres == null)
|
||||
{
|
||||
MessageBox.Show("No existe Presupuesto por ese Id");
|
||||
return;
|
||||
}
|
||||
|
||||
var listadetalle = ControladoraPresupuestos.Instance.ListarDetalles(pres);
|
||||
|
||||
foreach (var detalle in listadetalle)
|
||||
{
|
||||
|
||||
orden.AñadirDetalle(new DetalleOrdenDeCompra
|
||||
{
|
||||
Cantidad = detalle.Cantidad,
|
||||
Id = detalleid++,
|
||||
IdOrdenDeCompra = Convert.ToInt32(numId.Value),
|
||||
MontoCU = detalle.MontoCUPropuesto,
|
||||
Producto = detalle.Producto,
|
||||
presupuesto = pres,
|
||||
});
|
||||
}
|
||||
|
||||
dgvOrdendeCompra.DataSource = null;
|
||||
dgvOrdendeCompra.DataSource = orden.MostrarDetalles();
|
||||
foreach (DataGridViewColumn column in dgvOrdendeCompra.Columns)
|
||||
{
|
||||
column.Visible = column.Name == "IdPresupuesto" || column.Name == "NombreProducto" || column.Name == "MontoCU"
|
||||
|| column.Name == "Cantidad"|| column.Name == "SubTotal";
|
||||
}
|
||||
numTotal.Value = Convert.ToDecimal(orden.MontoTotal);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Por favor, selecciona una fila para añadir Proveedor al producto.");
|
||||
}
|
||||
}
|
||||
|
||||
private void dgvPresupuesto_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
// Verifica si hay filas seleccionadas en dgvPresupuesto
|
||||
if (dgvPresupuesto.SelectedRows.Count == 0) return;
|
||||
|
||||
// Recupera el ID del presupuesto seleccionado
|
||||
int presupuestoId = Convert.ToInt32(dgvPresupuesto.SelectedRows[0].Cells["Id"].Value.ToString());
|
||||
var presupuesto = new Presupuesto
|
||||
{
|
||||
Id = presupuestoId,
|
||||
};
|
||||
|
||||
// Obtén los detalles del presupuesto usando el método de la controladora
|
||||
var detallesPresupuesto = ControladoraPresupuestos.Instance.ListarDetalles(presupuesto);
|
||||
|
||||
// Crea una lista para mostrar el proveedor y los detalles del presupuesto
|
||||
var proveedorYDetalles = detallesPresupuesto.Select(d => new
|
||||
{
|
||||
|
||||
d.NombreDelProducto,
|
||||
d.MontoCUPropuesto,
|
||||
d.Cantidad,
|
||||
d.Subtotal
|
||||
}).ToList();
|
||||
|
||||
// Asigna la lista de proveedor y detalles al DataSource de dgvProveedor
|
||||
dgvDetalle.DataSource = null;
|
||||
dgvDetalle.DataSource = proveedorYDetalles;
|
||||
|
||||
foreach (DataGridViewColumn column in dgvDetalle.Columns)
|
||||
{
|
||||
column.Visible = column.Name == "NombreDelProducto" || column.Name == "MontoCUPropuesto"
|
||||
|| column.Name == "Cantidad" || column.Name == "Subtotal";
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCerrar_Click(object sender, EventArgs e)
|
||||
@@ -45,9 +134,72 @@ namespace Vista
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private bool Validaciones()
|
||||
{
|
||||
string ret = "";
|
||||
if (numId.Value < 0) ret += "El numero de Id es invalido\n";
|
||||
|
||||
if (orden.MostrarDetalles().Count == 0) ret += "No hay detalles en la orden de compra\n";
|
||||
|
||||
if (ret == "")
|
||||
{
|
||||
return false;
|
||||
}
|
||||
MessageBox.Show(ret);
|
||||
return true;
|
||||
}
|
||||
private void btnAceptar_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Validaciones()) return;
|
||||
|
||||
orden.Id = Convert.ToInt32(numId.Value);
|
||||
orden.Proveedor = (Proveedor)dgvProveedor.SelectedRows[0].DataBoundItem;
|
||||
string msg = ControladoraOrdenDeCompras.Instance.Añadir(orden);
|
||||
MessageBox.Show(msg);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void dgvProveedor_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (dgvProveedor.SelectedRows.Count == 0) return;
|
||||
|
||||
var selectedRow = dgvProveedor.SelectedRows[0];
|
||||
var proveedor = new Proveedor
|
||||
{
|
||||
Cuit = Convert.ToInt32(selectedRow.Cells["Cuit"].Value),
|
||||
};
|
||||
|
||||
var presupuestos = ControladoraPresupuestos.Instance.ListarPresupuestosPorProveedor(proveedor);
|
||||
|
||||
dgvPresupuesto.DataSource = null;
|
||||
dgvPresupuesto.DataSource = presupuestos;
|
||||
|
||||
foreach (DataGridViewColumn column in dgvPresupuesto.Columns)
|
||||
{
|
||||
column.Visible = column.Name == "Id" || column.Name == "Fecha"
|
||||
|| column.Name == "ProveedorNombre";
|
||||
}
|
||||
}
|
||||
|
||||
private void btnrmPresupuesto_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (dgvOrdendeCompra.SelectedRows.Count == 0) return;
|
||||
var selectedRow = dgvOrdendeCompra.SelectedRows[0];
|
||||
|
||||
var presupuesto = new Presupuesto
|
||||
{
|
||||
Id = Convert.ToInt32(selectedRow.Cells["IdPresupuesto"].Value.ToString()),
|
||||
};
|
||||
|
||||
var listaAEliminar = orden.MostrarDetalles().Where(x => x.IdPresupuesto == presupuesto.Id).ToList();
|
||||
foreach (var detalle in listaAEliminar)
|
||||
{
|
||||
orden.EliminarDetalle(detalle);
|
||||
}
|
||||
|
||||
dgvOrdendeCompra.DataSource = null;
|
||||
dgvOrdendeCompra.DataSource = orden.MostrarDetalles();
|
||||
numTotal.Value = Convert.ToDecimal(orden.MontoTotal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user