using System.Collections.ObjectModel; using Entidades; using Modelo; namespace Controladora { public class ControladoraRemito : Singleton { public ReadOnlyCollection Listar() { return RepositorioRemito.Instance.Listar(); } 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) ? $"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 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 ReadOnlyCollection 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(); } } }