TavernerPOS - Source Code

Clone: 

git clone http://www.librarysmith.co.uk/tavernerPOS

 

viewgit/viewgit/inc/functions.php:49 Function create_function() is deprecated [8192]

Index » tavernerPOS : Commitdiff 2cfb31

Automatically save ticket (unless empty) on logout. Re-open users last open ticket on login. For busy bars where users are sharing a terminal.

Matt Smith [15-10-30 10:28]
Automatically save ticket (unless empty) on logout. Re-open users last open ticket on login. For busy bars where users are sharing a terminal.
diff --git a/src/com/floreantpos/main/Application.java b/src/com/floreantpos/main/Application.java
old mode 100644
new mode 100755
index 90abb1d..d4875d8
--- a/src/com/floreantpos/main/Application.java
+++ b/src/com/floreantpos/main/Application.java
@@ -407,12 +407,19 @@ public class Application {
 		}
 		else {
 			rootView.showView(SwitchboardView.getInstance());
+			SwitchboardView.getInstance().loadPreviousOpenTicket();
 		}
 	}

 	public void doLogout() {
 		currentShift = null;
 		setCurrentUser(null);
+
+		RootView rootView = getRootView();
+		if (rootView.hasView(OrderView.VIEW_NAME)) {
+			if (rootView.getOrderView().isVisible()) rootView.getOrderView().ticketView.doJustSaveOrder(null);
+		}
+
 		RootView.getInstance().showView(LoginView.VIEW_NAME);
 	}

diff --git a/src/com/floreantpos/ui/TicketListView.java b/src/com/floreantpos/ui/TicketListView.java
index 9236bce..b58f229 100755
--- a/src/com/floreantpos/ui/TicketListView.java
+++ b/src/com/floreantpos/ui/TicketListView.java
@@ -272,6 +272,18 @@ public class TicketListView extends JPanel implements ITicketList {
 		return tickets;
 	}

+
+	public Ticket getAllOpenTicketsWithUser(User user) {
+
+		List<Ticket> listTicker = TicketDAO.getInstance().findOpenTicketsForUser(user);
+		Ticket ticket;
+		ticket=null;
+		if (listTicker.size()>0) {
+			ticket=listTicker.get(listTicker.size()-1);
+		}
+		return(ticket);
+	}
+
 	private class TicketListTable extends JXTable {

 		public TicketListTable() {
diff --git a/src/com/floreantpos/ui/ticket/TicketViewerTableModel.java b/src/com/floreantpos/ui/ticket/TicketViewerTableModel.java
old mode 100644
new mode 100755
index 7aecb97..82fdf09
--- a/src/com/floreantpos/ui/ticket/TicketViewerTableModel.java
+++ b/src/com/floreantpos/ui/ticket/TicketViewerTableModel.java
@@ -166,6 +166,7 @@ public class TicketViewerTableModel extends AbstractTableModel {
 		}
 		return false;
 	}
+

 	public void removeModifier(TicketItem parent, TicketItemModifier modifierToDelete) {
 		TicketItemModifierGroup ticketItemModifierGroup = modifierToDelete.getParent();
diff --git a/src/com/floreantpos/ui/views/SwitchboardView.java b/src/com/floreantpos/ui/views/SwitchboardView.java
old mode 100644
new mode 100755
index 4376866..0f5c926
--- a/src/com/floreantpos/ui/views/SwitchboardView.java
+++ b/src/com/floreantpos/ui/views/SwitchboardView.java
@@ -488,7 +488,7 @@ public class SwitchboardView extends ViewPanel implements ActionListener, ITicke
 		}
 	}

