Exemple #1
0
  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