From 8b80e421a4fda80c024f17c1da8d8f229fb29238 Mon Sep 17 00:00:00 2001 From: fedpo Date: Tue, 6 Aug 2024 15:11:39 +0100 Subject: [PATCH] falta que se actualize numProducto y los infomes --- Controladora/ControladoraFacturas.cs | 52 ++++---- Controladora/ControladoraInformes.cs | 42 ++++++ Controladora/ControladoraLotes.cs | 41 ++++-- Controladora/ControladoraOrdenesDeCompra.cs | 35 +++++ Controladora/ControladoraPresupuestos.cs | 40 +++--- Controladora/ControladoraProductos.cs | 13 ++ Controladora/ControladoraProveedores.cs | 1 + Controladora/ControladoraRemito.cs | 43 +++++- {Informes => Entidades}/ConfigEmail.cs | 2 + Entidades/Lote.cs | 8 ++ Entidades/OrdenDeCompra.cs | 1 + Entidades/Producto.cs | 3 +- Entidades/Remito.cs | 7 + Informes/InformeEmail.cs | 2 + Informes/bin/Debug/net6.0/Entidades.dll | Bin 16384 -> 17408 bytes Informes/bin/Debug/net6.0/Entidades.pdb | Bin 15996 -> 16476 bytes Informes/bin/Debug/net6.0/Informes.dll | Bin 9216 -> 8704 bytes Informes/bin/Debug/net6.0/Informes.pdb | Bin 11400 -> 11212 bytes .../Informes.csproj.AssemblyReference.cache | Bin 91956 -> 91956 bytes .../Informes.csproj.CoreCompileInputs.cache | 2 +- Informes/obj/Debug/net6.0/Informes.dll | Bin 9216 -> 8704 bytes Informes/obj/Debug/net6.0/Informes.pdb | Bin 11400 -> 11212 bytes Informes/obj/Debug/net6.0/ref/Informes.dll | Bin 5632 -> 5632 bytes Informes/obj/Debug/net6.0/refint/Informes.dll | Bin 5632 -> 5632 bytes Modelo/RepositorioLote.cs | 24 ++++ Modelo/RepositorioOrdenDeCompra.cs | 15 +++ Modelo/RepositorioRemito.cs | 7 +- Vista/AddProducto.Designer.cs | 122 ------------------ Vista/AddProducto.cs | 30 ----- Vista/AddProducto.resx | 120 ----------------- Vista/FrmCliente.Designer.cs | 5 +- Vista/FrmCliente.cs | 7 - Vista/FrmCliente.resx | 2 +- Vista/FrmFactura.cs | 6 +- Vista/FrmInforme.Designer.cs | 13 ++ Vista/FrmInforme.cs | 21 ++- Vista/FrmOrdenDeCompra.cs | 12 +- Vista/FrmPresupuesto.Designer.cs | 9 +- Vista/FrmPresupuesto.cs | 44 +++---- Vista/FrmPresupuestos.Designer.cs | 1 - Vista/FrmPresupuestos.cs | 11 +- Vista/FrmProducto.cs | 16 ++- Vista/FrmProductos.Designer.cs | 35 ++++- Vista/FrmProductos.cs | 8 +- Vista/FrmRemito.Designer.cs | 117 ++++++++++++++++- Vista/FrmRemito.cs | 74 ++++++++++- Vista/FrmRemito.resx | 52 ++++---- Vista/FrmRemitos.Designer.cs | 85 +++++++++++- Vista/FrmRemitos.cs | 46 ++++++- Vista/PantallaPrincipal.Designer.cs | 16 +-- Vista/Vista.csproj.user | 3 - 51 files changed, 721 insertions(+), 472 deletions(-) create mode 100644 Controladora/ControladoraInformes.cs rename {Informes => Entidades}/ConfigEmail.cs (82%) delete mode 100644 Vista/AddProducto.Designer.cs delete mode 100644 Vista/AddProducto.cs delete mode 100644 Vista/AddProducto.resx diff --git a/Controladora/ControladoraFacturas.cs b/Controladora/ControladoraFacturas.cs index 201339a..1301f1a 100644 --- a/Controladora/ControladoraFacturas.cs +++ b/Controladora/ControladoraFacturas.cs @@ -10,21 +10,24 @@ namespace Controladora { if (t == null) return "La Factura es nula, fallo la carga"; - if (RepositorioFactura.Instance.ExistePorId(t.Id)) - { - return $"La Factura con el ID {t.Id} ya existe"; - } + if (RepositorioFactura.Instance.ExistePorId(t.Id)) return $"La Factura con el ID {t.Id} ya existe"; + if (t.Cliente == null || t.Cliente.Cuit == 0) return "Debe seleccionar un cliente antes de agregar la factura"; - // Verificar si el cliente está seleccionado - if (t.Cliente == null || t.Cliente.Cuit == 0) + string checkstock = ""; + foreach (var detalle in t.MostrarDetalles()) { - return "Debe seleccionar un cliente antes de agregar la factura"; + if (detalle.Cantidad > ControladoraLotes.Instance.MostrarStockDeProducto(detalle.Producto)) + { + checkstock += $"No hay existencias en stock para realizar la venta de {detalle.Producto.Nombre}\n"; + } } + if (checkstock != "") return checkstock; try { bool resultado = RepositorioFactura.Instance.Add(t); - return resultado ? + string resultadolote = ControladoraLotes.Instance.DisminuirStock(t.MostrarDetalles()); + return (resultado && (resultadolote == "Se Descontaron los productos")) ? $"La Factura con el ID {t.Id} se cargó correctamente" : $"Falló la carga de la Factura con el ID {t.Id}"; } @@ -35,24 +38,6 @@ namespace Controladora } } - public string Eliminar(Factura t) - { - if (t == null) return "La Factura es nula, fallo la carga"; - - return (RepositorioFactura.Instance.Del(t)) ? - $"La Factura con el ID {t.Id} se eliminó correctamente" : - $"Falló la eliminación de la Factura con el ID {t.Id}"; - } - - public string Modificar(Factura t) - { - if (t == null) return "La Factura es nula, fallo la carga"; - - return (RepositorioFactura.Instance.Mod(t)) ? - $"La Factura con el ID {t.Id} se modificó correctamente" : - $"Falló la modificación de la Factura con el ID {t.Id}"; - } - public ReadOnlyCollection Listar() { return RepositorioFactura.Instance.Listar(); @@ -65,6 +50,21 @@ namespace Controladora return facturaalistar.MostrarDetalles(); } + + public ReadOnlyCollection ListarProductos() + { + return RepositorioProductos.Instance.Listar() + .Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); + } + + public ReadOnlyCollection ListarClientes() + { + return RepositorioClientes.Instance.Listar().Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); + } } } \ No newline at end of file diff --git a/Controladora/ControladoraInformes.cs b/Controladora/ControladoraInformes.cs new file mode 100644 index 0000000..96c60c3 --- /dev/null +++ b/Controladora/ControladoraInformes.cs @@ -0,0 +1,42 @@ +using Informes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json; +using System.Threading.Tasks; + +namespace Controladora +{ + public class ControladoraInformes : Singleton + { + const string configpath = "settings.json"; + + public void GuardarConfig(ConfigEmail config) + { + try + { + string json = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true }); + File.WriteAllText(configpath, json); + + } + catch (IOException ex) { throw; } + } + + public ConfigEmail RecuperarConfig() + { + try + { + if (!File.Exists(configpath)) + { + string json = JsonSerializer.Serialize(new ConfigEmail { EmailAddr = "", EmailPass = "", EmailTarget = new List() }, new JsonSerializerOptions { WriteIndented = true }); + File.WriteAllText(configpath, json); + } + } + catch (IOException ex) { throw; } + + string jsonString = File.ReadAllText(configpath); + return JsonSerializer.Deserialize(jsonString); + } + } +} diff --git a/Controladora/ControladoraLotes.cs b/Controladora/ControladoraLotes.cs index ee190af..1e63170 100644 --- a/Controladora/ControladoraLotes.cs +++ b/Controladora/ControladoraLotes.cs @@ -11,6 +11,7 @@ namespace Controladora { public class ControladoraLotes : Singleton { + /* public string Añadir(Lote t) { if (t == null) return "El Lote es nulo, falló la carga"; @@ -64,21 +65,39 @@ namespace Controladora return $"Ocurrió un error inesperado: {ex.Message}"; } } + */ - /*public ReadOnlyCollection ListarPorFacturaId(int facturaId) + public string DisminuirStock(ReadOnlyCollection detalleFactura) { - try + var ret = false; + foreach (var detalle in detalleFactura) { - var lotes = RepositorioLote.Instance.Listar(); - var lotesPorFactura = lotes.Where(lote => lote.Id == facturaId).ToList(); - return new ReadOnlyCollection(lotesPorFactura); + if (detalle == null) return "El detalle es nulo"; + if (detalle.Producto.Id < 0) return "Esta mal cargada la Id de producto"; + var productos = RepositorioProductos.Instance.Listar(); + if (productos.Any(x => x.Id != detalle.Producto.Id)) return "No hay Productos con esa id"; + ret = RepositorioLote.Instance.DisminuirStock(detalle); + } - catch (Exception ex) - { - // Captura cualquier excepción no prevista - throw new InvalidOperationException($"Ocurrió un error inesperado: {ex.Message}"); - } - }*/ + + return (ret) ? + "Se Descontaron los productos": + "Se fallo al diminuir el stock"; + + } + + public int MostrarStockDeProducto(Producto producto) + { + if (producto == null) return -1; + if (producto.Id < 0) return -1; + var lotes = RepositorioLote.Instance.Listar(); + if (lotes.Any(x => x.Producto.Id != producto.Id)) return -1; // basicamente no hay productos con esa id + + var CantidadStock = lotes + .Where(x => x.Producto.Id == producto.Id) + .Sum(x=> x.Cantidad); + return CantidadStock; + } public ReadOnlyCollection Listar() { diff --git a/Controladora/ControladoraOrdenesDeCompra.cs b/Controladora/ControladoraOrdenesDeCompra.cs index bb17d4c..124d781 100644 --- a/Controladora/ControladoraOrdenesDeCompra.cs +++ b/Controladora/ControladoraOrdenesDeCompra.cs @@ -46,6 +46,41 @@ namespace Controladora return ordenalistar.MostrarDetalles(); } + + public Presupuesto? MostrarPresupuestoPorId(Presupuesto? presupuesto) + { + if (presupuesto == null) return null; + if (presupuesto.Id < 0) return null; + var pres = RepositorioPresupuesto.Instance.Listar().First(x => x.Id == presupuesto.Id); + return pres; + } + + public object ListarProveedores() + { + return RepositorioProveedor.Instance.Listar() + .Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); + } + + public ReadOnlyCollection ListarDetallesDePresupuesto(Presupuesto presupuesto) + { + Presupuesto pres = RepositorioPresupuesto.Instance.Listar().First(x => x.Id == presupuesto.Id); + if (pres == null) return new ReadOnlyCollection(new List()); + return pres.MostrarDetalles(); + } + + public object ListarPresupuestosPorProveedorHabilitados(Proveedor proveedor) + { + if (proveedor == null) return null; + if (proveedor.Cuit < 0) return null; + var presupuestos = RepositorioPresupuesto.Instance.Listar() + .Where(x => x.Proveedor.Cuit == proveedor.Cuit) + .Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); + return presupuestos; + } } } diff --git a/Controladora/ControladoraPresupuestos.cs b/Controladora/ControladoraPresupuestos.cs index 284e2b7..762638b 100644 --- a/Controladora/ControladoraPresupuestos.cs +++ b/Controladora/ControladoraPresupuestos.cs @@ -49,15 +49,6 @@ namespace Controladora .AsReadOnly(); } - public ReadOnlyCollection ListarAceptado() - { - return RepositorioPresupuesto.Instance.Listar() - .Where(x => x.Habilitado == true) - .Where(x => x.Aceptado == true) - .ToList() - .AsReadOnly(); - } - public ReadOnlyCollection ListarDetalles(Presupuesto presupuesto) { Presupuesto pres = RepositorioPresupuesto.Instance.Listar().First(x=> x.Id == presupuesto.Id); @@ -66,25 +57,26 @@ namespace Controladora } - public Presupuesto? MostrarPresupuestoPorId(Presupuesto presupuesto) + public object ListarProductosPorProveedor(Proveedor proveedor) { - if (presupuesto == null) return null; - if (presupuesto.Id < 0) return null; - var pres = RepositorioPresupuesto.Instance.Listar().First(x => x.Id == presupuesto.Id); - return pres; - - } - - public ReadOnlyCollection? ListarPresupuestosPorProveedor(Proveedor proveedor) - { - if (proveedor == null) return null; - if (proveedor.Cuit < 0) return null; - var presupuestos = RepositorioPresupuesto.Instance.Listar() - .Where(x => x.Proveedor.Cuit == proveedor.Cuit) + if (proveedor == null) return new List().AsReadOnly(); + if (proveedor.Cuit < 0) return new List().AsReadOnly(); + var productos = RepositorioProductos.Instance + .Listar() + .Where(x => x.ListarProveedores() + .Any(x => x.Cuit == proveedor.Cuit)) .ToList() .AsReadOnly(); - return presupuestos; + return productos; + } + + public object ListarProveedores() + { + return RepositorioProveedor.Instance.Listar() + .Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); } } } diff --git a/Controladora/ControladoraProductos.cs b/Controladora/ControladoraProductos.cs index 957a294..eec8097 100644 --- a/Controladora/ControladoraProductos.cs +++ b/Controladora/ControladoraProductos.cs @@ -60,5 +60,18 @@ namespace Controladora } return null; } + + public ReadOnlyCollection ListarProveedores() + { + return RepositorioProveedor.Instance.Listar() + .Where(x => x.Habilitado == true) + .ToList() + .AsReadOnly(); + } + + public ReadOnlyCollection ListarCategorias() + { + return RepositorioCategoria.Instance.Listar(); + } } } \ No newline at end of file diff --git a/Controladora/ControladoraProveedores.cs b/Controladora/ControladoraProveedores.cs index d68de48..f9fd022 100644 --- a/Controladora/ControladoraProveedores.cs +++ b/Controladora/ControladoraProveedores.cs @@ -49,5 +49,6 @@ namespace Controladora .ToList() .AsReadOnly(); } + } } diff --git a/Controladora/ControladoraRemito.cs b/Controladora/ControladoraRemito.cs index dc1aa06..4746c7f 100644 --- a/Controladora/ControladoraRemito.cs +++ b/Controladora/ControladoraRemito.cs @@ -11,15 +11,18 @@ namespace Controladora return RepositorioRemito.Instance.Listar(); } - public string Añadir(Remito t) + public string Añadir(Remito t, OrdenDeCompra orden ) { if (t == null) return "El Remito es nulo fallo la carga"; if (t.Id < 0) return "El id Esta Mal Cargado"; + var retMarcarOrdenEntregada = RepositorioOrdenDeCompra.Instance.MarcarEntregado(orden); + if (retMarcarOrdenEntregada == false) return "La orden Esta Mal Cargada"; var retRemito = RepositorioRemito.Instance.Add(t); + if (retRemito == false) return "El Remito Esta Mal Cargado"; var retLotes = RepositorioLote.Instance.Add(t); - return (!retLotes) ? + return (retLotes) ? $"El remito {t.Id} se cargo correctamente": $"Fallo la carga del remito {t.Id}"; @@ -40,6 +43,42 @@ namespace Controladora $"Fallo la Eliminacion del remito {t.Id}"; */ } + + public object ListarLotes() + { + return RepositorioLote.Instance.Listar().Where(x => x.Habilitado == true) + .ToList().AsReadOnly(); + } + + public ReadOnlyCollection ListarOrdenesSinEntregar() + { + return RepositorioOrdenDeCompra.Instance.Listar() + .Where(x => x.Entregado == false) + .ToList() + .AsReadOnly(); + } + public object ListarDetallesOrdenesDeCompra(OrdenDeCompra orden) + { + var ordenalistar = RepositorioOrdenDeCompra.Instance.Listar().First(x => x.Id == orden.Id); + if (ordenalistar == null) return new ReadOnlyCollection(new List()); + return ordenalistar.MostrarDetalles(); + + } + + public OrdenDeCompra? MostrarOrdenDeCompraPorId(OrdenDeCompra ordenDeCompra) + { + if (ordenDeCompra == null) return null; + if (ordenDeCompra.Id < 0) return null; + return RepositorioOrdenDeCompra.Instance.Listar().First(x => x.Id == ordenDeCompra.Id); + } + + public ReadOnlyCollection ListarLotesPorRemito(Remito rem) + { + var remalistar = RepositorioRemito.Instance.Listar().First(x => x.Id == rem.Id); + if (remalistar == null) return new ReadOnlyCollection(new List()); + return remalistar.MostrarLotes(); + + } } } \ No newline at end of file diff --git a/Informes/ConfigEmail.cs b/Entidades/ConfigEmail.cs similarity index 82% rename from Informes/ConfigEmail.cs rename to Entidades/ConfigEmail.cs index 0b6e860..5fcc7e7 100644 --- a/Informes/ConfigEmail.cs +++ b/Entidades/ConfigEmail.cs @@ -6,5 +6,7 @@ public string EmailPass { get; set; } public List EmailTarget { get; set; } + public bool Informar { get; set; } + } } \ No newline at end of file diff --git a/Entidades/Lote.cs b/Entidades/Lote.cs index abfc822..697ca9c 100644 --- a/Entidades/Lote.cs +++ b/Entidades/Lote.cs @@ -3,8 +3,16 @@ namespace Entidades { public class Lote: Detalle { + public int IdRemito { get; set; } public DateTime Fecha { get; set; } public bool Habilitado { get; set; } + public string NombreProducto + { + get + { + return Producto.Nombre; + } + } } } diff --git a/Entidades/OrdenDeCompra.cs b/Entidades/OrdenDeCompra.cs index 95a0df6..67232de 100644 --- a/Entidades/OrdenDeCompra.cs +++ b/Entidades/OrdenDeCompra.cs @@ -8,6 +8,7 @@ namespace Entidades public int Id { get; set; } private List detalles = new List(); public Proveedor Proveedor { get; set; } + public bool Entregado { get; set; } public void AñadirDetalle(DetalleOrdenDeCompra detalle) { diff --git a/Entidades/Producto.cs b/Entidades/Producto.cs index 4a8371f..2f1e35c 100644 --- a/Entidades/Producto.cs +++ b/Entidades/Producto.cs @@ -21,7 +21,7 @@ namespace Entidades } } - public List proveedores = new List(); + private List proveedores = new List(); public void AñadirProveedor(Proveedor proveedor) { @@ -38,6 +38,7 @@ namespace Entidades { return proveedores.AsReadOnly(); } + private List categorias = new List(); public void AñadirCategoria(Categoria cat) { diff --git a/Entidades/Remito.cs b/Entidades/Remito.cs index 259b0b6..e74a9ae 100644 --- a/Entidades/Remito.cs +++ b/Entidades/Remito.cs @@ -23,5 +23,12 @@ namespace Entidades throw; } } + public string NombreProveedor + { + get + { + return Proveedor.Nombre; + } + } } } diff --git a/Informes/InformeEmail.cs b/Informes/InformeEmail.cs index de6952d..294978e 100644 --- a/Informes/InformeEmail.cs +++ b/Informes/InformeEmail.cs @@ -12,6 +12,8 @@ namespace Informes /// Envia Informes por Email /// + public bool Informar { get; set; } + private static InformeEmail instance = new(); public static InformeEmail Instance { diff --git a/Informes/bin/Debug/net6.0/Entidades.dll b/Informes/bin/Debug/net6.0/Entidades.dll index 971a216f2d698c3e629231f0a4697d9ef7d9e4c8..c22ba912c98895b7ba7ad5b2bc071666daa0fc7d 100644 GIT binary patch literal 17408 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 FzX7lGg$w`y literal 16384 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 O{}qk-|A(5-z<&d+9#L-q diff --git a/Informes/bin/Debug/net6.0/Entidades.pdb b/Informes/bin/Debug/net6.0/Entidades.pdb index 8d0e812fdd8e3db00ec5084fae0c3ca4e7795d96..f6c8ba5fa53d1d7b670f6bbd1606542279089650 100644 GIT binary patch delta 4112 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 ZUD?uoy7DaK;F?#;VNQC5t`_nw=0Ale=BEGv diff --git a/Informes/bin/Debug/net6.0/Informes.dll b/Informes/bin/Debug/net6.0/Informes.dll index 1f4c86d9326709436a83a354f4ba9a588a0b48ff..10d60d9bf5acb687e2e6f9aebadf57a34c4d4c08 100644 GIT binary patch delta 2609 zcmZ8j3v5)y8vf>-Ij6hZa=LrATie}Iw%gKf>4Q>5S)LWxL-)J8?o9iuSRTc{_QZ~p)L zXTJH*oPTC_Wbw$to&QYLulnEHC_G;yl`Ix*K%9h~CtuBsKC;Rg$N(29q64ThM{A-b z>wpsaI~M>e{Tid$Uo9F!Z&Z>>vc>)FqDfTwPm2bT^uH9T%KNCGp2chiENraf$TC3q zk(p=s%Z)OQzQQ;=jA)xcF$W1Cf??@@Wy}(#{vSq_i~u2jmbpI1^g;nIK^&|icrytI zmV4E@KgFA+`oSbIDkIYLYLp+5r+BHnVaRllFX+|g-GHYA2boaFo2@7WJhhhR5~9JT z3OAUJDl-(3UOixiA|bEAFP5pyiHT`FG5ZRzF|U_>ho+fsB%hw6fb`mWo52~k>UmW_~Ncex6&zro!mw@J~)@&4A;y)X<}oVUnd0D40!Wsc+Fr1Uw~k?WI!#+vJHH(q||M7C?v@iFC%l z-KsrZCCddbKWUs{rn#r~ltvA|{^WZUH2h;$rb%x>Q}V?77hY0jI+@5Ng{6A!cIQm; znA1AQYOzP8KV~=mWvKUl@mp8#Jaho~QAVobG-WDtwbr5<&Al+AmoO?-mL_()JpP+BifE z@w}{rgLXKUgFDOy%Z0RuO&6vZHZQ^i^QMkW5R0W!*eR8AR4XS$0_E5%W3n7OtXzzN zZXGD)VsR`tk6LlG*heY)I+W;>mck#*VY3@cE_m0-F?#oF@7BP#I7=AFy^s&06CHGK;f(=o z!E7uM5=VGpC~u?LD=b`6r@VYJHu|(TTJfR0OsK0gE@8??R0AF*4U$QwZ=Z8jm^XuMu`brt(l|fw$H&aRGSO&Fn+WyX89hF z>rjSL+k+6FVH52RdozM!1ykIsXYECu9j2YI1!vtLb3^Rzw}ucA2jvz9Hdy~4?!yk^ zggJ)&dfI**vck0YX{MJFjU2C-ZE`oUUfzp&Vhg|Oetcr?=JM}Y4b;abs(D6S_aa0{^(cM+TLIq_5+C7y*JiCqvzE0$<}1u@r!H7GHO}vXkkRz&mPJSBn1#*H3i@AD0;g?zm!s14K2&d1?AIy`- zRq|#~6Q*-9$t!(285V6?@Z^DEk<|J%SjN3M#`cRJoUtp=J#eL$y{<1i{>_XDGdk&E z@QO{B#JTRst|CZBJ)BEvHF~X6Wa%v2 z9=9iQonx!@+#Xx4zp6#t!>UxcJlXj3 zQ*Yna`Pd8FT9zF49`ZY?R<#$%!`~K2rR^d7p9hXSUw!<7!NjeFe`QMh31ufoYs!uL ZGXB?9e;s$Ke>IKQGUJid_hPiI=>IjHqL%;w delta 2937 zcmZ`*ZEO_R6+Lg}&FpyX47=kG)?Q%RX&^4_u1Wx=_4BY&i5rj}Bl zN-1LjXV)u%V?)p`+e9pQQr3v_U|g1G8)+&0(wp2YPo$biieM+6Bdy5XPIjATj+`;M zNzE#PXFC2e3O;)woNCRfM!vYk-lk04;6{4?mq|~(Q`yZqd)F;<=N%khg&BTq-jOeE zzJ}CYD#YCcRwPo(gJG-YZdEK3e(fed!&D7n&&Nnw{}Us)V6AA>ThN%evHtubRi$%< zJep5cZ@0M&$}Vfpuy5>9I~cMX?~&}Wn!Vh3j;||u^X`$MuMcLpkEpy2IKUTHvt=`m zc>t%O=7B8_uHpCw`HR7ny|kXMN*^swW^V%QGA!qh-2wKyYFRyof@G*Pd&Ok4^09H= zh+8(AO@-HlV=cg1)f`x7>@;nZniVYVq@ggaaj(YrHMVLzC)C{4W|%&+mcn<1!lOv{b3 z48OKE(z;LU*D*~64w|)g1@_prHur+jJj_@Mo8(!u3XjvrjYlVAHCt zDJOu z>_KE_Q7nc@zGpuLAztLlPU{J$;oA|)PuKzl;=24MqEn2COVm8aKuy?>&G$whpeva$< zz}foxIwdnaweMRByX>cl4I(SlAHT_tvWW(-K6OAHqJaW3!O}vMi^v{E8s~7&@3?hx zR5jtvPp`iDZfG2_Q#+_Tb?$M*sbHe8IGwvnZni{u`6#bjbsO37x9S|ROr8lNXE5n}zdXkeNIdX%`|B{2{uXxX2qe5D%ukipi7SPAl^9C+|J5n)up^`4Po;gwjW-Ui`12`G+yP`L$0lIc|Equ;q|Dnj^mViqd#TfPTy6!$&=f|F!^svh4Aq0aU#PTHrD<2BVhbTzsyEv(b@1F1b&bjB_bMLjmh5STp z{2mi^ULq>nh%5rno++LjIer?HX5i_{%VlX6JfnCjcO;4U2l@>*bRHTW9fJ0o;a`tm z-#+-Tesxd!gBtzDes#$3&%C(vo}{{Q7L^ z!qAoW{Cce~{iHN@;Qh$55Wlsk+jWd}XKSGA#BlMvi0hec?te!4g{bQN|2vfq@jR=ntHhrZ@GUxU0*CtFP@tGT#GbM1U(*8eSz-jYQ@;>6`#VdqJ1m} ySRQ3rU^&LJ!ty4|2Q2F>7g#Q_T(kMP{1d}+p!P1}WzLFkJsG|z648`xyYUx|hkgJ6 delta 888 zcmZ9KZAg<*6vxlmvv+gTP#cIjeA}CehFXM%mS*A?hnNKxHPd0uO{bL-xF;eFA~GHX zgQPOr1}TLWWSZT|6{a9wHS{ z{xH!p+)jvF27=vwZ$Cm(OOVL5wvZlivxpm78|&Z)!KDuH9$&x%E~|BZap(SOy6lS% ze*L(`{CvLt8Pe32Ib|^Di5RiiUz<=mTt}2eI}qeS;vn=8ciq)ju8;;Gs?1OdgahNN ztFhNUl%9dh@YnDU@NLXg&B((?;mIG<;UcEv&`Br=4MB2|s8i8sk&1?FD!O7 zS-_?m6zGuJ*0{~-#^s1?sEx7>uN;+R*3fC& zO^ki^1&r_PF^stmWmq*GGVKlcySlygJ;%CzB^~|xc2*nHEQKZ3!qgwxV@pSOyMI2+ zdGo}%_4``ql*7-zD=Ougor|By-01HL1baG@S9-1Y?pt0?&rBId%1i~<-e!1~mp-o+ z-yW#S+21>{uoA110-h6^x=zn2uhy^hO4c-U;!ydPd`G@3&nnlY=H%obWmVdhlstDt zsZoz}#oT-KBwHQ@4_u%HqOMtAm9?p|c4TmJbZEY#Z|;(IEYGFM7k{K$V~?A5owVzu zbH$Uo(lop}Z&sX+7sV4CzQN(g9Dd5-B@V|p{EZ`ej%0Jh#gR&mG^nyzUcp;))?AJ= TgW0WYcQx}_<-DswG8^bG`h26m diff --git a/Informes/obj/Debug/net6.0/Informes.csproj.AssemblyReference.cache b/Informes/obj/Debug/net6.0/Informes.csproj.AssemblyReference.cache index 8357c59594784d5a1ae62e2504b17b182e1d61c7..0186a5068c68ba00c74ceef2cf1c5bb1cb55da2f 100644 GIT binary patch delta 36 scmdmTj&;j9)(Mep2bzsl6}D}R*JqskfiYxqA7fIp3)6NNCdLmb02ihXCIA2c delta 36 scmdmTj&;j9)(MepCig5dZfxBcug^I75o6NiKE{w{7pCnlOpG5=04T2x<^TWy diff --git a/Informes/obj/Debug/net6.0/Informes.csproj.CoreCompileInputs.cache b/Informes/obj/Debug/net6.0/Informes.csproj.CoreCompileInputs.cache index 49630e3..1635e53 100644 --- a/Informes/obj/Debug/net6.0/Informes.csproj.CoreCompileInputs.cache +++ b/Informes/obj/Debug/net6.0/Informes.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -100fa21bf2f76b06ab70964d65200e354f5837e3 +b8f7575a0ad69c743b6dc87a6ac87340793ee335 diff --git a/Informes/obj/Debug/net6.0/Informes.dll b/Informes/obj/Debug/net6.0/Informes.dll index 1f4c86d9326709436a83a354f4ba9a588a0b48ff..10d60d9bf5acb687e2e6f9aebadf57a34c4d4c08 100644 GIT binary patch delta 2609 zcmZ8j3v5)y8vf>-Ij6hZa=LrATie}Iw%gKf>4Q>5S)LWxL-)J8?o9iuSRTc{_QZ~p)L zXTJH*oPTC_Wbw$to&QYLulnEHC_G;yl`Ix*K%9h~CtuBsKC;Rg$N(29q64ThM{A-b z>wpsaI~M>e{Tid$Uo9F!Z&Z>>vc>)FqDfTwPm2bT^uH9T%KNCGp2chiENraf$TC3q zk(p=s%Z)OQzQQ;=jA)xcF$W1Cf??@@Wy}(#{vSq_i~u2jmbpI1^g;nIK^&|icrytI zmV4E@KgFA+`oSbIDkIYLYLp+5r+BHnVaRllFX+|g-GHYA2boaFo2@7WJhhhR5~9JT z3OAUJDl-(3UOixiA|bEAFP5pyiHT`FG5ZRzF|U_>ho+fsB%hw6fb`mWo52~k>UmW_~Ncex6&zro!mw@J~)@&4A;y)X<}oVUnd0D40!Wsc+Fr1Uw~k?WI!#+vJHH(q||M7C?v@iFC%l z-KsrZCCddbKWUs{rn#r~ltvA|{^WZUH2h;$rb%x>Q}V?77hY0jI+@5Ng{6A!cIQm; znA1AQYOzP8KV~=mWvKUl@mp8#Jaho~QAVobG-WDtwbr5<&Al+AmoO?-mL_()JpP+BifE z@w}{rgLXKUgFDOy%Z0RuO&6vZHZQ^i^QMkW5R0W!*eR8AR4XS$0_E5%W3n7OtXzzN zZXGD)VsR`tk6LlG*heY)I+W;>mck#*VY3@cE_m0-F?#oF@7BP#I7=AFy^s&06CHGK;f(=o z!E7uM5=VGpC~u?LD=b`6r@VYJHu|(TTJfR0OsK0gE@8??R0AF*4U$QwZ=Z8jm^XuMu`brt(l|fw$H&aRGSO&Fn+WyX89hF z>rjSL+k+6FVH52RdozM!1ykIsXYECu9j2YI1!vtLb3^Rzw}ucA2jvz9Hdy~4?!yk^ zggJ)&dfI**vck0YX{MJFjU2C-ZE`oUUfzp&Vhg|Oetcr?=JM}Y4b;abs(D6S_aa0{^(cM+TLIq_5+C7y*JiCqvzE0$<}1u@r!H7GHO}vXkkRz&mPJSBn1#*H3i@AD0;g?zm!s14K2&d1?AIy`- zRq|#~6Q*-9$t!(285V6?@Z^DEk<|J%SjN3M#`cRJoUtp=J#eL$y{<1i{>_XDGdk&E z@QO{B#JTRst|CZBJ)BEvHF~X6Wa%v2 z9=9iQonx!@+#Xx4zp6#t!>UxcJlXj3 zQ*Yna`Pd8FT9zF49`ZY?R<#$%!`~K2rR^d7p9hXSUw!<7!NjeFe`QMh31ufoYs!uL ZGXB?9e;s$Ke>IKQGUJid_hPiI=>IjHqL%;w delta 2937 zcmZ`*ZEO_R6+Lg}&FpyX47=kG)?Q%RX&^4_u1Wx=_4BY&i5rj}Bl zN-1LjXV)u%V?)p`+e9pQQr3v_U|g1G8)+&0(wp2YPo$biieM+6Bdy5XPIjATj+`;M zNzE#PXFC2e3O;)woNCRfM!vYk-lk04;6{4?mq|~(Q`yZqd)F;<=N%khg&BTq-jOeE zzJ}CYD#YCcRwPo(gJG-YZdEK3e(fed!&D7n&&Nnw{}Us)V6AA>ThN%evHtubRi$%< zJep5cZ@0M&$}Vfpuy5>9I~cMX?~&}Wn!Vh3j;||u^X`$MuMcLpkEpy2IKUTHvt=`m zc>t%O=7B8_uHpCw`HR7ny|kXMN*^swW^V%QGA!qh-2wKyYFRyof@G*Pd&Ok4^09H= zh+8(AO@-HlV=cg1)f`x7>@;nZniVYVq@ggaaj(YrHMVLzC)C{4W|%&+mcn<1!lOv{b3 z48OKE(z;LU*D*~64w|)g1@_prHur+jJj_@Mo8(!u3XjvrjYlVAHCt zDJOu z>_KE_Q7nc@zGpuLAztLlPU{J$;oA|)PuKzl;=24MqEn2COVm8aKuy?>&G$whpeva$< zz}foxIwdnaweMRByX>cl4I(SlAHT_tvWW(-K6OAHqJaW3!O}vMi^v{E8s~7&@3?hx zR5jtvPp`iDZfG2_Q#+_Tb?$M*sbHe8IGwvnZni{u`6#bjbsO37x9S|ROr8lNXE5n}zdXkeNIdX%`|B{2{uXxX2qe5D%ukipi7SPAl^9C+|J5n)up^`4Po;gwjW-Ui`12`G+yP`L$0lIc|Equ;q|Dnj^mViqd#TfPTy6!$&=f|F!^svh4Aq0aU#PTHrD<2BVhbTzsyEv(b@1F1b&bjB_bMLjmh5STp z{2mi^ULq>nh%5rno++LjIer?HX5i_{%VlX6JfnCjcO;4U2l@>*bRHTW9fJ0o;a`tm z-#+-Tesxd!gBtzDes#$3&%C(vo}{{Q7L^ z!qAoW{Cce~{iHN@;Qh$55Wlsk+jWd}XKSGA#BlMvi0hec?te!4g{bQN|2vfq@jR=ntHhrZ@GUxU0*CtFP@tGT#GbM1U(*8eSz-jYQ@;>6`#VdqJ1m} ySRQ3rU^&LJ!ty4|2Q2F>7g#Q_T(kMP{1d}+p!P1}WzLFkJsG|z648`xyYUx|hkgJ6 delta 888 zcmZ9KZAg<*6vxlmvv+gTP#cIjeA}CehFXM%mS*A?hnNKxHPd0uO{bL-xF;eFA~GHX zgQPOr1}TLWWSZT|6{a9wHS{ z{xH!p+)jvF27=vwZ$Cm(OOVL5wvZlivxpm78|&Z)!KDuH9$&x%E~|BZap(SOy6lS% ze*L(`{CvLt8Pe32Ib|^Di5RiiUz<=mTt}2eI}qeS;vn=8ciq)ju8;;Gs?1OdgahNN ztFhNUl%9dh@YnDU@NLXg&B((?;mIG<;UcEv&`Br=4MB2|s8i8sk&1?FD!O7 zS-_?m6zGuJ*0{~-#^s1?sEx7>uN;+R*3fC& zO^ki^1&r_PF^stmWmq*GGVKlcySlygJ;%CzB^~|xc2*nHEQKZ3!qgwxV@pSOyMI2+ zdGo}%_4``ql*7-zD=Ougor|By-01HL1baG@S9-1Y?pt0?&rBId%1i~<-e!1~mp-o+ z-yW#S+21>{uoA110-h6^x=zn2uhy^hO4c-U;!ydPd`G@3&nnlY=H%obWmVdhlstDt zsZoz}#oT-KBwHQ@4_u%HqOMtAm9?p|c4TmJbZEY#Z|;(IEYGFM7k{K$V~?A5owVzu zbH$Uo(lop}Z&sX+7sV4CzQN(g9Dd5-B@V|p{EZ`ej%0Jh#gR&mG^nyzUcp;))?AJ= TgW0WYcQx}_<-DswG8^bG`h26m diff --git a/Informes/obj/Debug/net6.0/ref/Informes.dll b/Informes/obj/Debug/net6.0/ref/Informes.dll index c627a331df4bbfde98f2c5113f7c05f8abda23ca..98df4097b5143900ea49c7753d6bb2ba7e08928d 100644 GIT binary patch delta 1052 zcmZ9LT}YEr7{~wTYGt2+hoQxe_5D0=6rF*D_OH=u81l>K+EXX1NTQy&@u)?b&(JCEXuirJH|Wj5RHE zfAN3vKkCXBSig%BWH?zhHAvXdQ3qJCil^Ii69El+Q%C-x}Lae1`_bD|85TS~8|UWQvss_o($ zDRF_1kmdy!kOuaV4jj>T4e3TuvtBc-*{<2E*{?Z58oblAEJhV}p@%F)KUs14l<_g*oHldKbX{>N$r`$DE#7?_RQe` zTErYYXczCb$HqefDXD6roB7q>Y@yHaa*)WOw5HTeY;UWk&vCFgSO0lCBa7KSM_8J# zoi#<_v8&_poBeT23?(ja2=k}&aiBiIQW&_E80zSc4-X|K5E-~W6ies@{;xN4JukRl zTFZoxd>2oVqfEM7#h$S6v|1`4S#zGE?4ZjlT(cV`snWa+nbY|tG7~cA^9Qrl(kZeo P_b-cFI;HD(raI>@s-CeB delta 1299 zcmZ9MTSyd99LB$MW}Tf~*Ku6YE?TVF#ZttOF587PyDd=~mL@``u8Cy^?nVzmyJ2*J zg0`uAD5Hx(^i-_TTSUI}DA7at)T=K=QV&Hz-#M<7a1O^h}xm|5a|~g==kZ2t~n& zu&s~~I^ahhTr!RKaxCILu%l_) P`EAILVg1`m)p-8_;f&pZ diff --git a/Informes/obj/Debug/net6.0/refint/Informes.dll b/Informes/obj/Debug/net6.0/refint/Informes.dll index c627a331df4bbfde98f2c5113f7c05f8abda23ca..98df4097b5143900ea49c7753d6bb2ba7e08928d 100644 GIT binary patch delta 1052 zcmZ9LT}YEr7{~wTYGt2+hoQxe_5D0=6rF*D_OH=u81l>K+EXX1NTQy&@u)?b&(JCEXuirJH|Wj5RHE zfAN3vKkCXBSig%BWH?zhHAvXdQ3qJCil^Ii69El+Q%C-x}Lae1`_bD|85TS~8|UWQvss_o($ zDRF_1kmdy!kOuaV4jj>T4e3TuvtBc-*{<2E*{?Z58oblAEJhV}p@%F)KUs14l<_g*oHldKbX{>N$r`$DE#7?_RQe` zTErYYXczCb$HqefDXD6roB7q>Y@yHaa*)WOw5HTeY;UWk&vCFgSO0lCBa7KSM_8J# zoi#<_v8&_poBeT23?(ja2=k}&aiBiIQW&_E80zSc4-X|K5E-~W6ies@{;xN4JukRl zTFZoxd>2oVqfEM7#h$S6v|1`4S#zGE?4ZjlT(cV`snWa+nbY|tG7~cA^9Qrl(kZeo P_b-cFI;HD(raI>@s-CeB delta 1299 zcmZ9MTSyd99LB$MW}Tf~*Ku6YE?TVF#ZttOF587PyDd=~mL@``u8Cy^?nVzmyJ2*J zg0`uAD5Hx(^i-_TTSUI}DA7at)T=K=QV&Hz-#M<7a1O^h}xm|5a|~g==kZ2t~n& zu&s~~I^ahhTr!RKaxCILu%l_) P`EAILVg1`m)p-8_;f&pZ diff --git a/Modelo/RepositorioLote.cs b/Modelo/RepositorioLote.cs index ddb0d4e..af52225 100644 --- a/Modelo/RepositorioLote.cs +++ b/Modelo/RepositorioLote.cs @@ -80,5 +80,29 @@ namespace Modelo return ret; } + public bool DisminuirStock(DetalleFactura detalleFactura) + { + bool ret = false; + while (detalleFactura.Cantidad >= 0) + { + var elementoAdisminuir = almacen.Where(x=> x.Habilitado == true) + .First(x => x.Producto.Id == detalleFactura.Producto.Id); + + detalleFactura.Cantidad -= elementoAdisminuir.Cantidad; + + if (detalleFactura.Cantidad > 0) + { + elementoAdisminuir.Cantidad = 0; + elementoAdisminuir.Habilitado = false; + } + else + { + elementoAdisminuir.Cantidad = -detalleFactura.Cantidad; + ret = true; + } + } + return ret; + } + } } diff --git a/Modelo/RepositorioOrdenDeCompra.cs b/Modelo/RepositorioOrdenDeCompra.cs index 3ebe845..dd4585d 100644 --- a/Modelo/RepositorioOrdenDeCompra.cs +++ b/Modelo/RepositorioOrdenDeCompra.cs @@ -68,5 +68,20 @@ namespace Modelo { return orden.MostrarDetalles(); } + + public bool MarcarEntregado(OrdenDeCompra orden) + { + bool ret = false; + if (orden == null) return ret; + if (orden.Id < 0) return ret; + if (orden.Entregado == false) return ret; + var ordenAModificar = almacen.FindIndex(x => x.Id == orden.Id); + if (ordenAModificar > -1) + { + almacen[ordenAModificar].Entregado = true; + ret = true; + } + return ret; + } } } diff --git a/Modelo/RepositorioRemito.cs b/Modelo/RepositorioRemito.cs index 5d4599d..f061b8c 100644 --- a/Modelo/RepositorioRemito.cs +++ b/Modelo/RepositorioRemito.cs @@ -47,7 +47,7 @@ namespace Modelo return ret; } - + override public bool Del(Remito t) { @@ -70,10 +70,5 @@ namespace Modelo return ret; } - - public ReadOnlyCollection MostrarLotes(Remito remito) - { - return remito.MostrarLotes(); - } } } diff --git a/Vista/AddProducto.Designer.cs b/Vista/AddProducto.Designer.cs deleted file mode 100644 index c25bf32..0000000 --- a/Vista/AddProducto.Designer.cs +++ /dev/null @@ -1,122 +0,0 @@ -namespace Vista -{ - partial class AddProducto - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - comboBox1 = new ComboBox(); - label1 = new Label(); - label2 = new Label(); - numericUpDown1 = new NumericUpDown(); - button1 = new Button(); - button2 = new Button(); - ((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit(); - SuspendLayout(); - // - // comboBox1 - // - comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; - comboBox1.FormattingEnabled = true; - comboBox1.Location = new Point(98, 37); - comboBox1.Name = "comboBox1"; - comboBox1.Size = new Size(121, 23); - comboBox1.TabIndex = 0; - // - // label1 - // - label1.AutoSize = true; - label1.Location = new Point(26, 40); - label1.Name = "label1"; - label1.Size = new Size(56, 15); - label1.TabIndex = 1; - label1.Text = "Producto"; - // - // label2 - // - label2.AutoSize = true; - label2.Location = new Point(27, 86); - label2.Name = "label2"; - label2.Size = new Size(55, 15); - label2.TabIndex = 2; - label2.Text = "Cantidad"; - // - // numericUpDown1 - // - numericUpDown1.Location = new Point(99, 78); - numericUpDown1.Maximum = new decimal(new int[] { 10000000, 0, 0, 0 }); - numericUpDown1.Name = "numericUpDown1"; - numericUpDown1.Size = new Size(120, 23); - numericUpDown1.TabIndex = 3; - // - // button1 - // - button1.Location = new Point(12, 160); - button1.Name = "button1"; - button1.Size = new Size(71, 23); - button1.TabIndex = 4; - button1.Text = "Guardar"; - button1.UseVisualStyleBackColor = true; - button1.Click += button1_Click; - // - // button2 - // - button2.Location = new Point(146, 160); - button2.Name = "button2"; - button2.Size = new Size(73, 23); - button2.TabIndex = 5; - button2.Text = "Cancelar"; - button2.UseVisualStyleBackColor = true; - button2.Click += button2_Click; - // - // AddProducto - // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(236, 201); - Controls.Add(button2); - Controls.Add(button1); - Controls.Add(numericUpDown1); - Controls.Add(label2); - Controls.Add(label1); - Controls.Add(comboBox1); - Name = "AddProducto"; - Text = "Form1"; - ((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private ComboBox comboBox1; - private Label label1; - private Label label2; - private NumericUpDown numericUpDown1; - private Button button1; - private Button button2; - } -} \ No newline at end of file diff --git a/Vista/AddProducto.cs b/Vista/AddProducto.cs deleted file mode 100644 index 8477764..0000000 --- a/Vista/AddProducto.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Vista -{ - public partial class AddProducto : Form - { - public AddProducto() - { - InitializeComponent(); - } - - private void button1_Click(object sender, EventArgs e) - { - Close(); - } - - private void button2_Click(object sender, EventArgs e) - { - Close(); - } - } -} diff --git a/Vista/AddProducto.resx b/Vista/AddProducto.resx deleted file mode 100644 index a395bff..0000000 --- a/Vista/AddProducto.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Vista/FrmCliente.Designer.cs b/Vista/FrmCliente.Designer.cs index d6352a3..9890db2 100644 --- a/Vista/FrmCliente.Designer.cs +++ b/Vista/FrmCliente.Designer.cs @@ -129,7 +129,7 @@ namespace Vista // // BtnCancelar // - BtnCancelar.Location = new Point(158, 190); + BtnCancelar.Location = new Point(190, 190); BtnCancelar.Name = "BtnCancelar"; BtnCancelar.Size = new Size(75, 23); BtnCancelar.TabIndex = 11; @@ -144,7 +144,6 @@ namespace Vista numCuit.Name = "numCuit"; numCuit.Size = new Size(173, 23); numCuit.TabIndex = 12; - numCuit.ValueChanged += numCuit_ValueChanged; // // FrmCliente // @@ -152,7 +151,7 @@ namespace Vista AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; CancelButton = BtnCancelar; - ClientSize = new Size(420, 245); + ClientSize = new Size(304, 245); ControlBox = false; Controls.Add(numCuit); Controls.Add(BtnCancelar); diff --git a/Vista/FrmCliente.cs b/Vista/FrmCliente.cs index f58d04c..e150c94 100644 --- a/Vista/FrmCliente.cs +++ b/Vista/FrmCliente.cs @@ -103,13 +103,6 @@ namespace Vista MessageBox.Show(msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); Close(); } - - - } - - private void numCuit_ValueChanged(object sender, EventArgs e) - { - } } } diff --git a/Vista/FrmCliente.resx b/Vista/FrmCliente.resx index af32865..a395bff 100644 --- a/Vista/FrmCliente.resx +++ b/Vista/FrmCliente.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceReader, System.Windows.Forms, ... System.Resources.ResXResourceWriter, System.Windows.Forms, ... this is my long stringthis is a comment - Blue + Blue [base64 mime encoded serialized .NET Framework object] diff --git a/Vista/FrmFactura.cs b/Vista/FrmFactura.cs index c85710d..1a9beb9 100644 --- a/Vista/FrmFactura.cs +++ b/Vista/FrmFactura.cs @@ -30,7 +30,7 @@ namespace Vista private void ActualizarGrilla() { dgvProductos.DataSource = null; - dgvProductos.DataSource = ControladoraProductos.Instance.Listar(); + dgvProductos.DataSource = ControladoraFacturas.Instance.ListarProductos(); dgvDetalles.AutoGenerateColumns = false; @@ -69,7 +69,7 @@ namespace Vista private void CargarDatos() { // Asignar la lista de clientes como origen de datos para el ComboBox - cmbCliente.DataSource = ControladoraClientes.Instance.Listar(); + cmbCliente.DataSource = ControladoraFacturas.Instance.ListarClientes(); // Establecer la propiedad para mostrar el nombre del cliente en el ComboBox cmbCliente.DisplayMember = "NombreCompleto"; @@ -127,7 +127,7 @@ namespace Vista factura.Total = Convert.ToDouble(numtotal.Value); factura.Fecha = datepick.Value; factura.Id = Convert.ToInt32(numid.Value); - factura.Cliente = ControladoraClientes.Instance.Listar().First(x => x.NombreCompleto == cmbCliente.SelectedValue.ToString()); + factura.Cliente = ControladoraFacturas.Instance.ListarClientes().First(x => x.NombreCompleto == cmbCliente.SelectedValue.ToString()); string mensaje = ControladoraFacturas.Instance.Añadir(factura); MessageBox.Show(mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); diff --git a/Vista/FrmInforme.Designer.cs b/Vista/FrmInforme.Designer.cs index 89a9a77..9a9ec18 100644 --- a/Vista/FrmInforme.Designer.cs +++ b/Vista/FrmInforme.Designer.cs @@ -38,6 +38,7 @@ btnAñadir = new Button(); btnGuardar = new Button(); btnEliminar = new Button(); + checkinfome = new CheckBox(); ((System.ComponentModel.ISupportInitialize)dgvEmailTarget).BeginInit(); SuspendLayout(); // @@ -133,11 +134,22 @@ btnEliminar.UseVisualStyleBackColor = true; btnEliminar.Click += btnEliminar_Click; // + // checkinfome + // + checkinfome.AutoSize = true; + checkinfome.Location = new Point(335, 22); + checkinfome.Name = "checkinfome"; + checkinfome.Size = new Size(121, 19); + checkinfome.TabIndex = 10; + checkinfome.Text = "Habilitar Informes"; + checkinfome.UseVisualStyleBackColor = true; + // // FrmInforme // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); + Controls.Add(checkinfome); Controls.Add(btnEliminar); Controls.Add(btnGuardar); Controls.Add(btnAñadir); @@ -168,5 +180,6 @@ private Button btnAñadir; private Button btnGuardar; private Button btnEliminar; + private CheckBox checkinfome; } } \ No newline at end of file diff --git a/Vista/FrmInforme.cs b/Vista/FrmInforme.cs index 916d1a3..26f0c6c 100644 --- a/Vista/FrmInforme.cs +++ b/Vista/FrmInforme.cs @@ -1,4 +1,5 @@ -using Informes; +using Controladora; +using Informes; using System; using System.Collections.Generic; using System.ComponentModel; @@ -14,19 +15,11 @@ namespace Vista { public partial class FrmInforme : Form { - const string configpath = "settings.json"; public FrmInforme() { InitializeComponent(); - if (!File.Exists(configpath)) - { - string json = JsonSerializer.Serialize(new ConfigEmail { EmailAddr = "", EmailPass = "", EmailTarget = new List() }, new JsonSerializerOptions { WriteIndented = true }); - File.WriteAllText(configpath, json); - } - - string jsonString = File.ReadAllText(configpath); - ConfigEmail config = JsonSerializer.Deserialize(jsonString); + ConfigEmail config = ControladoraInformes.Instance.RecuperarConfig(); CargaDatos(config); } @@ -60,11 +53,13 @@ namespace Vista { EmailAddr = txtEmailAddr.Text, EmailPass = txtEmailPass.Text, - EmailTarget = emailTarget + EmailTarget = emailTarget, + Informar = checkinfome.Checked + }; - string json = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true }); - File.WriteAllText(configpath, json); + ControladoraInformes.Instance.GuardarConfig(config); + } private void btnAñadir_Click(object sender, EventArgs e) diff --git a/Vista/FrmOrdenDeCompra.cs b/Vista/FrmOrdenDeCompra.cs index 1a2111e..c1000a5 100644 --- a/Vista/FrmOrdenDeCompra.cs +++ b/Vista/FrmOrdenDeCompra.cs @@ -38,7 +38,7 @@ namespace Vista } dgvProveedor.DataSource = null; - dgvProveedor.DataSource = ControladoraProveedores.Instance.Listar(); + dgvProveedor.DataSource = ControladoraOrdenDeCompras.Instance.ListarProveedores(); } @@ -53,7 +53,7 @@ namespace Vista { Id = Convert.ToInt32(selectedRow.Cells["Id"].Value.ToString()), }; - pres = ControladoraPresupuestos.Instance.MostrarPresupuestoPorId(pres); + pres = ControladoraOrdenDeCompras.Instance.MostrarPresupuestoPorId(pres); if (pres == null) { @@ -61,7 +61,7 @@ namespace Vista return; } - var listadetalle = ControladoraPresupuestos.Instance.ListarDetalles(pres); + var listadetalle = ControladoraOrdenDeCompras.Instance.ListarDetallesDePresupuesto(pres); foreach (var detalle in listadetalle) { @@ -106,7 +106,7 @@ namespace Vista }; // Obtén los detalles del presupuesto usando el método de la controladora - var detallesPresupuesto = ControladoraPresupuestos.Instance.ListarDetalles(presupuesto); + var detallesPresupuesto = ControladoraOrdenDeCompras.Instance.ListarDetallesDePresupuesto(presupuesto); // Crea una lista para mostrar el proveedor y los detalles del presupuesto var proveedorYDetalles = detallesPresupuesto.Select(d => new @@ -166,10 +166,10 @@ namespace Vista var selectedRow = dgvProveedor.SelectedRows[0]; var proveedor = new Proveedor { - Cuit = Convert.ToInt32(selectedRow.Cells["Cuit"].Value), + Cuit = Convert.ToInt64(selectedRow.Cells["Cuit"].Value), }; - var presupuestos = ControladoraPresupuestos.Instance.ListarPresupuestosPorProveedor(proveedor); + var presupuestos = ControladoraOrdenDeCompras.Instance.ListarPresupuestosPorProveedorHabilitados(proveedor); dgvPresupuesto.DataSource = null; dgvPresupuesto.DataSource = presupuestos; diff --git a/Vista/FrmPresupuesto.Designer.cs b/Vista/FrmPresupuesto.Designer.cs index 46e69e3..853a74b 100644 --- a/Vista/FrmPresupuesto.Designer.cs +++ b/Vista/FrmPresupuesto.Designer.cs @@ -58,7 +58,7 @@ dgvProducto.AllowUserToDeleteRows = false; dgvProducto.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dgvProducto.EditMode = DataGridViewEditMode.EditProgrammatically; - dgvProducto.Location = new Point(244, 26); + dgvProducto.Location = new Point(631, 32); dgvProducto.MultiSelect = false; dgvProducto.Name = "dgvProducto"; dgvProducto.RowTemplate.Height = 25; @@ -79,7 +79,7 @@ // label2 // label2.AutoSize = true; - label2.Location = new Point(597, 8); + label2.Location = new Point(249, 14); label2.Name = "label2"; label2.Size = new Size(55, 15); label2.TabIndex = 3; @@ -139,13 +139,14 @@ dgvProveedor.AllowUserToDeleteRows = false; dgvProveedor.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dgvProveedor.EditMode = DataGridViewEditMode.EditProgrammatically; - dgvProveedor.Location = new Point(597, 26); + dgvProveedor.Location = new Point(249, 32); dgvProveedor.MultiSelect = false; dgvProveedor.Name = "dgvProveedor"; dgvProveedor.RowTemplate.Height = 25; dgvProveedor.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgvProveedor.Size = new Size(376, 338); dgvProveedor.TabIndex = 13; + dgvProveedor.CellClick += dgvProveedor_CellClick; // // dgvPedido // @@ -160,7 +161,7 @@ // label1 // label1.AutoSize = true; - label1.Location = new Point(244, 8); + label1.Location = new Point(626, 9); label1.Name = "label1"; label1.Size = new Size(56, 15); label1.TabIndex = 15; diff --git a/Vista/FrmPresupuesto.cs b/Vista/FrmPresupuesto.cs index f346b53..0bd7e78 100644 --- a/Vista/FrmPresupuesto.cs +++ b/Vista/FrmPresupuesto.cs @@ -25,8 +25,8 @@ namespace Vista private void CargarDatos() { - dgvProducto.DataSource = null; - dgvProducto.DataSource = ControladoraProductos.Instance.Listar(); + dgvProveedor.DataSource = null; + dgvProveedor.DataSource = ControladoraPresupuestos.Instance.ListarProveedores(); var presupuestolist = ControladoraPresupuestos.Instance.Listar(); numId.Value = (presupuestolist.Count > 0) ? @@ -144,26 +144,19 @@ namespace Vista // Añadir el detalle al presupuesto presupuesto.AñadirDetalle(detalle); + //bloqueamos el dgv de proveedor porque solo se puede cargar un presupuesto + //donde todos los productos provengan de un mismo proveedor. + dgvProveedor.Enabled = false; + // Actualizar el DataGridView dgvPedido.DataSource = null; dgvPedido.DataSource = presupuesto.MostrarDetalles(); // Configura las columnas a mostrar y sus encabezados - dgvPedido.Columns["IDPresupuesto"].Visible = true; - dgvPedido.Columns["Cantidad"].Visible = true; - dgvPedido.Columns["NombreDelProducto"].Visible = true; - - dgvPedido.Columns["IDPresupuesto"].HeaderText = "ID Presupuesto"; - dgvPedido.Columns["Cantidad"].HeaderText = "Cantidad"; - dgvPedido.Columns["NombreDelProducto"].HeaderText = "Producto"; - - // Oculta todas las demás columnas foreach (DataGridViewColumn column in dgvPedido.Columns) { - if (column.Name != "IDPresupuesto" && column.Name != "Cantidad" && column.Name != "NombreDelProducto") - { - column.Visible = false; - } + column.Visible = column.Name == "IdPresupuesto" || column.Name == "Cantidad" + || column.Name == "NombreDelProducto"; } } catch (OverflowException ex) @@ -186,14 +179,14 @@ namespace Vista { string ret = ""; - if (numCantidad.Value <= 0) ret += "Cantidad de productos invalida"; - if (numPreciopropuesto.Value <= 0) ret += "Precio C/U Invalido"; + if (numCantidad.Value <= 0) ret += "Cantidad de productos invalida\n"; + if (numPreciopropuesto.Value <= 0) ret += "Precio C/U Invalido\n"; if (ret == "") { return false; } - MessageBox.Show("ret"); + MessageBox.Show(ret); return true; } @@ -263,15 +256,20 @@ namespace Vista private void dgvProducto_CellClick(object sender, DataGridViewCellEventArgs e) { - if (dgvProducto.SelectedRows.Count == 0) return; - if (dgvProducto.SelectedRows.Count > 0) + } + + private void dgvProveedor_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (dgvProveedor.SelectedRows.Count == 0) return; + + if (dgvProveedor.SelectedRows.Count > 0) { - Producto producto = new Producto + var proveedor = new Proveedor { - Id = Convert.ToInt32(dgvProducto.SelectedRows[0].Cells["Id"].Value.ToString()), + Cuit = Convert.ToInt64(dgvProveedor.SelectedRows[0].Cells["Cuit"].Value.ToString()), }; - dgvProveedor.DataSource = ControladoraProductos.Instance.ListarProveedores(producto); + dgvProducto.DataSource = ControladoraPresupuestos.Instance.ListarProductosPorProveedor(proveedor); } } } diff --git a/Vista/FrmPresupuestos.Designer.cs b/Vista/FrmPresupuestos.Designer.cs index 8f222bf..bc0db2d 100644 --- a/Vista/FrmPresupuestos.Designer.cs +++ b/Vista/FrmPresupuestos.Designer.cs @@ -64,7 +64,6 @@ // numtotal // numtotal.Enabled = false; - numtotal.ImeMode = ImeMode.NoControl; numtotal.InterceptArrowKeys = false; numtotal.Location = new Point(665, 263); numtotal.Maximum = new decimal(new int[] { -727379969, 232, 0, 0 }); diff --git a/Vista/FrmPresupuestos.cs b/Vista/FrmPresupuestos.cs index d159981..820b282 100644 --- a/Vista/FrmPresupuestos.cs +++ b/Vista/FrmPresupuestos.cs @@ -89,13 +89,8 @@ namespace Vista || column.Name == "Subtotal"; } + numtotal.Value = Convert.ToDecimal(detallesPresupuesto.Sum(x => x.Subtotal).ToString()); - numtotal.Value = Convert.ToDecimal(presupuesto.MostrarDetalles().Sum(x => x.Subtotal)); - // Asegúrate de que solo las columnas que deseas mostrar están visibles - //foreach (DataGridViewColumn column in dgvdetallesPresupuesto.Columns) - //{ - // column.Visible = column.Name == "NombreDelProducto" || column.Name == "Cantidad"; - //} } private void BtnEliminar_Click(object sender, EventArgs e) @@ -125,8 +120,8 @@ namespace Vista // Actualiza la grilla de presupuestos después de eliminar el presupuesto ActualizarGrilla(); - // Limpia o actualiza el dgvDetalles para reflejar que el presupuesto ha sido eliminado - dgvdetallesPresupuesto.DataSource = null; // O actualiza el datasource si tienes uno + + dgvdetallesPresupuesto.DataSource = null; MessageBox.Show("Presupuesto eliminado exitosamente."); } diff --git a/Vista/FrmProducto.cs b/Vista/FrmProducto.cs index f70b831..bfb7f8a 100644 --- a/Vista/FrmProducto.cs +++ b/Vista/FrmProducto.cs @@ -50,7 +50,7 @@ namespace Vista private void CargarTabla() { dgvProveedor.DataSource = null; - dgvProveedor.DataSource = ControladoraProveedores.Instance.Listar(); + dgvProveedor.DataSource = ControladoraProductos.Instance.ListarProveedores(); if (mod) { foreach (Proveedor prov in ControladoraProductos.Instance.ListarProveedores(nuevoproducto)) @@ -135,7 +135,6 @@ namespace Vista { if (ValidarDatos()) { - var proveedores = new List(nuevoproducto.ListarProveedores()); if (checkBox1.Checked) // Producto Perecedero { @@ -148,9 +147,13 @@ namespace Vista Categoria = (Categoria)cmbCategoria.SelectedItem, MesesHastaConsumoPreferente = (int)numericUpDown1.Value, MesesHastaVencimiento = (int)numericUpDown2.Value, - proveedores = proveedores }; + foreach (var proveedor in nuevoproducto.ListarProveedores()) + { + productoPerecedero.AñadirProveedor(proveedor); + } + string mensaje = mod ? ControladoraProductos.Instance.Modificar(productoPerecedero) : ControladoraProductos.Instance.Añadir(productoPerecedero); @@ -167,9 +170,12 @@ namespace Vista Habilitado = checkHabilitado.Checked, Categoria = (Categoria)cmbCategoria.SelectedItem, TipoDeEnvase = (EnvaseTipo)comboBox1.SelectedItem, - proveedores = proveedores }; - + + foreach (var proveedor in nuevoproducto.ListarProveedores()) + { + productoNoPerecedero.AñadirProveedor(proveedor); + } string mensaje = mod ? ControladoraProductos.Instance.Modificar(productoNoPerecedero) : ControladoraProductos.Instance.Añadir(productoNoPerecedero); diff --git a/Vista/FrmProductos.Designer.cs b/Vista/FrmProductos.Designer.cs index 1bbeb23..00569b0 100644 --- a/Vista/FrmProductos.Designer.cs +++ b/Vista/FrmProductos.Designer.cs @@ -43,16 +43,21 @@ dgvNoPercedero = new DataGridView(); label4 = new Label(); label5 = new Label(); + label6 = new Label(); + numStock = new NumericUpDown(); groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)dgvProveedores).BeginInit(); ((System.ComponentModel.ISupportInitialize)dgvProductos).BeginInit(); ((System.ComponentModel.ISupportInitialize)dgvCategorias).BeginInit(); ((System.ComponentModel.ISupportInitialize)dgvPercedero).BeginInit(); ((System.ComponentModel.ISupportInitialize)dgvNoPercedero).BeginInit(); + ((System.ComponentModel.ISupportInitialize)numStock).BeginInit(); SuspendLayout(); // // groupBox1 // + groupBox1.Controls.Add(numStock); + groupBox1.Controls.Add(label6); groupBox1.Controls.Add(btnModificar); groupBox1.Controls.Add(label3); groupBox1.Controls.Add(dgvProveedores); @@ -62,7 +67,7 @@ groupBox1.Controls.Add(BtnEliminar); groupBox1.Location = new Point(12, 0); groupBox1.Name = "groupBox1"; - groupBox1.Size = new Size(939, 305); + groupBox1.Size = new Size(1196, 305); groupBox1.TabIndex = 5; groupBox1.TabStop = false; // @@ -92,7 +97,7 @@ dgvProveedores.Name = "dgvProveedores"; dgvProveedores.RowTemplate.Height = 25; dgvProveedores.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dgvProveedores.Size = new Size(280, 235); + dgvProveedores.Size = new Size(577, 235); dgvProveedores.TabIndex = 9; // // label2 @@ -139,7 +144,7 @@ // // btnCrearCategoria // - btnCrearCategoria.Location = new Point(966, 263); + btnCrearCategoria.Location = new Point(958, 582); btnCrearCategoria.Name = "btnCrearCategoria"; btnCrearCategoria.Size = new Size(128, 23); btnCrearCategoria.TabIndex = 4; @@ -152,7 +157,7 @@ dgvCategorias.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dgvCategorias.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dgvCategorias.EditMode = DataGridViewEditMode.EditProgrammatically; - dgvCategorias.Location = new Point(966, 22); + dgvCategorias.Location = new Point(958, 341); dgvCategorias.Name = "dgvCategorias"; dgvCategorias.RowTemplate.Height = 25; dgvCategorias.SelectionMode = DataGridViewSelectionMode.FullRowSelect; @@ -162,7 +167,7 @@ // label1 // label1.AutoSize = true; - label1.Location = new Point(969, 4); + label1.Location = new Point(961, 323); label1.Name = "label1"; label1.Size = new Size(63, 15); label1.TabIndex = 7; @@ -214,6 +219,23 @@ label5.TabIndex = 13; label5.Text = "Productos Percederos"; // + // label6 + // + label6.AutoSize = true; + label6.Location = new Point(275, 271); + label6.Name = "label6"; + label6.Size = new Size(36, 15); + label6.TabIndex = 12; + label6.Text = "Stock"; + // + // numStock + // + numStock.Enabled = false; + numStock.Location = new Point(317, 269); + numStock.Name = "numStock"; + numStock.Size = new Size(120, 23); + numStock.TabIndex = 13; + // // FrmProductos // AutoScaleDimensions = new SizeF(7F, 15F); @@ -237,6 +259,7 @@ ((System.ComponentModel.ISupportInitialize)dgvCategorias).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvPercedero).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvNoPercedero).EndInit(); + ((System.ComponentModel.ISupportInitialize)numStock).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -258,5 +281,7 @@ private DataGridView dgvNoPercedero; private Label label4; private Label label5; + private NumericUpDown numStock; + private Label label6; } } \ No newline at end of file diff --git a/Vista/FrmProductos.cs b/Vista/FrmProductos.cs index 59da4a2..7a1742c 100644 --- a/Vista/FrmProductos.cs +++ b/Vista/FrmProductos.cs @@ -168,7 +168,7 @@ namespace Vista dgvProductos.DataSource = null; dgvCategorias.DataSource = null; - var categorias = ControladoraCategorias.Instance.Listar(); + var categorias = ControladoraProductos.Instance.ListarCategorias(); dgvCategorias.DataSource = categorias; // Obtener la lista de productos y proyectar los datos @@ -245,12 +245,12 @@ namespace Vista Id = Convert.ToInt32(selectedRow.Cells["Id"].Value) }; bool esPercedero = Convert.ToBoolean(selectedRow.Cells["EsPerecedero"].Value); - if(esPercedero) + if (esPercedero) { ProductoPercedero prod = (ProductoPercedero)ControladoraProductos.Instance.MostrarPorId(Producto); if (prod == null) return; - - dgvPercedero.DataSource = new List{ prod }; + + dgvPercedero.DataSource = new List { prod }; } else { diff --git a/Vista/FrmRemito.Designer.cs b/Vista/FrmRemito.Designer.cs index b88905b..711e26a 100644 --- a/Vista/FrmRemito.Designer.cs +++ b/Vista/FrmRemito.Designer.cs @@ -28,12 +28,121 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Remito"; + dgvOrdenDeCompra = new DataGridView(); + label1 = new Label(); + label2 = new Label(); + dgvDetalles = new DataGridView(); + BtnAdd = new Button(); + label3 = new Label(); + numId = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)dgvOrdenDeCompra).BeginInit(); + ((System.ComponentModel.ISupportInitialize)dgvDetalles).BeginInit(); + ((System.ComponentModel.ISupportInitialize)numId).BeginInit(); + SuspendLayout(); + // + // dgvOrdenDeCompra + // + dgvOrdenDeCompra.AllowUserToAddRows = false; + dgvOrdenDeCompra.AllowUserToDeleteRows = false; + dgvOrdenDeCompra.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dgvOrdenDeCompra.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgvOrdenDeCompra.EditMode = DataGridViewEditMode.EditProgrammatically; + dgvOrdenDeCompra.Location = new Point(12, 23); + dgvOrdenDeCompra.Name = "dgvOrdenDeCompra"; + dgvOrdenDeCompra.RowTemplate.Height = 25; + dgvOrdenDeCompra.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgvOrdenDeCompra.Size = new Size(368, 235); + dgvOrdenDeCompra.TabIndex = 4; + dgvOrdenDeCompra.CellClick += dgvOrdenDeCompra_CellClick; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new Point(12, 5); + label1.Name = "label1"; + label1.Size = new Size(102, 15); + label1.TabIndex = 7; + label1.Text = "Orden de Compra"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(386, 9); + label2.Name = "label2"; + label2.Size = new Size(48, 15); + label2.TabIndex = 8; + label2.Text = "Detalles"; + // + // dgvDetalles + // + dgvDetalles.AllowUserToAddRows = false; + dgvDetalles.AllowUserToDeleteRows = false; + dgvDetalles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dgvDetalles.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgvDetalles.EditMode = DataGridViewEditMode.EditProgrammatically; + dgvDetalles.Location = new Point(386, 23); + dgvDetalles.Name = "dgvDetalles"; + dgvDetalles.RowTemplate.Height = 25; + dgvDetalles.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgvDetalles.Size = new Size(368, 235); + dgvDetalles.TabIndex = 9; + // + // BtnAdd + // + BtnAdd.Location = new Point(12, 264); + BtnAdd.Name = "BtnAdd"; + BtnAdd.Size = new Size(165, 23); + BtnAdd.TabIndex = 10; + BtnAdd.Text = "Certificar Llegada Productos"; + BtnAdd.UseVisualStyleBackColor = true; + BtnAdd.Click += BtnAdd_Click; + // + // label3 + // + label3.AutoSize = true; + label3.Location = new Point(225, 269); + label3.Name = "label3"; + label3.Size = new Size(17, 15); + label3.TabIndex = 11; + label3.Text = "Id"; + // + // numId + // + numId.Enabled = false; + numId.Location = new Point(248, 266); + numId.Name = "numId"; + numId.Size = new Size(120, 23); + numId.TabIndex = 12; + // + // FrmRemito + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 293); + Controls.Add(numId); + Controls.Add(label3); + Controls.Add(BtnAdd); + Controls.Add(dgvDetalles); + Controls.Add(label2); + Controls.Add(label1); + Controls.Add(dgvOrdenDeCompra); + Name = "FrmRemito"; + Text = "Remito"; + ((System.ComponentModel.ISupportInitialize)dgvOrdenDeCompra).EndInit(); + ((System.ComponentModel.ISupportInitialize)dgvDetalles).EndInit(); + ((System.ComponentModel.ISupportInitialize)numId).EndInit(); + ResumeLayout(false); + PerformLayout(); } #endregion + + private DataGridView dgvOrdenDeCompra; + private Label label1; + private Label label2; + private DataGridView dgvDetalles; + private Button BtnAdd; + private Label label3; + private NumericUpDown numId; } } \ No newline at end of file diff --git a/Vista/FrmRemito.cs b/Vista/FrmRemito.cs index 16d3e94..5e4accc 100644 --- a/Vista/FrmRemito.cs +++ b/Vista/FrmRemito.cs @@ -1,4 +1,6 @@ -using System; +using Controladora; +using Entidades; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -15,6 +17,76 @@ namespace Vista public FrmRemito() { InitializeComponent(); + ActualizarTablaOrdendeCompra(); + } + private void ActualizarTablaOrdendeCompra() + { + dgvOrdenDeCompra.DataSource = null; + dgvOrdenDeCompra.DataSource = ControladoraRemito.Instance.ListarOrdenesSinEntregar(); + foreach (DataGridViewColumn column in dgvOrdenDeCompra.Columns) + { + column.Visible = column.Name == "Id" || column.Name == "NombreProveedor" + || column.Name == "MontoTotal"; + } + numId.Value = (ControladoraRemito.Instance.Listar().Count) > 0 ? + ControladoraRemito.Instance.Listar().Max(x=> x.Id+1): + 0; + } + + private void dgvOrdenDeCompra_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (dgvOrdenDeCompra.SelectedRows.Count == 0) return; + + int ordenid = Convert.ToInt32(dgvOrdenDeCompra.SelectedRows[0].Cells["Id"].Value.ToString()); + + var orden = new OrdenDeCompra { Id = ordenid }; + + var detallesorden = ControladoraRemito.Instance.ListarDetallesOrdenesDeCompra(orden); + + dgvDetalles.DataSource = null; + dgvDetalles.DataSource = detallesorden; + + foreach (DataGridViewColumn column in dgvDetalles.Columns) + { + column.Visible = column.Name == "IdPresupuesto" || column.Name == "NombreProducto" || column.Name == "MontoCU" + || column.Name == "Cantidad" || column.Name == "SubTotal"; + } + } + + private void BtnAdd_Click(object sender, EventArgs e) + { + if (dgvOrdenDeCompra.SelectedRows.Count <= 0) return; + var selectedRow = dgvOrdenDeCompra.SelectedRows[0]; + var orden = new OrdenDeCompra + { + Id = Convert.ToInt32(selectedRow.Cells["Id"].Value.ToString()), + }; + orden = ControladoraRemito.Instance.MostrarOrdenDeCompraPorId(orden); + orden.Entregado = true; + if (orden == null) return; + + var remito = new Remito + { + Id = Convert.ToInt32(numId.Value), + Proveedor = orden.Proveedor + }; + foreach (var detalle in orden.MostrarDetalles()) + { + Lote lote = new Lote + { + Id = detalle.Id, + Cantidad = detalle.Cantidad, + Fecha = DateTime.Now, + Habilitado = true, + IdRemito = remito.Id, + Producto = detalle.Producto, + }; + remito.AñadirLote(lote); + } + + var msg = ControladoraRemito.Instance.Añadir(remito, orden); + MessageBox.Show(msg); + this.Close(); } } } diff --git a/Vista/FrmRemito.resx b/Vista/FrmRemito.resx index 1af7de1..a395bff 100644 --- a/Vista/FrmRemito.resx +++ b/Vista/FrmRemito.resx @@ -1,24 +1,24 @@  - diff --git a/Vista/FrmRemitos.Designer.cs b/Vista/FrmRemitos.Designer.cs index 570d789..fb4b297 100644 --- a/Vista/FrmRemitos.Designer.cs +++ b/Vista/FrmRemitos.Designer.cs @@ -29,24 +29,93 @@ private void InitializeComponent() { groupBox1 = new GroupBox(); + label3 = new Label(); + label2 = new Label(); + label1 = new Label(); + dgvTodosLotes = new DataGridView(); + dgvDetallesRemito = new DataGridView(); dgvRemito = new DataGridView(); BtnAdd = new Button(); groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgvTodosLotes).BeginInit(); + ((System.ComponentModel.ISupportInitialize)dgvDetallesRemito).BeginInit(); ((System.ComponentModel.ISupportInitialize)dgvRemito).BeginInit(); SuspendLayout(); // // groupBox1 // + groupBox1.Controls.Add(label3); + groupBox1.Controls.Add(label2); + groupBox1.Controls.Add(label1); + groupBox1.Controls.Add(dgvTodosLotes); + groupBox1.Controls.Add(dgvDetallesRemito); groupBox1.Controls.Add(dgvRemito); groupBox1.Controls.Add(BtnAdd); groupBox1.Location = new Point(12, 12); groupBox1.Name = "groupBox1"; - groupBox1.Size = new Size(776, 351); + groupBox1.Size = new Size(1183, 432); groupBox1.TabIndex = 5; groupBox1.TabStop = false; // + // label3 + // + label3.AutoSize = true; + label3.Location = new Point(6, 301); + label3.Name = "label3"; + label3.Size = new Size(90, 15); + label3.TabIndex = 8; + label3.Text = "Todos Los Lotes"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(562, 4); + label2.Name = "label2"; + label2.Size = new Size(48, 15); + label2.TabIndex = 7; + label2.Text = "Detalles"; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new Point(6, 4); + label1.Name = "label1"; + label1.Size = new Size(50, 15); + label1.TabIndex = 6; + label1.Text = "Remitos"; + // + // dgvTodosLotes + // + dgvTodosLotes.AllowUserToAddRows = false; + dgvTodosLotes.AllowUserToDeleteRows = false; + dgvTodosLotes.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dgvTodosLotes.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgvTodosLotes.EditMode = DataGridViewEditMode.EditProgrammatically; + dgvTodosLotes.Location = new Point(0, 319); + dgvTodosLotes.Name = "dgvTodosLotes"; + dgvTodosLotes.RowTemplate.Height = 25; + dgvTodosLotes.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgvTodosLotes.Size = new Size(1171, 107); + dgvTodosLotes.TabIndex = 5; + // + // dgvDetallesRemito + // + dgvDetallesRemito.AllowUserToAddRows = false; + dgvDetallesRemito.AllowUserToDeleteRows = false; + dgvDetallesRemito.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dgvDetallesRemito.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgvDetallesRemito.EditMode = DataGridViewEditMode.EditProgrammatically; + dgvDetallesRemito.Location = new Point(562, 22); + dgvDetallesRemito.Name = "dgvDetallesRemito"; + dgvDetallesRemito.RowTemplate.Height = 25; + dgvDetallesRemito.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgvDetallesRemito.Size = new Size(609, 235); + dgvDetallesRemito.TabIndex = 4; + // // dgvRemito // + dgvRemito.AllowUserToAddRows = false; + dgvRemito.AllowUserToDeleteRows = false; dgvRemito.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dgvRemito.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dgvRemito.EditMode = DataGridViewEditMode.EditProgrammatically; @@ -56,26 +125,31 @@ dgvRemito.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgvRemito.Size = new Size(550, 235); dgvRemito.TabIndex = 3; + dgvRemito.CellClick += dgvRemito_CellClick; // // BtnAdd // - BtnAdd.Location = new Point(6, 302); + BtnAdd.Location = new Point(6, 263); BtnAdd.Name = "BtnAdd"; BtnAdd.Size = new Size(75, 23); BtnAdd.TabIndex = 0; BtnAdd.Text = "Añadir"; BtnAdd.UseVisualStyleBackColor = true; + BtnAdd.Click += BtnAdd_Click; // // FrmRemitos // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); + ClientSize = new Size(1281, 450); Controls.Add(groupBox1); Name = "FrmRemitos"; Text = "Remitos"; WindowState = FormWindowState.Maximized; groupBox1.ResumeLayout(false); + groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)dgvTodosLotes).EndInit(); + ((System.ComponentModel.ISupportInitialize)dgvDetallesRemito).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvRemito).EndInit(); ResumeLayout(false); } @@ -85,5 +159,10 @@ private GroupBox groupBox1; private DataGridView dgvRemito; private Button BtnAdd; + private Label label3; + private Label label2; + private Label label1; + private DataGridView dgvTodosLotes; + private DataGridView dgvDetallesRemito; } } \ No newline at end of file diff --git a/Vista/FrmRemitos.cs b/Vista/FrmRemitos.cs index e001046..f56409f 100644 --- a/Vista/FrmRemitos.cs +++ b/Vista/FrmRemitos.cs @@ -1,4 +1,6 @@ -using System; +using Controladora; +using Entidades; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -15,6 +17,48 @@ namespace Vista public FrmRemitos() { InitializeComponent(); + ActualizarGrilla(); + } + private void ActualizarGrilla() + { + dgvTodosLotes.DataSource = null; + dgvTodosLotes.DataSource = ControladoraRemito.Instance.ListarLotes(); + foreach (DataGridViewColumn column in dgvTodosLotes.Columns) + { + column.Visible = column.Name == "Id" || column.Name == "Fecha" + || column.Name == "Cantidad" || column.Name == "NombreProducto"; + } + + dgvRemito.DataSource = null; + dgvRemito.DataSource = ControladoraRemito.Instance.Listar(); + foreach (DataGridViewColumn column in dgvRemito.Columns) + { + column.Visible = column.Name == "Id" || column.Name == "NombreProveedor"; + } + } + private void BtnAdd_Click(object sender, EventArgs e) + { + var form = new FrmRemito(); + form.ShowDialog(); + ActualizarGrilla(); + } + + private void dgvRemito_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (dgvRemito.SelectedRows.Count == 0) return; + + int ordenid = Convert.ToInt32(dgvRemito.SelectedRows[0].Cells["Id"].Value.ToString()); + + var rem = new Remito { Id = ordenid }; + + var detallesrem = ControladoraRemito.Instance.ListarLotesPorRemito(rem); + dgvDetallesRemito.DataSource = null; + dgvDetallesRemito.DataSource = detallesrem; + foreach (DataGridViewColumn column in dgvDetallesRemito.Columns) + { + column.Visible = column.Name == "Id" || column.Name == "Fecha" + || column.Name == "Cantidad" || column.Name == "NombreProducto"; + } } } } diff --git a/Vista/PantallaPrincipal.Designer.cs b/Vista/PantallaPrincipal.Designer.cs index 4cb7eb0..7b00f5e 100644 --- a/Vista/PantallaPrincipal.Designer.cs +++ b/Vista/PantallaPrincipal.Designer.cs @@ -62,49 +62,49 @@ // clientesToolStripMenuItem // clientesToolStripMenuItem.Name = "clientesToolStripMenuItem"; - clientesToolStripMenuItem.Size = new Size(180, 22); + clientesToolStripMenuItem.Size = new Size(164, 22); clientesToolStripMenuItem.Text = "Clientes"; clientesToolStripMenuItem.Click += clientesToolStripMenuItem_Click; // // ventasToolStripMenuItem // ventasToolStripMenuItem.Name = "ventasToolStripMenuItem"; - ventasToolStripMenuItem.Size = new Size(180, 22); + ventasToolStripMenuItem.Size = new Size(164, 22); ventasToolStripMenuItem.Text = "Ventas"; ventasToolStripMenuItem.Click += ventasToolStripMenuItem_Click; // // proveedoresToolStripMenuItem // proveedoresToolStripMenuItem.Name = "proveedoresToolStripMenuItem"; - proveedoresToolStripMenuItem.Size = new Size(180, 22); + proveedoresToolStripMenuItem.Size = new Size(164, 22); proveedoresToolStripMenuItem.Text = "Proveedores"; proveedoresToolStripMenuItem.Click += proveedoresToolStripMenuItem_Click; // // productosToolStripMenuItem // productosToolStripMenuItem.Name = "productosToolStripMenuItem"; - productosToolStripMenuItem.Size = new Size(180, 22); + productosToolStripMenuItem.Size = new Size(164, 22); productosToolStripMenuItem.Text = "Productos"; productosToolStripMenuItem.Click += productosToolStripMenuItem_Click; // // remitosToolStripMenuItem // remitosToolStripMenuItem.Name = "remitosToolStripMenuItem"; - remitosToolStripMenuItem.Size = new Size(180, 22); + remitosToolStripMenuItem.Size = new Size(164, 22); remitosToolStripMenuItem.Text = "Remitos"; remitosToolStripMenuItem.Click += remitosToolStripMenuItem_Click; // // ordenDeCompraToolStripMenuItem // ordenDeCompraToolStripMenuItem.Name = "ordenDeCompraToolStripMenuItem"; - ordenDeCompraToolStripMenuItem.Size = new Size(180, 22); + ordenDeCompraToolStripMenuItem.Size = new Size(164, 22); ordenDeCompraToolStripMenuItem.Text = "OrdenDeCompra"; ordenDeCompraToolStripMenuItem.Click += ordenDeCompraToolStripMenuItem_Click; // // pedidosPresupuestoToolStripMenuItem // pedidosPresupuestoToolStripMenuItem.Name = "pedidosPresupuestoToolStripMenuItem"; - pedidosPresupuestoToolStripMenuItem.Size = new Size(180, 22); + pedidosPresupuestoToolStripMenuItem.Size = new Size(164, 22); pedidosPresupuestoToolStripMenuItem.Text = "Presupuesto"; pedidosPresupuestoToolStripMenuItem.Click += pedidosPresupuestoToolStripMenuItem_Click; // @@ -131,7 +131,7 @@ IsMdiContainer = true; MainMenuStrip = menuStrip1; Name = "PantallaPrincipal"; - Text = "Form1"; + Text = "Sistema Control de Stock"; WindowState = FormWindowState.Maximized; menuStrip1.ResumeLayout(false); menuStrip1.PerformLayout(); diff --git a/Vista/Vista.csproj.user b/Vista/Vista.csproj.user index 50cc180..5857e23 100644 --- a/Vista/Vista.csproj.user +++ b/Vista/Vista.csproj.user @@ -5,9 +5,6 @@ Form - - Form - Form