예제 #1
0
 private void txtSearchActionPerformed(ActionEvent e) {
   stock = StockTools.findByIDORScanner(txtSearch.getText());
   if (stock != null) {
     if (stock.isAusgebucht() && !cbZombieRevive.isSelected()) {
       Tools.log(
           txtLog,
           stock.getId(),
           stock.getProdukt().getBezeichnung(),
           "Dieser Vorrat wurde bereits ausgebucht.");
       Tools.fadeout(lblProdukt);
       sp.error();
       stock = null;
     } else {
       if (btnSofortUmbuchen.isSelected()) {
         umbuchen();
         Tools.fadeinout(
             lblProdukt, "[" + stock.getId() + "] " + stock.getProdukt().getBezeichnung());
         stock = null;
       } else {
         Tools.fadein(
             lblProdukt, "[" + stock.getId() + "] " + stock.getProdukt().getBezeichnung());
       }
     }
   } else {
     Tools.log(txtLog, 0, txtSearch.getText(), "Unbekannte Vorrat Nummer.");
     Tools.fadeout(lblProdukt);
     sp.warning();
   }
   btnUmbuchen.setEnabled(stock != null);
   txtSearch.selectAll();
   txtSearch.requestFocus();
   txtSearchChecked = true;
 }
예제 #2
0
  private void umbuchen() {

    EntityManager em = Main.getEMF().createEntityManager();
    try {

      em.getTransaction().begin();

      Stock myStock = em.merge(stock);

      if (myStock.isAusgebucht()) {
        myStock.setAusgang(Const.DATE_BIS_AUF_WEITERES);
        myStock.setAnbruch(Const.DATE_BIS_AUF_WEITERES);

        Query query =
            em.createQuery(
                "DELETE FROM Buchungen b WHERE b.stock = :vorrat AND b.status <> :butnotstatus");
        query.setParameter("vorrat", myStock);
        query.setParameter("butnotstatus", BuchungenTools.BUCHEN_EINBUCHEN_ANFANGSBESTAND);

        query.executeUpdate();

        //                Collection<Buchungen> buchungen = myVorrat.getBuchungenCollection();
        //                for (Buchungen b : buchungen) {
        //                    Buchungen buchung = em.merge(b);
        //                    if (buchung.getStatus() !=
        // BuchungenTools.BUCHEN_EINBUCHEN_ANFANGSBESTAND) {
        //                        em.remove(buchung);
        //                    }
        //                }
        //                for (Buchungen b : buchungen) {
        //                    if (b.getStatus() != BuchungenTools.BUCHEN_EINBUCHEN_ANFANGSBESTAND) {
        //                        myVorrat.getBuchungenCollection().remove(b);
        //                    }
        //                }
      }

      myStock.setLager(em.merge(ziel));
      if (lieferant != null) {
        myStock.setLieferant(em.merge(lieferant));
      }
      //            EntityTools.merge(vorrat);
      em.getTransaction().commit();

      stock = myStock;

      Tools.log(txtLog, myStock.getId(), myStock.getProdukt().getBezeichnung(), "umgebucht");
      if (tblVorrat.getModel() instanceof StockTableModel2) {
        int row =
            ((StockTableModel2) tblVorrat.getModel())
                .addVorrat(stock); // diese Methode fügt den Vorrat nur dann hinzu, wenn nötig.
        Tools.scrollCellToVisible(tblVorrat, row, 1);
        tblVorrat.getSelectionModel().setSelectionInterval(row, row);
      }
      sp.bell();

    } catch (Exception ee) {
      em.getTransaction().rollback();
      ee.printStackTrace();
    } finally {
      em.close();
    }
  }