-	private void editTicket(Ticket ticket) {
+	public void editTicket(Ticket ticket) {
 		if (ticket.isPaid()) {
 			POSMessageDialog.showMessage(this, Messages.getString("SwitchboardView.14")); //$NON-NLS-1$
 			return;
@@ -500,6 +500,12 @@ public class SwitchboardView extends ViewPanel implements ActionListener, ITicke
 		RootView.getInstance().showView(OrderView.VIEW_NAME);
 	}

+	public void loadPreviousOpenTicket() {
+		User user = Application.getCurrentUser();
+		Ticket ticket=ticketList.getAllOpenTicketsWithUser(user);
+		if (ticket!=null) editTicket(ticket);
+	}
+
 	private void doCreateNewTicket(final OrderType ticketType) {
 		try {
 			OrderServiceExtension orderService = new DefaultOrderServiceExtension();
@@ -722,6 +728,9 @@ public class SwitchboardView extends ViewPanel implements ActionListener, ITicke
 	public String getViewName() {
 		return VIEW_NAME;
 	}
+
+
+

 	@Override
 	public void ticketListUpdated() {
diff --git a/src/com/floreantpos/ui/views/order/OrderView.java b/src/com/floreantpos/ui/views/order/OrderView.java
old mode 100644
new mode 100755
index 9fcad1e..5909695
--- a/src/com/floreantpos/ui/views/order/OrderView.java
+++ b/src/com/floreantpos/ui/views/order/OrderView.java
@@ -101,7 +101,7 @@ public class OrderView extends ViewPanel {
     private com.floreantpos.swing.TransparentPanel jPanel1;
     private com.floreantpos.swing.TransparentPanel midContainer;
     private TicketView.ExtraTicketActionPanel othersView;
-    private com.floreantpos.ui.views.order.TicketView ticketView;
+    public com.floreantpos.ui.views.order.TicketView ticketView;
     // End of variables declaration//GEN-END:variables

 	private CardLayout cardLayout;
diff --git a/src/com/floreantpos/ui/views/order/TicketView.java b/src/com/floreantpos/ui/views/order/TicketView.java
old mode 100644
new mode 100755
index 78b5449..ccc4094
--- a/src/com/floreantpos/ui/views/order/TicketView.java
+++ b/src/com/floreantpos/ui/views/order/TicketView.java
@@ -6,10 +6,12 @@

 package com.floreantpos.ui.views.order;

+import java.awt.AWTEvent;
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.GridLayout;
+import java.awt.event.FocusEvent;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.List;
@@ -81,6 +83,7 @@ public class TicketView extends JPanel {

 	public final static String VIEW_NAME = "TICKET_VIEW"; //$NON-NLS-1$

+
 	public TicketView() {
 		initComponents();
 	}
@@ -92,7 +95,10 @@ public class TicketView extends JPanel {
 	 */
 	// <editor-fold defaultstate="collapsed"
 	// desc=" Generated Code ">//GEN-BEGIN:initComponents
-	private void initComponents() {
+	private void initComponents()  {
+
+
+
 		titledBorder.setTitleJustification(TitledBorder.CENTER);
 		setBorder(border);
 		setLayout(new java.awt.BorderLayout(5, 5));
@@ -157,6 +163,8 @@ public class TicketView extends JPanel {

 		getExtraActionPanel().updateView(null);
 		setPreferredSize(new java.awt.Dimension(480, 463));
+
+

 	}// </editor-fold>//GEN-END:initComponents

@@ -358,6 +366,38 @@ public class TicketView extends JPanel {
 			POSMessageDialog.showError(Application.getPosWindow(), POSConstants.ERROR_MESSAGE, e);
 		}
 	}// GEN-LAST:event_doFinishOrder
+
+
+	public synchronized void doJustSaveOrder(java.awt.event.ActionEvent evt) {
+		try {
+
+			if (ticket.getTicketItems() != null && ticket.getTicketItems().size() > 0) {
+				updateModel();
+
+
+
+			TicketDAO ticketDAO = TicketDAO.getInstance();
+
+			if (ticket.getId() == null) {
+				// save ticket first. ticket needs to save so that it
+				// contains an id.
+				OrderController.saveOrder(ticket);
+				ticketDAO.refresh(ticket);
+			}
+
+			 OrderController.saveOrder(ticket);
+			}
+
+		} catch (StaleObjectStateException e) {
+			POSMessageDialog.showError(Application.getPosWindow(), Messages.getString("TicketView.22")); //$NON-NLS-1$
+			return;
+		} catch (PosException x) {
+			POSMessageDialog.showError(x.getMessage());
+		} catch (Exception e) {
+			POSMessageDialog.showError(Application.getPosWindow(), POSConstants.ERROR_MESSAGE, e);
+		}
+	}
+

 	private void closeView(boolean orderCanceled) {
 		if (TerminalConfig.isCashierMode()) {
@@ -1003,4 +1043,22 @@ public class TicketView extends JPanel {
 			itemSelectionListener.itemSelected(menuItem);
 		}
 	}
+
+	@Override
+	public void processFocusEvent(FocusEvent event) {
+
+		String action = "";
+		switch (event.getID()) {
+		case FocusEvent.FOCUS_GAINED:
+		    action="GOT FOCUS";
+		    break;
+		case FocusEvent.FOCUS_LOST:
+			action="LOST FOCUS";
+		    break;
+	  }
+
+
+
+	}
 }
+

Add comment
These comments are moderated so so won't be published until reviewed.