private void finishBtnActionPerformed( java.awt.event.ActionEvent evt) { // GEN-FIRST:event_finishBtnActionPerformed if (mileageField.getText().isEmpty()) { JOptionPane.showMessageDialog(this, "Mileage must be filled in"); return; } Invoice invoice = new Invoice(); invoice.setCustomerID(currentCustomer); Integer mileage = 0; try { mileage = Integer.parseInt(mileageField.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Incorrect format for mileage"); return; } invoice.setMileageOut(mileage); invoice.setPayment(false); Date date = new Date( datePicker.getModel().getYear() - 1900, datePicker.getModel().getMonth(), datePicker.getModel().getDay()); ArrayList<WorkOrder> temp = new ArrayList<>(); for (WorkOrder w : customersWos) { if (((Integer) woComboBox1.getSelectedItem()).equals(w.getOrderNo())) { w.setEndTime(date); temp.add(w); invoice.setWorkOrderList(temp); } } MainWindow.em.getTransaction().begin(); MainWindow.em.persist(invoice); MainWindow.em.flush(); MainWindow.em.refresh(invoice); for (WorkOrder wo : temp) { wo.setInvoiceNo(invoice); MainWindow.em.persist(wo); MainWindow.em.flush(); MainWindow.em.refresh(wo); } MainWindow.em.getTransaction().commit(); JOptionPane.showMessageDialog( this, "Invoice successfully created.", "Success", JOptionPane.INFORMATION_MESSAGE); this.setVisible(false); parent.setInvoiceTable(); } // GEN-LAST:event_finishBtnActionPerformed