public static List <Estructuras.DetalleOBC> salidas_abiertas() { using (var cServ = new ServiceProcess.ServiceAFN2()) { var result = new List <Estructuras.DetalleOBC>(); var data = cServ.Repo.ObrasConstruccion.SalidasAbiertas(); foreach (PD.SV_ASSET_CONSTRUCTION dt in data) { var entrada = cServ.Repo.ObrasConstruccion.IngresoById((int)dt.entrada_id); var linea = new Estructuras.DetalleOBC(); linea.codigo = entrada.id; linea.descripcion = entrada.descrip; linea.fecha = dt.trx_date; linea.zona = dt.zone; linea.saldo = dt.TotalByCurrency("CLP"); linea.idSet(dt.id); linea.maximoSet(entrada.ocupado); result.Add(linea); } return(result); } }
public static List <Estructuras.DetalleOBC> saldos_entradas(DateTime moment, string CurrencyCode) { using (var cServ = new ServiceProcess.ServiceAFN2()) { var result = new List <Estructuras.DetalleOBC>(); try { var data = cServ.Repo.ObrasConstruccion.SaldoEntradas(moment, CurrencyCode); var temporales = cServ.Repo.ObrasConstruccion.SalidasAbiertas(); foreach (PD.SV_ASSET_CONSTRUCTION dt in data) { decimal CantidadTomada = temporales .Where(tp => tp.entrada_id == dt.id) .Select(tp => tp.TotalByCurrency(CurrencyCode)) .DefaultIfEmpty(0) .Sum(); var linea = new Estructuras.DetalleOBC(); linea.codigo = dt.id; linea.descripcion = dt.descrip; linea.fecha = dt.trx_date; linea.zona = dt.zone; linea.saldo = dt.ocupado - CantidadTomada; result.Add(linea); } } catch (Exception e) { Mensaje.Error(e.StackTrace); } return(result); } }