33143600 Factura en Java Con MySQL Docx

47
FACTURA EN JAVA(ECLIPSE) CON MYSQL package moduloCliente; import javax.swing.JOptionPane; import javax.swing.JPanel; José Jesús Balmaceda – Tec. Computación e Informática Página 1

Transcript of 33143600 Factura en Java Con MySQL Docx

Page 1: 33143600 Factura en Java Con MySQL Docx

FACTURA EN JAVA(ECLIPSE) CON MYSQL

package moduloCliente;

import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JButton;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;

José Jesús Balmaceda – Tec. Computación e Informática Página 1

Page 2: 33143600 Factura en Java Con MySQL Docx

import java.awt.SystemColor;import java.awt.event.KeyEvent;import java.text.DecimalFormat;

import javax.swing.SwingConstants;import moduloData.Classconexion;

public class JFactura extends JFrame {DefaultTableModel modelo;private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JButton btn_agregar = null;private JScrollPane ScrollPane = null;private JTable tabla = null;private JPanel Paneltotal = null;private JLabel lbl_subtotal = null;private JLabel lbl_igv = null;private JLabel lbl_total = null;private JTextField jtxt_subtotal = null;private JTextField jtxt_igv = null;private JTextField jtxt_total = null;private JPanel PanelProducto = null;private JLabel jLabel = null;private JTextField jtxt_item = null;private JLabel lbl_nombre = null;private JTextField jtxt_nombre = null;private JLabel lbl_descripcion = null;private JTextField jtxt_descripcion = null;private JLabel lbl_precio = null;private JTextField jtxt_precio = null;private JLabel lbl_cantidad = null;private JTextField jtxt_cantidad;private JTextField jtxt_detalle = null;private JPanel Panelbotones = null;private JButton btn_eliminar = null;private JButton btn_modificar = null;private JPanel PanelFactura = null;private JButton btn_nuevaFactura = null;private JButton btn_cancelar = null;private JPanel PanelCliente = null;private JLabel lbl_cliente = null;private JTextField jtxt_cliente = null;private JLabel lbl_direccion = null;private JTextField jtxt_direccion = null;private JLabel lbl_telefono = null;private JTextField jtxt_telefono = null;private JLabel lbl_ruc = null;private JTextField jtxt_ruc = null;private JLabel lbl_email = null;private JTextField jtxt_email = null;private JButton btn_buscliente = null;private JPanel PanelNumFac = null;private JPanel jPanel = null;private JButton btn_reporte = null;private JLabel lbl_factura = null;

José Jesús Balmaceda – Tec. Computación e Informática Página 2

Page 3: 33143600 Factura en Java Con MySQL Docx

private JLabel lbl_serie = null;Classconexion objconex=new Classconexion();private JLabel lbl_numfac = null;private JPanel PanelFecha = null;private JLabel jLabel1 = null;private JLabel lbl_fecha_sistema = null;

public JFactura() {super();initialize();temporal();inicio();

}

public void llamarProcedimientoAlmacenadoFechaServidor(){

try{

objconex.conexion();objconex.cstmt=objconex.cn.prepareCall("call fecha(?)");objconex.cstmt.execute();lbl_fecha_sistema.setText(""+objconex.cstmt.getString(1));objconex.cstmt.close();objconex.cn.close();

}catch(Exception ex){System.out.print(""+ex.getMessage());

}}

public void temporal(){String cols[] =

{"Item","Nombre","Descripción","Precio","Cantidad","Monto"};//*************************modelo=new

DefaultTableModel(cols,0);//************************************************tabla.setModel(modelo);

}

public void inicio(){

jtxt_subtotal.setText("0.00");jtxt_igv.setText("0.00");jtxt_total.setText("0.00");

}

private void initialize() {this.setSize(985, 707);this.setBackground(java.awt.SystemColor.activeCaptionBorder);this.setResizable(false);this.setContentPane(getJContentPane());this.setTitle("Factura");

José Jesús Balmaceda – Tec. Computación e Informática Página 3

Page 4: 33143600 Factura en Java Con MySQL Docx

}

private JPanel getJContentPane() {if (jContentPane == null) {

jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getScrollPane(), null);jContentPane.add(getPaneltotal(), null);jContentPane.add(getPanelProducto(), null);jContentPane.add(getJtxt_detalle(), null);jContentPane.add(getPanelbotones(), null);jContentPane.add(getPanelFactura(), null);jContentPane.add(getPanelCliente(), null);jContentPane.add(getPanelNumFac(), null);jContentPane.add(getJPanel(), null);jContentPane.add(getPanelFecha(), null);

}return jContentPane;

}

public void limpiaNumfacFecha(){

lbl_fecha_sistema.setText("");lbl_numfac.setText("FAC00000");

}

private JButton getBtn_agregar() {if (btn_agregar == null) {

btn_agregar = new JButton();btn_agregar.setText("Agregar");btn_agregar.setEnabled(false);btn_agregar.setBounds(new java.awt.Rectangle(5,10,123,26));btn_agregar.addActionListener(new

java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent

e) {try{

JFactura _this = new JFactura();AgregarProductos ap = new

AgregarProductos();ap.Valores = "otro formulario";ap.Frame = _this;ap.setVisible(true);if(ap.tabla.getRowCount()>0 &&

ap.jtxt_nombreprod.getText().intern()!=""){

jtxt_item.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),0).toString());

jtxt_nombre.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),1).toString());

jtxt_descripcion.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),2).toString());

José Jesús Balmaceda – Tec. Computación e Informática Página 4

Page 5: 33143600 Factura en Java Con MySQL Docx

jtxt_precio.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),3).toString());jtxt_cantidad.setEnabled(true);jtxt_cantidad.requestFocus();

}else{

limpiar();}

}catch(Exception ex){

}}

});}return btn_agregar;

}

private JScrollPane getScrollPane() {if (ScrollPane == null) {

ScrollPane = new JScrollPane();ScrollPane.setLocation(new java.awt.Point(155,362));ScrollPane.setViewportView(getTabla());ScrollPane.setSize(new java.awt.Dimension(670,170));

}return ScrollPane;

}

private JTable getTabla() {if (tabla == null) {

tabla = new JTable();tabla.setShowGrid(true);tabla.setForeground(new java.awt.Color(102,102,102));tabla.setBackground(java.awt.SystemColor.controlHighlight);

}return tabla;

}

