public TarifaPSLBO InterfazUsuarioADato()
        {
            try {
                TarifaPSLBO tarifa = new TarifaPSLBO();
                tarifa.RangoTarifas      = new List <RangoTarifaPSLBO>();
                tarifa.Tarifa            = this.vista.Tarifa;
                tarifa.TarifaHrAdicional = this.vista.TarifaHrAdicional;
                if (this.vista.CrearRangos.Value)
                {
                    tarifa.RangoTarifas.AddRange(this.vista.RangosTarifa.Select(rango => new RangoTarifaPSLBO(rango)).ToList());
                }
                else
                {
                    var rangoTarifa = new RangoTarifaPSLBO()
                    {
                        RangoInicial = 1,
                        RangoFinal   = null,
                        Cargo        = 0
                    };
                    tarifa.RangoTarifas.Add(rangoTarifa);
                }

                return(tarifa);
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".InterfazUsuarioADato:Error al intentar obtener las tarifas." + ex.Message);
            }
        }
示例#2
0
 private bool ExisteTarifa()
 {
     try {
         TarifaPSLBO tarifaTemp = new TarifaPSLBO();
         tarifaTemp.Sucursal = new SucursalBO {
             Id = this.vista.SucursalID
         };
         tarifaTemp.Modelo = new ModeloBO {
             Id = this.vista.ModeloID
         };
         tarifaTemp.Divisa = new DivisaBO {
             MonedaDestino = new MonedaBO {
                 Codigo = this.vista.MonedaSeleccionada
             }
         };
         tarifaTemp.Tipo          = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaSeleccionada.ToString());
         tarifaTemp.PeriodoTarifa = (EPeriodosTarifa)this.vista.PeriodoTarifaSeleccionada;
         Type type = this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion ? typeof(ETarifaTurnoConstruccion) :
                     this.vista.UnidadOperativaID == (int)ETipoEmpresa.Generacion ? typeof(ETarifaTurnoGeneracion) : typeof(ETarifaTurnoEquinova);
         tarifaTemp.TarifaTurno = (Enum)Enum.ToObject(type, this.vista.TarifaTurnoSeleccionada);
         List <TarifaPSLBO> lstTarifas = tarifaPSLBR.Consultar(dctx, tarifaTemp);
         if (lstTarifas.Count == 0)
         {
             return(false);
         }
         return(true);
     } catch (Exception ex) {
         throw new Exception(this.nombreClase + ".ExisteTarifa: " + ex.Message);
     }
 }
        public void DatosAInterfazUsuario(TarifaPSLBO tarifa)
        {
            try {
                if (Object.ReferenceEquals(tarifa, null))
                {
                    tarifa = new TarifaPSLBO()
                    {
                        RangoTarifas = new List <RangoTarifaPSLBO>()
                        {
                            new RangoTarifaPSLBO()
                        }
                    }
                }
                ;

                this.vista.Tarifa            = tarifa.Tarifa;
                this.vista.TarifaHrAdicional = tarifa.TarifaHrAdicional;
                this.vista.RangosTarifa      = tarifa.RangoTarifas;
                if (this.vista.CrearRangos.Value)
                {
                    this.vista.PresentarRangos(tarifa.RangoTarifas);
                }
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".DatosAInterfazUsuario:Error al intentar establecer los datos de la tarifa." + ex.Message);
            }
        }
        public void RealizarPrimeraCarga()
        {
            try {
                if (this.vista.ObtenerDatosNavegacion() == null)
                {
                    throw new Exception("Se esperaba Datos de Navegación");
                }
                if (!(this.vista.ObtenerDatosNavegacion() is TarifaPSLBO))
                {
                    throw new Exception("Se esperaba un objeto de TarifaPSLBO");
                }

                TarifaPSLBO tarifa = (TarifaPSLBO)this.vista.ObtenerDatosNavegacion();

                tarifa = ConsultarTarifa(tarifa);

                this.DatoAInterfazUsuario(tarifa, ObtenerPrecioCombustible());
                #region SC0024
                this.VerificarOpRegresar();
                #endregion SC0024
                this.vista.LimpiarSesion();
                this.EstablecerSeguridad();
            } catch (Exception ex) {
                this.MostrarMensaje("Inconsistencias al momento de obtener los datos de la tarifa", ETipoMensajeIU.ERROR, nombreClase + ".RealizarPrimeraCarga:" + ex.Message);
                DatoAInterfazUsuario(new TarifaPSLBO(), null);
                this.vista.PermitirEditar(false);
            }
        }
        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);
            }
        }
        /// <summary>
        /// Método para obtener la información de la interfaz y asignarla a un objeto de tipo TarifaPSLBO
        /// </summary>
        /// <returns>Regresa un objeto de tipo TarifaPSLBO</returns>
        private TarifaPSLBO InterfazUsuarioADato()
        {
            try {
                TarifaPSLBO bo = new TarifaPSLBO();
                bo.RangoTarifas             = new List <RangoTarifaPSLBO>();
                bo.Sucursal                 = new SucursalBO();
                bo.Sucursal.UnidadOperativa = new UnidadOperativaBO();

                bo.Sucursal.UnidadOperativa.Id = this.vista.UnidadOperativaID;
                bo.Sucursal.Id = this.vista.SucursalID;

                if (this.vista.ModeloID != null)
                {
                    bo.Modelo = new ModeloBO {
                        Id = this.vista.ModeloID
                    }
                }
                ;
                if (!String.IsNullOrEmpty(this.vista.CodigoMoneda))
                {
                    bo.Divisa = new DivisaBO {
                        MonedaDestino = new MonedaBO {
                            Codigo = this.vista.CodigoMoneda
                        }
                    }
                }
                ;
                if (this.vista.TipoTarifa != null)
                {
                    bo.TipoTarifaID = Enum.GetName(typeof(ETipoTarifa), this.vista.TipoTarifa);
                }
                if (this.vista.SucursalID == null)
                {
                    bo.SucursalesConsulta = FacadeBR.ConsultarSucursalesSeguridad(dctx, new SeguridadBO(Guid.Empty, new UsuarioBO {
                        Id = this.vista.UsuarioID
                    }, new AdscripcionBO {
                        UnidadOperativa = new UnidadOperativaBO {
                            Id = this.vista.UnidadOperativaID
                        }
                    }));
                }
                if (this.vista.TarifaTurno != null && Convert.ToInt32(this.vista.TarifaTurno) > 0)
                {
                    Type type = this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion ? typeof(ETarifaTurnoConstruccion) :
                                this.vista.UnidadOperativaID == (int)ETipoEmpresa.Generacion ? typeof(ETarifaTurnoGeneracion) :
                                typeof(ETarifaTurnoEquinova);
                    bo.TarifaTurno = (Enum)Enum.ToObject(type, this.vista.TarifaTurno);
                }
                if (this.vista.PeriodoTarifa > 0)
                {
                    bo.PeriodoTarifa = (EPeriodosTarifa)this.vista.PeriodoTarifa;
                }
                bo.Activo = this.vista.Estatus;

                return(bo);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".InterfazUsuarioADato:Inconsistencias al obtener los datos proporcionados como filtro de la consulta" + ex.Message);
            }
        }
 public void IrAEditar()
 {
     try {
         TarifaPSLBO tarifaTemp = InterfazUsuarioADato();
         this.vista.EstablecerDatosNavegacion(tarifaTemp);
         this.vista.RedirigirAEditar();
     } catch (Exception ex) {
         this.MostrarMensaje("Error al intentar ir a editar la tarifa", ETipoMensajeIU.ERROR, nombreClase + "IrAEditar" + ex.Message);
     }
 }
        /// <summary>
        /// SC0024
        /// Despliega en la vista un objeto recuperado
        /// </summary>
        /// <param name="obj">Objeto que se desea desplegar</param>
        private void DatosAIntefazUsuario(object obj)
        {
            TarifaPSLBO tarifa = (TarifaPSLBO)obj;

            if (!ReferenceEquals(tarifa, null))
            {
                #region Sucursal
                if (!ReferenceEquals(tarifa.Sucursal, null))
                {
                    this.vista.SucursalID = tarifa.Sucursal.Id.HasValue
                                                ? tarifa.Sucursal.Id
                                                : null;
                    this.vista.NombreSucursal = !string.IsNullOrEmpty(tarifa.Sucursal.Nombre) && !string.IsNullOrWhiteSpace(tarifa.Sucursal.Nombre)
                                                    ? tarifa.Sucursal.Nombre
                                                    : string.Empty;
                }
                #endregion

                #region Modelo
                if (!ReferenceEquals(tarifa.Modelo, null))
                {
                    this.vista.ModeloID     = tarifa.Modelo.Id.HasValue ? tarifa.Modelo.Id : null;
                    this.vista.NombreModelo = !string.IsNullOrEmpty(tarifa.Modelo.Nombre) && !string.IsNullOrWhiteSpace(tarifa.Modelo.Nombre)
                                                  ? tarifa.Modelo.Nombre
                                                  : string.Empty;
                }
                #endregion

                #region Moneda
                if (!ReferenceEquals(tarifa.Divisa, null))
                {
                    if (!ReferenceEquals(tarifa.Divisa.MonedaDestino, null))
                    {
                        this.vista.CodigoMoneda = !string.IsNullOrEmpty(tarifa.Divisa.MonedaDestino.Codigo) &&
                                                  !string.IsNullOrWhiteSpace(tarifa.Divisa.MonedaDestino.Codigo)
                                                      ? tarifa.Divisa.MonedaDestino.Codigo
                                                      : "-1";
                    }
                }
                #endregion

                #region TipoTarifa
                this.vista.TipoTarifa = tarifa.Tipo.HasValue ? (int?)tarifa.Tipo : null;
                #endregion

                this.vista.TarifaTurno   = tarifa.TarifaTurno;
                this.vista.PeriodoTarifa = tarifa.PeriodoTarifa;
                this.vista.Estatus       = tarifa.Activo.HasValue ? tarifa.Activo : null;
            }
            else
            {
                this.LimpiarCampos();
            }
        }
