using System.Collections.ObjectModel; using Entidades; using Modelo; namespace Controladora { public class ControladoraRemito : Singleton { private RepositorioRemito repositorioRemito; public ControladoraRemito() { repositorioRemito = new RepositorioRemito(new Context()); } public ReadOnlyCollection Listar() { return repositorioRemito.Listar() .AsReadOnly(); } 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"; orden.Entregado = true; var retMarcarOrdenEntregada = ControladoraOrdenDeCompras.Instance.Modificar(orden); repositorioRemito.Add(t); ControladoraLotes.Instance.AltaStock(t); return (repositorioRemito.Guardar()) ? $"El remito {t.Id} se cargo correctamente": $"Fallo la carga del remito {t.Id}"; } public string Modificar(Remito t) { return "No se puede modificar un Remito"; } private string Eliminar(Remito t) { return "No se puede Eliminar un remito"; /* if (t == null) return "El Remito es nulo fallo la carga"; return (RepositorioRemito.Instance.Del(t)) ? $"El remito {t.Id} se elimino correctamente": $"Fallo la Eliminacion del remito {t.Id}"; */ } public object ListarLotes() { return ControladoraLotes.Instance.Listar().Where(x => x.Habilitado == true) .ToList().AsReadOnly(); } public ReadOnlyCollection ListarOrdenesSinEntregar() { return ControladoraOrdenDeCompras.Instance.Listar() .Where(x => x.Entregado == false) .ToList() .AsReadOnly(); } public ReadOnlyCollection ListarDetallesOrdenesDeCompra(OrdenDeCompra orden) { var ordenalistar = ControladoraOrdenDeCompras.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 ControladoraOrdenDeCompras.Instance.Listar().First(x => x.Id == ordenDeCompra.Id); } public ReadOnlyCollection ListarLotesPorRemito(Remito rem) { var remalistar = repositorioRemito.Listar().First(x => x.Id == rem.Id); if (remalistar == null) return new ReadOnlyCollection(new List()); return remalistar.Lotes; } } }