private JPanel getPaneltotal() {if (Paneltotal == null) {

lbl_total = new JLabel();lbl_total.setBounds(new java.awt.Rectangle(30,50,74,21));

lbl_total.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_total.setForeground(java.awt.Color.white);lbl_total.setText("Total : ");lbl_igv = new JLabel();lbl_igv.setBounds(new java.awt.Rectangle(30,29,74,20));

lbl_igv.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_igv.setForeground(java.awt.Color.white);lbl_igv.setText("Igv(19%) : ");

José Jesús Balmaceda – Tec. Computación e Informática Página 5

Page 6: 33143600 Factura en Java Con MySQL Docx

lbl_subtotal = new JLabel();lbl_subtotal.setBounds(new java.awt.Rectangle(30,8,74,21));

lbl_subtotal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_subtotal.setForeground(java.awt.Color.white);lbl_subtotal.setText("Subtotal : ");Paneltotal = new JPanel();Paneltotal.setLayout(null);Paneltotal.setBounds(new java.awt.Rectangle(566,543,249,84));

Paneltotal.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

Paneltotal.setBackground(java.awt.SystemColor.scrollbar);Paneltotal.add(lbl_subtotal, null);Paneltotal.add(lbl_igv, null);Paneltotal.add(lbl_total, null);Paneltotal.add(getJtxt_subtotal(), null);Paneltotal.add(getJtxt_igv(), null);Paneltotal.add(getJtxt_total(), null);

}return Paneltotal;

}

private JTextField getJtxt_subtotal() {if (jtxt_subtotal == null) {

jtxt_subtotal = new JTextField();jtxt_subtotal.setEnabled(true);jtxt_subtotal.setEditable(false);

jtxt_subtotal.setBackground(java.awt.SystemColor.controlHighlight);jtxt_subtotal.setText("");jtxt_subtotal.setForeground(new java.awt.Color(102,102,102));jtxt_subtotal.setBounds(new java.awt.Rectangle(104,8,122,20));

}return jtxt_subtotal;

}

private JTextField getJtxt_igv() {if (jtxt_igv == null) {

jtxt_igv = new JTextField();jtxt_igv.setLocation(new java.awt.Point(104,30));jtxt_igv.setEnabled(true);jtxt_igv.setEditable(false);jtxt_igv.setBackground(java.awt.SystemColor.controlHighlight);jtxt_igv.setForeground(new java.awt.Color(102,102,102));jtxt_igv.setSize(new java.awt.Dimension(122,20));

}return jtxt_igv;

}

private JTextField getJtxt_total() {if (jtxt_total == null) {

jtxt_total = new JTextField();jtxt_total.setBounds(new java.awt.Rectangle(104,52,122,20));

José Jesús Balmaceda – Tec. Computación e Informática Página 6

Page 7: 33143600 Factura en Java Con MySQL Docx

jtxt_total.setEditable(false);jtxt_total.setBackground(java.awt.SystemColor.controlHighlight);jtxt_total.setForeground(new java.awt.Color(102,102,102));jtxt_total.setEnabled(true);

}return jtxt_total;

}

private JPanel getPanelProducto() {if (PanelProducto == null) {

lbl_cantidad = new JLabel();

lbl_cantidad.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_cantidad.setLocation(new java.awt.Point(193,35));lbl_cantidad.setSize(new java.awt.Dimension(77,21));lbl_cantidad.setForeground(java.awt.Color.white);lbl_cantidad.setText("Cantidad : ");lbl_precio = new JLabel();lbl_precio.setBounds(new java.awt.Rectangle(14,35,51,21));

lbl_precio.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_precio.setForeground(java.awt.Color.white);lbl_precio.setText("Precio : ");lbl_descripcion = new JLabel();

lbl_descripcion.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_descripcion.setLocation(new java.awt.Point(421,12));lbl_descripcion.setSize(new java.awt.Dimension(90,21));lbl_descripcion.setForeground(java.awt.Color.white);lbl_descripcion.setText("Descripción : ");lbl_nombre = new JLabel();

lbl_nombre.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_nombre.setLocation(new java.awt.Point(193,11));lbl_nombre.setSize(new java.awt.Dimension(77,21));lbl_nombre.setForeground(java.awt.Color.white);lbl_nombre.setText("Nombre : ");jLabel = new JLabel();jLabel.setText("Item : ");jLabel.setLocation(new java.awt.Point(25,11));jLabel.setSize(new java.awt.Dimension(40,21));jLabel.setForeground(java.awt.Color.white);

jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);PanelProducto = new JPanel();PanelProducto.setLayout(null);

PanelProducto.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

PanelProducto.setLocation(new java.awt.Point(155,274));PanelProducto.setSize(new java.awt.Dimension(670,68));PanelProducto.setBackground(java.awt.SystemColor.scrollbar);PanelProducto.add(jLabel, null);PanelProducto.add(getJtxt_item(), null);

José Jesús Balmaceda – Tec. Computación e Informática Página 7

Page 8: 33143600 Factura en Java Con MySQL Docx

PanelProducto.add(lbl_nombre, null);PanelProducto.add(getJtxt_nombre(), null);PanelProducto.add(lbl_descripcion, null);PanelProducto.add(getJtxt_descripcion(), null);PanelProducto.add(lbl_precio, null);PanelProducto.add(getJtxt_precio(), null);PanelProducto.add(lbl_cantidad, null);PanelProducto.add(getJtxt_cantidad(), null);

}return PanelProducto;

}

private JTextField getJtxt_item() {if (jtxt_item == null) {

jtxt_item = new JTextField();jtxt_item.setLocation(new java.awt.Point(67,11));jtxt_item.setEnabled(true);jtxt_item.setEditable(false);jtxt_item.setBackground(java.awt.SystemColor.controlHighlight);jtxt_item.setForeground(new java.awt.Color(102,102,102));jtxt_item.setText("");jtxt_item.setSize(new java.awt.Dimension(122,21));

}return jtxt_item;

}

private JTextField getJtxt_nombre() {if (jtxt_nombre == null) {

jtxt_nombre = new JTextField();jtxt_nombre.setBounds(new java.awt.Rectangle(272,11,147,23));jtxt_nombre.setEditable(false);

jtxt_nombre.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nombre.setForeground(new java.awt.Color(102,102,102));jtxt_nombre.setEnabled(true);

}return jtxt_nombre;

}

private JTextField getJtxt_descripcion() {if (jtxt_descripcion == null) {

jtxt_descripcion = new JTextField();jtxt_descripcion.setBounds(new

java.awt.Rectangle(513,12,141,21));jtxt_descripcion.setEditable(false);

jtxt_descripcion.setBackground(java.awt.SystemColor.controlHighlight);jtxt_descripcion.setForeground(new

java.awt.Color(102,102,102));jtxt_descripcion.setEnabled(true);

}return jtxt_descripcion;

}

