/// <summary> /// Obtiene una lista paginada de contrato /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> internal ResultadoInfo <ContratoInfo> ObtenerPorPagina(PaginacionInfo pagina, ContratoInfo filtro) { try { Logger.Info(); var contratoDAL = new ContratoDAL(); ResultadoInfo <ContratoInfo> contratoLista = contratoDAL.ObtenerPorPagina(pagina, filtro); if (contratoLista != null) { foreach (var contrato in contratoLista.Lista) { //Obtener precio y cantidad por tonelada contrato.CantidadToneladas = contrato.Cantidad / 1000; contrato.ToneladasSurtidas = (decimal)contrato.CantidadSurtida / 1000; if (contrato.TipoCambio == null) { continue; } if (contrato.TipoCambio.Descripcion.ToUpper() == Properties.ResourceServices.ContratoBL_DescripcionMonedaDolarMayuscula) { contrato.PrecioToneladas = (contrato.Precio * 1000) / contrato.TipoCambio.Cambio; } else { contrato.PrecioToneladas = contrato.Precio * 1000; } //Obtener detalle de contrato if (contrato.ContratoId <= 0) { continue; } var contratoDetalleBl = new ContratoDetalleBL(); contrato.ListaContratoDetalleInfo = contratoDetalleBl.ObtenerPorContratoId(contrato); } } return(contratoLista); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }