TavernerPOS - Source Code

Clone: 

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

 

Index » tavernerPOS : Commitdiff 46c9b0

Add option to Automatically set Terminal ID based on last 9 decimal digits of network MAC Address

Matt Smith [15-11-04 14:26]
Add option to Automatically set Terminal ID based on last 9 decimal digits of network MAC Address
diff --git a/i18n/messages.properties b/i18n/messages.properties
index 8a8af69..7cd6175 100755
--- a/i18n/messages.properties
+++ b/i18n/messages.properties
@@ -1304,3 +1304,4 @@ UserPermission.9=Drawer Pull
 BARMOD_TicketListView.21=Are you sure you want to clear all item?
 BARMOD_TicketListView.20=Clear All Items?
 BARMOD_AutoSaveOpen.1=Automatically Save/Open Open take out tickets on Logout/Login?
+BARMOD_AutoTerminalID.1=Automatically set Terminal ID based on last 9 decimal digits of network MAC Address.
\ No newline at end of file
diff --git a/src/com/floreantpos/config/TerminalConfig.java b/src/com/floreantpos/config/TerminalConfig.java
index 29b2eb2..d734c09 100755
--- a/src/com/floreantpos/config/TerminalConfig.java
+++ b/src/com/floreantpos/config/TerminalConfig.java
@@ -6,6 +6,7 @@ import org.apache.commons.lang.StringUtils;
 import com.floreantpos.model.OrderTypeFilter;
 import com.floreantpos.model.PaymentStatusFilter;
 import com.floreantpos.util.PasswordHasher;
