Empezaremos con la configuracion inicial del formulario, el init componets, llamado de clase, iconos y demas dentro del paquete INICIO en el form PRINCIPAL.
Funcionamiento del codigo:
1. Primero crearemos variables que a futuro vamos a utilizar, strings pedido, metodopago y numnequi inicializados de la forma que se muestra, los double y el int de igual manera.
2. Llamamos la tabla con el default table y la importamos
3. Dentro del public del form iran el init componets, el llamado de icono y el setlocation igual que el form de inicio de sesion.
4. usaremos el new para traer la tabla con el defaulttablemodel y posteriormente añadiremos las columnas que queramos con el addcolum y les pondremos nombre y finalmente el this para colocarlas en el setmodel.
5. el codigo de table column con el getcolum, se usa para ajustar con el setpreferredwidth el tamaño y estirado de las filas desde el codigo.
6. aqui añadiremos los Radio Buttom a un Group buttom que usaremos a futuro e inicializamos en 0 el spinner.
7. Finalmente traeremos la clase PRINCIPALCLASS del paquete INICIO y con un alias llamado "p".
Creacion evento windows openned dandole clic derecho al panel del form.
Luego de importar la clase y crear el evento Windows Openned para alli traerla junto con los datos que creamos en la misma, si son String los traemos vacios "", si son int con un 0 y si son double con un 0.0 en este caso traemos 3 double 1 int y 1 string ya que son las variables que mandamos desde la clase (van en orden).
Continuaremos con la creacion de otro form en el paquete INICIO, llamado "PRINCIPAL", aqui haremos todas las validaciones usando la siguiente interfaz.
Iremos por partes, empezando por el combobox del cafe de preferencia y su precio.
Dandole doble clic al combobox abrimos su evento de accion, aqui con el "p" nombre de la clase principal llamaremos el set de combocafe al cual le almacenaremos la seleccion index que escogimos del combo, el index es la posicion de las selecciones iniciando en 0, finalmente le pondremos con le settext al textfield de precio el valor convertido a string con el valueof, y con la "p" de la clase traemos el metodo precio cafe que ya habiamos definido antes y asi mostrar el precio total de dicho cafe.
Continuaremos con los botones de quitar y quitar todo de la tabla, con el siguiente codigo.
Usaremos un if para el boton quitar 1, creando un int llamado fila con un getselectedrow para seleccionar la fila y validaremos la fila vacia con un if para luego usar el removerow(Fila) siendo fila la que tenemos seleccionada y si no tenemos ninguna fila seleccionada usamos un joption para pedirle al usuario que seleccione una.
Con un for podremos quitar todo de la tabla contando las filas que tenemos con el for y con el getrowcount para finalmente validar que si hallan filas >= 0, y denuevo con un removerow borrar todas las filas que se contaron con el for.
Ahora validaremos los descuentos dentro de los Toggle Buttom.
Usaremos un if que nos valide con el isselected si tenemos seleccionado dicho togglebuttom, si es asi, llamamos de la clase "p" el descuentocupon al cual con el Set le asiganeremos lo que valga en ese instante ese descuento con un get y sumamos el descuento que valga el boton, si esto no se cumple y no tenemos boton seleccionado se sumara 0.0, este codigo se utiliza para los 3 toggle cambiando unicamente el nombre del boton y el descuento que tenga.
El Slider se valida de una forma muy sencilla, primero crearemos el evento StateChanged de las propiedades del Slider.
En un txt aparte para solo el slider, le asignaremos con el set el valor del slider con el getvalue pero este debe estar convertido en string con el valueof, finalmente concatenamos un signo porcentaje para que asi se muestre el numero junto al signo "0%" por ejemplo.
Por fuera de los eventos haremos un metodo para sumar todo.
Dentro de la variable total que venia vacia vamos a sumar el valor de la factura en ese instante + el precio de los cafes y el precio de los aditivos, finalmente le enviamos ese total a la clase "p" para almacenarlo con un set a la variable totalfactura que es de la clase principal.
Entraremos en el boton con el codigo mas amplio, dandole doble clic al boton agregar para que de esta forma se cree el evento de accion.
Principalmente lo que va a tomar el codigo sera un if que validara si tenemos los campos de llenar una vez esten llenos, o si el usuario elige un pedido, estos dos if seran los que en positivo daran error y en false traeran los datos que se agregaran, tal y como muestra los if, cuando no estan validados esos campos no se avance.
Funcionamiento del codigo:
1. Validaremos los Radio con el isselected para decir que " si esta seleccionado ", sea uno o el otro valida y guarda en la variable un string diferente en este caso si selecciona nequi almacenaremos en otra variable el numero del usuario, el cual pediremos en un joption.
2. Nopedido ++ para que cada que agreguemos un pedido vaya colocando elnumero de pedido en la tabla.
3. haremos la suma total y para la tabla, de los descuentos, se iran guardando en sumadesc tambien para mostrarlos a futuro en la factura.
4. validaremos ahora los check con los "isselected" dependiendo de cada combinacion de los 3 checks colocaremos un string diferente.
5. En otro if validamos la lista, dependiendo lo que se seleccione de la lista, como cada postre tiene precio fijo se suma a el total de la factura y si no, se coloca un 0 para no sumar nada.
6. finalmente guardaremos cada cosa que mostremos de la tabla en variables, para definir si tienen aditivo, si tienen postre o si tienen algun descuento esto para mostrar en la factura en un futuro.
7. luego con info[ numero fila ] guardaremos en cada una de las filas lo que corresponde a cada variable que hemos creado convirtiendo en string todo con el value of para poder mostrarlo.
8. al final reiniciaremos cada uno de los botones a excepcion de los que se llenan solo la primera vez, para que asi al dar clic al boton agregar esos campos ya esten vacios para continuar con otro pedido.
Haremos el boton limpiar todo.
Este boton permitira al usuario borrar todos los datos del pedido que esta haciendo por si se llega a equivocar y necesita limpiar esos campos de forma No manual.
aqui solo validaremos que si el metodopago es diferente de null, ya que si el usuario aun no llena el metodopago y sigue en null significa que apenas esta en el primer pedido, si metodopago si tiene un valor distinto de null es porque el usuario ya paso del primer pedido, si es null el metodopago limpiaremos absolutamente todo pero si el usuario ya valido un metodo de pago, limpiaremos todo menoslos campos de validar 1 vez.
El ultimo boton de esta interfaz sera el boton facturar.
En este boton ira la conexion al siguiente form llamado FACTURA, validaremos en un if primero si la cafeina es 0, marcaremos como un 0%, finalmente con un setdatosfactura llamando ese metodo le enviaremos a el otro form absolutamente todos los datos que guardaremos y mostraremos en la factura, totales, descuento, validacion de botones y demas, para finalmente hacer el form visible con el codigo final, set visible.