José Jesús Balmaceda – Tec. Computación e Informática Página 8

Page 9: 33143600 Factura en Java Con MySQL Docx

private JTextField getJtxt_precio() {if (jtxt_precio == null) {

jtxt_precio = new JTextField();jtxt_precio.setBounds(new java.awt.Rectangle(67,35,122,21));jtxt_precio.setEditable(false);

jtxt_precio.setBackground(java.awt.SystemColor.controlHighlight);jtxt_precio.setForeground(new java.awt.Color(102,102,102));jtxt_precio.setEnabled(true);

}return jtxt_precio;

}

private JTextField getJtxt_cantidad() {if (jtxt_cantidad == null) {

jtxt_cantidad = new JTextField();jtxt_cantidad.setBounds(new

java.awt.Rectangle(272,36,147,21));jtxt_cantidad.setEditable(true);jtxt_cantidad.setBackground(java.awt.Color.red);jtxt_cantidad.setFont(new java.awt.Font("Dialog",

java.awt.Font.BOLD, 12));

jtxt_cantidad.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_cantidad.setColumns(1);jtxt_cantidad.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyTyped(java.awt.event.KeyEvent e) {try{

int tecla=e.getKeyChar();if(tecla==KeyEvent.VK_ENTER){

double monto;// Establecemos Ascii, para utilizar la tecla Enter(10).

int enter=e.getKeyChar();

if(enter==10){

int fila;

for(fila=0;fila<modelo.getRowCount();fila++){

//validamos para que no se agregue dos veces un mismo producto.

if(tabla.getRowCount()>0 && jtxt_nombre.getText().intern()==tabla.getValueAt(fila,1).toString().intern())

{

JOptionPane.showMessageDialog(null,"El producto "+ jtxt_nombre.getText() +" ya ha sido agregado.","Alerta",JOptionPane.WARNING_MESSAGE);

limpiar();return;

}

José Jesús Balmaceda – Tec. Computación e Informática Página 9

Page 10: 33143600 Factura en Java Con MySQL Docx

}Object row[]=new Object[6];

monto=Double.parseDouble(jtxt_precio.getText())*Double.parseDouble(jtxt_cantidad.getText());

row[0]=jtxt_item.getText();

row[1]=jtxt_nombre.getText();

row[2]=jtxt_descripcion.getText();row[3]=jtxt_precio.getText();

row[4]=jtxt_cantidad.getText();row[5]=""+monto;modelo.addRow(row);//****************************sumaTotal();limpiar();

btn_nuevaFactura.setEnabled(true);

btn_eliminar.setEnabled(true);

btn_modificar.setEnabled(true);}

return;}//validamos para que el maximo//numero de caracteres que podamos//ingresar sea uno.if(jtxt_cantidad.getText().length()>0){

e.consume();}//validacion para solo ingresar numerosif(!(tecla>=KeyEvent.VK_1 &&

tecla<=KeyEvent.VK_9)){

e.consume();return;

}}catch(Exception ex){

}}

});jtxt_cantidad.setEnabled(false);

}return jtxt_cantidad;

}

public void sumaTotal(){

José Jesús Balmaceda – Tec. Computación e Informática Página 10

Page 11: 33143600 Factura en Java Con MySQL Docx

double umonto=0;for(int ciclo=0;ciclo<tabla.getRowCount();ciclo++){

umonto=umonto+Double.parseDouble(tabla.getValueAt(ciclo,5).toString());}DecimalFormat df=new DecimalFormat("0.00");jtxt_subtotal.setText(df.format(umonto).replace(",","."));jtxt_igv.setText(df.format(umonto*0.19).replace(",","."));double total=umonto+(umonto*0.19);jtxt_total.setText(df.format(total).replace(",","."));

}

public void limpiar(){

jtxt_item.setText("");jtxt_nombre.setText("");jtxt_descripcion.setText("");jtxt_precio.setText("");jtxt_cantidad.setText("");jtxt_item.setEditable(false);jtxt_nombre.setEditable(false);jtxt_descripcion.setEditable(false);jtxt_precio.setEditable(false);jtxt_cantidad.setEnabled(false);

}

/** * This method initializes jtxt_detalle * * @return javax.swing.JTextField */private JTextField getJtxt_detalle() {

if (jtxt_detalle == null) {jtxt_detalle = new JTextField();jtxt_detalle.setBounds(new java.awt.Rectangle(155,343,670,19));jtxt_detalle.setEditable(false);jtxt_detalle.setText("Detalle de productos");jtxt_detalle.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD,

12));jtxt_detalle.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_detalle.setBackground(java.awt.Color.gray);

}return jtxt_detalle;

}

/** * This method initializes Panelbotones * * @return javax.swing.JPanel */private JPanel getPanelbotones() {

if (Panelbotones == null) {Panelbotones = new JPanel();Panelbotones.setLayout(null);Panelbotones.setBounds(new java.awt.Rectangle(831,350,134,106));

Panelbotones.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

José Jesús Balmaceda – Tec. Computación e Informática Página 11

Page 12: 33143600 Factura en Java Con MySQL Docx

Panelbotones.setBackground(java.awt.SystemColor.scrollbar);Panelbotones.add(getBtn_agregar(), null);Panelbotones.add(getBtn_eliminar(), null);Panelbotones.add(getBtn_modificar(), null);

}return Panelbotones;

}

/** * This method initializes btn_eliminar * * @return javax.swing.JButton */private JButton getBtn_eliminar() {

if (btn_eliminar == null) {btn_eliminar = new JButton();btn_eliminar.setText("Eliminar");btn_eliminar.setEnabled(false);btn_eliminar.setBounds(new java.awt.Rectangle(5,38,123,26));btn_eliminar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {QuitarProducto();

}});

}return btn_eliminar;

}

