Programa ventas

Una empresa requiere registrar las ventas diarias de una de sus sucursales y al final del día deberá mostrar el total de ventas, a las ventas se les debe sacar el IVA y se debe mostrar el subtotal IVA y total, al programa pueden acceder dos tipos de usuario el vendedor y el administrador el vendedor tendrá su propio usuario y contraseña y el administrador igual, el administrador podrá establecer el porcentaje del IVA al igual que realizar descuentos durante las ventas, el vendedor solo tendrá acceso al módulo de ventas.

Lo que debemos hacer es analizar primero el ejercicio para ello hacemos un mapa de procesos que nos indique que es lo que vamos a hacer y que conservemos siempre ese “norte”

En base a esto, vamos a diseñar la interfaz gráfica

la primer ventana será el login.

al ingresar la contraseña y el usuario quedaría así

si el usuario y/o el password son incorrectas saldra un cuadro de diálogo

si el usuario y la contraseña son correctos saldrá un cuadro de diálogo de bienvenida

la segunda ventana será la ventana principal

la tercera ventana la ventana de configuración de IVA

la cuarta ventana la de ventas

vamos a programar el botón “Ingresar” de la ventana login.

private void btningresarActionPerformed(java.awt.event.ActionEvent evt) {
    //validamos el usuario y contraseña
    if(txtusuario.getText().equals("Admin") &&
             txtpassword.getText().equals("123456")){
        //mostramos un mensaje de bienvenida
        JOptionPane.showMessageDialog
                (this, "Bienvenido Adminstrador");
        //creamos una instancia de la ventana principal
        principal f2 = new principal();
        //abrimos la ventana
        f2.setVisible(true);
        //enviamos el usuario que se conectó
        f2.lblusuario.setText(txtusuario.getText());
        //ocultamos la ventana actual
        this.setVisible(false);
    }else{
        if (txtusuario.getText().equals("Vendedor") &&
               txtpassword.getText().equals("987654")){
            //mostramos un mensaje de bienvenida
            JOptionPane.showMessageDialog
                    (this, "Bienvenido Vendedor");
            //creamos una instancia de la ventana principal
            principal f2 = new principal();
            //abrimos la ventana
            f2.setVisible(true);
            //enviamos el dato del usuario que se conectó
            f2.lblusuario.setText(txtusuario.getText());
            //ocultamos la ventana actual
            this.setVisible(false);
        }else{
            //si el usuario y contraseña no son correctos mostramos un cuadro de diálogo
            JOptionPane.showMessageDialog
                        (this, "Error el usuario y la contraseña no son correctos");
        }
    }
}

el botón cancelar iría así

private void btncancelarActionPerformed(java.awt.event.ActionEvent evt) {
    // si el usuario hace clic en cancelar sale del programa
    System.exit(0);
}

Con esto, el usuario en el momento que ingrese al sistema de información con su usuario y password el botón “Ingresar” valida el usuario y envía la información necesaria a la ventana principal de manera que sepamos que usuario se conectó
Ahora en el formulario principal debemos validar si el usuario que ingresó al sistema es el administrador o es el vendedor para darle acceso al IVA esto lo hacemos en el procedimiento formWindowOpen (es el código que se ejecuta inmediatamente abre el jForm)

private void formWindowOpened(java.awt.event.WindowEvent evt) {
    //verificamos si el usuario que ingresa es vendedor
    //la propiedad .equals() la utilizamos para comparar equivale al ==
    if(lblusuario.getText().equals("Vendedor")){
        //si el usuario es vendedor ocultamos el botón iva
        btniva.setVisible(false);
        // o también lo podemos deshabilitar
        //btniva.setEnabled(false);
    }
    //centramos la ventana
    this.setLocationRelativeTo(null);
}

Botón IVA
El botón IVA solo estará visible si el usuario que está conectado es el administrador eso fue lo que hicimos con el código anterior, ahora al hacer clic en el botón IVA deberá abrir la ventana IVA y mostrar el usuario que se conectó ya que si no enviamos ese dato se perderá, en esta ventana se almacena el valor del iva y se devuelve a la ventana principal enviando los datos de iva y usuario lo veremos mas adelante.

    private void btnivaActionPerformed(java.awt.event.ActionEvent evt) {
    // creamos una instancia de la ventana iva
    iva f2 = new iva();
    //hacemos visible la ventana
    f2.setVisible(true);
    //enviamos el dato del usuario a la ventana iva
    f2.lblusuario.setText(lblusuario.getText());
    //ocultamos la ventana actual
    this.setVisible(false);
}
Botón Ventas
El botón ventas abrirá la ventana de ventas y enviará la información del iva y del usuario conectado, así quedaría el código:
private void btnventasActionPerformed(java.awt.event.ActionEvent evt) {
    // con esta condición comparamos si lo que hay en el lbliva es == a "00"
    // la propiedad .equals() la utilizamos para comparar
    if(lbliva.getText().equals("00")){
        //si el iva no se ha establecido mostramos un cuadro de diálogo
        JOptionPane.showMessageDialog(this, "El IVA no se ha establecido \n no podrá realizar ventas");
    }else{
        //creamos una instancia de la ventana ventas llamada f2
        ventas f2 = new ventas();
        //hacemos visible la ventana
        f2.setVisible(true);
        //enviamos el valor del iva a la ventana ventas
        f2.lbliva.setText(lbliva.getText());
        //enviamos el usuario que se conectó
        f2.lblusuario.setText(lblusuario.getText());
        //ocultamos la ventana actual (principal)
        this.setVisible(false);
    }
}

