SQL - Quiero reducir el Stock de mi base restandole la cantidad seleccionada en la tabla¿Como puedo Hacer?

 
Vista:

Quiero reducir el Stock de mi base restandole la cantidad seleccionada en la tabla¿Como puedo Hacer?

Publicado por Gerson (1 intervención) el 31/05/2021 01:05:14
public class Vender extends javax.swing.JInternalFrame {
JavaMysql cc = new JavaMysql();
Connection cn = cc.conexion();
DefaultTableModel modelo;
PreparedStatement ps;
ResultSet rs;


void ActualizarStock(){


}
public Vender() {
initComponents();
modelo = new DefaultTableModel();
modelo.addColumn("ID Producto");
modelo.addColumn("Nombre");
modelo.addColumn("Precio");
modelo.addColumn("Cantidad");
tabla.setModel(modelo);
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
IDProducto = new javax.swing.JTextField();
jSeparator7 = new javax.swing.JSeparator();
jLabel2 = new javax.swing.JLabel();
Nombre = new javax.swing.JTextField();
jSeparator1 = new javax.swing.JSeparator();
jLabel4 = new javax.swing.JLabel();
Precio = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
Cantidad = new javax.swing.JTextField();
jSeparator2 = new javax.swing.JSeparator();
jSeparator3 = new javax.swing.JSeparator();
agregar = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
txtBuscar = new javax.swing.JTextField();
btnSeleccionar = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
txtStock = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
tabla = new javax.swing.JTable();
jButton3 = new javax.swing.JButton();
btnVender = new javax.swing.JButton();

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);

setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);

jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 37, Short.MAX_VALUE)
);

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jLabel9.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N
jLabel9.setText("N° Codigo Barra:");

IDProducto.setBackground(new java.awt.Color(204, 204, 204));
IDProducto.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
IDProducto.setBorder(null);

jSeparator7.setBackground(new java.awt.Color(0, 0, 0));

jLabel2.setFont(new java.awt.Font("Arial Black", 0, 20)); // NOI18N
jLabel2.setText("Nombre:");

Nombre.setBackground(new java.awt.Color(204, 204, 204));
Nombre.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
Nombre.setBorder(null);

jSeparator1.setBackground(new java.awt.Color(0, 0, 0));

jLabel4.setFont(new java.awt.Font("Arial Black", 0, 20)); // NOI18N
jLabel4.setText("Precio:");

Precio.setBackground(new java.awt.Color(204, 204, 204));
Precio.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
Precio.setBorder(null);

jLabel5.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
jLabel5.setText("Cantidad:");

Cantidad.setBackground(new java.awt.Color(204, 204, 204));
Cantidad.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
Cantidad.setBorder(null);

jSeparator2.setBackground(new java.awt.Color(0, 0, 0));

jSeparator3.setBackground(new java.awt.Color(0, 0, 0));

agregar.setFont(new java.awt.Font("Arial Black", 0, 20)); // NOI18N
agregar.setText("Agregar");
agregar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
agregarActionPerformed(evt);
}
});

jButton2.setFont(new java.awt.Font("Arial Black", 0, 20)); // NOI18N
jButton2.setText("Limpiar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

txtBuscar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtBuscarActionPerformed(evt);
}
});

btnSeleccionar.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N
btnSeleccionar.setText("Seleccionar");
btnSeleccionar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSeleccionarActionPerformed(evt);
}
});

jLabel1.setText("Stock:");



jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());

tabla.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {

},
new String [] {
"ID Producto", "Nombre", "Precio", "Cantidad"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};

public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane2.setViewportView(tabla);

javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

jButton3.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
jButton3.setText("Eliminar");

btnVender.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N
btnVender.setText("Generar Venta");
btnVender.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnVenderActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btnVender)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton3)
.addComponent(btnVender))
.addContainerGap(40, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void btnVenderActionPerformed(java.awt.event.ActionEvent evt) {


try {
for(int i=0; i<tabla.getRowCount(); i++){
PreparedStatement pst = cn .prepareStatement("INSERT INTO ventas(IDProducto, Nombre, Precio, Cantidad) VALUES(?,?,?,?)");
pst.setString(1, tabla.getValueAt(i,0).toString());
pst.setString(2, tabla.getValueAt(i,1).toString());
pst.setString(3, tabla.getValueAt(i,2).toString());
pst.setString(4, tabla.getValueAt(i,3).toString());
pst.executeUpdate();
}
} catch (Exception e) {
System.out.print(e.getMessage());
}
limpiartabla();
}


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Limpiar();
}

private void txtBuscarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void btnSeleccionarActionPerformed(java.awt.event.ActionEvent evt) {
//Buscar productos

try{
ps = cn.prepareStatement("SELECT IDProducto, Nombre, Precio, Stock FROM productos WHERE IDProducto = ?");
ps.setString(1, txtBuscar.getText());

rs = ps.executeQuery();

if(rs.next()){
IDProducto.setText(rs.getString("IDProducto"));
Nombre.setText(rs.getString("Nombre"));
Precio.setText(rs.getString("Precio"));
Cantidad.setText(rs.getString("Stock"));
txtStock.setText(rs.getString("Stock"));
} else {
JOptionPane.showMessageDialog(null, "No Existe un Producto con ese Nombre");
}

} catch(Exception e){
System.err.println(e);
}

}

private void agregarActionPerformed(java.awt.event.ActionEvent evt) {
String idproducto = IDProducto.getText();
String nombre = Nombre.getText();
String precio = Precio.getText();
String cantidad = Cantidad.getText();
String Datos[] = {idproducto, nombre, precio, cantidad};
modelo.addRow(Datos);
Limpiar();
}


// Variables declaration - do not modify
private javax.swing.JTextField Cantidad;
private javax.swing.JTextField IDProducto;
private javax.swing.JTextField Nombre;
private javax.swing.JTextField Precio;
private javax.swing.JButton agregar;
private javax.swing.JButton btnSeleccionar;
private javax.swing.JButton btnVender;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JSeparator jSeparator7;
private javax.swing.JTable jTable1;
private javax.swing.JTable tabla;
private javax.swing.JTextField txtBuscar;
private javax.swing.JTextField txtStock;
// End of variables declaration

private void Limpiar() {
IDProducto.setText(null);
Nombre.setText(null);
Precio.setText(null);
Cantidad.setText(null);
}

public void limpiartabla(){
modelo= new DefaultTableModel();
tabla.setModel(modelo);
}


}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder