private void btnToUnbekanntActionPerformed(ActionEvent e) { Lager unbekannt = LagerTools.getUnbekannt(); StockTableModel2 model = (StockTableModel2) tblVorrat.getModel(); Tools.log(txtLog, "Folgende Vorräte wurden auf Unbekannt umgebucht:"); Tools.log(txtLog, "================================================"); EntityManager em = Main.getEMF().createEntityManager(); try { em.getTransaction().begin(); for (int row = 0; row < model.getRowCount(); row++) { // Model Row Index Umwandlung ist hier unnötig. Markierungen bleiben unberücksichtigt. if (model.getStatus(row) == StockTableModel2.STATUS_FRAGLICH) { Stock stock = em.merge(model.getVorrat(row)); em.lock(stock, LockModeType.OPTIMISTIC); Tools.log(txtLog, stock.getId(), stock.getProdukt().getBezeichnung(), ""); stock.setLager(unbekannt); } } em.getTransaction().commit(); } catch (OptimisticLockException ole) { em.getTransaction().rollback(); Main.warn(ole); } catch (Exception ex) { em.getTransaction().rollback(); Main.fatal(ex); } finally { em.close(); loadVorratTable(); } Tools.log(txtLog, "================================================"); }
public static ArrayList<Menuweekall> getAll() { ArrayList<Menuweekall> list = new ArrayList<Menuweekall>(); EntityManager em = Main.getEMF().createEntityManager(); Query queryMin = em.createQuery("SELECT t FROM Menuweekall t ORDER BY t.week DESC "); list.addAll(queryMin.getResultList()); em.close(); return list; }
private void loadLieferant() { EntityManager em = Main.getEMF().createEntityManager(); Query query = em.createQuery("SELECT l FROM Lieferanten l ORDER BY l.firma"); try { java.util.List lieferant = query.getResultList(); lieferant.add(0, "<html><i>Lieferant nicht ändern</i></html>"); cmbLieferant.setModel(tools.Tools.newComboboxModel(new ArrayList<Lieferanten>(lieferant))); } catch (Exception e) { // nicht gefunden // } finally { em.close(); } }
public static Menuweekall get(LocalDate week) { ArrayList<Menuweekall> list = new ArrayList<Menuweekall>(); EntityManager em = Main.getEMF().createEntityManager(); Query queryMin = em.createQuery("SELECT t FROM Menuweekall t WHERE t.week = :week "); queryMin.setParameter("week", week.toDate()); list.addAll(queryMin.getResultList()); em.close(); return list.isEmpty() ? null : list.get(0); }
@Override public void removeRow(int row) { Stock stock = (Stock) ((Object[]) data.get(row))[0]; EntityManager em = Main.getEMF().createEntityManager(); try { em.getTransaction().begin(); em.remove(stock); data.remove(row); em.getTransaction().commit(); fireTableRowsDeleted(row, row); } catch (Exception e) { Main.logger.fatal(e.getMessage(), e); em.getTransaction().rollback(); } finally { em.close(); } }
private void loadVorratTable() { EntityManager em = Main.getEMF().createEntityManager(); try { Query query = em.createQuery( "SELECT v, SUM(b.menge), 0 FROM Buchungen b JOIN b.stock v " + // die 0 ist ein kleiner Kniff und wird für das Umbuchen gebraucht. " WHERE v.lager = :lager AND v.ausgang = " + Const.MYSQL_DATETIME_BIS_AUF_WEITERES + " GROUP BY v"); query.setParameter("lager", (Lager) cmbLager.getSelectedItem()); java.util.List list = query.getResultList(); tblVorrat.setModel(new StockTableModel2(list, spaltenVorrat)); Tools.packTable(tblVorrat, 0); tblVorrat .getColumnModel() .getColumn(StockTableModel2.COL_VORRAT_ID) .setCellRenderer(new UmbuchenRenderer()); tblVorrat .getColumnModel() .getColumn(StockTableModel2.COL_BEZEICHNUNG) .setCellRenderer(new UmbuchenRenderer()); tblVorrat .getColumnModel() .getColumn(StockTableModel2.COL_MENGE) .setCellRenderer(new UmbuchenRenderer()); tblVorrat .getColumnModel() .getColumn(StockTableModel2.COL_ICON) .setCellRenderer(new UmbuchenRenderer()); } catch (Exception e) { // nicht gefunden Main.logger.fatal(e.getMessage(), e); // e.printStackTrace(); } finally { em.close(); } }
private void btnAusbuchenActionPerformed(ActionEvent e) { EntityManager em = Main.getEMF().createEntityManager(); try { em.getTransaction().begin(); int[] rows = tblVorrat.getSelectedRows(); for (int r = 0; r < rows.length; r++) { // Diese Zeile ist sehr wichtig, da sie die Auswahl in der Tabelle bzgl. einer Umsortierung // berücksichtigt. int row = tblVorrat.convertRowIndexToModel(rows[r]); Stock stock = ((StockTableModel2) tblVorrat.getModel()).getVorrat(row); Main.logger.info("AUSBUCHEN STOCK: " + stock.toString()); Tools.log(txtLog, stock.getId(), stock.getProdukt().getBezeichnung(), "AUSGEBUCHT"); StockTools.ausbuchen(stock, "Abschlussbuchung"); } em.getTransaction().commit(); } catch (Exception e1) { em.getTransaction().rollback(); } finally { em.close(); loadVorratTable(); } }
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(); } }