public void QuitarProducto(){try{

if(tabla.getRowCount()>0){

int indice=tabla.getSelectedRow();if(indice==-1)

return;modelo.removeRow(indice);sumaTotal();

}else{

JOptionPane.showMessageDialog(null,"No hay ningún producto en la factura","Eliminar",JOptionPane.WARNING_MESSAGE);

}}catch(Exception ex){

JOptionPane.showMessageDialog(null,ex.getMessage());}

}/** * This method initializes btn_modificar *

José Jesús Balmaceda – Tec. Computación e Informática Página 12

Page 13: 33143600 Factura en Java Con MySQL Docx

* @return javax.swing.JButton */private JButton getBtn_modificar() {

if (btn_modificar == null) {btn_modificar = new JButton();btn_modificar.setText("Modificar");btn_modificar.setEnabled(false);btn_modificar.setBounds(new java.awt.Rectangle(5,66,123,26));btn_modificar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {try{

if(tabla.getRowCount()<1){

JOptionPane.showMessageDialog(null,"No hay ningún producto en la factura","Modificar",JOptionPane.INFORMATION_MESSAGE);

return;}String

modificar=JOptionPane.showInputDialog(tabla, "Ingrese cantidad","Modificar",JOptionPane.INFORMATION_MESSAGE);

if(tabla.getRowCount()>0 && modificar.intern()!=""){

tabla.setValueAt(modificar,tabla.getSelectedRow(),4);

//**************************************************double u_monto;

u_monto=Double.parseDouble(tabla.getValueAt(tabla.getSelectedRow(),3).toString())*Double.parseDouble(tabla.getValueAt(tabla.getSelectedRow(),4).toString());

tabla.setValueAt(""+u_monto,tabla.getSelectedRow(),5);

//****************************************************sumaTotal();

}}catch(Exception ex){}

}});

}return btn_modificar;

}

/** * This method initializes PanelFactura * * @return javax.swing.JPanel */private JPanel getPanelFactura() {

José Jesús Balmaceda – Tec. Computación e Informática Página 13

Page 14: 33143600 Factura en Java Con MySQL Docx

if (PanelFactura == null) {PanelFactura = new JPanel();PanelFactura.setLayout(null);PanelFactura.setLocation(new java.awt.Point(15,365));

PanelFactura.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

PanelFactura.setSize(new java.awt.Dimension(134,106));PanelFactura.setBackground(java.awt.SystemColor.scrollbar);PanelFactura.add(getBtn_nuevaFactura(), null);PanelFactura.add(getBtn_cancelar(), null);PanelFactura.add(getBtn_reporte(), null);

}return PanelFactura;

}public void GeneraFac(){

try{

objconex.conexion();objconex.st=objconex.cn.createStatement();String sql="select count(numfac)from tbfactura";String cad;int numero;objconex.rs=objconex.st.executeQuery(sql);objconex.rs.next();cad=objconex.rs.getString(1);numero=Integer.parseInt(cad)+1;lbl_numfac.setText("FAC0000"+numero);objconex.rs.close();objconex.st.close();objconex.cn.close();

}catch(Exception ex){

System.out.println("Error:"+ex.getMessage());}

}

private JButton getBtn_nuevaFactura() {if (btn_nuevaFactura == null) {

btn_nuevaFactura = new JButton();btn_nuevaFactura.setText("Nueva Factura");btn_nuevaFactura.setBounds(new java.awt.Rectangle(5,10,123,26));btn_nuevaFactura.addActionListener(new

java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {

try{if(btn_nuevaFactura.getText().intern()=="Nueva

Factura"){

GeneraFac();

José Jesús Balmaceda – Tec. Computación e Informática Página 14

Page 15: 33143600 Factura en Java Con MySQL Docx

llamarProcedimientoAlmacenadoFechaServidor();btn_nuevaFactura.setText("Grabar");btn_cancelar.setEnabled(true);btn_nuevaFactura.setEnabled(false);btn_buscliente.setEnabled(true);//*******************************************

}else{

if(JOptionPane.showConfirmDialog(null,"Realmente desea grabar esta factura","Grabar",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)

{insertafactura();

//insertafactura(lbl_numfac.getText(),Double.parseDouble(jtxt_subtotal.getText()),Double.parseDouble(jtxt_igv.getText()),Double.parseDouble(jtxt_total.getText()),lbl_fecha_sistema.getText());

JOptionPane.showMessageDialog(null,"El registro ha sido grabado correctamente","Grabar",JOptionPane.INFORMATION_MESSAGE);

aftergrabar();}

}}catch(Exception ex){

System.out.print(ex.getMessage());}

}});

}return btn_nuevaFactura;

}

public void insertafactura(){

try{

//INSERTAMOS CABECERA DE FACTURAobjconex.conexion();String sql="insert into tbfactura values('"+lbl_numfac.getText()

+"','"+jtxt_subtotal.getText()+"','"+jtxt_igv.getText()+"','"+jtxt_total.getText()+"','"+lbl_fecha_sistema.getText()+"')";

objconex.cmd=objconex.cn.prepareStatement(sql);objconex.cmd.execute();objconex.cmd.close();objconex.cn.close();//********************************************************************************//INSERTAMOS DETALLE DE FACTURA//item nombre descripcion precio cantidad montoobjconex.conexion();String sqldetalle="";int row;for(row=0;row<tabla.getRowCount();row++)

José Jesús Balmaceda – Tec. Computación e Informática Página 15

Page 16: 33143600 Factura en Java Con MySQL Docx

{sqldetalle="insert into tbdetfactura values('"+lbl_numfac.getText()

+"','"+tabla.getValueAt(row,0).toString()+"','"+tabla.getValueAt(row,3).toString()+"','"+tabla.getValueAt(row,4).toString()+"')";

objconex.cmd=objconex.cn.prepareStatement(sqldetalle);objconex.cmd.execute();

}

}catch(Exception ex){

System.out.print("Error:"+ex.getMessage());}

}

private JButton getBtn_cancelar() {if (btn_cancelar == null) {

btn_cancelar = new JButton();btn_cancelar.setText("Cancelar");btn_cancelar.setEnabled(false);btn_cancelar.setBounds(new java.awt.Rectangle(5,38,123,26));btn_cancelar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {try{

if(JOptionPane.showConfirmDialog(null,"Realmente desea cancelar las acciones realizadas","Cancelar",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)

{limpiar();limpiaNumfacFecha();limpiarcliente();inicio();temporal();btn_nuevaFactura.setText("Nueva

Factura");btn_cancelar.setEnabled(false);btn_nuevaFactura.setEnabled(true);btn_buscliente.setEnabled(false);btn_agregar.setEnabled(false);btn_eliminar.setEnabled(false);btn_modificar.setEnabled(false);

}}catch(Exception ex){

System.out.print(ex.getMessage());}

}});

}return btn_cancelar;

}

public void aftergrabar()

José Jesús Balmaceda – Tec. Computación e Informática Página 16

Page 17: 33143600 Factura en Java Con MySQL Docx

{limpiar();limpiaNumfacFecha();limpiarcliente();inicio();temporal();btn_nuevaFactura.setText("Nueva Factura");btn_cancelar.setEnabled(false);btn_nuevaFactura.setEnabled(true);btn_buscliente.setEnabled(false);btn_agregar.setEnabled(false);btn_eliminar.setEnabled(false);btn_modificar.setEnabled(false);

}

