/// <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);
     }
 }
예제 #6
0
        /// <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);
        }
예제 #9
0
        /// <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;
                    }
                }
            }
        }
예제 #10
0
        /// <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);
            }
        }
예제 #13
0
        /// <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);
            }
        }
예제 #15
0
        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);
            }
        }