Botón Salir
El botón salir es igual que el botón cancelar de la ventana login

private void btnsalirActionPerformed(java.awt.event.ActionEvent evt) {
//cierra el programa
System.exit(0);
}

En la ventana IVA tenemos un cuadro de texto donde el usuario digita el valor del iva, un botón guardar con el que almacena el valor del iva y lo envía de nuevo al formulario principal, y etiquetas una donde va el usuario, otra con el mensaje. Para esta ventana necesitamos programar el botón y centrar el formulario como lo vimos en código anterior el código del botón guardar sería el siguiente.

private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {
    // en esta condicion verificamos que el valor no sea ni cero 0 ni null ""
    if(txtiva.getText().equals("") || txtiva.getText().equals("0")){
        // mostramos un cuadro de diálogo informando el error
        JOptionPane.showMessageDialog(this, "Error, el iva no puede estar en blanco o ser igual a cero (0)");
    }else{
        //creamos una instancia de la ventana principal
        principal f2 = new principal();
        //hacemos visible la ventana
        f2.setVisible(true);
        //enviamos un mensaje a un label
        f2.lblmensaje.setText("El IVA se ha establecido");
        //enviamos el valor del iva establecido
        f2.lbliva.setText(txtiva.getText());
        //enviamos el usuario porque si no lo hacemos el usuario se borra
        f2.lblusuario.setText(lblusuario.getText());
        //ocultamos la ventana actual
        this.setVisible(false);
    }
}
//procedimiento formWindowOpened para centrar el formulario
private void formWindowOpened(java.awt.event.WindowEvent evt) {
    //centramos la ventana
    this.setLocationRelativeTo(null);
}

En la ventana Ventas, encontramos dos cuadros de textos donde se pondrá la cantidad y el valor del artículo, un botón sumar que realizará la acción de multiplicar la cantidad por el valor y a eso discriminar el iva mostrar el subtotal y el total de la venta, un label donde muestra el usuario conectado, otro label donde muestra el valor del iva, y un botón regresar

Lo primero que debemos hacer es declarar las variables que vamos a utilizar en nuestro programa.

public class ventas extends javax.swing.JFrame {
    //declaramos variables
    double total, subtotal, iva, ivac;
    double acumulador_total;

Luego de tener las variables declaradas programamos el botón sumar que realiza la mayor parte de nuestro programa.

private void btnsumarActionPerformed(java.awt.event.ActionEvent evt) {
    //guardamos los datos de los jTextField en las variables que declaramos
    ivac = Double.parseDouble(lbliva.getText());
    //sacamos el total cantidad * valor
    total = Double.parseDouble(txtcantidad.getText())
            *Double.parseDouble(txtvalorunitario.getText());
    //almacenamos el total en un acumulador
    acumulador_total = total + acumulador_total;
    //averiguamos el subtotal (subtotal = total / 1.16)
    subtotal = (acumulador_total / ((ivac/100)+1));
    //averiguamos el iva ( iva = subtotal * 16%)
    iva = subtotal * ivac/100;
    //mostramomos el total
    txttotal.setText("$"+(acumulador_total));
    //mostramos el subtotal
    txtsubtotal.setText("$"+(subtotal));
    //mostramos el iva
    txtiva.setText("$"+iva);
}

Luego programamos el botón regresar que nos devuelve a la ventana principal y deberá enviar también los datos de IVA y usuario para que no perdamos esos datos

private void btnregresarActionPerformed(java.awt.event.ActionEvent evt) {
    // creamos una instancia de la ventana principal
    principal f2 = new principal();
    //mostramos la ventana
    f2.setVisible(true);
    //enviamos el usuario si no lo hacemos el usuario se borra
    f2.lblusuario.setText(lblusuario.getText());
    //enviamos el iva
    f2.lbliva.setText(lbliva.getText());
    //ocultamos la ventana actual
    this.setVisible(false);
}

y finalmente centramos la ventana

private void formWindowOpened(java.awt.event.WindowEvent evt) {
    //centramos la ventana
    this.setLocationRelativeTo(null);
}

con esto ya tenemos la mayor parte de nuestro programa listo, aún falta organizar lo de los descuentos para eso deberán isertar otro botón y que el usuario en el momento de dar clic pida la contraseña de administrador para poder realizar el debido descuento.
Espero que les sirva este ejemplo y por favor recuerden actualizar el manual del programador

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s