示例#9
0
 protected void grdTarifas_RowDataBound(object sender, GridViewRowEventArgs e)
 {
     try {
         if (e.Row.RowType == DataControlRowType.DataRow)
         {
             TarifaPSLBO tarifa      = (TarifaPSLBO)e.Row.DataItem;
             Label       lblSucursal = e.Row.FindControl("lblSucursal") as Label;
             if (lblSucursal != null)
             {
                 string sucursal = string.Empty;
                 if (tarifa.Sucursal != null)
                 {
                     sucursal = tarifa.Sucursal.Nombre;
                 }
                 lblSucursal.Text = sucursal;
             }
             Label lblModelo = e.Row.FindControl("lblModelo") as Label;
             if (lblModelo != null)
             {
                 string modelo = string.Empty;
                 if (tarifa.Modelo != null)
                 {
                     modelo = tarifa.Modelo.Nombre;
                 }
                 lblModelo.Text = modelo;
             }
             Label lblMoneda = e.Row.FindControl("lblMoneda") as Label;
             if (lblMoneda != null)
             {
                 string moneda = string.Empty;
                 if (tarifa.Divisa != null && tarifa.Divisa.MonedaDestino != null)
                 {
                     moneda = tarifa.Divisa.MonedaDestino.Nombre;
                 }
                 lblMoneda.Text = moneda;
             }
             Label lblTipoTarifa = e.Row.FindControl("lblTipoTarifa") as Label;
             if (lblTipoTarifa != null)
             {
                 string tipo = string.Empty;
                 if (tarifa.TipoTarifaID != null)
                 {
                     tipo = tarifa.TipoTarifaID.ToString();
                 }
                 lblTipoTarifa.Text = tipo;
             }
         }
     } catch (Exception ex) {
         MostrarMensaje("Inconsistencia al monento de desplegar la lista de tarifas", ETipoMensajeIU.ERROR, nombreClase + ".grdTarifas_RowDataBound:" + ex.Message);
     }
 }
