/** * 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); } }
/** * 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(); } } }