/// <summary> /// Obtiene la información relacionada con las tarifas personalizadas /// </summary> private void DatosSesionTarifaPersonalizada() { try { object objectoDevuelto = this.vista.ObtenerPaqueteNavegacion("TarifaPersonalizaPSLDevuelta"); TarifaPersonalizadaPSLModel tarifaModel = null; if (objectoDevuelto != null) { if (objectoDevuelto is TarifaPersonalizadaPSLModel) { tarifaModel = (TarifaPersonalizadaPSLModel)objectoDevuelto; vista.Tarifa = tarifaModel.TarifaPersonalizadaTarifa; vista.PorcentajeDescuentoTarifa = tarifaModel.TarifaPersonalizadaPorcentajeDescuento; vista.PorcentajeMaximoDescuentoTarifa = tarifaModel.TarifaPersonalizadaDescuentoMax; vista.TarifaEtiqueta = tarifaModel.TarifaPersonalizadaEtiqueta; } } if (vista.PorcentajeDescuentoTarifa.GetValueOrDefault() <= 0) { vista.PorcentajeDescuentoTarifa = null; vista.TarifaConDescuento = null; } else { decimal tarifa = this.vista.Tarifa.GetValueOrDefault(); decimal descuento = this.vista.PorcentajeDescuentoTarifa.GetValueOrDefault(); decimal tarifaConDescuento = Math.Round(tarifa - (tarifa * descuento / 100), 2);//Redondea a dos posiciones vista.TarifaConDescuento = tarifaConDescuento; } this.CalcularSeguro(vista.Tarifa); } catch { throw new Exception(this.nombreClase + ".ObtenerDatosTarifaPersonalizada: Error al obtener los datos de las tarifas personalizadas"); } }
/// <summary> /// Limpia los campos del dialogo y /// Copia los datos de tarifa de la interfaz de usuario /// </summary> public void PrepararDatosTarifaPersonalizada() { TarifaPersonalizadaPSLModel tarifa = new TarifaPersonalizadaPSLModel(); tarifa.UnidadOperativaID = vista.UnidadOperativaID; tarifa.SucursalID = vista.SucursalID; tarifa.ModeloID = vista.ModeloID; tarifa.ModuloID = vista.ModuloID; tarifa.UsuarioID = vista.UsuarioID; tarifa.CuentaClienteID = vista.CuentaClienteID; tarifa.TarifaPersonalizadaDescuentoMax = vista.PorcentajeMaximoDescuentoTarifa; tarifa.TarifaPersonalizadaTarifa = vista.Tarifa; tarifa.TarifaPersonalizadaTipoTarifa = vista.TarifaPersonalizadaTipoTarifa; tarifa.TarifaPersonalizadaTurno = vista.TarifaPersonalizadaTurno; tarifa.TarifaPersonalizadaTarifaHrAdicional = vista.TarifaHrAdicional; tarifa.TarifaBaseTipoTarifaID = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaID.ToString()); tarifa.TarifaBasePeriodoTarifa = (EPeriodosTarifa)this.vista.PeriodoTarifa; tarifa.TarifaBaseDivisa = new DivisaBO { MonedaDestino = new MonedaBO { Codigo = this.vista.CodigoMoneda } }; tarifa.TarifaBaseActivo = true; tarifa.TarifaPersonalizadaPorcentajeDescuento = this.vista.PorcentajeDescuentoTarifa; tarifa.TarifaPersonalizadaTarifaConDescuento = this.vista.TarifaConDescuento; tarifa.TarifaPersonalizadaPorcentajeSeguro = this.vista.PorcentajeSeguro; this.vista.LimpiarPaqueteNavegacion("TarifaPersonalizaPSLEnviada"); this.vista.EstablecerPaqueteNavegacion("TarifaPersonalizaPSLEnviada", tarifa); }
/// <summary> /// Calcula la tarifa de la unidad, dependiendo de los campos Periodo, Tarifa Turno, Tipo Tarifa, Unidad Operativa y Modelo de la unidad. /// </summary> public void ObtieneTarifaBase() { try { TarifaPSLBO tarifaBO = new TarifaPSLBO(); TarifaPersonalizadaPSLModel tarifaModel = (TarifaPersonalizadaPSLModel)this.vista.ObtenerPaqueteNavegacion("TarifaPersonalizaPSLEnviada"); tarifaBO.PeriodoTarifa = tarifaModel.TarifaBasePeriodoTarifa; tarifaBO.TipoTarifaID = tarifaModel.TarifaPersonalizadaTipoTarifa; tarifaBO.Divisa = tarifaModel.TarifaBaseDivisa; int valorTurno; switch (this.vista.UnidadOperativaID) { case (int)ETipoEmpresa.Construccion: valorTurno = BPMO.Facade.SDNI.BR.FacadeBR.ObtenerValorEnumerador <ETarifaTurnoConstruccion>(tarifaModel.TarifaPersonalizadaTurno); tarifaBO.TarifaTurno = (ETarifaTurnoConstruccion)valorTurno; break; case (int)ETipoEmpresa.Generacion: valorTurno = BPMO.Facade.SDNI.BR.FacadeBR.ObtenerValorEnumerador <ETarifaTurnoGeneracion>(tarifaModel.TarifaPersonalizadaTurno); tarifaBO.TarifaTurno = (ETarifaTurnoGeneracion)valorTurno; break; case (int)ETipoEmpresa.Equinova: valorTurno = BPMO.Facade.SDNI.BR.FacadeBR.ObtenerValorEnumerador <ETarifaTurnoEquinova>(tarifaModel.TarifaPersonalizadaTurno); tarifaBO.TarifaTurno = (ETarifaTurnoEquinova)valorTurno; break; } tarifaBO.Modelo = new BPMO.Servicio.Catalogos.BO.ModeloBO { Id = this.vista.ModeloID }; tarifaBO.Sucursal = new SucursalBO { Id = this.vista.SucursalID, UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativaID } }; tarifaBO.Activo = true; TarifaPSLBR tarifaBR = new TarifaPSLBR(); List <TarifaPSLBO> lstTarifas = tarifaBR.Consultar(this.dataContext, tarifaBO); if (lstTarifas != null && lstTarifas.Count > 0) { this.vista.TarifaBase = lstTarifas[0].Tarifa; } else { this.vista.MostrarMensaje("No se encontró una tarifa configurada.", ETipoMensajeIU.ADVERTENCIA); } } catch { throw new Exception(this.nombreClase + ".ObtieneTarifaBase: Error al obtener la tarifa"); } }
/// <summary> /// Actualiza la tarifa en base al diálogo de personalización de tarifa /// </summary> public void ActualizarTarifaPersonalizada() { try { object objetoDevuelto = this.vista.ObtenerPaqueteNavegacion("TarifaPersonalizaPSLDevuelta"); if (objetoDevuelto != null) { TarifaPersonalizadaPSLModel tarifaNueva = (TarifaPersonalizadaPSLModel)objetoDevuelto; this.vista.Tarifa = tarifaNueva.TarifaPersonalizadaTarifa; this.vista.PorcentajeDescuentoTarifa = tarifaNueva.TarifaPersonalizadaPorcentajeDescuento; this.vista.TarifaConDescuento = tarifaNueva.TarifaPersonalizadaTarifaConDescuento; } } catch { new Exception(this.nombreClase + ".ActualizarTarifaPersonalizada: Error al actualizar la tarifa personalizada"); } }
/// <summary> /// Actualiza la tarifa seleccionada con los datos de la tarifa personalizada /// </summary> public void ActualizarTarifa() { TarifaPersonalizadaPSLModel tarifa = new TarifaPersonalizadaPSLModel(); tarifa.TarifaPersonalizadaEtiqueta = this.vista.esTarifaAlza ? null : this.vista.TarifaPersonalizadaEtiqueta; tarifa.TarifaPersonalizadaTarifa = this.vista.TarifaPersonalizadaTarifa; tarifa.TarifaPersonalizadaDescuentoMax = this.vista.esTarifaAlza ? null : this.vista.TarifaPersonalizadaDescuentoMax; tarifa.TarifaPersonalizadaPorcentajeDescuento = this.vista.esTarifaAlza ? null : this.vista.TarifaPersonalizadaPorcentajeDescuento; tarifa.TarifaPersonalizadaTarifaConDescuento = this.vista.esTarifaAlza ? null : this.vista.TarifaPersonalizadaTarifaConDescuento; this.vista.LimpiarPaqueteNavegacion("TarifaPersonalizaPSLDevuelta"); this.vista.EstablecerPaqueteNavegacion("TarifaPersonalizaPSLDevuelta", tarifa); this.vista.MostrarMensaje("Se ha personalizado la tarifa con éxito", ETipoMensajeIU.EXITO); }
/// <summary> /// Despliega los datos de la unidad a la interfaz /// </summary> /// <param name="unidad"></param> private void DatoAInterfazUsuario(TarifaPersonalizadaPSLModel tarifa) { vista.UnidadOperativaID = tarifa.UnidadOperativaID; vista.SucursalID = tarifa.SucursalID; vista.ModeloID = tarifa.ModeloID; vista.ModuloID = tarifa.ModuloID; vista.CuentaClienteID = tarifa.CuentaClienteID; vista.UsuarioID = tarifa.UsuarioID; vista.TarifaPersonalizadaTarifa = tarifa.TarifaPersonalizadaTarifa; vista.TarifaPersonalizadaTipoTarifa = tarifa.TarifaPersonalizadaTipoTarifa; //Se asigna el get de la misma propiedad, esta regresa un string con el tipo tarifa seleccionada vista.TarifaPersonalizadaTurno = tarifa.TarifaPersonalizadaTurno; //Se asigna el get de la misma propiedad, esta regresa un string con el turno seleccionado vista.TarifaPersonalizadaTarifaHrAdicional = tarifa.TarifaPersonalizadaTarifaHrAdicional; vista.TarifaPersonalizadaDescuentoMax = tarifa.TarifaPersonalizadaDescuentoMax; vista.TarifaPersonalizadaTarifaConDescuento = tarifa.TarifaPersonalizadaTarifaConDescuento; vista.TarifaPersonalizadaPorcentajeDescuento = tarifa.TarifaPersonalizadaPorcentajeDescuento; vista.TarifaBase = tarifa.TarifaPersonalizadaTarifa; vista.DescuentoBase = tarifa.TarifaPersonalizadaPorcentajeDescuento; vista.TarifaPersonalizadaPorcentajeSeguro = tarifa.TarifaPersonalizadaPorcentajeSeguro; }
/// <summary> /// Establece le paquete de datos de navegación /// </summary> /// <param name="paqueteNavegacion">Paquete de Navegación</param> private void EstablecerDatosNavegacion(object paqueteNavegacion) { try { if (paqueteNavegacion == null) { throw new Exception("Se esperaba un objeto en la navegación. No se puede identificar qué contrato se desea consultar."); } if (!(paqueteNavegacion is TarifaPersonalizadaPSLModel)) { throw new Exception("Se esperaba un Contrato de Renta Ordinaría."); } TarifaPersonalizadaPSLModel bo = (TarifaPersonalizadaPSLModel)paqueteNavegacion; this.DatoAInterfazUsuario(bo); } catch (Exception ex) { this.DatoAInterfazUsuario(new TarifaPersonalizadaPSLModel()); throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: " + ex.Message); } }