/** * This method initializes PanelCliente * * @return javax.swing.JPanel */private JPanel getPanelCliente() {

if (PanelCliente == null) {lbl_email = new JLabel();lbl_email.setHorizontalAlignment(SwingConstants.RIGHT);lbl_email.setText("Email : ");lbl_email.setLocation(new java.awt.Point(227,56));lbl_email.setSize(new java.awt.Dimension(53,21));lbl_email.setForeground(SystemColor.controlLtHighlight);lbl_ruc = new JLabel();lbl_ruc.setHorizontalAlignment(SwingConstants.RIGHT);lbl_ruc.setText("Ruc : ");lbl_ruc.setLocation(new java.awt.Point(36,56));lbl_ruc.setSize(new java.awt.Dimension(52,21));lbl_ruc.setForeground(SystemColor.controlLtHighlight);lbl_telefono = new JLabel();lbl_telefono.setHorizontalAlignment(SwingConstants.RIGHT);lbl_telefono.setText("Teléfono : ");lbl_telefono.setLocation(new java.awt.Point(337,33));lbl_telefono.setSize(new java.awt.Dimension(66,21));lbl_telefono.setForeground(SystemColor.controlLtHighlight);lbl_direccion = new JLabel();

lbl_direccion.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_direccion.setText("Dirección : ");lbl_direccion.setLocation(new java.awt.Point(18,33));lbl_direccion.setSize(new java.awt.Dimension(69,21));lbl_direccion.setForeground(java.awt.SystemColor.controlLtHighlight);lbl_cliente = new JLabel();lbl_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);lbl_cliente.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_cliente.setLocation(new java.awt.Point(28,10));lbl_cliente.setSize(new java.awt.Dimension(58,21));lbl_cliente.setText("Cliente : ");PanelCliente = new JPanel();PanelCliente.setLayout(null);

José Jesús Balmaceda – Tec. Computación e Informática Página 17

Page 18: 33143600 Factura en Java Con MySQL Docx

PanelCliente.setBounds(new java.awt.Rectangle(155,182,670,86));PanelCliente.setBackground(java.awt.SystemColor.scrollbar);

PanelCliente.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

PanelCliente.add(lbl_cliente, null);PanelCliente.add(getJtxt_cliente(), null);PanelCliente.add(lbl_direccion, null);PanelCliente.add(getJtxt_direccion(), null);PanelCliente.add(lbl_telefono, null);PanelCliente.add(getJtxt_telefono(), null);PanelCliente.add(lbl_ruc, null);PanelCliente.add(getJtxt_ruc(), null);PanelCliente.add(lbl_email, null);PanelCliente.add(getJtxt_email(), null);PanelCliente.add(getBtn_buscliente(), null);

}return PanelCliente;

}

/** * This method initializes jtxt_cliente * * @return javax.swing.JTextField */private JTextField getJtxt_cliente() {

if (jtxt_cliente == null) {jtxt_cliente = new JTextField();jtxt_cliente.setLocation(new java.awt.Point(89,10));jtxt_cliente.setText("");jtxt_cliente.setBackground(java.awt.SystemColor.controlHighlight);jtxt_cliente.setEditable(false);jtxt_cliente.setSize(new java.awt.Dimension(440,21));

}return jtxt_cliente;

}

/** * This method initializes jTextField * * @return javax.swing.JTextField */private JTextField getJtxt_direccion() {

if (jtxt_direccion == null) {jtxt_direccion = new JTextField();jtxt_direccion.setText("");jtxt_direccion.setBackground(java.awt.SystemColor.controlHighlight);jtxt_direccion.setEditable(false);jtxt_direccion.setBounds(new java.awt.Rectangle(89,33,242,21));

}return jtxt_direccion;

}

/**

José Jesús Balmaceda – Tec. Computación e Informática Página 18

Page 19: 33143600 Factura en Java Con MySQL Docx

* This method initializes jTextField1 * * @return javax.swing.JTextField */private JTextField getJtxt_telefono() {

if (jtxt_telefono == null) {jtxt_telefono = new JTextField();jtxt_telefono.setLocation(new java.awt.Point(406,33));jtxt_telefono.setBackground(java.awt.SystemColor.controlHighlight);jtxt_telefono.setEditable(false);jtxt_telefono.setSize(new java.awt.Dimension(123,21));

}return jtxt_telefono;

}

/** * This method initializes jTextField2 * * @return javax.swing.JTextField */private JTextField getJtxt_ruc() {

if (jtxt_ruc == null) {jtxt_ruc = new JTextField();jtxt_ruc.setBounds(new java.awt.Rectangle(89,56,132,21));jtxt_ruc.setEditable(false);jtxt_ruc.setBackground(java.awt.SystemColor.controlHighlight);

}return jtxt_ruc;

}

/** * This method initializes jTextField3 * * @return javax.swing.JTextField */private JTextField getJtxt_email() {

if (jtxt_email == null) {jtxt_email = new JTextField();jtxt_email.setLocation(new java.awt.Point(283,57));jtxt_email.setBackground(java.awt.SystemColor.controlHighlight);jtxt_email.setEditable(false);jtxt_email.setText("");jtxt_email.setSize(new java.awt.Dimension(246,21));

}return jtxt_email;

}

/** * This method initializes jButton * * @return javax.swing.JButton */private JButton getBtn_buscliente() {

if (btn_buscliente == null) {btn_buscliente = new JButton();

José Jesús Balmaceda – Tec. Computación e Informática Página 19

Page 20: 33143600 Factura en Java Con MySQL Docx

btn_buscliente.setText("Buscar Cliente");btn_buscliente.setSize(new java.awt.Dimension(123,26));btn_buscliente.setEnabled(false);btn_buscliente.setLocation(new java.awt.Point(536,31));btn_buscliente.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {try{

JFactura _this = new JFactura();BuscarCliente bc = new BuscarCliente();bc.Valores="El otro formulario";bc.Frame=_this;bc.setVisible(true);if(bc.tablaCliente.getRowCount()>0 &&

bc.jtxt_nomcliente.getText().intern()!=""){

jtxt_cliente.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),1).toString());

jtxt_direccion.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),2).toString());

jtxt_telefono.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),3).toString());

jtxt_ruc.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),4).toString());

jtxt_email.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),5).toString());

btn_agregar.setEnabled(true);}else{

limpiarcliente();}

}catch(Exception ex){

}}

});}return btn_buscliente;

}

