public void refundTicket(Ticket ticket, final double refundAmount) throws Exception { User currentUser = Application.getCurrentUser(); Terminal terminal = ticket.getTerminal(); Session session = null; Transaction tx = null; GenericDAO dao = new GenericDAO(); try { Double currentBalance = terminal.getCurrentBalance(); Double totalPrice = ticket.getTotalAmount(); double newBalance = currentBalance - totalPrice; terminal.setCurrentBalance(newBalance); // double refundAmount = ticket.getPaidAmount(); // if(ticket.getGratuity() != null) { // refundAmount -= ticket.getGratuity().getAmount(); // } RefundTransaction posTransaction = new RefundTransaction(); posTransaction.setTicket(ticket); posTransaction.setPaymentType(PaymentType.CASH.name()); posTransaction.setTransactionType(TransactionType.DEBIT.name()); posTransaction.setAmount(refundAmount); posTransaction.setTerminal(terminal); posTransaction.setUser(currentUser); posTransaction.setTransactionTime(new Date()); ticket.setVoided(false); ticket.setRefunded(true); ticket.setClosed(true); ticket.setDrawerResetted(false); ticket.setClosingDate(new Date()); ticket.addTotransactions(posTransaction); session = dao.getSession(); tx = session.beginTransaction(); dao.saveOrUpdate(ticket, session); tx.commit(); // String title = "- REFUND RECEIPT -"; // String data = "Ticket #" + ticket.getId() + ", amount " + refundAmount + " was refunded."; ReceiptPrintService.printRefundTicket(ticket, posTransaction); } catch (Exception e) { try { tx.rollback(); } catch (Exception x) { } throw e; } finally { dao.closeSession(session); } }
private void doTakeout(String titcketType) { Application application = Application.getInstance(); Ticket ticket = new Ticket(); // ticket.setPriceIncludesTax(application.isPriceIncludesTax()); ticket.setTableNumber(-1); ticket.setTicketType(titcketType); ticket.setTerminal(application.getTerminal()); ticket.setOwner(Application.getCurrentUser()); ticket.setShift(application.getCurrentShift()); Calendar currentTime = Calendar.getInstance(); ticket.setCreateDate(currentTime.getTime()); ticket.setCreationHour(currentTime.get(Calendar.HOUR_OF_DAY)); OrderView.getInstance().setCurrentTicket(ticket); RootView.getInstance().showView(OrderView.VIEW_NAME); }
public void updateTicketList() { User user = Application.getCurrentUser(); TicketDAO dao = TicketDAO.getInstance(); List<Ticket> openTickets; boolean showAllOpenTicket = false; if (user.getNewUserType() != null) { Set<UserPermission> permissions = user.getNewUserType().getPermissions(); if (permissions != null) { for (UserPermission permission : permissions) { if (permission.equals(UserPermission.VIEW_ALL_OPEN_TICKET)) { showAllOpenTicket = true; break; } } } } if (showAllOpenTicket) { openTickets = dao.findOpenTickets(); } else { openTickets = dao.findOpenTicketsForUser(user); } openTicketList.setTickets(openTickets); lblUserName.setText( POSConstants.WELCOME + " " + user.toString() + ". " + POSConstants.YOU + " " + POSConstants.HAVE + " " + openTickets.size() + " " + POSConstants.TICKETS); }
private void doClockOut() { int option = JOptionPane.showOptionDialog( this, POSConstants.CONFIRM_CLOCK_OUT, POSConstants.CONFIRM, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null); if (option != JOptionPane.YES_OPTION) { return; } User user = Application.getCurrentUser(); AttendenceHistoryDAO attendenceHistoryDAO = new AttendenceHistoryDAO(); AttendenceHistory attendenceHistory = attendenceHistoryDAO.findHistoryByClockedInTime(user); if (attendenceHistory == null) { attendenceHistory = new AttendenceHistory(); Date lastClockInTime = user.getLastClockInTime(); Calendar c = Calendar.getInstance(); c.setTime(lastClockInTime); attendenceHistory.setClockInTime(lastClockInTime); attendenceHistory.setClockInHour((short) c.get(Calendar.HOUR)); attendenceHistory.setUser(user); attendenceHistory.setTerminal(Application.getInstance().getTerminal()); attendenceHistory.setShift(user.getCurrentShift()); } Shift shift = user.getCurrentShift(); Calendar calendar = Calendar.getInstance(); user.doClockOut(attendenceHistory, shift, calendar); Application.getInstance().logout(); }
public void updateView() { User user = Application.getCurrentUser(); UserType userType = user.getNewUserType(); if (userType != null) { Set<UserPermission> permissions = userType.getPermissions(); if (permissions != null) { btnNewTicket.setEnabled(false); btnBackOffice.setEnabled(false); btnEditTicket.setEnabled(false); if (!"false".equalsIgnoreCase(AppConfig.getFeatureGroupTicketFlag())) { btnGroupSettle.setEnabled(false); } if (!"false".equalsIgnoreCase(AppConfig.getManagerMenuFlag())) { btnManager.setEnabled(false); } if (!"false".equalsIgnoreCase(AppConfig.getFeaturePenarikanFlag())) { btnPayout.setEnabled(false); } btnReopenTicket.setEnabled(false); btnSettleTicket.setEnabled(false); if (!"false".equalsIgnoreCase(AppConfig.getFeatureSplitTicketFlag())) { btnSplitTicket.setEnabled(false); } btnTakeout.setEnabled(false); btnVoidTicket.setEnabled(false); for (UserPermission permission : permissions) { if (permission.equals(UserPermission.VOID_TICKET)) { btnVoidTicket.setEnabled(true); } else if (permission.equals(UserPermission.PAY_OUT)) { if (!"false".equalsIgnoreCase(AppConfig.getFeaturePenarikanFlag())) { btnPayout.setEnabled(true); } } else if (permission.equals(UserPermission.SETTLE_TICKET)) { btnSettleTicket.setEnabled(true); if (!"false".equalsIgnoreCase(AppConfig.getFeatureGroupTicketFlag())) { btnGroupSettle.setEnabled(true); } } else if (permission.equals(UserPermission.REOPEN_TICKET)) { btnReopenTicket.setEnabled(true); } else if (permission.equals(UserPermission.PERFORM_MANAGER_TASK)) { if (!"false".equalsIgnoreCase(AppConfig.getManagerMenuFlag())) { btnManager.setEnabled(true); } } else if (permission.equals(UserPermission.SPLIT_TICKET)) { if (!"false".equalsIgnoreCase(AppConfig.getFeatureSplitTicketFlag())) { btnSplitTicket.setEnabled(true); } } else if (permission.equals(UserPermission.TAKE_OUT)) { btnTakeout.setEnabled(true); } else if (permission.equals(UserPermission.VIEW_BACK_OFFICE)) { btnBackOffice.setEnabled(true); } // else if (permission.equals(UserPermission.PAY_OUT)) { // btnPayout.setEnabled(true); // } else if (permission.equals(UserPermission.EDIT_TICKET)) { btnEditTicket.setEnabled(true); } else if (permission.equals(UserPermission.CREATE_NEW_TICKET)) { btnNewTicket.setEnabled(true); } } } } updateTicketList(); }
public void settleTicket(Ticket ticket, PosTransaction transaction) throws Exception { Application application = Application.getInstance(); User currentUser = Application.getCurrentUser(); Terminal terminal = application.refreshAndGetTerminal(); Session session = null; Transaction tx = null; GenericDAO dao = new GenericDAO(); try { Date currentDate = new Date(); session = dao.createNewSession(); tx = session.beginTransaction(); ticket.setVoided(false); ticket.setDrawerResetted(false); ticket.setTerminal(terminal); ticket.setPaidAmount(ticket.getPaidAmount() + transaction.getAmount()); ticket.calculatePrice(); if (ticket.getDueAmount() == 0.0) { ticket.setPaid(true); closeTicketIfApplicable(ticket, currentDate); } else { ticket.setPaid(false); ticket.setClosed(false); } transaction.setTransactionType(TransactionType.CREDIT.name()); // transaction.setPaymentType(transaction.getPaymentType()); transaction.setTerminal(terminal); transaction.setUser(currentUser); transaction.setTransactionTime(currentDate); ticket.addTotransactions(transaction); if (ticket.getType() == OrderType.BAR_TAB) { ticket.removeProperty(Ticket.PROPERTY_PAYMENT_METHOD); ticket.removeProperty(Ticket.PROPERTY_CARD_NAME); ticket.removeProperty(Ticket.PROPERTY_CARD_TRANSACTION_ID); ticket.removeProperty(Ticket.PROPERTY_CARD_TRACKS); ticket.removeProperty(Ticket.PROPERTY_CARD_READER); ticket.removeProperty(Ticket.PROPERTY_ADVANCE_PAYMENT); ticket.removeProperty(Ticket.PROPERTY_CARD_NUMBER); ticket.removeProperty(Ticket.PROPERTY_CARD_EXP_YEAR); ticket.removeProperty(Ticket.PROPERTY_CARD_EXP_MONTH); ticket.removeProperty(Ticket.PROPERTY_CARD_AUTH_CODE); } adjustTerminalBalance(transaction); session.update(terminal); // session.saveOrUpdate(ticket); TicketDAO.getInstance().saveOrUpdate(ticket, session); // User assignedDriver = ticket.getAssignedDriver(); // if(assignedDriver != null) { // assignedDriver.setAvailableForDelivery(true); // UserDAO.getInstance().saveOrUpdate(assignedDriver, session); // } tx.commit(); } catch (Exception e) { try { tx.rollback(); } catch (Exception x) { } throw e; } finally { dao.closeSession(session); } // SETTLE ACTION String actionMessage = com.floreantpos.POSConstants.RECEIPT_REPORT_TICKET_NO_LABEL + ":" + ticket.getId(); // $NON-NLS-1$ actionMessage += ";" + com.floreantpos.POSConstants.TOTAL + ":" + NumberUtil.formatNumber(ticket.getTotalAmount()); // $NON-NLS-1$ //$NON-NLS-2$ ActionHistoryDAO.getInstance() .saveHistory(Application.getCurrentUser(), ActionHistory.SETTLE_CHECK, actionMessage); }