public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Proveedores proveedores;
     try {
       proveedores = em.getReference(Proveedores.class, id);
       proveedores.getId();
     } catch (EntityNotFoundException enfe) {
       throw new NonexistentEntityException(
           "The proveedores with id " + id + " no longer exists.", enfe);
     }
     List<String> illegalOrphanMessages = null;
     Collection<Facturas> facturasCollectionOrphanCheck = proveedores.getFacturasCollection();
     for (Facturas facturasCollectionOrphanCheckFacturas : facturasCollectionOrphanCheck) {
       if (illegalOrphanMessages == null) {
         illegalOrphanMessages = new ArrayList<String>();
       }
       illegalOrphanMessages.add(
           "This Proveedores ("
               + proveedores
               + ") cannot be destroyed since the Facturas "
               + facturasCollectionOrphanCheckFacturas
               + " in its facturasCollection field has a non-nullable idProveedor field.");
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     em.remove(proveedores);
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 @Override
 public void keyPressed(KeyEvent e) {
   if (e.getKeyCode() == KeyEvent.VK_ENTER) {
     String ruc = vistaProv.txtbuscarruc.getText();
     modeloProv = daoProv.buscarRuc(ruc);
     if (!modeloProv.getRuc().equals("")) {
       vistaProveedoresNM vistaProvNM = new vistaProveedoresNM();
       controladorProveedorNM controladorProvNM = new controladorProveedorNM(vistaProvNM, daoProv);
       vistaProvNM.lbltitutlo.setText("PROVEEDOR");
       vistaProvNM.txtcodigo.setEditable(false);
       vistaProvNM.btnregistrar.setVisible(false);
       vistaProvNM.btnguardarcambio.setEnabled(false);
       controladorProvNM.inicializarProveedoreNM(modeloProv, false);
       vistaProvNM.setLocationRelativeTo(null);
       vistaProvNM.setVisible(true);
       vistaProv.dispose();
     } else {
       JOptionPane.showMessageDialog(vistaProv, "R.U.C. no encontrado");
     }
   }
 }
 public void create(Proveedores proveedores) {
   if (proveedores.getFacturasCollection() == null) {
     proveedores.setFacturasCollection(new ArrayList<Facturas>());
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Collection<Facturas> attachedFacturasCollection = new ArrayList<Facturas>();
     for (Facturas facturasCollectionFacturasToAttach : proveedores.getFacturasCollection()) {
       facturasCollectionFacturasToAttach =
           em.getReference(
               facturasCollectionFacturasToAttach.getClass(),
               facturasCollectionFacturasToAttach.getId());
       attachedFacturasCollection.add(facturasCollectionFacturasToAttach);
     }
     proveedores.setFacturasCollection(attachedFacturasCollection);
     em.persist(proveedores);
     for (Facturas facturasCollectionFacturas : proveedores.getFacturasCollection()) {
       Proveedores oldIdProveedorOfFacturasCollectionFacturas =
           facturasCollectionFacturas.getIdProveedor();
       facturasCollectionFacturas.setIdProveedor(proveedores);
       facturasCollectionFacturas = em.merge(facturasCollectionFacturas);
       if (oldIdProveedorOfFacturasCollectionFacturas != null) {
         oldIdProveedorOfFacturasCollectionFacturas
             .getFacturasCollection()
             .remove(facturasCollectionFacturas);
         oldIdProveedorOfFacturasCollectionFacturas =
             em.merge(oldIdProveedorOfFacturasCollectionFacturas);
       }
     }
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
  @Override
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == vistaProv.btnnuevo) {
      vistaProveedoresNM vistaProvNM = new vistaProveedoresNM();
      vistaProvNM.lbltitutlo.setText("NUEVO PROVEEDOR");
      vistaProvNM.jLabel1.setVisible(false);
      vistaProvNM.txtcodigo.setVisible(false);
      vistaProvNM.btnmodificar.setVisible(false);
      vistaProvNM.btnguardarcambio.setVisible(false);
      controladorProveedorNM controladorCNM = new controladorProveedorNM(vistaProvNM, daoProv);
      vistaProvNM.setLocationRelativeTo(null);
      vistaProvNM.setVisible(true);
      vistaProv.dispose();
    }
    if (e.getSource() == vistaProv.btnbuscar) {
      String ruc = vistaProv.txtbuscarruc.getText();
      modeloProv = daoProv.buscarRuc(ruc);
      if (!modeloProv.getCodigo().equals("")) {
        vistaProveedoresNM vistaProvNM = new vistaProveedoresNM();
        controladorProveedorNM controladorProvNM = new controladorProveedorNM(vistaProvNM, daoProv);
        vistaProvNM.lbltitutlo.setText("PROVEEDOR");
        vistaProvNM.btnregistrar.setVisible(false);
        vistaProvNM.btnguardarcambio.setEnabled(false);
        vistaProvNM.txtcodigo.setEditable(false);
        controladorProvNM.inicializarProveedoreNM(modeloProv, false);
        vistaProvNM.setLocationRelativeTo(null);
        vistaProvNM.setVisible(true);
        vistaProv.dispose();
      } else {
        JOptionPane.showMessageDialog(vistaProv, "R.U.C. no encontrado");
      }
    }

    if (e.getSource() == vistaProv.btnborrar) {
      int filInicio = vistaProv.tbldatos.getSelectedRow();
      int numfilas = vistaProv.tbldatos.getSelectedRowCount();
      ArrayList<String> listaruc = new ArrayList<>();
      String ruc;
      if (filInicio >= 0) {
        for (int i = 0; i < numfilas; i++) {
          ruc = String.valueOf(vistaProv.tbldatos.getValueAt(i + filInicio, 0));
          listaruc.add(i, ruc);
        }

        for (int j = 0; j < numfilas; j++) {
          int rpta =
              JOptionPane.showConfirmDialog(
                  null, "Desea eliminar registro con R.U.C.: " + listaruc.get(j) + "? ");
          if (rpta == 0) {
            daoProv.eliminarProveedor(listaruc.get(j));
          }
        }
        LLenarTabla(vistaProv.tbldatos);
      } else {
        JOptionPane.showMessageDialog(null, "Elija al menos un registro para eliminar.");
      }
    }
    if (e.getSource() == vistaProv.btnsalir) {
      vistaProv.dispose();
    }
  }
 public void edit(Proveedores proveedores)
     throws IllegalOrphanException, NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Proveedores persistentProveedores = em.find(Proveedores.class, proveedores.getId());
     Collection<Facturas> facturasCollectionOld = persistentProveedores.getFacturasCollection();
     Collection<Facturas> facturasCollectionNew = proveedores.getFacturasCollection();
     List<String> illegalOrphanMessages = null;
     for (Facturas facturasCollectionOldFacturas : facturasCollectionOld) {
       if (!facturasCollectionNew.contains(facturasCollectionOldFacturas)) {
         if (illegalOrphanMessages == null) {
           illegalOrphanMessages = new ArrayList<String>();
         }
         illegalOrphanMessages.add(
             "You must retain Facturas "
                 + facturasCollectionOldFacturas
                 + " since its idProveedor field is not nullable.");
       }
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     Collection<Facturas> attachedFacturasCollectionNew = new ArrayList<Facturas>();
     for (Facturas facturasCollectionNewFacturasToAttach : facturasCollectionNew) {
       facturasCollectionNewFacturasToAttach =
           em.getReference(
               facturasCollectionNewFacturasToAttach.getClass(),
               facturasCollectionNewFacturasToAttach.getId());
       attachedFacturasCollectionNew.add(facturasCollectionNewFacturasToAttach);
     }
     facturasCollectionNew = attachedFacturasCollectionNew;
     proveedores.setFacturasCollection(facturasCollectionNew);
     proveedores = em.merge(proveedores);
     for (Facturas facturasCollectionNewFacturas : facturasCollectionNew) {
       if (!facturasCollectionOld.contains(facturasCollectionNewFacturas)) {
         Proveedores oldIdProveedorOfFacturasCollectionNewFacturas =
             facturasCollectionNewFacturas.getIdProveedor();
         facturasCollectionNewFacturas.setIdProveedor(proveedores);
         facturasCollectionNewFacturas = em.merge(facturasCollectionNewFacturas);
         if (oldIdProveedorOfFacturasCollectionNewFacturas != null
             && !oldIdProveedorOfFacturasCollectionNewFacturas.equals(proveedores)) {
           oldIdProveedorOfFacturasCollectionNewFacturas
               .getFacturasCollection()
               .remove(facturasCollectionNewFacturas);
           oldIdProveedorOfFacturasCollectionNewFacturas =
               em.merge(oldIdProveedorOfFacturasCollectionNewFacturas);
         }
       }
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       Integer id = proveedores.getId();
       if (findProveedores(id) == null) {
         throw new NonexistentEntityException(
             "The proveedores with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }