/// <summary> /// Mapea el objeto de descuento a la UI de detalle /// </summary> /// <param name="configuracionDescuento">Objeto de descuento a mapear</param> private void DatoAInterfazUsuario(ConfiguracionDescuentoBO configuracionDescuento) { if (configuracionDescuento.Cliente.Id != null) { this.vista.ClienteID = configuracionDescuento.Cliente.Id; } this.vista.Cliente = configuracionDescuento.Cliente.Nombre; if (configuracionDescuento.ContactoComercial != null) { this.vista.ContactoComercial = configuracionDescuento.ContactoComercial; } if (configuracionDescuento.Sucursal.Id != null) { this.vista.SucursalID = configuracionDescuento.Sucursal.Id; } if (configuracionDescuento.ConfiguracionDescuentoID != null) { this.vista.ConfiguracionDescuentoID = configuracionDescuento.ConfiguracionDescuentoID; } //if (configuracionDescuento.Modelo.Id != null) //{ // this.vista.ModeloID = configuracionDescuento.Modelo.Id; //} this.vista.ModoDetalle(true); }
/// <summary> /// Método que se realizara al inicializar el UI de editar /// </summary> public void RealizarPrimeraCarga() { try { if (this.vista.ObtenerPaqueteNavegacion("ConfiguracionDescuentoBO") == null) { throw new Exception("Se esperaba Datos de Navegación"); } if (!(this.vista.ObtenerPaqueteNavegacion("ConfiguracionDescuentoBO") is ConfiguracionDescuentoBO)) { throw new Exception("Se esperaba un objeto de ConfiguracionDescuentoBO"); } ConfiguracionDescuentoBO configuracionDescuento = (ConfiguracionDescuentoBO)this.vista.ObtenerPaqueteNavegacion("ConfiguracionDescuentoBO"); // Agarramos los valores que enviaremos a la consulta ConfiguracionDescuentoBO configuracionDescuentoEditar = new ConfiguracionDescuentoBO(); configuracionDescuentoEditar.Cliente = new CuentaClienteIdealeaseBO() { Id = configuracionDescuento.Cliente.Id }; configuracionDescuentoEditar.ContactoComercial = configuracionDescuento.ContactoComercial; List <ConfiguracionDescuentoBO> lst = new List <ConfiguracionDescuentoBO>(); this.configuracionDescuentoBR = new ConfiguracionDescuentoPSLBR(); //Obtenemos una lista con las filas que tengan el mismo cliente y contacto comercial lst = configuracionDescuentoBR.Consultar(dctx, configuracionDescuentoEditar).ConvertAll(s => (ConfiguracionDescuentoBO)s); this.vista.LimpiarSesiones(); this.EstablecerSeguridad(); this.EstablecerDatosaUC(this.ObtenerListaClonada(lst)); } catch (Exception ex) { throw new Exception(this.nombreClase + ".RealizarPrimeraCarga: " + ex.Message); } }
public object InterfazUsuarioADato() { ConfiguracionDescuentoBO bo = new ConfiguracionDescuentoBO(); bo.Cliente = new CuentaClienteIdealeaseBO(); bo.Sucursal = new SucursalBO(); bo.UnidadOperativa = new UnidadOperativaBO(); if (this.vista.ClienteId != null) { bo.Cliente.Id = this.vista.ClienteId; } if (this.vista.SucursalId != null) { bo.sucursal.Id = this.vista.SucursalId; } else { bo.Sucursales = this.vista.SucursalesAutorizadas; } return(bo); }
/// <summary> /// Método para actualizar el grid de la tabla /// </summary> /// <param name="todasSucursales">Recibe si esta activado el checkbox de todas las sucursales</param> /// <param name="index">indica el índice del registro seleccionado por el usuario</param> public void Actualizar(bool todasSucursales, int index, string Accion) { string s; if ((s = this.ValidarDatosEditar()) != null) { this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null); this.vista.HabilitarBotonesParaEditar(true); return; } if ((s = this.ValidarFechas()) != null) { this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null); this.vista.HabilitarBotonesParaEditar(true); return; } try { List <ConfiguracionDescuentoBO> lstTemporal = this.ObtenerListaClonada(); if (todasSucursales) { ConfiguracionDescuentoBO bo = (ConfiguracionDescuentoBO)this.InterfazUsuarioDatoParaActualizadoDescuento(); if (lstTemporal.Count > 0) { for (int i = 0; i < lstTemporal.Count; i++) { lstTemporal[i].Estado = bo.Estado; lstTemporal[i].FechaFin = bo.FechaFin; lstTemporal[i].FechaInicio = bo.FechaInicio; lstTemporal[i].DescuentoMaximo = bo.DescuentoMaximo; } this.vista.CrearTabla(lstTemporal); this.vista.HabilitarBotonesParaEditar(true); } } else { ConfiguracionDescuentoBO bo = (ConfiguracionDescuentoBO)this.InterfazUsuarioDatoParaActualizadoDescuento(); if (lstTemporal.Count > 0 && index >= 0) { lstTemporal[index] = bo; this.vista.CrearTabla(lstTemporal); this.vista.HabilitarBotonesParaEditar(false); } } this.limpiarCampos(Accion); } catch (Exception ex) { throw new Exception(this.nombreClase + ".Editar: " + ex.Message); } }
/// <summary> /// Manda el descuento a editar y redirecciona a la UI de editar /// </summary> public void IrAEditar() { try { ConfiguracionDescuentoBO oConfiguracionDescuento = this.ObtenerListaClonada(this.vista.Resultado)[0]; this.vista.EstablecerDatosNavegacion(oConfiguracionDescuento); this.vista.RedirigirAEditar(); } catch (Exception ex) { this.MostrarMensaje("Error al intentar ir a editar la configuración de descuento ", ETipoMensajeIU.ERROR, nombreClase + "IrAEditar" + ex.Message); } }
/// <summary> /// Se asignan valores de la lista a las propiedades del BO /// </summary> /// <returns></returns> private object InterfazUsuarioADato() { ConfiguracionDescuentoBO bo = new ConfiguracionDescuentoBO(); bo.Cliente = new CuentaClienteIdealeaseBO(); bo.Sucursal = new SucursalBO(); bo.UnidadOperativa = new UnidadOperativaBO(); bo.UnidadOperativa.Id = this.vista.UnidadOperativaId; if (this.vista.ClienteID != null) { bo.Cliente.Id = this.vista.ClienteID; } if (this.vista.SucursalID != null) { bo.sucursal.Id = this.vista.SucursalID; } else { //List<SucursalBO> lstSuc = FacadeBR.ConsultarSucursal(dataContext, new SucursalBO() { UnidadOperativa = new UnidadOperativaBO() { Id = bo.UnidadOperativa.Id } }); bo.Sucursales = this.vista.SucursalesAutorizadas; } if (this.vista.FechaInicial != null) { bo.FechaInicio = Convert.ToDateTime(this.vista.FechaInicial); } if (this.vista.FechaFinal != null) { bo.FechaFin = Convert.ToDateTime(this.vista.FechaFinal); } switch (this.vista.Estatus) { case 1: bo.Estado = true; break; case 2: bo.Estado = false; break; } return(bo); }
/// <summary> /// Realiza la consulta a la tabla configuracionDescuetos /// </summary> /// <returns>Lista de los resultados de la consulta</returns> public List <ConfiguracionDescuentoBO> ConsultarDescuentoUsuario() { try { ConfiguracionDescuentoBO bo = (ConfiguracionDescuentoBO)this.InterfazUsuarioADato(); List <ConfiguracionDescuentoBO> lst = controlador.Consultar(dctx, bo).ConvertAll(s => (ConfiguracionDescuentoBO)s); return(lst); } catch (Exception ex) { throw new Exception(this.nombreClase + ".Consultar:" + ex.Message); } }
/// <summary> /// Obtener un objeto de descuento clonado con los campos que puede editar el usuario /// </summary> /// <returns>Un objeto actualizado de descuentos</returns> public ConfiguracionDescuentoBO InterfazUsuarioDatoParaActualizadoDescuento() { ConfiguracionDescuentoBO boTemporal = this.vista.UltimoObjeto; ConfiguracionDescuentoBO boClonado = new ConfiguracionDescuentoBO(); boClonado = boTemporal.Clone(); boClonado.Estado = this.vista.Estado; boClonado.FechaFin = this.vista.FechaFin; boClonado.FechaInicio = this.vista.FechaInicio; boClonado.DescuentoMaximo = this.vista.DescuentoMaximo; return(boClonado); }
/// <summary> /// Evento para poblar el grid de datos. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void grvConfiguracionDescuentos_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ConfiguracionDescuentoBO Descuento = (ConfiguracionDescuentoBO)e.Row.DataItem; Label labelSucursalNombre = e.Row.FindControl("lblSucursal") as Label; if (labelSucursalNombre != null) { string sucursalNombre = string.Empty; if (Descuento.Sucursal != null) { if (Descuento.Sucursal.Nombre != null) { sucursalNombre = Descuento.Sucursal.Nombre; } } labelSucursalNombre.Text = sucursalNombre; } Label labelClienteNombre = e.Row.FindControl("lblCliente") as Label; if (labelClienteNombre != null) { string clienteNombre = string.Empty; if (Descuento.Cliente != null) { if (Descuento.Cliente.Nombre != null) { clienteNombre = Descuento.Cliente.Nombre; } } labelClienteNombre.Text = clienteNombre; } CheckBox CheckBoxActivo = e.Row.FindControl("ChkActivo") as CheckBox; if (CheckBoxActivo != null) { if (Descuento.Estado != false) { CheckBoxActivo.Checked = true; } else { CheckBoxActivo.Checked = false; } } } }
/// <summary> /// muestra la los detalles del descuento. /// </summary> /// <param name="index"></param> public void VerDetalles(int index) { if (index >= this.vista.Resultado.Count || index < 0) { throw new Exception("No se encontró el la configuración de descuentos."); } ConfiguracionDescuentoBO bo = this.ObtenerListaClonada(this.vista.Resultado)[index]; this.vista.LimpiarSesion(); this.vista.EstablecerPaqueteNavegacion("ConfiguracionDescuentoBO", bo); //]Session[nombre]=value this.vista.RedirigirADetalles(); }
/// <summary> /// Obtiene el valor a mostrar en la etiqueta máximo descuento /// </summary> public void PrepararDescuentoMaximo() { try { dataContext.SetCurrentProvider("Outsourcing"); ConfiguracionDescuentoBO descuentoBO = new ConfiguracionDescuentoBO(); descuentoBO.Cliente = new CuentaClienteIdealeaseBO { Id = this.vista.CuentaClienteID }; descuentoBO.Sucursal = new SucursalBO { Id = this.vista.SucursalID, UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativaID } }; descuentoBO.UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativaID }; descuentoBO.Estado = true; descuentoBO.FechaInicio = DateTime.Now; ConfiguracionDescuentoPSLBR descuentoBR = new ConfiguracionDescuentoPSLBR(); var descuentos = descuentoBR.Consultar(this.dataContext, descuentoBO); //Asignamos el % de descuento máximo a la propiedad equivalente en el modal //Con la intención de que previamente se haya autorizado un descuento decimal descuento = this.vista.TarifaPersonalizadaDescuentoMax.GetValueOrDefault(); this.vista.TarifaPersonalizadaDescuentoMax = descuento; if (descuentos.Any()) { //Si el descuento anterior es menor al actual, el valor del descuento del modal se sobreescribe. if (descuento < descuentos.First().DescuentoMaximo.GetValueOrDefault()) { descuento = descuentos.First().DescuentoMaximo.GetValueOrDefault(); this.vista.TarifaPersonalizadaDescuentoMax = descuento; } } if (descuento > 0) { this.vista.TarifaPersonalizadaEtiqueta = "El cliente tiene autorizado hasta un " + this.vista.TarifaPersonalizadaDescuentoMax.GetValueOrDefault().ToString("0.##") + "% de descuento"; } } catch (Exception ex) { throw new Exception(this.nombreClase + ".PrepararDescuentoMaximo: " + ex.Message); } }
/// <summary> /// Método que se realizara al inicializar el UI de detalle /// </summary> public void RealizarPrimeraCarga() { try { if (this.vista.ObtenerDatosNavegacion() == null) { throw new Exception("Se esperaba Datos de Navegación"); } if (!(this.vista.ObtenerDatosNavegacion() is ConfiguracionDescuentoBO)) { throw new Exception("Se esperaba un objeto de ConfiguracionDescuentoBO"); } ConfiguracionDescuentoBO configuracionDescuento = (ConfiguracionDescuentoBO)this.vista.ObtenerDatosNavegacion(); // Agarramos los valores que enviaremos a la consulta ConfiguracionDescuentoBO configuracionDescuentoDetalle = new ConfiguracionDescuentoBO(); configuracionDescuentoDetalle.Cliente = new CuentaClienteIdealeaseBO() { Id = configuracionDescuento.Cliente.Id }; configuracionDescuentoDetalle.ContactoComercial = configuracionDescuento.ContactoComercial; List <ConfiguracionDescuentoBO> lst = new List <ConfiguracionDescuentoBO>(); this.configuracionDescuentoBR = new ConfiguracionDescuentoPSLBR(); //Obtenemos una lista con las filas que tengan el mismo cliente y contacto comercial lst = configuracionDescuentoBR.Consultar(dctx, configuracionDescuentoDetalle).ConvertAll(s => (ConfiguracionDescuentoBO)s); //pasamos los valores a la tabla this.vista.Resultado = lst; this.vista.ActualizarResultado(); //Pasamos a la interfaz de usuario el BO de descuentos this.DatoAInterfazUsuario(configuracionDescuento); this.vista.LimpiarSesion(); this.EstablecerSeguridad(); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias al momento de obtener los datos de Configuración descuento", ETipoMensajeIU.ERROR, nombreClase + ".RealizarPrimeraCarga:" + ex.Message); DatoAInterfazUsuario(new ConfiguracionDescuentoBO()); this.vista.PermitirEditar(false); } }
/// <summary> /// Realiza la búsqueda al la tabla ConfiguraciónDescuentos /// </summary> public void Consultar() { try { CargarSucursalesAutorizadas(); ConfiguracionDescuentoBO bo = (ConfiguracionDescuentoBO)this.InterfazUsuarioADato(); //bo.Sucursal = null; List <ConfiguracionDescuentoBO> lst = controlador.Consultar(dataContext, bo).ConvertAll(s => (ConfiguracionDescuentoBO)s); this.vista.Resultado = lst; this.vista.ActualizarResultado(); if (lst.Count < 1) { this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION, "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos"); } } catch (Exception ex) { throw new Exception(this.nombreClase + ".Consultar:" + ex.Message); } }
/// <summary> /// Valida que el descuento capturado por el usuario no se encuentre registrado en la BD /// </summary> public void ValidarDescuentosSucursales() { string msg = ""; ConfiguracionDescuentoBO oDescuentos = new ConfiguracionDescuentoBO(); oDescuentos.Sucursal = new SucursalBO(); oDescuentos.UnidadOperativa = new UnidadOperativaBO(); //se busca las sucursales para el usuario que registra el descuento. CargarSucursalesAutorizadas(); List <SucursalBO> lstSuc = this.vista.SucursalesAutorizadas; //Se hace la consulta para conocer si alguna sucursal ya cuenta con el descuento capturado en el UI. List <ConfiguracionDescuentoBO> lstDescuentos = this.ConsultarDescuentoUsuario(); //se asignan las id de todas las sucursales a las que el usuario tiene acceso. string sucursales = oDescuentos.ObtenerSucursalesID(); // se valida si existe un registro if (lstDescuentos.Count > 0) { //Se crea la nueva lista de sucursales que no tienen registrado un descuento previamente List <SucursalBO> lstSucursalesDisponibles = new List <SucursalBO>(); //se recorre cada sucursal con acceso del cliente para verificar si alguna de estas se encuentra registrada foreach (SucursalBO sucursal in lstSuc) { #region Insertar var existe = lstDescuentos.FindAll(x => x.Sucursal.Id == sucursal.Id).Count(); //Se recorre los datos devueltos por la consulta para indicar la sucursal que ya se encuentra registrada con el mismo descuento. #region ValidarSucursales if (existe > 0) { msg += sucursal.Nombre + ", "; } else { //Se crea un nuevo objeto para las sucursales disponibles SucursalBO Sucursal = new SucursalBO(); Sucursal.Nombre = sucursal.Nombre; Sucursal.Id = sucursal.Id; lstSucursalesDisponibles.Add(Sucursal); } #endregion string SucRegistradas = "La(s) sucursal(es) " + msg.Substring(0, msg.Length - 2) + " " + "ya se encuentra(n) registrada(s) para este usuario."; this.vista.MostrarMensajeRegistro(SucRegistradas, ETipoMensajeIU.INFORMACION, null); #endregion } this.vista.llenaGridPorSucursal(lstSucursalesDisponibles); } else { this.vista.llenaGridPorSucursal(lstSuc); } }
protected void grvConfiguracionDescuentos_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ConfiguracionDescuentoBO Descuento = (ConfiguracionDescuentoBO)e.Row.DataItem; Label labelSucursalNombre = e.Row.FindControl("lblSucursal") as Label; if (labelSucursalNombre != null) { string SucursalNombre = string.Empty; if (Descuento.Sucursal != null) { if (Descuento.Sucursal.Nombre != null) { SucursalNombre = Descuento.Sucursal.Nombre; } } labelSucursalNombre.Text = SucursalNombre; } Label labelModeloNombre = e.Row.FindControl("lblModelo") as Label; if (labelModeloNombre != null) { string ModeloNombre = string.Empty; if (Descuento.Modelo != null) { if (Descuento.Modelo.Nombre != null) { ModeloNombre = Descuento.Modelo.Nombre; } } labelModeloNombre.Text = ModeloNombre; } Label labelFechaInicioNombre = e.Row.FindControl("lblFechaInicio") as Label; if (labelFechaInicioNombre != null) { string FechaInicioNombre = string.Empty; if (Descuento.FechaInicio != null) { if (Descuento.FechaInicio != null) { DateTime FechaInicio = Convert.ToDateTime(Descuento.FechaInicio); FechaInicioNombre = string.Format(FechaInicio.ToShortDateString(), "dd/mm/aaaa"); } } labelFechaInicioNombre.Text = FechaInicioNombre; } Label labelFechaFinNombre = e.Row.FindControl("lblFechaFin") as Label; if (labelFechaFinNombre != null) { string FechaFinNombre = string.Empty; if (Descuento.FechaFin != null) { if (Descuento.FechaFin != null) { DateTime FechaFin = Convert.ToDateTime(Descuento.FechaFin); FechaFinNombre = string.Format(FechaFin.ToShortDateString(), "dd/mm/aaaa"); } } labelFechaFinNombre.Text = FechaFinNombre; } Label labelDescuentoMaximoNombre = e.Row.FindControl("lblMaximoDescuento") as Label; if (labelDescuentoMaximoNombre != null) { string DescuentoMaximoNombre = string.Empty; var desc = Math.Round((decimal)Descuento.DescuentoMaximo, 2); if (Descuento.DescuentoMaximo != null) { if (Descuento.DescuentoMaximo != null) { DescuentoMaximoNombre = desc.ToString(); } } labelDescuentoMaximoNombre.Text = DescuentoMaximoNombre; } CheckBox CheckBoxActivo = e.Row.FindControl("ChkActivo") as CheckBox; if (CheckBoxActivo != null) { if (Descuento.Estado != false) { CheckBoxActivo.Checked = true; } else { CheckBoxActivo.Checked = false; } } } }
//public object PrepararBOBuscador(string catalogo) //{ // object obj = null; // switch (catalogo) // { // case "Sucursal": // SucursalBOF sucursal = new SucursalBOF(); // sucursal.UnidadOperativa = new UnidadOperativaBO(); // sucursal.UnidadOperativa.Id = this.vista.UnidadOperativaId; // sucursal.Nombre = this.vista.SucursalNombre; // sucursal.Usuario = new UsuarioBO() { Id = this.vista.UsuarioAutenticado }; // obj = sucursal; // break; // case "Cliente": // ClienteBO cliente = new ClienteBO(); // cliente.Nombre = this.vista.Cliente; // obj = cliente; // break; // } // return obj; //} //public void DesplegarResultadoBuscador(string catalogo, object selecto) //{ // switch (catalogo) // { // case "Sucursal": // SucursalBO sucursal = (SucursalBO)selecto; // if (sucursal != null && sucursal.Id != null) // this.vista.SucursalId = sucursal.Id; // else // this.vista.SucursalId = null; // if (sucursal != null && sucursal.Nombre != null) // this.vista.SucursalNombre = sucursal.Nombre; // else // this.vista.SucursalNombre = null; // break; // case "Cliente": // ClienteBO cliente = (ClienteBO)selecto; // if (cliente != null && cliente.Id != null) // this.vista.ClienteId = cliente.Id; // else // this.vista.ClienteId = null; // if (cliente != null && cliente.Nombre != null) // this.vista.Cliente = cliente.Nombre; // else // this.vista.Cliente = null; // break; // } //} #endregion public void GuardarRegistros() { if (this.UcVista.ExisteDatosEnGrid() == true) { #region Se inicia la Transaccion this.dctx.SetCurrentProvider("Outsourcing"); Guid firma = Guid.NewGuid(); try { this.dctx.OpenConnection(firma); this.dctx.BeginTransaction(firma); } catch (Exception) { if (this.dctx.ConnectionState == ConnectionState.Open) { this.dctx.CloseConnection(firma); } throw new Exception("Se encontraron inconsistencias al insertar el Descuento."); } #endregion #region Registrar try { //se obtienen los datos del grid con base a la variable de sesión. var listaDesuentos = this.UcVista.ListaDescuentos; ConfiguracionDescuentoBO oDescuentos = new ConfiguracionDescuentoBO(); //Se crea el objeto de seguridad UsuarioBO usuario = new UsuarioBO() { Id = this.vista.UsuarioID }; AdscripcionBO adscripcion = new AdscripcionBO() { UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativaID } }; SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion); int contador = 0; //se recorre la lista de descuentos para hacer la inserción por cada una. foreach (ConfiguracionDescuentoBO iDescuentos in listaDesuentos) { oDescuentos = listaDesuentos[contador]; oDescuentos.Auditoria = new AuditoriaBO { FC = this.vista.FC, UC = this.vista.UC, FUA = this.vista.FUA, UUA = this.vista.UUA, }; //Se inserta en la base de datos this.controlador.InsertarCompleto(this.dctx, oDescuentos, seguridadBO); contador++; } this.dctx.SetCurrentProvider("Outsourcing"); this.dctx.CommitTransaction(firma); } catch (Exception ex) { this.dctx.SetCurrentProvider("Outsourcing"); this.dctx.RollbackTransaction(firma); throw new Exception(nombreClase + ".Registrar:" + ex.Message); } this.vista.EstablecerPaqueteNavegacion("ConfiguracionDescuentoBO", this.UcVista.ListaDescuentos.Last()); this.vista.LimpiarSesion(); this.vista.RedirigirADetalles(); #endregion } else { this.UcVista.MostrarMensajeRegistro("No hay descuentos configurados para insertar.", ETipoMensajeIU.ADVERTENCIA, null); } }