示例#10
0
        public void Guardar()
        {
            try {
                string s;
                if ((s = this.ValidarCamposConfiguracion()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                    return;
                }
                if ((s = this.ValidarCampos()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                    return;
                }
                if ((s = this.presentadorTarifas.ValidarDatos()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                    return;
                }

                #region Logica de Inserción
                List <TarifaPSLBO> lst = this.InterfazUsuarioADato();
                tarifaPSLBR.InsertarCompleto(dctx, lst, new SeguridadBO(Guid.Empty, new UsuarioBO()
                {
                    Id = this.vista.UC
                }, new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                }));
                TarifaPSLBO        tarifaTemp = lst.FindLast(t => t.Sucursal.Id == this.vista.SucursalID);
                List <TarifaPSLBO> lstTemp    = tarifaPSLBR.Consultar(dctx, tarifaTemp);

                if (lstTemp.Count != 0)
                {
                    tarifaTemp.TarifaPSLID = lstTemp[0].TarifaPSLID;
                }
                #endregion

                this.vista.LimpiarSesion();
                this.vista.EstablecerPaqueteNavegacion((object)tarifaTemp);
                this.vista.RedirigirADetalle();
            } catch (Exception ex) {
                this.MostrarMensaje("Inconsistencias al momento de registrar la tarifa configurada",
                                    ETipoMensajeIU.ERROR, this.nombreClase + ".Guardar:" + ex.Message);
            }
        }
        private TarifaPSLBO ConsultarTarifas()
        {
            try {
                if (this.vista.AplicarOtrasSucursales == null)
                {
                    throw new Exception("El valor del aplicar a otras sucursales no puede ser nulo");
                }
                if (this.vista.UsuarioID == null)
                {
                    throw new Exception("El identificador del usuario no puede ser nulo");
                }
                if (this.vista.UnidadOperativaID == null)
                {
                    throw new Exception("El identificador de la unidad operativa no puede ser nulo");
                }
                if (this.vista.ObtenerDatosNavegacion() == null)
                {
                    throw new Exception("Se esperaba un objeto de navegación");
                }
                if (!(this.vista.ObtenerDatosNavegacion() is TarifaPSLBO))
                {
                    throw new Exception("Se esperaba un TarifaPSLBO en el paquete de navegación");
                }
                TarifaPSLBO tarifaTemp = this.vista.ObtenerDatosNavegacion() as TarifaPSLBO;

                if (this.vista.AplicarOtrasSucursales == false)
                {
                    tarifaTemp = ConsultarTarifaSucursal(new TarifaPSLBO {
                        TarifaPSLID = tarifaTemp.TarifaPSLID
                    });
                    List <TarifaPSLBO> lst = new List <TarifaPSLBO>();
                    lst.Add(new TarifaPSLBO(tarifaTemp));
                    this.vista.TarifasAnteriores = lst;
                    return(tarifaTemp);
                }
                else
                {
                    tarifaTemp = ConsultarTarifaSucursal(new TarifaPSLBO {
                        TarifaPSLID = tarifaTemp.TarifaPSLID
                    });
                    List <TarifaPSLBO> lstTemp = ConsultarTarifasSucursales(tarifaTemp);
                    this.vista.TarifasAnteriores = lstTemp;
                    return(tarifaTemp);
                }
                return(null);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".ConsultarTarifas:Error al obtener los datos de la tarifa." + 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 redirige a la pantalla de detalle
 /// </summary>
 /// <param name="tarifaID">Identificador de la tarifa que desea ver el detalle</param>
 public void IrADetalle(int?tarifaID)
 {
     try {
         TarifaPSLBO tarifa = new TarifaPSLBO {
             TarifaPSLID = tarifaID
         };
         this.vista.LimpiarSesion();
         #region SC0024
         Dictionary <string, object> elementosFiltro = new Dictionary <string, object>();
         elementosFiltro.Add("ObjetoFiltro", this.InterfazUsuarioADatoNavegacion());
         elementosFiltro.Add("PagActGrid", this.vista.IndicePaginaResultado);
         elementosFiltro.Add("Bandera", true);
         #endregion
         this.vista.EstablecerDatosNavegacion(tarifa, elementosFiltro);
         this.vista.RedirigirADetalle();
     } catch (Exception ex) {
         this.MostrarMensaje("Error al momento de intentar redirigir al detalle de la tarifa seleccionada", ETipoMensajeIU.ERROR, nombreClase + "IrADetalle" + ex.Message);
     }
 }
        public void RealizarPrimeraCarga()
        {
            this.PrepararNuevo();

            //Si la sucursal seleccionada es matriz entonces puede aplicar tarifas a varias sucursales
            List <SucursalBO> lst = FacadeBR.ConsultarSucursal(this.dctx, new SucursalBO()
            {
                Id = this.vista.SucursalID
            });
            bool esMatriz = (lst.Count > 0 && lst[0].Matriz != null && lst[0].Matriz == true);

            this.vista.PermitirAgregarSucursales(esMatriz);
            this.MostrarLeyendaSucursales(esMatriz);
            this.vista.AplicarOtrasSucursales = esMatriz;

            TarifaPSLBO tarifa = this.ConsultarTarifas();

            this.DatoAInterfazUsuario(tarifa);
            this.vista.PrecioCombustible = ObtenerPrecioCombustible();

            this.EstablecerSeguridad();
        }
        /// <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);
            }
        }
 private TarifaPSLBO ConsultarTarifaSucursal(TarifaPSLBO tarifa)
 {
     try {
         if (Object.ReferenceEquals(tarifa, null))
         {
             throw new Exception("El objeto no puede ser nulo");
         }
         if (tarifa.TarifaPSLID == null)
         {
             throw new Exception("El identificador de la tarifa no puede ser nulo");
         }
         List <TarifaPSLBO> lstTarifas = tarifaBR.ConsultarCompleto(dctx, new TarifaPSLBO {
             TarifaPSLID = tarifa.TarifaPSLID
         });
         if (lstTarifas.Count == 0)
         {
             throw new Exception("No se encontro la tarifa especificada");
         }
         TarifaPSLBO tarifaTemp = new TarifaPSLBO(lstTarifas[0]);
         return(tarifaTemp);
     } catch (Exception ex) {
         throw new Exception(nombreClase + ".ConsultarTarifaSucursal:Error al consultar la tarifa." + ex.Message);
     }
 }
        private TarifaPSLBO InterfazUsuarioADato()
        {
            TarifaPSLBO tarifa = new TarifaPSLBO();

            tarifa.TarifaPSLID   = this.vista.TarifaPSLID;
            tarifa.TarifaTurno   = this.vista.TarifaTurno;
            tarifa.PeriodoTarifa = this.vista.PeriodoTarifa;
            tarifa.Divisa        = new DivisaBO {
                MonedaDestino = new MonedaBO {
                    Codigo = this.vista.CodigoMoneda
                }
            };
            tarifa.Modelo = new ModeloBO {
                Id = this.vista.ModeloID
            };
            tarifa.Sucursal = new SucursalBO {
                Id = this.vista.SucursalID, UnidadOperativa = new UnidadOperativaBO {
                    Id = this.vista.UnidadOperativaID
                }
            };
            tarifa.Tipo = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());

            return(tarifa);
        }
        private List <TarifaPSLBO> ConsultarTarifasSucursales(TarifaPSLBO tarifa)
        {
            try {
                //validacion de los filtros obligatorios para buscar las sucursales que tienen la misma tarifa.
                if (Object.ReferenceEquals(tarifa, null))
                {
                    throw new Exception("El objeto no puede ser nulo");
                }
                if (Object.ReferenceEquals(tarifa.Modelo, null))
                {
                    throw new Exception("El objeto Modelo de la tarifa no puede ser nulo");
                }
                if (tarifa.Divisa == null || tarifa.Divisa.MonedaDestino == null)
                {
                    throw new Exception(" El objeto de divisa de la tarifa no puede ser nulo");
                }
                if (tarifa.Tipo == null)
                {
                    throw new Exception("el tipo de tarifa no puede ser nulo");
                }

                if (this.vista.UnidadOperativaID == null)
                {
                    throw new Exception("La unidad Operativa de la tarifa no puede ser nulo");
                }
                if (tarifa.Modelo.Id == null)
                {
                    throw new Exception("el identificador del modelo de la tarifa no puede ser nulo");
                }
                if (String.IsNullOrEmpty(tarifa.Divisa.MonedaDestino.Codigo))
                {
                    throw new Exception("El código de la moneda no puede ser vacío");
                }


                //seccion de consulta
                TarifaPSLBO tarifaTemp = new TarifaPSLBO
                {
                    Sucursal = new SucursalBO {
                        UnidadOperativa = new UnidadOperativaBO {
                            Id = this.vista.UnidadOperativaID
                        }
                    },
                    Modelo = new ModeloBO {
                        Id = tarifa.Modelo.Id
                    },
                    Divisa = new DivisaBO {
                        MonedaDestino = new MonedaBO {
                            Codigo = tarifa.Divisa.MonedaDestino.Codigo
                        }
                    },
                    Tipo               = tarifa.Tipo,
                    Activo             = true,
                    SucursalesConsulta = SucursalesSeguridad()
                };
                List <TarifaPSLBO> lstTarifa = tarifaBR.Consultar(dctx, tarifaTemp);
                return(lstTarifa);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".ConsultarTarifasSucursales:Error al consultar las sucursales que tiene las mismas tarifas." + ex.Message);
            }
        }
        /// <summary>
        /// SC0024
        /// Obtiene la información capturada en la vista y la convierte en un objeto
        /// </summary>
        /// <returns>Objeto generado con los datos de la interfaz de usuario</returns>
        private object InterfazUsuarioADatoNavegacion()
        {
            try {
                TarifaPSLBO bof = new TarifaPSLBO();
                bof.RangoTarifas             = new List <RangoTarifaPSLBO>();
                bof.Sucursal                 = new SucursalBO();
                bof.Sucursal.UnidadOperativa = new UnidadOperativaBO();
                bof.Modelo = new ModeloBO();

                bof.Sucursal.UnidadOperativa.Id = this.vista.UnidadOperativaID;

                if (this.vista.SucursalID.HasValue)
                {
                    bof.Sucursal.Id = this.vista.SucursalID.Value;
                }

                if (!string.IsNullOrEmpty(this.vista.NombreSucursal) && !string.IsNullOrWhiteSpace(this.vista.NombreSucursal))
                {
                    bof.Sucursal.Nombre = this.vista.NombreSucursal.Trim().ToUpper();
                }

                if (this.vista.ModeloID.HasValue)
                {
                    bof.Modelo.Id = this.vista.ModeloID.Value;
                }

                if (!string.IsNullOrEmpty(this.vista.NombreModelo) && !string.IsNullOrWhiteSpace(this.vista.NombreModelo))
                {
                    bof.Modelo.Nombre = this.vista.NombreModelo.Trim().ToUpper();
                }

                if (!String.IsNullOrEmpty(this.vista.CodigoMoneda))
                {
                    bof.Divisa = new DivisaBO {
                        MonedaDestino = new MonedaBO {
                            Codigo = this.vista.CodigoMoneda
                        }
                    }
                }
                ;
                if (this.vista.TipoTarifa != null)
                {
                    bof.Tipo = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifa.ToString());
                }

                if (this.vista.SucursalID.HasValue)
                {
                    bof.SucursalesConsulta = FacadeBR.ConsultarSucursalesSeguridad(dctx, new SeguridadBO(Guid.Empty, new UsuarioBO {
                        Id = this.vista.UsuarioID
                    }, new AdscripcionBO {
                        UnidadOperativa = new UnidadOperativaBO {
                            Id = this.vista.UnidadOperativaID
                        }
                    }));
                }

                if (this.vista.Estatus.HasValue)
                {
                    bof.Activo = this.vista.Estatus;
                }
                bof.TarifaTurno   = this.vista.TarifaTurno;
                bof.PeriodoTarifa = this.vista.PeriodoTarifa;

                return(bof);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".InterfazUsuarioADato:Inconsistencias al obtener los datos proporcionados como filtro de la consulta" + 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 void DatoAInterfazUsuario(TarifaPSLBO tarifa)
        {
            if (Object.ReferenceEquals(tarifa, null))
            {
                tarifa = new TarifaPSLBO();
            }
            if (Object.ReferenceEquals(tarifa.Sucursal, null))
            {
                tarifa.Sucursal = new SucursalBO();
            }
            if (Object.ReferenceEquals(tarifa.Modelo, null))
            {
                tarifa.Modelo = new ModeloBO();
            }
            if (Object.ReferenceEquals(tarifa.Divisa, null))
            {
                tarifa.Divisa = new DivisaBO();
            }
            if (object.ReferenceEquals(tarifa.Divisa.MonedaDestino, null))
            {
                tarifa.Divisa.MonedaDestino = new MonedaBO();
            }

            this.vista.TarifaPSLID      = tarifa.TarifaPSLID;
            this.vista.SucursalID       = tarifa.Sucursal.Id;
            this.vista.NombreSucursal   = tarifa.Sucursal.Nombre;
            this.vista.ModeloID         = tarifa.Modelo.Id;
            this.vista.NombreModelo     = tarifa.Modelo.Nombre;
            this.vista.CodigoMoneda     = tarifa.Divisa.MonedaDestino.Codigo;
            this.vista.NombreMoneda     = tarifa.Divisa.MonedaDestino.Nombre;
            this.vista.NombreTipoTarifa = tarifa.Tipo.ToString();
            if (tarifa.TipoTarifaID != null)
            {
                this.vista.NombreTipoTarifa = tarifa.TipoTarifaID;
                foreach (var tipo in Enum.GetValues(typeof(ETipoTarifa)))
                {
                    if (Enum.GetName(typeof(ETipoTarifa), tipo) == tarifa.TipoTarifaID)
                    {
                        this.vista.TipoTarifa = (int)tipo;
                        break;
                    }
                }
            }
            this.vista.Estatus = tarifa.Activo;
            if (tarifa.TarifaTurno != null)
            {
                Type type = this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion ? typeof(ETarifaTurnoConstruccion) :
                            this.vista.UnidadOperativaID == (int)ETipoEmpresa.Generacion ? typeof(ETarifaTurnoGeneracion) : typeof(ETarifaTurnoEquinova);
                var memInfo = type.GetMember(type.GetEnumName(tarifa.TarifaTurno));
                var display = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;

                if (display != null)
                {
                    this.vista.NombreTarifaTurno = display.Description;
                }
                this.vista.TarifaTurno = tarifa.TarifaTurno;
            }

            if (tarifa.PeriodoTarifa != null)
            {
                this.vista.NombrePeriodoTarifa = Enum.GetName(typeof(EPeriodosTarifa), tarifa.PeriodoTarifa).Replace("_", "-");
                this.vista.PeriodoTarifa       = tarifa.PeriodoTarifa;
            }
            this.vista.Estatus = tarifa.Activo;

            presentadorTarifas.DatosAInterfazUsuario(tarifa);
            this.vista.NombreSucursalNoAplica           = null;
            this.vista.SucursalNoAplicaID               = null;
            this.vista.SessionListaSucursalSeleccionada = null;
        }
示例#22
0
        private List <TarifaPSLBO> 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 <TarifaPSLBO> lstTarifas = new List <TarifaPSLBO>();
                TarifaPSLBO        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.TipoTarifaID = tipo.ToString();
                tarifa.Modelo       = new ModeloBO {
                    Id = this.vista.ModeloID
                };
                tarifa.Divisa = new DivisaBO
                {
                    MonedaDestino = new MonedaBO {
                        Codigo = this.vista.MonedaSeleccionada
                    }
                };
                Type type = this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion ? typeof(ETarifaTurnoConstruccion) :
                            this.vista.UnidadOperativaID == (int)ETipoEmpresa.Generacion ? typeof(ETarifaTurnoGeneracion) : typeof(ETarifaTurnoEquinova);
                tarifa.TarifaTurno       = (Enum)Enum.ToObject(type, this.vista.TarifaTurnoSeleccionada);
                tarifa.PeriodoTarifa     = (EPeriodosTarifa)this.vista.PeriodoTarifaSeleccionada;
                tarifa.Tarifa            = this.vista.Tarifa;
                tarifa.TarifaHrAdicional = this.vista.TarifaHrAdicional;
                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;

                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)
                    {
                        TarifaPSLBO tarifaTemp = new TarifaPSLBO(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);
            }
        }
        /// <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 void DatoAInterfazUsuario(TarifaPSLBO tarifa, decimal?precioCombustible)
        {
            try {
                if (tarifa.TarifaPSLID != null)
                {
                    this.vista.TarifaPSLID = tarifa.TarifaPSLID;
                }
                if (tarifa.Modelo != null && tarifa.Modelo.Id != null)
                {
                    this.vista.NombreModelo = tarifa.Modelo.Nombre;
                    this.vista.ModeloID     = tarifa.Modelo.Id;
                }
                if (tarifa.Divisa != null && tarifa.Divisa.MonedaDestino != null &&
                    !String.IsNullOrEmpty(tarifa.Divisa.MonedaDestino.Codigo))
                {
                    this.vista.NombreMoneda = tarifa.Divisa.MonedaDestino.Nombre;
                    this.vista.CodigoMoneda = tarifa.Divisa.MonedaDestino.Codigo;
                }
                if (tarifa.Sucursal != null && tarifa.Sucursal.Id != null)
                {
                    this.vista.NombreSucursal = tarifa.Sucursal.Nombre;
                    this.vista.SucursalID     = tarifa.Sucursal.Id;
                }
                if (tarifa.TipoTarifaID != null)
                {
                    this.vista.NombreTipoTarifa = tarifa.TipoTarifaID;
                    foreach (var tipo in Enum.GetValues(typeof(ETipoTarifa)))
                    {
                        if (Enum.GetName(typeof(ETipoTarifa), tipo) == tarifa.TipoTarifaID)
                        {
                            this.vista.TipoTarifa = (int)tipo;
                            break;
                        }
                    }
                }
                if (tarifa.Auditoria != null)
                {
                    this.vista.FechaRegistro     = tarifa.Auditoria.FC;
                    this.vista.FechaModificacion = tarifa.Auditoria.FUA;
                    if (tarifa.Auditoria.UC != null)
                    {
                        this.vista.UsuarioRegistro = ObtenerNombreEmpleado(tarifa.Auditoria.UC);
                    }
                    if (tarifa.Auditoria.UUA != null)
                    {
                        this.vista.UsuarioModificacion = ObtenerNombreEmpleado(tarifa.Auditoria.UUA);
                    }
                }
                this.vista.Estatus = tarifa.Activo != null
                                         ? tarifa.Activo.ToString()
                                     .ToUpper()
                                     .Replace("TRUE", "ACTIVO")
                                     .Replace("FALSE", "INACTIVO")
                                         : String.Empty;

                if (tarifa.TarifaTurno != null)
                {
                    Type type = this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion ? typeof(ETarifaTurnoConstruccion) :
                                this.vista.UnidadOperativaID == (int)ETipoEmpresa.Generacion ? typeof(ETarifaTurnoGeneracion) :
                                typeof(ETarifaTurnoEquinova);
                    var memInfo = type.GetMember(type.GetEnumName(tarifa.TarifaTurno));
                    var display = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;

                    if (display != null)
                    {
                        this.vista.NombreTarifaTurno = display.Description;
                    }
                    switch ((ETipoEmpresa)this.vista.UnidadOperativaID)
                    {
                    case ETipoEmpresa.Construccion:
                        this.vista.TarifaTurno = (ETarifaTurnoConstruccion)tarifa.TarifaTurno;
                        break;

                    case ETipoEmpresa.Generacion:
                        this.vista.TarifaTurno = (ETarifaTurnoGeneracion)tarifa.TarifaTurno;
                        break;

                    case ETipoEmpresa.Equinova:
                        this.vista.TarifaTurno = (ETarifaTurnoEquinova)tarifa.TarifaTurno;
                        break;
                    }
                }

                if (tarifa.PeriodoTarifa != null)
                {
                    Type type    = typeof(EPeriodosTarifa);
                    var  memInfo = type.GetMember(type.GetEnumName(tarifa.PeriodoTarifa));
                    var  display = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;

                    if (display != null)
                    {
                        this.vista.NombrePeriodoTarifa = display.Description;
                    }
                    this.vista.PeriodoTarifa = tarifa.PeriodoTarifa;
                }
                this.vista.PrecioCombustible = precioCombustible;
                presentadorTarifa.ModoConsulta(true);
                presentadorTarifa.DatosAInterfazUsuario(tarifa);
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".DatoAInterfazUsuario:Inconsistencia al presentar los datos de la tarifa" + ex.Message);
            }
        }