Exemplo n.º 1
0
  /**
   * Voer inrijtijd in. Geeft error beeps als er geen plek meer in de garage is.
   *
   * @throws Exception
   */
  public void insertUse() throws Exception {
    LocalDateTime tijd = getDateTime();

    int pasnr = db.getPasnr(RFID);
    boolean status = db.getPasStatus(pasnr);

    if (!status) {
      out.beeps();
      JOptionPane.showMessageDialog(
          null, "Uw pas is geblokkeerd", "Uw pas is geblokkeerd", JOptionPane.ERROR_MESSAGE);
      return;
    }

    int cars = db.countCars();

    if (cars < MAX_CARS) {
      int type = db.getIDSoort(pasnr);
      int plek = db.getVrijePlek();
      switch (type) {
        case 1:
        case 3:
          db.insertPasUse(pasnr, tijd, plek);
          out.beep();
          db.setPlekBezet(plek);
          stoplicht.setStatus(true);
          break;
        case 2:
          int i = db.getBezoekersPasUren(pasnr, tijd);
          int j = db.getBezoekAbo(pasnr);
          if (i > MAX_HOURS * 2 || i + j > MAX_HOURS * 2) {
            out.beeps();
            JOptionPane.showMessageDialog(
                null,
                "Uw bezoekersuren zijn op!",
                "Uw bezoekersuren zijn op!",
                JOptionPane.ERROR_MESSAGE);
          } else {
            db.insertPasUse(pasnr, tijd, plek);
            out.beep();
            db.setPlekBezet(plek);
            stoplicht.setStatus(true);
          }
        default:
          System.err.println("Onbekende pas bij het inrijden");
          break;
      }
    } else {
      out.beeps();
      JOptionPane.showMessageDialog(
          null, "De garage is vol", "De garage is vol", JOptionPane.ERROR_MESSAGE);
    }
  }
Exemplo n.º 2
0
  /**
   * Update pas voor het uitrijden. Geeft drie beeps wanneer er niet uitgereden kan worden.
   *
   * @throws Exception
   */
  public void updateUse() throws Exception {

    synchronized (PinInvoer.obj) {
      try {
        LocalDateTime tijd = getDateTime();

        int pasnr = db.getPasnr(RFID);
        int type = db.getIDSoort(pasnr);
        int plek = db.getHuidigePlek(pasnr);

        boolean status = db.getPasStatus(pasnr);
        if (!status) {
          JOptionPane.showMessageDialog(
              null, "Uw pas is geblokkeerd", "Uw pas is geblokkeerd", JOptionPane.ERROR_MESSAGE);
          return;
        }

        LocalDateTime intijd = db.getIntijd(pasnr);

        switch (type) {
          case 1:
          case 2:
            db.updatePasUse(pasnr, intijd, tijd);
            db.updateAboUren(pasnr, intijd, tijd);
            out.beep();
            db.setPlekVrij(plek);
            stoplicht.setStatus(true);
            break;
          case 3: // 3 is een ad-hoc en moet eerst betalen
            double prijs = berekenPrijs(intijd, tijd);
            pin = new PinInvoer();
            pin.setBedrag(prijs);

            // pause, wacht tot het pinnen klaar is
            PinInvoer.obj.wait();

            int pincode = pin.getPin();

            boolean betaald = betaalPrijs(reknummer, prijs, pincode);
            resetReknummer();
            if (betaald) {
              db.setBetaalstatus(pasnr, betaald);
            }

            boolean b = db.getBetaalstatus(pasnr, intijd);
            if (b) {
              db.updatePasUse(pasnr, intijd, tijd);

              out.beep();

              db.updateBedragAdHoc(pasnr, intijd, tijd, prijs);

              db.setPlekVrij(plek);
              stoplicht.setStatus(true);
            } else {
              out.beeps();
              JOptionPane.showMessageDialog(
                  null,
                  "Betalen",
                  "U moet betalen om uit de garage te rijden",
                  JOptionPane.ERROR_MESSAGE);
            }
            break;
          default:
            System.err.println("Onbekend pastype uitrijden");
            break;
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }