Using the Advanced GUI, Structured Error Handling and SonicMQ to Build a Semi-Disconnected Point of Sales to Build a Semi-Disconnected Point of Sales