/// <summary> /// Asocia los datos del objeto Contrato a la interfaz /// </summary> /// <param name="bo">Origen de los datos</param> private void DatoAInterfazUsuario(ContratoRDBO bo) { try{ if (bo == null) { bo = new ContratoRDBO(); if (bo.Sucursal == null) { bo.Sucursal = new SucursalBO(); } if (bo.Sucursal.UnidadOperativa == null) { bo.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } return; } this.vista.ContratoID = bo.ContratoID; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } this.presentadorHerramientas.DatosAInterfazUsuario(bo); if (bo != null && bo.DocumentosAdjuntos != null && bo.DocumentosAdjuntos.Count > 0) { bo.DocumentosAdjuntos = bo.DocumentosAdjuntos.Where(archivo => archivo.Activo == true).ToList(); } #region Lineas if (bo.ObtenerLineaContrato() != null && bo.ObtenerLineaContrato().Equipo != null && bo.ObtenerLineaContrato().Equipo is UnidadBO && ((UnidadBO)bo.ObtenerLineaContrato().Equipo).UnidadID != null) { ElementoFlotaBO elemento = new ElementoFlotaBO() { Unidad = (UnidadBO)bo.ObtenerLineaContrato().Equipo }; elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = elemento.Unidad }, false); if (elemento != null && elemento.Unidad != null && elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = new SucursalBO(); } this.presentadorDG.DatoAInterfazUsuario(elemento as object); this.presentadorDG.ProductoServicioAInterfazUsuario(bo.ObtenerLineaContrato().ProductoServicio); this.presentadorDG.MostrarProductoServicio(true); this.presentadorEA.DatoAInterfazUsuario(elemento as object); this.presentadorEA.CargarEquiposAliados(); } else { this.presentadorDG.Inicializar(); this.presentadorEA.Inicializar(); } int?kmRecorridos = null; if (bo.ObtenerLineaContrato() != null) { kmRecorridos = bo.ObtenerLineaContrato().CalcularKilometrajeRecorrido(); } #endregion //En cualquiera de estos casos, es Cancelación bool casoPermitido1 = bo.Estatus != null && bo.Estatus == EEstatusContrato.EnPausa; bool casoPermitido2 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos == 0; //En este caso, es Cierre bool casoPermitido3 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos > 0; this.vista.Cancelable = casoPermitido1 || casoPermitido2; this.vista.Cerrable = casoPermitido3; this.vista.PermitirCerrar(casoPermitido1 || casoPermitido2 || casoPermitido3); this.presentadorDocumentosContrato.Vista.EstablecerListasArchivos(bo.DocumentosAdjuntos, new List <TipoArchivoBO>()); LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea != null) { ListadoVerificacionBO chkEntrega = new ListadoVerificacionBO(); ListadoVerificacionBO chkRecepcion = new ListadoVerificacionBO(); chkEntrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA); if (chkEntrega != null) { this.presentadorDocumentosEntrega.Vista.EstablecerListasArchivos(chkEntrega.Adjuntos, new List <TipoArchivoBO>()); } chkRecepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION); if (chkRecepcion != null) { this.presentadorDocumentosRecepcion.Vista.EstablecerListasArchivos(chkRecepcion.Adjuntos, new List <TipoArchivoBO>()); } } this.presentadorResumen.DatosAInterfazUsuario(bo); this.vista.UltimoObjeto = bo; } catch (Exception ex) { throw new Exception(this.nombreClase + ".DatoAInterfazUsuario: " + ex.Message); } }
/// <summary> /// Enlaza los datos a la interfaz de usuario /// </summary> /// <param name="bo"> objeto con los datos necesarios</param> private void DatoAInterfazUsuario(ContratoRDBO bo) { this.vista.ContratoID = bo.ContratoID; this.vista.FechaContrato = bo.FechaContrato; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } if (bo.CierreContrato == null) { bo.CierreContrato = new CancelacionContratoRDBO(); } if (bo.CierreContrato.Usuario == null) { bo.CierreContrato.Usuario = new UsuarioBO(); } LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea != null) { if (linea.Equipo != null) { this.vista.EquipoID = linea.Equipo.EquipoID; if (linea.Equipo is UnidadBO) { this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID; ElementoFlotaBO elemento = new ElementoFlotaBO() { Unidad = (UnidadBO)linea.Equipo }; elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = elemento.Unidad }, false); if (elemento != null) { if (elemento.Unidad != null && elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = linea.Equipo.Sucursal; } this.presentadorDG.DatoAInterfazUsuario(elemento as object); this.presentadorEA.DatoAInterfazUsuario(elemento as object); this.presentadorEA.CargarEquiposAliados(); } } else { this.vista.UnidadID = null; } } if (linea.Equipo.ActivoFijo != null && linea.Equipo.ActivoFijo.CostoSinIva != null) { Decimal?montoDeducibleCalcuado = 0; montoDeducibleCalcuado = linea.Equipo.ActivoFijo.CostoSinIva; var unidad = (UnidadBO)linea.Equipo; if (unidad.EquiposAliados.Count > 0) { montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto); } this.vista.ImporteDeposito = bo.CalcularMontoDeposito(montoDeducibleCalcuado.Value); } else { this.vista.ImporteDeposito = null; } //Tarifas if (linea.Cobrable == null) { var tarifaTemporal = ((TarifaContratoRDBO)linea.Cobrable); this.vista.TarifaKmLibres = tarifaTemporal.KmsLibres; this.vista.TarifaKmExcedido = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoKm ?? 0 : 0; this.vista.TarifaHrsLibres = tarifaTemporal.HrsLibres; this.vista.TarifaHrsExcedidas = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoHr ?? 0 : 0; } //Listados de Verificación ListadoVerificacionBO entrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA); if (entrega == null) { entrega = new ListadoVerificacionBO(); } ListadoVerificacionBO recepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION); if (recepcion == null) { recepcion = new ListadoVerificacionBO(); } this.vista.FechaRecepcion = recepcion.Fecha; this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmExcedido = linea.CalcularKilometrosExcedidos(); this.vista.MontoKmExcedido = linea.CalcularMontoPorKilometrosExcedidos(); this.vista.HrsExcedidas = linea.CalcularHorasExcedidas(); this.vista.HrsConsumidas = linea.CalcularHorasConsumidas(); this.vista.MontoHrsExcedidas = linea.CalcularMontoPorHorasExcedidas(); this.vista.KmEntrega = entrega.Kilometraje; this.vista.HrsEntrega = entrega.Horometro; this.vista.KmRecepcion = recepcion.Kilometraje; this.vista.HrsRecepcion = recepcion.Horometro; this.vista.DiferenciaCombustible = linea.CalcularDiferenciaCombustible(); if (this.vista.ImporteUnidadCombustible != null) { this.vista.ImporteTotalCombustible = linea.CalcularMontoCombustible(this.vista.ImporteUnidadCombustible.Value); } else { this.vista.ImporteUnidadCombustible = null; } //Cierre del Contrato this.vista.ObservacionesCierre = bo.CierreContrato.Observaciones; if (bo.CierreContrato is CierreContratoRDBO) { this.vista.ImporteReembolso = ((CierreContratoRDBO)bo.CierreContrato).ImporteReembolso; this.vista.CargoAbusoOperacion = ((CierreContratoRDBO)bo.CierreContrato).CargoAbusoOperacion; this.vista.CargoDisposicionBasura = ((CierreContratoRDBO)bo.CierreContrato).CargoDisposicionBasura; this.vista.PersonaRecibeReembolso = ((CierreContratoRDBO)bo.CierreContrato).PersonaRecibeReembolso; } else { this.vista.ImporteReembolso = null; this.vista.CargoAbusoOperacion = null; this.vista.CargoDisposicionBasura = null; this.vista.PersonaRecibeReembolso = null; } //Cálculos de Días de Renta this.vista.DiasRentaProgramada = bo.CalcularDiasPrometidosRenta(); this.vista.DiasEnTaller = 0; this.vista.DiasRealesRenta = bo.CalcularDiasTranscurridosRenta(); if (this.vista.DiasRentaProgramada != null && this.vista.DiasRealesRenta != null) { this.vista.DiasAdicionales = this.vista.DiasRealesRenta.Value - this.vista.DiasRentaProgramada.Value; } else { this.vista.DiasAdicionales = null; } if (this.vista.DiasAdicionales != null && ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria != null) { this.vista.MontoTotalDiasAdicionales = this.vista.DiasAdicionales * ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria; } else { this.vista.MontoTotalDiasAdicionales = null; } } this.presentadorHerramientas.DatosAInterfazUsuario(bo); this.presentadorResumen.DatosAInterfazUsuario(bo); }