Академический Документы
Профессиональный Документы
Культура Документы
Programacin II
Proyecto:
Proyecto de fin de semestre- Aplicacin Coma Rico
Integrantes:
Edgar Meneses
Steven Palacios
Paulette Parra
NRC:
4187
Profesora:
Ing. Margarita Zambrano
Fecha de entrega:
24/02/2017
Sangolqu-Ecuador
CONTENIDO:
1. Objetivos
1.1 General
1.2 Especficos
2. Antecedentes
3. Problema
4. Diseo
5. Cdigo y explicacin
6. Implementacin
7. Conclusiones
OBJETIVOS:
General:
Crear una aplicacin ptima en Java con el uso de Interfaz Grfica mediante el uso de
clases, objetos, GUI, arrays y con la construccin de un cdigo validado, verificado y
ejecutable para cumplir las especificaciones necesarias y otorgar una solucin a la
problemtica planteada por el grupo, con el fin de fortalecer conocimientos adquiridos
durante el semestre I 2017 en Programacin II.
Especficos:
I. Identificar y desglosar las clases participantes y necesarias que formarn parte
en el programa, demostrando la relacin de las mismas con el cdigo UML.
II. Determinar los atributos comprendidos en cada clase y el tipo al que pertenece
cada uno.
III. Construir un cdigo ejecutable sin errores para cumplir las funciones necesarias
en la solucin de un problema planteado.
IV. Detallar los mtodos primordiales que usamos y cul fue la funcin que
determinamos para cada uno de ellos.
V. Exponer nuestro programa o aplicacin resultante a nuestros compaeros de
clase demostrando conocimientos aplicados y las validaciones realizadas.
ANTECEDENTES
Muchas veces nos hemos cuestionado el uso de programas pues requieren de un rduo
trabajo tras la construccin de los mismos, pues la interfaz grafica de usuario
prcticamente se ha ido puliendo con el tiempo hasta nuestros das, mucho tiempo atrs
esto no era real y programar significaba verlo solo desde consola.
En Ecuador, muchos locales de comida y negocios como restaurantes pequeos no
llevaban o siguen sin llevar un registro de clientes, productos y otras variedades, para
dichos lugares basta con un papel en el cual tomar la orden o simplemente la memoria,
prcticamente este ha sido su base para sobrellevar su negocio y lo han permanecido as
por muchos aos.
Si nos ponemos a recordar situaciones de salidas con la familia en el momento de
almorzar o cenar en lugares externos al hogar, podramos habernos percatado de lo difcil
que es adaptar la tecnologa con el trabajo de meseros o los dueos de locales de comida
rpida, con el tiempo las normas de venta se han ido reformando en nuestro pas con las
leyes Tributarias, tanto as que hace un par de aos el SRI reform sus artculos haciendo
hincapi en el trmino 10 del Art. 56 de la Ley de Rgimen Tributario Interno donde
manifiesta la generacin de un comprobante en consumos superiores a $4 sin necesidad
de que se lo solicite previamente por el usuario o cliente, poniendo de manifiesto la
necesidad de nuestro programa a realizar.
MESA
MESERO
CAJERO
PRODUCTO
FACTURA
FONDO MAIN
EN EL FRAME private ArrayList<Producto> misProductos = new ArrayList<>();
private ArrayList<Factura> misFacturas = new ArrayList<>();
frmEntrada
Design
public void setFacturas(ArrayList<Factura> misFacturas) {
this.misFacturas = misFacturas;
}
public void setProductos(ArrayList<Producto> misProductos) {
this.misProductos = misProductos;
}
public void setUsuarios(ArrayList<Usuario> misUsuarios) {
this.misUsuarios = misUsuarios;
}
public void setClientes(ArrayList<Cliente> misClientes) {
this.misClientes = misClientes;
}
Source public frmEntrada() {
import Clases.*; }
if (txtUsuario.getText().equals(misUsuarios.get(i).getIdUsuario()) }
frmPrincipal principal = new frmPrincipal(); // TODO add your handling code here:
principal.setUsuarios(misUsuarios); }
principal.setClientes(misClientes);
principal.setProductos(misProductos); private void btnAceptarMouseClicked(java.awt.event.MouseEvent evt) {
principal.setPerfil(misUsuarios.get(i).getPerfil()); }
principal.setID(misUsuarios.get(i).getIdUsuario()); }
principal.setVisible(true); }
a = 1; java.awt.EventQueue.invokeLater(new Runnable() {
} new frmEntrada().setVisible(true);
if (a == 0) { }
txtUsuario.setText(""); }
} cliente.show();
milogin.setUsuarios(misUsuarios); dpnEscritorio.add(miRegistro);
milogin.setClientes(misClientes); miRegistro.show();
milogin.setProductos(misProductos); }
productos.setProductos(misProductos); case 2:
dpnEscritorio.add(productos); mnuArchivoUsuario.setEnabled(false);
productos.show(); mnuArchivoClientes.setEnabled(false);
} mnuAlmacenProductos.setEnabled(false);
mnuArchivoUsuario.setEnabled(false); }
mnuAlmacenProductos.setEnabled(false); pedido[2].setMesa(3);
mnuRegistroFactura.setEnabled(false); pedido[2].setUsuarios(misUsuarios);
break; pedido[2].setProductos(misProductos);
} pedido[2].setFacturas(misFacturas);
} pedido[2].setClientes(misClientes);
pedido[0].setMesa(1); }
pedido[0].setUsuarios(misUsuarios); pedido[3].setMesa(4);
pedido[0].setProductos(misProductos); pedido[3].setUsuarios(misUsuarios);
pedido[0].setFacturas(misFacturas); pedido[3].setProductos(misProductos);
pedido[0].setClientes(misClientes); pedido[3].setFacturas(misFacturas);
pedido[0].show(); pedido[3].setClientes(misClientes);
} pedido[3].show();
pedido[1].setUsuarios(misUsuarios); pedido[4].setMesa(5);
pedido[1].setProductos(misProductos); pedido[4].setUsuarios(misUsuarios);
pedido[1].setFacturas(misFacturas); pedido[4].setProductos(misProductos);
pedido[4].setFacturas(misFacturas); pedido[7].setProductos(misProductos);
pedido[4].setClientes(misClientes); pedido[7].setFacturas(misFacturas);
pedido[4].show(); pedido[7].setClientes(misClientes);
} pedido[7].show();
pedido[5].setUsuarios(misUsuarios); pedido[8].setMesa(9);
pedido[5].setProductos(misProductos); pedido[8].setUsuarios(misUsuarios);
pedido[5].setFacturas(misFacturas); pedido[8].setProductos(misProductos);
pedido[5].setClientes(misClientes); pedido[8].setFacturas(misFacturas);
pedido[5].show(); pedido[8].setClientes(misClientes);
} pedido[8].show();
pedido[6].setUsuarios(misUsuarios); pedido[9].setMesa(10);
pedido[6].setProductos(misProductos); pedido[9].setUsuarios(misUsuarios);
pedido[6].setFacturas(misFacturas); pedido[9].setProductos(misProductos);
pedido[6].setClientes(misClientes); pedido[9].setFacturas(misFacturas);
pedido[6].show(); pedido[9].setClientes(misClientes);
} pedido[9].show();
pedido[7].setUsuarios(misUsuarios); pedido[10].setMesa(11);
pedido[10].setUsuarios(misUsuarios); pedido[13].setMesa(14);
pedido[10].setProductos(misProductos); pedido[13].setUsuarios(misUsuarios);
pedido[10].setFacturas(misFacturas); pedido[13].setProductos(misProductos);
pedido[10].setClientes(misClientes); pedido[13].setFacturas(misFacturas);
pedido[10].show(); pedido[13].setClientes(misClientes);
} pedido[13].show();
pedido[11].setUsuarios(misUsuarios); pedido[14].setMesa(15);
pedido[11].setProductos(misProductos); pedido[14].setUsuarios(misUsuarios);
pedido[11].setFacturas(misFacturas); pedido[14].setProductos(misProductos);
pedido[11].setClientes(misClientes); pedido[14].setFacturas(misFacturas);
pedido[11].show(); pedido[14].setClientes(misClientes);
} pedido[14].show();
pedido[12].setClientes(misClientes); }
pedido[12].show(); });
} }
boolean nuevo;
this.misClientes = misClientes;
public frmClientes() {
initComponents();
usuAct=0;
nuevo=false;
@SuppressWarnings("unchecked")
} txtCedula.requestFocusInWindow();
if (txtApellidos.getText().equals("")) { return;
txtApellidos.requestFocusInWindow(); if (txtDireccion.getText().equals("")) {
} txtDireccion.requestFocusInWindow();
if (txtCedula.getText().equals("")){ return;
} txtTelefono.requestFocusInWindow();
if(!misClientes.get(0).esLong(txtCedula.getText())){ return;
return; txtTelefono.setText(null);
} txtTelefono.requestFocusInWindow();
if return;
(misClientes.get(0).validarCedula(Long.parseLong(txtCedula.getText()))==false){
}
JOptionPane.showMessageDialog(rootPane, "Nmero de cdula incorrecto");
//Validacin que el cliente no exista
int pos = posicionCliiente(txtCedula.getText()); String mns;
if (nuevo) { if (nuevo) {
txtCedula.setEnabled(false); btnAnterior.setEnabled(true);
txtDireccion.setEnabled(false); btnSiguiente.setEnabled(true);
txtTelefono.setEnabled(false); btnUltimo.setEnabled(true);
llenarTabla(); btnModificar.setEnabled(true);
} btnBorrar.setEnabled(true);
if (cliente.equals("")) { btnCancelar.setEnabled(false);
} txtNombres.setEnabled(false);
return; txtTelefono.setEnabled(false);
} usuAct = 0;
mostrarRegistro(); }
mostrarRegistro(); btnNuevo.setEnabled(false);
} btnModificar.setEnabled(false);
usuAct--; btnBuscar.setEnabled(false);
mostrarRegistro(); txtNombres.setEnabled(true);
} txtApellidos.setEnabled(true);
usuAct++; txtDireccion.setEnabled(true);
} txtNombres.setText(null);
mostrarRegistro(); txtApellidos.setText(null);
} txtCedula.setText(null);
txtCedula.requestFocusInWindow(); btnBorrar.setEnabled(false);
} btnBuscar.setEnabled(false);
txtCedula.setText(""+misClientes.get(usuAct).getCi()); if (misClientes.get(i).getCi()==(Long.parseLong(cliente))){
} return i;
//titulos de la tabla }
//pasamos los titulos a la tabla public String modificarCliente(Cliente miCliente, int posicion){
registro[3] = misClientes.get(i).getDireccion();
miTabla.addRow(registro); }
boolean nuevo; }
} }
if (cmbPerfil.getSelectedIndex() == 0) { txtConfirmacion.setText(null);
cmbPerfil.requestFocusInWindow(); txtClave.requestFocusInWindow();
return; return;
} }
if (clave.equals("")) { if (txtFechaNac.getDate().equals(txtFechaIngreso.getDate())) {
return; txtFechaNac.requestFocusInWindow();
} return;
if (confirmacion.equals("")) { }
} txtFechaNac.getDate(),
if (nuevo) { if (nuevo==true) {
txtIDUsuario.setEnabled(false); mostrarRegistro();
txtNombres.setEnabled(false); }
txtConfirmacion.setEnabled(false); btnPrimero.setEnabled(true);
cmbPerfil.setEnabled(false); btnAnterior.setEnabled(true);
txtFechaNac.setEnabled(false); btnSiguiente.setEnabled(true);
txtFechaIngreso.setEnabled(false); btnUltimo.setEnabled(true);
txtCedula.setEnabled(false); btnNuevo.setEnabled(true);
llenarTabla(); btnBorrar.setEnabled(true);
} btnBuscar.setEnabled(true);
return; txtIDUsuario.setEnabled(false);
} txtNombres.setEnabled(false);
return; cmbPerfil.setEnabled(false);
txtFechaNac.setEnabled(false); if (usuAct == misUsuarios.size()) {
txtFechaIngreso.setEnabled(false); usuAct = 0;
txtCedula.setEnabled(false); }
usuAct = 0; mostrarRegistro();
mostrarRegistro(); }
usuAct = 0; btnPrimero.setEnabled(false);
mostrarRegistro(); btnAnterior.setEnabled(false);
} btnSiguiente.setEnabled(false);
mostrarRegistro(); btnModificar.setEnabled(false);
} btnBorrar.setEnabled(false);
usuAct--; btnGuardar.setEnabled(true);
} txtIDUsuario.setEnabled(true);
mostrarRegistro(); txtNombres.setEnabled(true);
} txtApellidos.setEnabled(true);
usuAct++; txtConfirmacion.setEnabled(true);
cmbPerfil.setEnabled(true); return;
cmbPerfil.setSelectedIndex(0); }
txtFechaNac.setEnabled(true); misUsuarios.remove(usuAct);
txtFechaIngreso.setEnabled(true); usuAct = 0;
txtCedula.setEnabled(true); mostrarRegistro();
txtIDUsuario.setText(null); llenarTabla();
txtNombres.setText(null); }
txtConfirmacion.setText(null); btnPrimero.setEnabled(false);
txtCedula.setText(null); btnUltimo.setEnabled(false);
txtIDUsuario.requestFocusInWindow(); btnBuscar.setEnabled(false);
} btnGuardar.setEnabled(true);
int rpta = JOptionPane.showConfirmDialog(rootPane, "Est seguro que desea //Habilita los campos
borrar el registro?");
txtNombres.setEnabled(true);
if (rpta != 0) {
txtApellidos.setEnabled(true);
txtClave.setEnabled(true); txtNombres.setText(misUsuarios.get(usuAct).getNombres());
txtConfirmacion.setEnabled(true); txtApellidos.setText(misUsuarios.get(usuAct).getApellidos());
cmbPerfil.setEnabled(true); txtClave.setText(misUsuarios.get(usuAct).getClave());
txtFechaNac.setEnabled(true); txtConfirmacion.setText(misUsuarios.get(usuAct).getClave());
txtFechaIngreso.setEnabled(false); cmbPerfil.setSelectedIndex(misUsuarios.get(usuAct).getPerfil());
txtCedula.setEnabled(true); txtFechaNac.setDate(misUsuarios.get(usuAct).getFechaNac());
} //titulos de la tabla
private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { String titulos[] = {"ID Usuario","Cdula", "Nombres", "Apellidos", "Perfil", "F.
Ingreso"};
mostrarRegistro();
//registramos el nmero de columnas
llenarTabla();
String registro[] = new String[6];
}
//pasamos los titulos a la tabla
private void txtApellidosActionPerformed(java.awt.event.ActionEvent evt) {
miTabla = new DefaultTableModel(null, titulos);
// TODO add your handling code here:
for (int i = 0; i < misUsuarios.size(); i++) {
}
registro[0] = misUsuarios.get(i).getIdUsuario();
private void cmbPerfilActionPerformed(java.awt.event.ActionEvent evt) {
registro[1] = ""+misUsuarios.get(i).getCi();
// TODO add your handling code here:
registro[2] = misUsuarios.get(i).getNombres();
}
registro[3] = misUsuarios.get(i).getApellidos();
private void mostrarRegistro() {
registro[4] = perfil(misUsuarios.get(i).getPerfil());
txtIDUsuario.setText(misUsuarios.get(usuAct).getIdUsuario());
registro[5] = }
misUsuarios.get(i).DateToString(misUsuarios.get(i).getFechaIngreso());
return -1;
miTabla.addRow(registro);
}
}
//devuelve un usuario modificado
tblTabla.setModel(miTabla);
public String modificarUsuario(Usuario miUsuario, int posicion){
}
misUsuarios.get(posicion).setNombres(miUsuario.getNombres());
private String perfil(int idPerfil) {
misUsuarios.get(posicion).setApellidos(miUsuario.getApellidos());
switch (idPerfil) {
misUsuarios.get(posicion).setPerfil(miUsuario.getPerfil());
case 1:
misUsuarios.get(posicion).setCi(miUsuario.getCi());
return "Administrador";
misUsuarios.get(posicion).setClave(miUsuario.getClave());
case 2:
misUsuarios.get(posicion).setFechaNac(miUsuario.getFechaNac());
return "Cajero";
misUsuarios.get(posicion).setFechaIngreso(miUsuario.getFechaIngreso());
case 3:
return "Usuario modificado correctamente";
return "Mesero";
}
}
// Variables declaration - do not modify
return "perfil no definido";
private javax.swing.JButton btnAnterior;
}
private javax.swing.JButton btnBorrar;
//devuelve la posicion en el arreglo de usuarios
private javax.swing.JButton btnBuscar;
public int posicionUsuario(String usuario){
private javax.swing.JButton btnCancelar;
for(int i=0;i<misUsuarios.size(); i++){
private javax.swing.JButton btnGuardar;
if (misUsuarios.get(i).getIdUsuario().equals(usuario)){
private javax.swing.JButton btnModificar;
return i;
private javax.swing.JButton btnNuevo;
}
private javax.swing.JButton btnPrimero;
private javax.swing.JButton btnSiguiente; // End of variables declaration
private javax.swing.JButton btnUltimo; }
} txtConfirmacion.setText(null);
this.clave=clave; return;
} }
} txtNuevo.requestFocusInWindow();
super(parent, modal); }
initComponents(); if(confirmacion.equals("")){
actual=new String(txtActual.getPassword()); }
txtActual.setText(null); }
txtNuevo.setText(null); }
return; this.dispose();
}else{ }
return; @Override
this.setVisible(false); }
} });
} dialog.setVisible(true);
} }
frmProductos
Design
Source
package Formularios;
import Clases.Producto;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class frmProductos extends javax.swing.JInternalFrame {
private int proAct ;
boolean nuevo;
private DefaultTableModel miTabla;
ArrayList<Producto> misProductos=new ArrayList<>();
public void setProductos(ArrayList<Producto> misProductos) { if (cmbCategoria.getSelectedIndex() == 0) {
} cmbCategoria.requestFocusInWindow();
initComponents(); }
nuevo=false; if(txtPrecio.getText().equals("")){
@SuppressWarnings("unchecked") txtPrecio.requestFocusInWindow();
if (txtIDProducto.getText().equals("")) { if(misProductos.get(0).validarPrecio(txtPrecio.getText())==1){
if (txtStock.getText().equals("")) { return;
btnAnterior.setEnabled(true); }
btnModificar.setEnabled(true); return;
btnBorrar.setEnabled(true); }
btnGuardar.setEnabled(false); mostrarRegistro();
btnCancelar.setEnabled(false); }
txtPrecio.setEnabled(false); }
txtStock.setEnabled(false); btnPrimero.setEnabled(true);
llenarTabla(); btnSiguiente.setEnabled(true);
} btnUltimo.setEnabled(true);
btnGuardar.setEnabled(false); }
btnCancelar.setEnabled(false); mostrarRegistro();
txtIDProducto.setEnabled(false); proAct++;
txtPrecio.setEnabled(false); proAct = 0;
txtNota.setEnabled(false); }
cmbCategoria.setEnabled(false); mostrarRegistro();
txtStock.setEnabled(false); }
proAct = 0; btnPrimero.setEnabled(false);
mostrarRegistro(); btnAnterior.setEnabled(false);
} btnSiguiente.setEnabled(false);
mostrarRegistro(); btnModificar.setEnabled(false);
} btnBorrar.setEnabled(false);
proAct--; btnGuardar.setEnabled(true);
btnCancelar.setEnabled(true); if (rpta != 0) {
//Habilita los campos return;
txtIDProducto.setEnabled(true); }
txtDescripcion.setEnabled(true); misProductos.remove(proAct);
txtNota.setEnabled(true); proAct = 0;
txtPrecio.setEnabled(true); mostrarRegistro();
cmbCategoria.setSelectedIndex(0); llenarTabla();
//Limpiar Campos }
txtStock.setText(null); btnPrimero.setEnabled(false);
txtNota.setText(null); btnAnterior.setEnabled(false);
txtPrecio.setText(null); btnSiguiente.setEnabled(false);
txtIDProducto.requestFocusInWindow(); btnBorrar.setEnabled(false);
} btnBuscar.setEnabled(false);
case 3: misProductos.get(pos).setStock(miProducto.getStock());
case 4: }
} misProductos.get(i).getPrecio(),
} misProductos.get(i).getStock());
iva = 0; llenarTablaProdutos(aux);
initComponents(); }
} }
private void txtFechaActionPerformed(java.awt.event.ActionEvent evt) { Producto ab = new Producto(
} misProductos.get(i).getIdProducto(),
if (misProductos.get(i).getCategoria() == 5) { misProductos.get(i).getCategoria(),
misProductos.get(i).getIdProducto(), aux.add(ab);
misProductos.get(i).getDescripcion(), } }
misProductos.get(i).getPrecio(), llenarTablaProdutos(aux);
misProductos.get(i).getNota(), }
} if (misProductos.get(i).getCategoria() == 4) {
llenarTablaProdutos(aux); misProductos.get(i).getIdProducto(),
} misProductos.get(i).getDescripcion(),
if (misProductos.get(i).getCategoria() == 2) { aux.add(ab);
} for (int i = 0; i < misProductos.size(); i++) {
} if (misProductos.get(i).getCategoria() == 1) {
} misProductos.get(i).getIdProducto(),
if (misProductos.get(i).getCategoria() == 3) { misProductos.get(i).getCategoria(),
misProductos.get(i).getIdProducto(), aux.add(ab);
misProductos.get(i).getDescripcion(), }
misProductos.get(i).getPrecio(), }
misProductos.get(i).getNota(), llenarTablaProdutos(aux);
misProductos.get(i).getCategoria(), }
} if (cmbMesero.getSelectedIndex() == 0) {
llenarTablaProdutos(aux); cmbMesero.requestFocusInWindow();
} return;
} + misProductos.get(pos).getDescripcion());
if (!misFacturas.get(0).esNumero(txtCantidad.getText())) { return;
miTablaPedido.addRow(registro); } else {
txtFecha.setText(misFacturas.get(0).formatDate(new Date())); if
(cmbMesero.getItemAt(cmbMesero.getSelectedIndex()).equals(misUsuarios.get(i).get
llenarTablaProdutos(misProductos); Nombres())) {
llenarTablaPedido(); mozo=new Mesero(misUsuarios.get(i).getCi(),
actualizarTotales(); misUsuarios.get(i).getNombres(),
cmbMesero.setEnabled(true); misUsuarios.get(i).getApellidos(),
cmbMesero.setSelectedIndex(0); misUsuarios.get(i).getIdUsuario(),
this.setVisible(false); misUsuarios.get(i).getClave(),
} misUsuarios.get(i).getPerfil(),
private void reiniciar(){ misUsuarios.get(i).getFechaNac(),
jlabelMesa.setText("MESA " + mesa); misUsuarios.get(i).getFechaIngreso());
txtFecha.setText(misFacturas.get(0).formatDate(new Date())); } }
llenarTablaProdutos(misProductos); if (tblPedido.getRowCount() != 0) {
cmbMesero.addItem("Seleccione un mesero"); frmFactura fact = new frmFactura(null, closable);
for (int i = 0; i < misUsuarios.size(); i++) { fact.setDetalle(miTablaPedido);
if (misUsuarios.get(i).getPerfil() == 3) { fact.setMesero(mozo);
cmbMesero.addItem(misUsuarios.get(i).getNombres()); fact.setClientes(misClientes);
} fact.setProductos(misProductos);
} fact.setFacturas(misFacturas);
llenarTablaPedido(); fact.setLocationRelativeTo(null);
fact.setVisible(true); //pasamos los titulos a la tabla
} else { miTablaMenu = new DefaultTableModel(null, titulos);
JOptionPane.showMessageDialog(rootPane, "No se puede generar una factura, for (int i = 0; i < misProductos.size(); i++) {
si no hay pedidos");
registro[0] = misProductos.get(i).getIdProducto();
}
registro[1] = misProductos.get(i).getDescripcion();
}
registro[2] = perfil(misProductos.get(i).getCategoria());
private void llenarTablaPedido() {
registro[3] = "" + misProductos.get(i).getPrecio();
//titulos de la tabla
registro[4] = "" + misProductos.get(i).getStock();
String titulos[] = {"Cantidad", "Descripcin", "Valor unitario", "Importe"};
miTablaMenu.addRow(registro);
String registro[] = new String[4];
}
miTablaPedido = new DefaultTableModel(null, titulos);
tblMenu.setModel(miTablaMenu);
tblPedido.setModel(miTablaPedido);
//alinear campos a la derecha
//alinear campos a la derecha
DefaultTableCellRenderer aux = new DefaultTableCellHeaderRenderer();
DefaultTableCellRenderer aux = new DefaultTableCellHeaderRenderer();
aux.setHorizontalAlignment(SwingConstants.RIGHT);
aux.setHorizontalAlignment(SwingConstants.RIGHT);
tblMenu.getColumnModel().getColumn(3).setCellRenderer(aux);
tblPedido.getColumnModel().getColumn(2).setCellRenderer(aux);
tblMenu.getColumnModel().getColumn(4).setCellRenderer(aux);
tblPedido.getColumnModel().getColumn(3).setCellRenderer(aux);
}
}
private String perfil(int idPerfil) {
private void llenarTablaProdutos(ArrayList<Producto> misProductos) {
switch (idPerfil) {
//titulos de la tabla
case 1:
String titulos[] = {"ID Producto", "Descripcin", "Categora", "Precio", "Stock"};
return "Entrada";
//registramos el nmero de columnas
case 2:
String registro[] = new String[5];
return "Sopa";
case 3: sub = (double) Math.round(sub * 100) / 100;
return "Bebida"; iva = ((sub * 14) / 100);
} txtIva.setText(String.valueOf(iva));
} }
import javax.swing.JOptionPane; }
import javax.swing.table.DefaultTableModel; }
private ArrayList<Producto> misProductos = new ArrayList<>(); caserito = new Cliente(0, null, null, null, null);
txtCedula.requestFocusInWindow(); encontro=true;
miPago.setCliente(caserito); return;
miPago.setProductos(prod); } else {
miPago.setFacturas(misFacturas); txtNombres.setText(misClientes.get(pos).getNombres());
miPago.setLocationRelativeTo(null); txtApellidos.setText(misClientes.get(pos).getApellidos());
miPago.setVisible(true); txtDireccion.setText(misClientes.get(pos).getDireccion());
btnPagarFactura.setEnabled(false); txtTelefono.setText(misClientes.get(pos).getTelefono());
} }
} }
return; }
txtCedula.setText(null); a =misFacturas.size()+1;
for (int i = 0; i < pedido.getRowCount(); i++) { iva = (double) Math.round(iva * 100) / 100;
miDetalle.addRow(registro); txtTotal.setText(String.valueOf(total));
} }
aux.setHorizontalAlignment(SwingConstants.RIGHT); return i;
tblDetalle.getColumnModel().getColumn(2).setCellRenderer(aux); }
tblDetalle.getColumnModel().getColumn(3).setCellRenderer(aux); }
} return -1;
Source }
public void setCliente(Cliente a){
package Formularios;
this.caserito=a;
import Clases.*;
}
import java.util.ArrayList;
public frmPago(java.awt.Frame parent, boolean modal) {
import javax.swing.JOptionPane;
super(parent, modal);
import static Archivos.ArchivosPlanos.guardarFactura;
initComponents();
public class frmPago extends javax.swing.JDialog {
}
private String Total;
@SuppressWarnings("unchecked")
private Cliente caserito;
private void txtIngresoActionPerformed(java.awt.event.ActionEvent evt) {
private ArrayList<Producto> misProductos = new ArrayList<>();
// TODO add your handling code here:
private ArrayList<Factura> misFacturas = new ArrayList<>();
} JOptionPane.showMessageDialog(rootPane, "Debe ingresar un monto");
private void formWindowOpened(java.awt.event.WindowEvent evt) { txtIngreso.setText(null);
txtTotal.setText(Total); txtCambio.setText(null);
} txtIngreso.requestFocusInWindow();
Source
package Formularios;
public frmAcercaDe() {
initComponents(); Source
}
} } else {
misFacturas.get(i).getNumeroFac(), aux.add(ab);
misFacturas.get(i).getTotal(), }
misFacturas.get(i).getCliente(), }
misFacturas.get(i).getFecha(), llenarTablaFacturas(aux);
misFacturas.get(i).getMesero(), }
llenarTablaFacturas(aux); if (misFacturas.get(i).getMesero().getNombres().equalsIgnoreCase(nombre)) {
if (misFacturas.get(i).getCliente().getNombres().equalsIgnoreCase(nombre)) { misFacturas.get(i).getMesero(),
misFacturas.get(i).getNumeroFac(), aux.add(ab);
misFacturas.get(i).getTotal(), }
misFacturas.get(i).getCliente(), }
llenarTablaFacturas(aux); miTablaFactura = new DefaultTableModel(null, titulos);
} for (int i = 0; i < misFacturas.size(); i++) {
try { tblFacturas.setModel(miTablaFactura);
aux = formaDelTexto.parse(fecha);
} catch (Exception ex) { //alinear campos a la derecha
DefaultTableCellRenderer aux = new DefaultTableCellHeaderRenderer();
} aux.setHorizontalAlignment(SwingConstants.RIGHT);
} }
//Mtodo para cambiar el formato de fecha a string
String titulos[] = {"N Factura", "Fecha", "Aporte", "Cliente", "Mesero"}; return formatodeltexto.format(fecha);
Este mtodo permite validar la cdula del modo que se separa el ltimo dgito, de todos los
dgitos pares se comienza a sumar y si excede de 9 se le resta nueve y as sucesivamente, por
otra parte los impares se suman, al final sumo los valores resultantes de los pares e impares,
de esta suma saco su mdulo en base de 10, el resultado resto de 10 y la cantidad que sale
debe coincidir con el ltimo digito que separ.
Este mtodo permite que validemos un precio, el cual no puede ser negativo, usamos el
parseFloat porque recibe un String, este String requerimos trabajarlo como nmero decimal y
por ello la conversin, usando el try y catch para excepciones y la accin a hacer en caso de
que no pase, como el mtodo lo declaramos de tipo int nos retorna un entero, en tres casos: -
1, 0 y 1 de acuerdo a la parte que cumpli.
Este mtodo va a hacer que validemos que cantidad sea un entero, al estar con parmetro le
vamos a enviar un String, y se va a proceder a convertir un dato numrico almacenado en un
String usando el mtodo "parse".
En vista que vamos a trabajar con archivos necesitamos que nuestra informacin se guarde,
para ello utilizamos este mtodo que permitir que guardemos los usuarios en archivos planos,
con el uso del FileWritter que nos permite escribir en ficheros, y PrintWritter, el PrintWriter
te permite escribir cosas, por ejemplo en archivos, te genera el archivo nuevo, y en caso de
que exista te lo sustituye. Para Clientes y Productos se procedi con las mismas lneas de
cdigo pero con unos pequeos cambios en los atributos y objetos con los que se trabaj.
Estos condicionales se encuentran en el botn Guardar cuando agregamos un cliente,
prcticamente son validaciones de que no existan campos vacos, pues para su registro
necesitamos que de manera obligatoria complete todos los campos de informacin del registro
de Clientes.
Limpia los campos haciendo que las partes de TextField para solicitar informacin como
nombres, apellidos, cdula, etc, se vacen al completar una accin y para ello le mandamos un
null.
Este mtodo va a permitir que llenemos la tabla, primero establecemos ttulos, procedemos a
declarar el nmero de columnas que se va a tener y pasamos dichos ttulos a la tabla.
Esta seccin del cdigo al momento de guardar un usuario debe confirmar su clave
volvindola a ingresar, por ello esto permite validar que la clave y su confirmacin coincidan
para otorgar seguridad a la cuenta de dicho usuario.
Mtodo para establecer el perfil de la persona, catalogndolo en tres tipos de usuario con
diferentes acceso cada uno, dependiendo del rango que tiene, este mtodo permite identificarlo
y conocer si existe o no.
Permite modificar a un Usuario, este se emplea tambin para clientes y productos o de manera
muy similar, pues mandamos los nuevos datos con el uso de get y set, con el get obtenemos
lo que acaba de ingresar y el set es para prcticamente reemplazar la informacin del mismo.
Al trabajar con fechas es importante conocer que dicho formato es diferente, para ello hacemos
el uso de dos mtodos, el primero nos va a permitir transformar un String a Fecha y el segundo
transformar un formato de Fecha a String, ambos para el uso de fechas como mencionamos.
Es importante recalcar que solo trabajos en da, mes y ao, por ello existe esa especificacin
en el cdigo.
Seccin del cdigo que nos permitir buscar el producto que el cliente desea de acuerdo a los
productos que tenemos disponibles, y de acuerdo al idSeleccion que bsicamente es el cdigo
del producto con el que lo denominamos y establecimos en nuestro inventario.
Esta seccin de cdigo permite verificar el Stock, es decir validar que la cantidad que quiere
adquirir no sea superior a la que tenemos disponible en un restaurante, pues esto es importante
para la atencin de un lugar de comida.
Ojo:
Existen muchos otros mtodos y cdigo desarrollado pero eso se encuentra especificado en la
parte de cdigo con comentarios que dan una corta explicacin de su funcionamiento.
CONCLUSIONES:
- La interfaz grfica de usuario permite que las aplicaciones que desarrollemos puedan
interactuar con las personas que la utilizan y puedan ser optimizadas las funciones para
las que se la desarroll, satisfaciendo al consumidor y permitindolo entender sin
necesidad de conocer acerca de programacin.
- Validar se puede realizar con if y else, sin embargo para proyectos o aplicaciones
usamos tambin el try y catch porque esto va a permitirnos que cualquier error
involuntario pueda no generar un error en el programa.
- Es importante que integremos todos los conocimientos para realizar programas que
produzcan un beneficio y no solo contener dichos conocimientos para nosotros, pues
en ello se basa el futuro de una sociedad y el desarrollo de la misma.
- La mejor forma de aprender es primero leer, luego realizar y por ltimo exponer, al
realizar esta aplicacin cumplimos dicho proceso y permitir que estos conocimientos
de Programacin II se impregnen en nosotros.
RECOMENDACIONES:
Es importante que analizemos los mejores procesos y ms cortos que cumplan con las
especificaciones necesarias, por ello debemos desarrollar la lgica y el conocimiento de los
procesos que se desarrollan en Java.