summaryrefslogtreecommitdiff
path: root/addons/hw_escpos/escpos/exceptions.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/hw_escpos/escpos/exceptions.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/hw_escpos/escpos/exceptions.py')
-rw-r--r--addons/hw_escpos/escpos/exceptions.py115
1 files changed, 115 insertions, 0 deletions
diff --git a/addons/hw_escpos/escpos/exceptions.py b/addons/hw_escpos/escpos/exceptions.py
new file mode 100644
index 00000000..a56bd177
--- /dev/null
+++ b/addons/hw_escpos/escpos/exceptions.py
@@ -0,0 +1,115 @@
+""" ESC/POS Exceptions classes """
+
+
+class Error(Exception):
+ """ Base class for ESC/POS errors """
+ def __init__(self, msg, status=None):
+ Exception.__init__(self)
+ self.msg = msg
+ self.resultcode = 1
+ if status is not None:
+ self.resultcode = status
+
+ def __str__(self):
+ return self.msg
+
+# Result/Exit codes
+# 0 = success
+# 10 = No Barcode type defined
+# 20 = Barcode size values are out of range
+# 30 = Barcode text not supplied
+# 40 = Image height is too large
+# 50 = No string supplied to be printed
+# 60 = Invalid pin to send Cash Drawer pulse
+
+
+class BarcodeTypeError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 10
+
+ def __str__(self):
+ return "No Barcode type is defined"
+
+class BarcodeSizeError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 20
+
+ def __str__(self):
+ return "Barcode size is out of range"
+
+class BarcodeCodeError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 30
+
+ def __str__(self):
+ return "Code was not supplied"
+
+class ImageSizeError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 40
+
+ def __str__(self):
+ return "Image height is longer than 255px and can't be printed"
+
+class TextError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 50
+
+ def __str__(self):
+ return "Text string must be supplied to the text() method"
+
+
+class CashDrawerError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 60
+
+ def __str__(self):
+ return "Valid pin must be set to send pulse"
+
+class NoStatusError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 70
+
+ def __str__(self):
+ return "Impossible to get status from the printer: " + str(self.msg)
+
+class TicketNotPrinted(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 80
+
+ def __str__(self):
+ return "A part of the ticket was not been printed: " + str(self.msg)
+
+class NoDeviceError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 90
+
+ def __str__(self):
+ return str(self.msg)
+
+class HandleDeviceError(Error):
+ def __init__(self, msg=""):
+ Error.__init__(self, msg)
+ self.msg = msg
+ self.resultcode = 100
+
+ def __str__(self):
+ return str(self.msg)