public void CambioTipoTarifa()
 {
     if (this.vista.TipoTarifaSeleccionada != null)
     {
         ETipoTarifa tipo =
             (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaSeleccionada.ToString());
         if (tipo == ETipoTarifa.ESPECIAL)
         {
             this.vista.MostrarCliente(true);
             this.vista.NombreCliente = null;
             this.vista.ClienteID     = null;
         }
         else
         {
             this.vista.MostrarCliente(false);
             this.vista.NombreCliente = null;
             this.vista.ClienteID     = null;
         }
     }
     else
     {
         this.vista.MostrarCliente(false);
         this.vista.NombreCliente = null;
         this.vista.ClienteID     = null;
     }
 }
Example #2
0
        private string ValidarDatos()
        {
            string s = "";

            if (this.vista.TarifaID == null)
            {
                s += "Identificardor de la Tarifa";
            }
            if (this.vista.TipoTarifa == null)
            {
                s += "Tipo de Tarifa, ";
            }

            ETipoTarifa tipoTarifa = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());

            if (tipoTarifa == ETipoTarifa.ESPECIAL)
            {
                if (this.vista.Vigencia == null)
                {
                    s += "Vigencia, ";
                }
                if (this.vista.CuentaClienteID == null)
                {
                    s += "Cliente, ";
                }
                if (string.IsNullOrEmpty(this.vista.Observaciones))
                {
                    s += "Observaciones, ";
                }
            }

            if (string.IsNullOrEmpty(this.vista.Descripcion))
            {
                s += "Descripción, ";
            }
            if (this.vista.SucursalID == null)
            {
                s += "Sucursal, ";
            }
            if (String.IsNullOrEmpty(this.vista.CodigoMoneda))
            {
                s += "Moneda, ";
            }
            if (this.vista.ModeloID == null)
            {
                s += "Modelo, ";
            }
            if (this.vista.Estatus == null)
            {
                s += "Estatus, ";
            }

            if (s != null && s.Trim().CompareTo("") != 0)
            {
                return("Los siguientes campos no pueden estar vacíos: \n" + s.Substring(0, s.Length - 2));
            }

            return(null);
        }
 private void PermitirAplicarSoloEspecial(bool soloEspecial)
 {
     try {
         ETipoTarifa tipo =
             (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());
         if (tipo == ETipoTarifa.ESPECIAL && !soloEspecial)
         {
             this.vista.RedirigirSinPermisoAcceso();
         }
     } catch (Exception ex) {
         throw new Exception("");
     }
 }
 private void PermitirAplicarSoloEspecial(bool aplicarSoloEspecial)
 {
     try {
         ETipoTarifa tipo =
             (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());
         if (tipo == ETipoTarifa.ESPECIAL)
         {
             this.vista.PermitirEditar(aplicarSoloEspecial);
         }
     } catch (Exception ex) {
         throw new Exception(nombreClase + ".PermitirAplicarSoloEspecial:Error al configurar la accion permitir Editar una Tarifa Especial." + 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);
            }
        }
        private List <TarifaPSLBO> InterfazUsuarioADato()
        {
            try {
                if (this.vista.UnidadOperativaID == null)
                {
                    throw new Exception("El identificador de la Unidad Operativa no puede ser nulo");
                }
                if (this.vista.AplicarOtrasSucursales == null)
                {
                    throw new Exception("No aplicar a otras sucursales no puede ser nulo");
                }
                if (this.vista.Estatus == null)
                {
                    throw new Exception("El estatus no debe ser nulo");
                }

                List <TarifaPSLBO> lstTarifas        = new List <TarifaPSLBO>();
                List <TarifaPSLBO> tarifasAnteriores = this.vista.TarifasAnteriores;

                TarifaPSLBO tarifa     = this.presentadorTarifas.InterfazUsuarioADato();
                ETipoTarifa tipoTarifa = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());
                tarifa.Tipo   = tipoTarifa;
                tarifa.Modelo = new ModeloBO {
                    Id = this.vista.ModeloID
                };
                tarifa.Divisa = new DivisaBO {
                    MonedaDestino = new MonedaBO {
                        Codigo = this.vista.CodigoMoneda
                    }
                };
                tarifa.Activo    = this.vista.Estatus;
                tarifa.Auditoria = new AuditoriaBO
                {
                    FUA = this.vista.FUA,
                    UUA = this.vista.UsuarioID
                };

                if (this.vista.AplicarOtrasSucursales != null && this.vista.AplicarOtrasSucursales == true)
                {
                    foreach (SucursalBO suc in this.vista.SessionListaSucursalSeleccionada)
                    {
                        if (tarifasAnteriores.Find(t => suc.Id == t.Sucursal.Id) != null)
                        {
                            tarifasAnteriores.RemoveAll(s => s.Sucursal.Id == suc.Id);
                        }
                    }
                    this.vista.TarifasAnteriores = tarifasAnteriores;
                    foreach (TarifaPSLBO t in tarifasAnteriores)
                    {
                        TarifaPSLBO tarifaTemp = new TarifaPSLBO(tarifa)
                        {
                            Sucursal = t.Sucursal, TarifaPSLID = t.TarifaPSLID
                        };
                        lstTarifas.Add(tarifaTemp);
                    }
                }
                else
                {
                    this.vista.TarifasAnteriores.RemoveAll(t => t.Sucursal.Id != this.vista.SucursalID);

                    tarifa.Sucursal    = tarifasAnteriores.FindLast(t => t.Sucursal.Id == this.vista.SucursalID).Sucursal;
                    tarifa.TarifaPSLID = this.vista.TarifaPSLID;
                    lstTarifas.Add(tarifa);
                }

                return(lstTarifas);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".InterfazUsuarioADato:Error al obtener los datos a actualizar." + ex.Message);
            }
        }
        private List <TarifaRDBO> InterfazUsuarioADato()
        {
            try
            {
                if (this.vista.UnidadOperativaID == null)
                {
                    throw new Exception("El identificador de la unidad no puede ser nulo");
                }
                if (this.vista.AplicarOtrasSucursales == null)
                {
                    throw new Exception("No se puede obtener el valor del control Aplicar a otras sucursales");
                }

                List <TarifaRDBO> lstTarifas = new List <TarifaRDBO>();
                TarifaRDBO        tarifa     = this.presentadorTarifas.InterfazUsuarioADato();
                ETipoTarifa       tipo       = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaSeleccionada.ToString());
                if (tipo == ETipoTarifa.ESPECIAL)
                {
                    tarifa.Cliente = new CuentaClienteIdealeaseBO {
                        Id = this.vista.ClienteID
                    };
                }
                tarifa.Tipo   = tipo;
                tarifa.Modelo = new ModeloBO {
                    Id = this.vista.ModeloID
                };
                tarifa.Divisa = new DivisaBO
                {
                    MonedaDestino = new MonedaBO {
                        Codigo = this.vista.MonedaSeleccionada
                    }
                };
                tarifa.Descripcion = this.vista.Descripcion;
                tarifa.Activo      = true;
                tarifa.Auditoria   = new AuditoriaBO
                {
                    UC  = this.vista.UC,
                    FC  = this.vista.FC,
                    FUA = this.vista.FC,
                    UUA = this.vista.UC
                };
                tarifa.Vigencia      = this.vista.Vigencia;
                tarifa.Observaciones = this.vista.Observaciones;

                if (this.vista.AplicarOtrasSucursales != null && this.vista.AplicarOtrasSucursales == true)
                {
                    List <SucursalBO> sucursalesAplicar = SucursalesSeguridad();
                    foreach (SucursalBO suc in this.vista.ListaSucursalSeleccionada)
                    {
                        if (sucursalesAplicar.Find(s => suc.Id == s.Id) != null)
                        {
                            sucursalesAplicar.RemoveAll(s => s.Id == suc.Id);
                        }
                    }
                    foreach (SucursalBO suc in sucursalesAplicar)
                    {
                        TarifaRDBO tarifaTemp = new TarifaRDBO(tarifa)
                        {
                            Sucursal = suc
                        };
                        lstTarifas.Add(tarifaTemp);
                    }
                }
                else
                {
                    tarifa.Sucursal = new SucursalBO
                    {
                        Id = this.vista.SucursalID,
                        UnidadOperativa = new UnidadOperativaBO {
                            Id = this.vista.UnidadOperativaID
                        }
                    };
                    lstTarifas.Add(tarifa);
                }
                return(lstTarifas);
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".InterfazUsuarioADato:Error al intentar obtener obtener los datos a guardar. " + ex.Message);
            }
        }