+import com.floreantpos.getnetinfo.NetInfo;

 public class TerminalConfig {
 	private static final String USE_SETTLEMENT_PROMPT = "UseSettlementPrompt"; //$NON-NLS-1$
@@ -45,9 +46,18 @@ public class TerminalConfig {

 	private static final String AUTOSAVEANDOPEN_TAKEOUT_TICKET = "auto_save_and_open";//$NON-NLS-1$

+	private static final String AUTOTERMINAL_ID= "auto_terminal_id";//$NON-NLS-1$
+
 	private static PropertiesConfiguration config = AppConfig.getConfig();

 	public static int getTerminalId() {
+
+		if (config.getBoolean(AUTOTERMINAL_ID)==true) {
+			int terminalID=NetInfo.getTerminalIDFromMACAddr();
+			if (terminalID!=-1l) {
+				return(terminalID);
+			}
+		}
 		return config.getInt(TERMINAL_ID, -1);
 	}

@@ -55,6 +65,7 @@ public class TerminalConfig {
 		config.setProperty(TERMINAL_ID, id);
 	}

+
 	public static boolean isFullscreenMode() {
 		return config.getBoolean(FULLSCREEN_MODE, false);
 	}
@@ -239,6 +250,15 @@ public class TerminalConfig {
 		config.setProperty(AUTOSAVEANDOPEN_TAKEOUT_TICKET, autosaveandopen);
 	}

+
+	public static boolean isAutoTerminalID() {
+		return config.getBoolean(AUTOTERMINAL_ID, false);
+	}
+
+	public static void setAutoTerminalID(boolean autoterminalid) {
+		config.setProperty(AUTOTERMINAL_ID, autoterminalid);
+	}
+

 	public static char[] getDrawerControlCodesArray() {
 		String drawerControlCodes = getDefaultDrawerControlCodes();
diff --git a/src/com/floreantpos/config/ui/TerminalConfigurationView.java b/src/com/floreantpos/config/ui/TerminalConfigurationView.java
index 147cb9c..b765b0e 100755
--- a/src/com/floreantpos/config/ui/TerminalConfigurationView.java
+++ b/src/com/floreantpos/config/ui/TerminalConfigurationView.java
@@ -39,7 +39,7 @@ public class TerminalConfigurationView extends ConfigurationView {
 	private JCheckBox cbUseSettlementPrompt = new JCheckBox(Messages.getString("TerminalConfigurationView.4")); //$NON-NLS-1$
 	private JCheckBox cbShowDbConfiguration = new JCheckBox(Messages.getString("TerminalConfigurationView.5")); //$NON-NLS-1$
 	private JCheckBox cbAutoSaveOpen = new JCheckBox(Messages.getString("BARMOD_AutoSaveOpen.1")); //$NON-NLS-1$
-
+	private JCheckBox cbAutoTerminalID = new JCheckBox(Messages.getString("BARMOD_AutoTerminalID.1")); //$NON-NLS-1$

 	private JComboBox<String> cbFonts = new JComboBox<String>();

@@ -66,6 +66,9 @@ public class TerminalConfigurationView extends ConfigurationView {
 		JLabel lblTerminalNumber = new JLabel(Messages.getString("TerminalConfigurationView.TERMINAL_NUMBER")); //$NON-NLS-1$
 		add(lblTerminalNumber, "alignx left,aligny center"); //$NON-NLS-1$

+		add(cbAutoTerminalID,"newline, span"); //$NON-NLS-1$
+
+
 		tfTerminalNumber = new IntegerTextField();
 		tfTerminalNumber.setColumns(10);
 		add(tfTerminalNumber, "aligny top, wrap"); //$NON-NLS-1$
@@ -243,6 +246,8 @@ public class TerminalConfigurationView extends ConfigurationView {
 		TerminalConfig.setAutoLogoffTime(tfLogoffTime.getInteger() <= 0 ? 10 : tfLogoffTime.getInteger());

 		TerminalConfig.setAutoSaveOpen(cbAutoSaveOpen.isSelected());
+		TerminalConfig.setAutoTerminalID(cbAutoTerminalID.isSelected());
+

 		TerminalConfig.setUseSettlementPrompt(cbUseSettlementPrompt.isSelected());

@@ -291,6 +296,8 @@ public class TerminalConfigurationView extends ConfigurationView {
 		tfLogoffTime.setEnabled(cbAutoLogoff.isSelected());

 		cbAutoSaveOpen.setSelected(TerminalConfig.isAutoSaveOpen());
+		cbAutoTerminalID.setSelected(TerminalConfig.isAutoTerminalID());
+

 		initializeFontConfig();

diff --git a/src/com/floreantpos/getnetinfo/NetInfo.java b/src/com/floreantpos/getnetinfo/NetInfo.java
new file mode 100755
index 0000000..f26f3c8
--- /dev/null
+++ b/src/com/floreantpos/getnetinfo/NetInfo.java
@@ -0,0 +1,72 @@
+package com.floreantpos.getnetinfo;
+
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+
+/* CREDIT: Taken from http://www.mkyong.com/java/how-to-get-mac-address-in-java/ */
+
+public class NetInfo {
+
+	 public static String getIPAddr(){
+
+			InetAddress ip;
+			try {
+
+				ip = InetAddress.getLocalHost();
+				return(ip.getHostAddress());
+
+			} catch (UnknownHostException e) {
+
+				//e.printStackTrace();
+
+			}
+		return(null);
+	 }
+
+	 public static String getMACAddr() {
+
+			InetAddress ip;
+			try {
+
+				ip = InetAddress.getLocalHost();
+
+				NetworkInterface network = NetworkInterface.getByInetAddress(ip);
+
+				byte[] mac = network.getHardwareAddress();
+
+				StringBuilder sb = new StringBuilder();
+				for (int i = 0; i < mac.length; i++) {
+					//sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
+					sb.append(String.format("%03d%s", mac[i], (i < mac.length - 1) ? "-" : ""));
+				}
+				return(sb.toString());
+
+			} catch (UnknownHostException e) {
+
+				//e.printStackTrace();
+
+			} catch (SocketException e){
+
+				//e.printStackTrace();
+
+			}
+
+			return(null);
+
+		   }
+
+	 public static int getTerminalIDFromMACAddr() {
+
+		 String mac=getMACAddr();
+	 	 String terminalID = null;
+		  if ( mac != null) {
+		 	 terminalID=mac.replace("-","");
+			 terminalID=terminalID.substring(terminalID.length() - 10);
+		 	} else return(-1);
+			return(Integer.parseInt(terminalID));
+		  }
+
+
+}

Comments   

# Kitchen-receipt not printingJulio Ponce 2016-08-01 16:37
Good day I was Wondering if the button add in home screen to print kitchen receipt is avaliable in version 1.4, after clicking SAVE button wont print kitchen receipt, any help you can provide is welcome.

Best regards Julio
Reply | Reply with quote | Quote
# RE: Kitchen-receipt not printingMatt Smith 2016-08-01 17:52
Quoting Julio Ponce:
Good day I was Wondering if the button add in home screen to print kitchen receipt is avaliable in version 1.4, after clicking SAVE button wont print kitchen receipt, any help you can provide is welcome.

Best regards Julio


Hi,

As far as I'm aware none of that code has been changed that pertains to kitchen printers. Was it working on a previous build of TavernerPos?

Matt
Reply | Reply with quote | Quote

Add comment


Security code
Refresh