Beispiel #1
0
        /// <summary>
        /// Actualiza un usuario de forma asíncrona.
        /// </summary>
        /// <returns></returns>
        private async Task Editar()
        {
            Usuario usuarioPeticion = new Usuario(this.usuario.Id, this.campoNombre.Text.Trim(), this.campoCorreo.Text.Trim(), this.campoPuesto.Text.Trim(), "", "")
            {
                Permisos = this.usuario.Permisos
            };
            bool edicion = await usuarioPeticion.EditarUsuario();

            VentanaMensaje.Mensaje tipo;
            string mensaje;

            if (edicion)
            {
                this.usuario = usuarioPeticion;
                tipo         = VentanaMensaje.Mensaje.exito;
                mensaje      = "Usuario actualizado";
                this.botonEliminar.Content = "Regresar";
            }
            else
            {
                tipo    = VentanaMensaje.Mensaje.exito;
                mensaje = "Lo sentimos, no pudimos actualizar el usuario";
            }
            VentanaMensaje vMensaje = new VentanaMensaje(tipo, "Edicion", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            vMensaje.ShowDialog();
        }
Beispiel #2
0
        /// <summary>
        /// Muestra un mensaje de corrección de la información del usuario.
        /// </summary>
        /// <param name="datos">Enumerador como identificador de invalidéz de los datos.</param>
        private void MostrarMensajeDatos(DatosUsuario datos)
        {
            VentanaMensaje ventanaMensaje;
            string         mensaje;

            switch (datos)
            {
            case DatosUsuario.nombre:
                mensaje = "El campo 'Nombre' debe tener entre 5 y 100 caractéres";
                break;

            case DatosUsuario.correoLongitud:
                mensaje = "El campo 'Correo' debe tener entre 5 y 100 caractéres";
                break;

            case DatosUsuario.correoIncorrecto:
                mensaje = "El campo 'Correo' no es correcto";
                break;

            //Puesto:
            default:
                mensaje = "El campo 'Puesto' debe tener entre 5 y 100 caractéres";
                break;
            }
            ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Datos no válidos", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);
            ventanaMensaje.ShowDialog();
        }
Beispiel #3
0
        /// <summary>
        /// Registra un usuario de forma asíncrona.
        /// </summary>
        /// <returns></returns>
        private async Task Registrar()
        {
            string  correo          = this.campoCorreo.Text.Trim();
            string  correoNoArroba  = correo.Replace("@", "");
            Usuario usuarioPeticion = new Usuario(0, this.campoNombre.Text.Trim(), correo, this.campoPuesto.Text.Trim(), correoNoArroba, Encriptacion.Sha256(correoNoArroba))
            {
                Permisos = (IList <Permiso>) this.tablaPermisos.ItemsSource
            };
            Usuario usuarioRespuesta = await usuarioPeticion.RegistrarUsuario();

            VentanaMensaje.Mensaje tipo;
            string mensaje;

            if (usuarioRespuesta.Id == 0)
            {
                tipo    = VentanaMensaje.Mensaje.error;
                mensaje = "Lo sentimos, no pudimos registrar el usuario";
            }
            else
            {
                tipo         = VentanaMensaje.Mensaje.exito;
                mensaje      = "Usuario registrado";
                this.usuario = usuarioRespuesta;
                this.tablaPermisos.ItemsSource = this.usuario.Permisos;
                this.botonEliminar.Content     = "Regresar";
            }
            VentanaMensaje vMensaje = new VentanaMensaje(tipo, "Registro", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            vMensaje.ShowDialog();
        }
Beispiel #4
0
        private void BotonQuitarAcabado_Click(object sender, RoutedEventArgs e)
        {
            Object elemento = this.listaAcabados.SelectedItem;

            if (elemento != null)
            {
                Acabado acabado = (Acabado)elemento;
                this.acabados.Remove(acabado);
                if (this.acabadosEditar.Contains(acabado))
                {
                    this.acabadosEditar.Remove(acabado);
                }
                else if (this.acabadosAgregar.Contains(acabado))
                {
                    this.acabadosAgregar.Remove(acabado);
                }
                this.acabadosQuitar.Add(acabado);
                this.LimpiarFormularioAcabado();
                this.listaAcabados.Items.Refresh();
            }
            else
            {
                VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Elemento no seleccionado", "Debes seleccionar un acabado para quitar", VentanaMensaje.Botones.ok, this.cargador.Principal);
                ventanaMensaje.ShowDialog();
            }
        }
Beispiel #5
0
        /// <summary>
        /// Actualiza un material de forma asíncrona.
        /// </summary>
        /// <returns></returns>
        private async Task Editar()
        {
            Material materialPeticion = new Material(this.material.Id, this.campoNombre.Text.Trim(), this.campoProveedor.Text.Trim(), this.campoClave.Text.Trim(), Double.Parse(this.campoPrecio.Text.Trim()), this.checkIva.IsChecked.Value)
            {
                Ancho    = Double.Parse(this.campoAncho.Text.Trim()),
                Alto     = Double.Parse(this.campoAlto.Text.Trim()),
                Grosor   = Double.Parse(this.campoGrosor.Text.Trim()),
                Moneda   = (Moneda)this.comboMonedas.SelectedItem,
                Acabados = this.acabadosEditar
            };

            Object[] respuesta = await materialPeticion.EditarMaterial(this.acabadosAgregar, this.acabadosQuitar);

            VentanaMensaje.Mensaje tipo;
            string mensaje;

            if ((bool)respuesta[0])
            {
                tipo    = VentanaMensaje.Mensaje.exito;
                mensaje = "Material actualizado";
                this.botonEliminar.Content = "Regresar";
                this.VaciarListas();
                this.ActualizarAcabadosEditados((IList <Acabado>)respuesta[1]);
            }
            else
            {
                tipo    = VentanaMensaje.Mensaje.exito;
                mensaje = "Lo sentimos, no pudimos actualizar el Material";
            }
            VentanaMensaje vMensaje = new VentanaMensaje(tipo, "Edicion", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            vMensaje.ShowDialog();
        }
Beispiel #6
0
        /// <summary>
        /// Registra un material de forma asíncrona.
        /// </summary>
        /// <returns></returns>
        private async Task Registrar()
        {
            Material materialPeticion = new Material(0, this.campoNombre.Text.Trim(), this.campoProveedor.Text.Trim(), this.campoClave.Text.Trim(), Double.Parse(this.campoPrecio.Text.Trim()), this.checkIva.IsChecked.Value)
            {
                Ancho    = Double.Parse(this.campoAncho.Text.Trim()),
                Alto     = Double.Parse(this.campoAlto.Text.Trim()),
                Grosor   = Double.Parse(this.campoGrosor.Text.Trim()),
                Moneda   = (Moneda)this.comboMonedas.SelectedItem,
                Acabados = this.acabados
            };
            Material materialRespuesta = await materialPeticion.RegistrarMaterial(this.categoria.Id);

            VentanaMensaje.Mensaje tipo;
            string mensaje;

            if (materialRespuesta.Id == 0)
            {
                tipo    = VentanaMensaje.Mensaje.error;
                mensaje = "Lo sentimos, no pudimos registrar el material";
            }
            else
            {
                tipo          = VentanaMensaje.Mensaje.exito;
                mensaje       = "Material registrado";
                this.material = materialRespuesta;
                this.acabados = this.material.Acabados;
                this.listaAcabados.ItemsSource = this.acabados;
                this.botonEliminar.Content     = "Regresar";
                this.LimpiarFormularioAcabado();
                this.VaciarListas();
            }
            VentanaMensaje vMensaje = new VentanaMensaje(tipo, "Registro", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            vMensaje.ShowDialog();
        }
Beispiel #7
0
        /// <summary>
        /// Muestra un mensaje de corrección de la información ingresada.
        /// </summary>
        /// <param name="datos">Enumerador con el estado de invalidéz de los datos.</param>
        private void MostrarMensajeDatos(DatosMaterial datos)
        {
            string mensaje;

            switch (datos)
            {
            case DatosMaterial.nombre:
                mensaje = "El campo 'Nombre' debe tener entre 5 y 100 caractéres";
                break;

            case DatosMaterial.clave:
                mensaje = "El campo 'Clave' debe tener entre 5 y 100 caractéres";
                break;

            case DatosMaterial.proveedor:
                mensaje = "El campo 'Proveedor' debe tener entre 5 y 100 caractéres";
                break;

            case DatosMaterial.precio:
                mensaje = "El campo 'Precio' es requerido";
                break;

            case DatosMaterial.precioIncorrecto:
                mensaje = "El campo 'Precio' no es correcto";
                break;

            case DatosMaterial.ancho:
                mensaje = "El campo 'Ancho' es requerido";
                break;

            case DatosMaterial.anchoIncorrecto:
                mensaje = "El campo 'Ancho' no es correcto";
                break;

            case DatosMaterial.alto:
                mensaje = "El campo 'Alto' es requerido";
                break;

            case DatosMaterial.altoIncorrecto:
                mensaje = "El campo 'Alto' no es correcto";
                break;

            case DatosMaterial.grosor:
                mensaje = "El campo 'Grosor' es requerido";
                break;

            //Grosor incorrecto:
            default:
                mensaje = "El campo 'Grosor' no es correcto";
                break;
            }
            VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Datos no válidos", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            ventanaMensaje.ShowDialog();
        }
Beispiel #8
0
        /// <summary>
        /// Solicita la confirmación para la baja de un material seleccionado.
        /// </summary>
        private void SolicitarConfirmacionBaja()
        {
            VentanaMensaje vMensaje  = new VentanaMensaje(VentanaMensaje.Mensaje.confirmacion, "Baja", "¿Está seguro de eliminar el material?", VentanaMensaje.Botones.okCancel, this.cargador.Principal);
            bool?          respuesta = vMensaje.ShowDialog();

            if (respuesta.Value)
            {
                this.botonEliminar.IsEnabled = false;
                Material material = (Material)this.tabla.SelectedItem;
                this.EliminarMaterial(material);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Verifica la selección de un elemento de la tabla.
        /// </summary>
        /// <param name="seleccion">Enumerador con el tipo de acción a realizar.</param>
        /// <returns>
        /// Un booleano con la confirmación de selección.
        /// </returns>
        private bool ValidarSeleccion(Seleccion seleccion)
        {
            Object elemento = this.tabla.SelectedItem;
            bool   valida   = elemento != null;

            if (!valida)
            {
                string         mensaje        = seleccion == Seleccion.editar ? "editar" : "eliminar";
                VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Elemento no seleccionado", "Debes seleccionar un elemento para " + mensaje + ".", VentanaMensaje.Botones.ok, this.cargador.Principal);
                ventanaMensaje.ShowDialog();
            }
            return(valida);
        }
Beispiel #10
0
        /// <summary>
        /// Obtiene los materiales relacionados con una palabra clave de forma asíncrona.
        /// </summary>
        /// <param name="clave">Palabra clave para la búsqueda (campo de búsqueda).</param>
        /// <returns></returns>
        private async Task BuscarMateriales(string clave)
        {
            IList <Material> materialesBusqueda = await Material.ObtenerMateriales(this.categoria.Id, clave);

            if (materialesBusqueda == null)
            {
                VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Datos no válidos", "Escribe una palabra clave para buscar", VentanaMensaje.Botones.ok, this.cargador.Principal);
                ventanaMensaje.ShowDialog();
            }
            else
            {
                this.materiales = materialesBusqueda;
                this.CargarMateriales();
            }
        }
Beispiel #11
0
        /// <summary>
        /// Obtiene los usuarios relacionados con una palabra clave de forma asíncrona.
        /// </summary>
        /// <param name="clave">Palabra clave para la búsqueda.</param>
        /// <returns></returns>
        private async Task BuscarUsuarios(string clave)
        {
            IList <Usuario> usuariosBusqueda = await Usuario.ObtenerUsuarios(clave);

            if (usuariosBusqueda == null)
            {
                VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Datos no válidos", "Escribe una palabra clave para buscar", VentanaMensaje.Botones.ok, this.cargador.Principal);
                ventanaMensaje.ShowDialog();
            }
            else
            {
                this.usuarios = usuariosBusqueda;
                this.CargarUsuarios();
            }
        }
Beispiel #12
0
        /// <summary>
        /// Elimina un material de forma asíncrona.
        /// </summary>
        /// <param name="material">Material para eliminar.</param>
        /// <returns></returns>
        private async Task EliminarMaterial(Material material)
        {
            bool baja = await material.EliminarMaterial();

            VentanaMensaje.Mensaje tipo;
            string mensaje;

            if (baja)
            {
                tipo    = VentanaMensaje.Mensaje.exito;
                mensaje = "Material eliminado";
                this.BorrarMaterial(material);
            }
            else
            {
                tipo    = VentanaMensaje.Mensaje.error;
                mensaje = "Lo sentimos, no pudimos eliminar el material";
            }
            VentanaMensaje vMensaje = new VentanaMensaje(tipo, "Baja", mensaje, VentanaMensaje.Botones.ok, this.cargador.Principal);

            vMensaje.ShowDialog();
            this.botonEliminar.IsEnabled = true;
        }
Beispiel #13
0
        /// <summary>
        /// Muestra un mensaja para informar sobre la edición / creación de un acabado.
        /// </summary>
        private void MostrarMensajeEdicion()
        {
            VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Acabado", "Aún no guardas el nuevo acabado", VentanaMensaje.Botones.ok, this.cargador.Principal);

            ventanaMensaje.ShowDialog();
        }
Beispiel #14
0
        /// <summary>
        /// Muestra un mensaje de error.
        /// </summary>
        /// <param name="mensaje">Texto del mensaje.</param>
        private void MostrarMensajeError(string mensaje)
        {
            VentanaMensaje ventanaMensaje = new VentanaMensaje(VentanaMensaje.Mensaje.info, "Datos no válidos", mensaje, VentanaMensaje.Botones.ok, this);

            ventanaMensaje.ShowDialog();
        }