public void limpiarcliente(){

José Jesús Balmaceda – Tec. Computación e Informática Página 20

Page 21: 33143600 Factura en Java Con MySQL Docx

jtxt_cliente.setText("");jtxt_direccion.setText("");jtxt_telefono.setText("");jtxt_ruc.setText("");jtxt_email.setText("");

}/** * This method initializes PanelNumFac * * @return javax.swing.JPanel */private JPanel getPanelNumFac() {

if (PanelNumFac == null) {lbl_numfac = new JLabel();lbl_numfac.setText("FAC00000");lbl_numfac.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);lbl_numfac.setBounds(new java.awt.Rectangle(133,63,71,24));lbl_serie = new JLabel();lbl_serie.setText("001 - ");lbl_serie.setBounds(new java.awt.Rectangle(102,63,35,24));lbl_factura = new JLabel();lbl_factura.setBounds(new java.awt.Rectangle(37,45,219,26));

lbl_factura.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);lbl_factura.setText("FACTURA");PanelNumFac = new JPanel();PanelNumFac.setLayout(null);PanelNumFac.setBounds(new java.awt.Rectangle(579,37,291,134));PanelNumFac.setBackground(java.awt.SystemColor.scrollbar);

PanelNumFac.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

PanelNumFac.add(lbl_factura, null);PanelNumFac.add(lbl_serie, null);PanelNumFac.add(lbl_numfac, null);

}return PanelNumFac;

}

/** * This method initializes jPanel * * @return javax.swing.JPanel */private JPanel getJPanel() {

if (jPanel == null) {jPanel = new JPanel();jPanel.setLayout(null);jPanel.setBounds(new java.awt.Rectangle(96,37,477,133));

jPanel.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));

jPanel.setBackground(java.awt.SystemColor.scrollbar);

José Jesús Balmaceda – Tec. Computación e Informática Página 21

Page 22: 33143600 Factura en Java Con MySQL Docx

}return jPanel;

}

/** * This method initializes jButton * * @return javax.swing.JButton */private JButton getBtn_reporte() {

if (btn_reporte == null) {btn_reporte = new JButton();btn_reporte.setText("Reporte");btn_reporte.setEnabled(false);btn_reporte.setBounds(new java.awt.Rectangle(5,66,123,26));

}return btn_reporte;

}

/** * This method initializes PanelFecha * * @return javax.swing.JPanel */private JPanel getPanelFecha() {

if (PanelFecha == null) {lbl_fecha_sistema = new JLabel();lbl_fecha_sistema.setBounds(new java.awt.Rectangle(188,4,143,17));lbl_fecha_sistema.setText("");jLabel1 = new JLabel();jLabel1.setBounds(new java.awt.Rectangle(37,4,154,16));jLabel1.setText("Fecha y Hora del sistema : ");PanelFecha = new JPanel();PanelFecha.setLayout(null);PanelFecha.setLocation(new java.awt.Point(-1,656));PanelFecha.setBackground(java.awt.SystemColor.controlShadow);PanelFecha.setSize(new java.awt.Dimension(985,26));PanelFecha.add(jLabel1, null);PanelFecha.add(lbl_fecha_sistema, null);

}return PanelFecha;

}

/** * This method initializes fecha * * @return javax.swing.JButton */

} // @jve:decl-index=0:visual-constraint="10,-11"

José Jesús Balmaceda – Tec. Computación e Informática Página 22

Page 23: 33143600 Factura en Java Con MySQL Docx

package moduloCliente;

import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JDialog;import javax.swing.JTextField;import javax.swing.JLabel;import javax.swing.BorderFactory;import java.awt.SystemColor;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.JOptionPane;

import moduloData.Classconexion;

public class BuscarCliente extends JDialog {

Classconexion objsql = new Classconexion();

public String Valores;public void setValores(String xValores){

Valores=xValores;}

public String getValores(){

return Valores;}//***********************************public JFrame Frame;public void setFrame(JFrame xFrame){

Frame=xFrame;}

public JFrame getFrame(){

José Jesús Balmaceda – Tec. Computación e Informática Página 23

Page 24: 33143600 Factura en Java Con MySQL Docx

return Frame;}//***********************************//***********************************//***********************************//***********************************

private static final long serialVersionUID = 1L;public JPanel jContentPane = null;public JPanel jPanel = null;public JTextField jtxt_nomcliente = null;public JLabel lbl_cliente = null;public JTextField jtxt_cliente = null;public JScrollPane ScrollPane = null;public JTable tablaCliente = null;

DefaultTableModel modeloTablaInicio;DefaultTableModel modeloSql;

public void temporalinicio(){

try{

String header[]= {"Item","Nombre","Dirección","Teléfono","Ruc","Email"};

modeloTablaInicio=new DefaultTableModel(header,0);tablaCliente.setModel(modeloTablaInicio);

}catch(Exception ex){JOptionPane.showMessageDialog(null,ex.getMessage());

}}

public void consultasql(){try{

objsql.conexion();objsql.st=objsql.cn.createStatement();objsql.rs=objsql.st.executeQuery("select

item,nombres,direccion,telefono,ruc,email from tbclientes where nombres LIKE '"+this.jtxt_nomcliente.getText()+"%"+"'");

objsql.rs.next();String

col[]={"Item","Nombre","Dirección","Teléfono","Ruc","Email"};modeloSql=new DefaultTableModel(col,0);Object row[]=new Object[6];if(objsql.rs.getRow()>0 && jtxt_nomcliente.getText().intern()!=""){

row[0]=objsql.rs.getString("item");row[1]=objsql.rs.getString("nombres");row[2]=objsql.rs.getString("direccion");row[3]=objsql.rs.getString("telefono");row[4]=objsql.rs.getString("ruc");

José Jesús Balmaceda – Tec. Computación e Informática Página 24

Page 25: 33143600 Factura en Java Con MySQL Docx

row[5]=objsql.rs.getString("email");modeloSql.addRow(row);tablaCliente.setModel(modeloSql);

}else{

String col_empty[]={"Item","Nombre","Dirección","Teléfono","Ruc","Email"};

modeloSql=new DefaultTableModel(col_empty,0);tablaCliente.setModel(modeloSql);

}

}catch(Exception ex){}

}

public void centrarVentana(){

this.setLocationRelativeTo(null);}

public BuscarCliente() {super();initialize();temporalinicio();centrarVentana();

}

private void initialize() {this.setSize(723, 338);this.setResizable(false);this.setModal(true);this.setTitle("Búsqueda de Cliente");this.setContentPane(getJContentPane());

}

private JPanel getJContentPane() {if (jContentPane == null) {

jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getJPanel(), null);jContentPane.add(getJtxt_cliente(), null);jContentPane.add(getScrollPane(), null);

}return jContentPane;

José Jesús Balmaceda – Tec. Computación e Informática Página 25

Page 26: 33143600 Factura en Java Con MySQL Docx

}

