public RegistrarTarifaPSLPRE(IRegistrarTarifaPSLVIS vistaActual, IucTarifaPSLVIS vistaTarifas) { this.vista = vistaActual; presentadorTarifas = new ucTarifaPSLPRE(vistaTarifas); dctx = FacadeBR.ObtenerConexion(); tarifaPSLBR = new TarifaPSLBR(); }
private TarifaPSLBO ConsultarTarifa(TarifaPSLBO tarifa) { try { if (tarifa == null) { throw new Exception("Se esperaba el objeto TarifaPSLBO"); } if (tarifa.TarifaPSLID == null) { throw new Exception("Se necesita el identificador de la tarifa"); } List <TarifaPSLBO> lstTemp = new List <TarifaPSLBO>(); tarifaBR = new TarifaPSLBR(); lstTemp = tarifaBR.ConsultarCompleto(dctx, tarifa); if (lstTemp.Count == 0) { throw new Exception("No se encontro ningún registro en la base datos"); } if (lstTemp.Count > 1) { throw new Exception("Inconsistencias en los registros de la base datos, se encontro mas de un registro de la tarifa que desea buscar"); } return(lstTemp[0]); } catch (Exception ex) { throw new Exception(nombreClase + ".ConsultarTarifa:Inconsistencias al consultar los datos de la Tarifa." + ex.Message); } }
public EditarTarifaPSLPRE(IEditarTarifaPSLVIS vistaActual, IucTarifaPSLVIS vistaTarifa) { try { this.vista = vistaActual; presentadorTarifas = new ucTarifaPSLPRE(vistaTarifa); tarifaBR = new TarifaPSLBR(); dctx = FacadeBR.ObtenerConexion(); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias al configurar el presentador", ETipoMensajeIU.ERROR, nombreClase + ".EditarTarifaPSLPRE:" + ex.Message); } }
/// <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> /// Método que realiza la consulta de las tarifas para cargar a la interfaz /// </summary> public void ConsultarTarifas() { try { TarifaPSLBO tarifa = InterfazUsuarioADato(); tarifaBr = new TarifaPSLBR(); List <TarifaPSLBO> lstTarifas = tarifaBr.ConsultarCompleto(dctx, tarifa); this.vista.ListaTarifas = lstTarifas != null?lstTarifas.ConvertAll(t => (TarifaPSLBO)t) : new List <TarifaPSLBO>(); if (lstTarifas.Count != 0) { this.vista.ActualizarListaTarifas(); } else { this.vista.ListaTarifas = null; this.vista.ActualizarListaTarifas(); MostrarMensaje("No se han encontrado tarifas con los filtros proporcionados", ETipoMensajeIU.INFORMACION); } } catch (Exception ex) { this.MostrarMensaje("Inconsistencias al momento de buscar las tarifas", ETipoMensajeIU.ERROR, nombreClase + ".ConsultarTarifas:" + ex.Message); } }
/// <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 CalcularTarifas() { try { this.vista.Tarifa = null; this.vista.TarifaHrAdicional = null; if (this.vista.PeriodoTarifa != null && this.vista.TarifaTurno != null && this.vista.TipoTarifaID != null && this.vista.UnidadOperativaID != null && this.vista.ModeloID != null) { ETipoTarifa tipo = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaID.ToString()); TarifaPSLBR tarifaBR = new TarifaPSLBR(); TarifaPSLBO tarifaBO = new TarifaPSLBO(); tarifaBO.PeriodoTarifa = (EPeriodosTarifa)this.vista.PeriodoTarifa; tarifaBO.TipoTarifaID = tipo.ToString(); tarifaBO.TarifaTurno = this.vista.TarifaTurno; tarifaBO.Modelo = new ModeloBO { Id = this.vista.ModeloID }; tarifaBO.Sucursal = new SucursalBO { Id = this.vista.SucursalID, UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativaID } }; tarifaBO.Activo = true; List <TarifaPSLBO> lstTarifas = tarifaBR.Consultar(this.dataContext, tarifaBO); if (lstTarifas.Any()) { Decimal tipoCambioAplicar = 1M; // Seleccionar tarifa de la misma moneda con la que se trabaja TarifaPSLBO tarifaAplicar = lstTarifas.FirstOrDefault(t => t.Divisa.MonedaDestino.Codigo == this.vista.CodigoMoneda); // Si no se encuentra tarifa con misma moneda se selecciona la primera que se encuentre if (tarifaAplicar == null) { tarifaAplicar = lstTarifas.FirstOrDefault(); // Calcular el tipo de cambio DivisaBO divisaConversion = new DivisaBO() { MonedaOrigen = tarifaAplicar.Divisa.MonedaDestino, MonedaDestino = new MonedaBO() { Codigo = this.vista.CodigoMoneda }, FechaTipoCambio = DateTime.Now.Date }; divisaConversion = FacadeBR.ConsultarTipoCambio(this.dataContext, divisaConversion).FirstOrDefault(); if (divisaConversion == null) { throw new Exception("No se encuentra tipo de cambio de " + tarifaAplicar.Divisa.MonedaDestino.Codigo + " a " + this.vista.CodigoMoneda + "."); } tipoCambioAplicar = divisaConversion.TipoCambio.Value; } this.vista.Tarifa = tarifaAplicar.Tarifa * tipoCambioAplicar; this.vista.TarifaHrAdicional = tarifaAplicar.TarifaHrAdicional * tipoCambioAplicar; this.CalcularSeguro(this.vista.Tarifa); } else { this.vista.MostrarMensaje("No se encontró una tarifa configurada que coincida con el filtro proporcionado.", ETipoMensajeIU.ADVERTENCIA); } } } catch (Exception ex) { throw new Exception(this.nombreClase + ".CalcularTarifas: Error al obtener las tarifas. " + ex.Message); } }