private void tf_cantidadFocusLost( java.awt.event.FocusEvent evt) { // GEN-FIRST:event_tf_cantidadFocusLost // TODO add your handling code here: Articulo a = (Articulo) obtenerArticulo(tf_articulo.getText()); cantidadActual = a.getCantidadStock() + cantidad; MovimientoStock ms = (MovimientoStock) obtenerStock(Integer.parseInt(tf_codigo.getText())); cantidadInicialExtraida = ms.getCantidad(); if (cantidadActual <= 0 || cantidadActual < (Integer.parseInt(tf_cantidad.getText()))) { resp = JOptionPane.showConfirmDialog( null, "No se cuenta en stock actual con la cantidad solicitada, Desea extraer la cantidad con la que se cuenta actualmente en stock?", "Confirmar Modificación", JOptionPane.YES_NO_OPTION); if (resp == JOptionPane.YES_OPTION) { tf_cantidad.setText(String.valueOf(cantidadActual)); tf_cantidad.setEnabled(false); tf_fecha.setEnabled(true); } else if (resp != JOptionPane.YES_OPTION) { tf_cantidad.setText(null); tf_cantidad.requestFocus(); } else { tf_fecha.setEnabled(true); // btn_guardar3.setEnabled(true); } } } // GEN-LAST:event_tf_cantidadFocusLost
private void btn_eliminarActionPerformed( java.awt.event.ActionEvent evt) { // GEN-FIRST:event_btn_eliminarActionPerformed // TODO add your handling code here: String valor; int codigo; codigo = Integer.parseInt(tf_codigo.getText()); resp = JOptionPane.showConfirmDialog( null, "Esta seguro que desea eliminar?", "Confirmar Eliminación", JOptionPane.YES_NO_OPTION); if (resp == JOptionPane.YES_OPTION) { entityManager.getTransaction().begin(); MovimientoStock ms = entityManager.find(MovimientoStock.class, Integer.parseInt(tf_codigo.getText())); valor = ms.toString(); // guardamos el objeto antes de eliminar entityManager.remove(ms); registrarAuditoria("Eliminar", "Movimiento Stock", valor, "No existen cambios"); // actualizar stock articulo Articulo a = (Articulo) obtenerArticulo(tf_articulo.getText()); String antes = a.toString(); cantidadActual = a.getCantidadStock(); Articulo art = obtenerArticulo(tf_articulo.getText()); art.setCodigoArticulo(a.getCodigoArticulo()); art.setCantidadStock(cantidadActual + Integer.parseInt(tf_cantidad.getText())); art.setCantidadMaxima(a.getCantidadMaxima()); art.setCantidadMinima(a.getCantidadMinima()); art.setCodCategoria(a.getCodCategoria()); art.setCodigoProveedor(a.getCodigoProveedor()); art.setCosto(a.getCosto()); art.setNombre(a.getNombre()); art.setPrecio(a.getPrecio()); art.setTipo(a.getTipo()); // entityManager.getTransaction().begin(); entityManager.merge(art); entityManager.flush(); registrarAuditoria("Actualizacion Articulo", "cantidad Stock", antes, art.toString()); entityManager.getTransaction().commit(); // entityManager.close(); JOptionPane.showMessageDialog(null, "Eliminación Exitosa"); refrescar(); vaciar(); } } // GEN-LAST:event_btn_eliminarActionPerformed
private void btn_guardarActionPerformed( java.awt.event.ActionEvent evt) { // GEN-FIRST:event_btn_guardarActionPerformed String antes; String despues; int codigo; if (tf_cantidad.getText().length() == 0 || tf_fecha.getText().length() == 0) { JOptionPane.showMessageDialog( null, "No se permiten campos con valores nulos", "Error", JOptionPane.ERROR_MESSAGE); tf_cantidad.requestFocus(); } else { Articulo a = (Articulo) obtenerArticulo(tf_articulo.getText()); cantidadActual = a.getCantidadStock() + (Integer.parseInt(tf_cantidad.getText())); MovimientoStock ms = (MovimientoStock) obtenerStock(Integer.parseInt(tf_codigo.getText())); cantidadInicialExtraida = cantidad; resp = JOptionPane.showConfirmDialog( null, "Desea modificar la extraccion de un articulo?", "Confirmar Creación", JOptionPane.YES_NO_OPTION); if (resp == JOptionPane.YES_OPTION) { query = entityManager.createNamedQuery("MovimientoStock.findByCodigoMovimiento"); query.setParameter("codigoMovimiento", Integer.parseInt(tf_codigo.getText())); List<MovimientoStock> m = query.getResultList(); // antes de los cambios antes = m.get(0).toString(); MovimientoStock mv = new MovimientoStock(); mv.setCodigoMovimiento(Integer.parseInt(tf_codigo.getText())); mv.setCodigoArticulo(a); mv.setCantidad(Integer.parseInt(tf_cantidad.getText())); mv.setFechaHora(tf_fecha.getText()); entityManager.getTransaction().begin(); entityManager.merge(mv); entityManager.flush(); despues = mv.toString(); // registramos los datos de la auditoria registrarAuditoria("Modificacion", "Movimiento Articulo", antes, despues); // actualizar stock articulo antes = a.toString(); Articulo art = obtenerArticulo(tf_articulo.getText()); art.setCodigoArticulo(a.getCodigoArticulo()); art.setCantidadStock( (a.getCantidadStock() + cantidadInicialExtraida) - Integer.parseInt(tf_cantidad.getText())); art.setCantidadMaxima(a.getCantidadMaxima()); art.setCantidadMinima(a.getCantidadMinima()); art.setCodCategoria(a.getCodCategoria()); art.setPrecio(a.getPrecio()); art.setTipo(a.getTipo()); art.setCodigoProveedor(a.getCodigoProveedor()); art.setCosto(a.getCosto()); art.setNombre(a.getNombre()); // entityManager.getTransaction().begin(); despues = art.toString(); entityManager.merge(art); entityManager.flush(); registrarAuditoria("Actualizacion Articulo", "cantidad Stock", antes, despues); detalleOrdenCompraQuery = entityManager.createNativeQuery( "select * from detalle_orden_compra " + "where cod_articulo=" + art.getCodigoArticulo(), DetalleOrdenCompra.class); List<DetalleOrdenCompra> doc = detalleOrdenCompraQuery.getResultList(); // verifica que ya no exista orden de compra if (doc.isEmpty()) { // verificar y generar en caso necesario orden compra if (art.getCantidadStock() <= art.getCantidadMinima()) { // genera detalle de la orden de compra DetalleOrdenCompra detalleOC = new DetalleOrdenCompra(); detalleOC.setCantidadPedida(art.getCantidadMaxima() - art.getCantidadStock()); detalleOC.setCodArticulo(art); detalleOC.setEstado("pendiente"); entityManager.persist(detalleOC); entityManager.flush(); registrarAuditoria("Creacion", "orden compra", detalleOC.toString(), "no hay cambios"); entityManager.getTransaction().commit(); } } JOptionPane.showMessageDialog( null, "Extraccion de Articulo Exitosa", "Confirmación", JOptionPane.INFORMATION_MESSAGE); refrescar(); vaciar(); } } } // GEN-LAST:event_btn_guardarActionPerformed