private JPanel getJPanel() {if (jPanel == null) {

lbl_cliente = new JLabel();lbl_cliente.setBounds(new java.awt.Rectangle(23,12,180,25));lbl_cliente.setText("Ingrese nombre del cliente : ");

lbl_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);jPanel = new JPanel();jPanel.setLayout(null);jPanel.setBackground(java.awt.SystemColor.scrollbar);

jPanel.setBorder(BorderFactory.createLineBorder(SystemColor.controlShadow, 1));

jPanel.setBounds(new java.awt.Rectangle(120,33,469,44));jPanel.add(getJtxt_nomcliente(), null);jPanel.add(lbl_cliente, null);

}return jPanel;

}

private JTextField getJtxt_nomcliente() {if (jtxt_nomcliente == null) {

jtxt_nomcliente = new JTextField();jtxt_nomcliente.setBounds(new

java.awt.Rectangle(203,15,246,21));jtxt_nomcliente.setForeground(new

java.awt.Color(102,102,102));jtxt_nomcliente.setText("");

jtxt_nomcliente.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nomcliente.addCaretListener(new

javax.swing.event.CaretListener() {public void caretUpdate(javax.swing.event.CaretEvent e) {

consultasql();}

});}return jtxt_nomcliente;

}

private JTextField getJtxt_cliente() {if (jtxt_cliente == null) {

jtxt_cliente = new JTextField();jtxt_cliente.setBounds(new java.awt.Rectangle(62,79,595,20));jtxt_cliente.setFont(new java.awt.Font("Dialog",

java.awt.Font.BOLD, 12));

jtxt_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_cliente.setText("Cliente");jtxt_cliente.setEditable(false);jtxt_cliente.setBackground(java.awt.Color.gray);

}

José Jesús Balmaceda – Tec. Computación e Informática Página 26

Page 27: 33143600 Factura en Java Con MySQL Docx

return jtxt_cliente;}

private JScrollPane getScrollPane() {if (ScrollPane == null) {

ScrollPane = new JScrollPane();ScrollPane.setBounds(new java.awt.Rectangle(62,98,595,164));

ScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

ScrollPane.setViewportView(getTablaCliente());

ScrollPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

}return ScrollPane;

}

private JTable getTablaCliente() {if (tablaCliente == null) {

tablaCliente = new JTable();tablaCliente.setForeground(new java.awt.Color(102,102,102));tablaCliente.setShowGrid(true);

tablaCliente.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

tablaCliente.setBackground(java.awt.SystemColor.controlHighlight);}return tablaCliente;

}}

package moduloCliente;

José Jesús Balmaceda – Tec. Computación e Informática Página 27

Page 28: 33143600 Factura en Java Con MySQL Docx

import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;

import moduloData.Classconexion;

public class AgregarProductos extends JDialog {//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************public String Valores;public void setValores(String xValores){

Valores=xValores;}public String getValores(){

return Valores;}//*********************************************************************************public JFrame Frame;public void setFrame(JFrame xFrame){

Frame=xFrame;}public JFrame getFrame(){

return Frame;}

//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JScrollPane ScrollPane = null;public JTable tabla = null;//********************************************DefaultTableModel modelo;//contenido cuando realizemos la consulta a la base

José Jesús Balmaceda – Tec. Computación e Informática Página 28

Page 29: 33143600 Factura en Java Con MySQL Docx

de datosDefaultTableModel modelovacio;//contenido vacio cuando cargue el grid, o

cuando no encuentre el dato a buscar.//********************************************//instancio una variable "objconexion", para usar precisamente la conexion.Classconexion objconexion = new Classconexion();private JPanel Panelbusqueda = null;public JTextField jtxt_nombreprod = null;private JLabel lbl_nombre = null;private JTextField jTextField = null;public void consultatabla(){

try{//llamamos a la conexionobjconexion.conexion();//********************************************//creamos una instancia para nuestra conexionobjconexion.st=objconexion.cn.createStatement();//realizamos una consulta a la tabla//filtrando la busqueda con las iniciales//del producto que escribamos en el JTextBoxobjconexion.rs=objconexion.st.executeQuery("select

item,nombre,descripcion,precioventa,stock from tbproductos where nombre LIKE '"+this.jtxt_nombreprod.getText()+"%"+"'");

//para recorrer los registrosobjconexion.rs.next();//********************************************//establecemos las cabeceras de las columnas de nuestro gridString columnas[] =

{"Item","Nombre","Descripción","Precio","Stock"};modelo=new DefaultTableModel(columnas,0);//********************************************//instanciamos un Object->ARRAY de nombre "fila",//que cargará los registros correspondientes para//nuestras columnas que tenemos en la grilla,//en este caso 5Object fila[]=new Object[5];//preguntamos://si se ejecuta la consulta a la tabla correctamente y//el JTextBox No está vacía, entonces...if(objconexion.rs.getRow()>0 &&

jtxt_nombreprod.getText().intern()!=""){

//... se cargará nuestra grilla con los registros de nuestra tabla.

fila[0]=objconexion.rs.getString("item");fila[1]=objconexion.rs.getString("nombre");fila[2]=objconexion.rs.getString("descripcion");fila[3]=objconexion.rs.getString("precioventa");fila[4]=objconexion.rs.getString("stock");modelo.addRow(fila);tabla.setModel(modelo);

}else{

//sino se ejecuta la consulta correctamente, entonces la

José Jesús Balmaceda – Tec. Computación e Informática Página 29

Page 30: 33143600 Factura en Java Con MySQL Docx

grilla se queda//vacia, a través de un nuevo contenido denominado

"modelovacio".String col_vacias[] =

{"Item","Nombre","Descripción","Precio","Stock"};modelovacio=new DefaultTableModel(col_vacias,0);tabla.setModel(modelovacio);

} }catch(Exception ex){

System.out.print(ex.getMessage());}

}

//****************************************************************************************************

//****************************************************************************************************

//****************************************************************************************************

//creamos un procedimiento denominado "temporal", para que cargue la grilla vacía.

public void temporal(){//*****************************************************************************

String col_vacias[] = {"Item","Nombre","Descripción","Precio","Stock"};//*************************

modelovacio=new DefaultTableModel(col_vacias,0);//************************************************

tabla.setModel(modelovacio);//********************************************************************

}//***************************************************************************************************

//****************************************************************************************************

//****************************************************************************************************

public AgregarProductos() {super();initialize();centrarVentana();//****************************************//****************************************temporal();//llamamos al procedimiento "temporal" en nuestro

constructor.//****************************************//****************************************

}

José Jesús Balmaceda – Tec. Computación e Informática Página 30

Page 31: 33143600 Factura en Java Con MySQL Docx

public void centrarVentana(){

this.setLocationRelativeTo(null);}

private void initialize() {this.setSize(723, 338);

this.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);this.setModal(true);this.setResizable(false);this.setTitle("Agregar productos");this.setContentPane(getJContentPane());

}

private JPanel getJContentPane() {if (jContentPane == null) {

jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getScrollPane(), null);jContentPane.add(getPanelbusqueda(), null);jContentPane.add(getJTextField(), null);

}return jContentPane;

}

private JScrollPane getScrollPane() {if (ScrollPane == null) {

ScrollPane = new JScrollPane();ScrollPane.setBounds(new java.awt.Rectangle(62,98,595,164));ScrollPane.setViewportView(getTabla());

}return ScrollPane;

}

private JTable getTabla() {if (tabla == null) {

tabla = new JTable();tabla.setForeground(new java.awt.Color(102,102,102));tabla.setBackground(java.awt.SystemColor.controlHighlight);

}return tabla;

}

private JPanel getPanelbusqueda() {if (Panelbusqueda == null) {

lbl_nombre = new JLabel();lbl_nombre.setBounds(new java.awt.Rectangle(23,12,180,25));

lbl_nombre.setForeground(java.awt.SystemColor.controlLtHighlight);

José Jesús Balmaceda – Tec. Computación e Informática Página 31

Page 32: 33143600 Factura en Java Con MySQL Docx

lbl_nombre.setText("Ingrese nombre del producto : ");Panelbusqueda = new JPanel();Panelbusqueda.setLayout(null);Panelbusqueda.setBounds(new

java.awt.Rectangle(120,33,469,44));

Panelbusqueda.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.controlShadow,1));

Panelbusqueda.setBackground(java.awt.SystemColor.scrollbar);Panelbusqueda.add(getJtxt_nombreprod(), null);Panelbusqueda.add(lbl_nombre, null);

}return Panelbusqueda;

}

private JTextField getJtxt_nombreprod() {if (jtxt_nombreprod == null) {

jtxt_nombreprod = new JTextField();jtxt_nombreprod.setBounds(new

java.awt.Rectangle(203,15,246,21));jtxt_nombreprod.setForeground(new

java.awt.Color(102,102,102));jtxt_nombreprod.setText("");

jtxt_nombreprod.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nombreprod.addCaretListener(new

javax.swing.event.CaretListener() {//éste es un evento como Text_Change de .Netpublic void caretUpdate(javax.swing.event.CaretEvent e) {

consultatabla();}

});}return jtxt_nombreprod;

}/** * This method initializes jTextField * * @return javax.swing.JTextField */private JTextField getJTextField() {

if (jTextField == null) {jTextField = new JTextField();jTextField.setFont(new java.awt.Font("Dialog",

java.awt.Font.BOLD, 12));jTextField.setText("Producto");jTextField.setEditable(false);

jTextField.setForeground(java.awt.SystemColor.controlLtHighlight);jTextField.setLocation(new java.awt.Point(62,79));jTextField.setSize(new java.awt.Dimension(595,20));jTextField.setBackground(java.awt.Color.gray);

}return jTextField;

José Jesús Balmaceda – Tec. Computación e Informática Página 32

Page 33: 33143600 Factura en Java Con MySQL Docx

}} // @jve:decl-index=0:visual-constraint="10,10"

package moduloData;import java.sql.*;//importo la clase .sql, para trabajar con base de datos.public class Classconexion {

//declarando variables publicas para poder usarlas//en nuestro formulario de factura.public Connection cn;//conexionpublic ResultSet rs;//tipo recordsetpublic Statement st;//para establecer consultaspublic CallableStatement cstmt;public PreparedStatement cmd;

public void conexion(){

try{//llamo al driver para conectar java con MySQLClass.forName("com.mysql.jdbc.Driver");//establesco la conexion con sus respecticos parametros

cn=DriverManager.getConnection("jdbc:mysql://localhost/bdfacturacion","root","mysql");

}catch(Exception ex){

//en caso de erroresSystem.out.print("Error:"+ex.getMessage());

}}

}

CREATE DATABASE bdfacturacion;

USE bdfacturacion;

CREATE TABLE tbclientes ( item varchar(20) NOT NULL, nombres varchar(200) NOT NULL, direccion varchar(100) NOT NULL, telefono char(10) NOT NULL, ruc varchar(15) NOT NULL, email varchar(50) default NULL, PRIMARY KEY (item));

CREATE TABLE tbfactura ( numfac varchar(20) NOT NULL, subtotal decimal(8,2) NOT NULL, igv decimal(8,2) NOT NULL,

José Jesús Balmaceda – Tec. Computación e Informática Página 33

Page 34: 33143600 Factura en Java Con MySQL Docx

total decimal(8,2) NOT NULL, fecha datetime NOT NULL, PRIMARY KEY (numfac));

CREATE TABLE tbdetfactura ( numfac varchar(20) NOT NULL, itemprod varchar(20) NOT NULL, precioprod decimal(8,2) NOT NULL, cantprod int(11) NOT NULL);

CREATE TABLE tbproductos ( item varchar(20) NOT NULL, nombre char(50) NOT NULL, descripcion char(50) NOT NULL, preciocompra decimal(8,2) NOT NULL, precioventa decimal(8,2) NOT NULL, stock int(11) NOT NULL, stockminimo int(11) NOT NULL, PRIMARY KEY (item));

INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES

('PR00001','Inka Kola','Gaseosa botella plast. 3 lt','3.8','4.3',500,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES

('PR00002','Sporade','Rehidratante 400 ml','1.2','1.5',400,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES

('PR00003','Maltin Power','Energizante de malta 280 ml','0.8','1',800,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES

('PR00004','San Luis','Agua mineral 500 ml','1','1.5',250,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES

('PR00005','Gatorade','Bebida Rehidrat. 400 ml','2','2.4',400,5);

delimiter//create procedure fecha(OUT parametro datetime)begindeclare variable datetime;set variable=now();set parametro=variable;select parametro;end;//

José Jesús Balmaceda – Tec. Computación e Informática Página 34