File Coverage

blib/lib/Lib/Pepper/Constants.pm
Criterion Covered Total %
statement 101 101 100.0
branch n/a
condition n/a
subroutine 34 34 100.0
pod n/a
total 135 135 100.0


line stmt bran cond sub pod time code
1             package Lib::Pepper::Constants;
2             #---AUTOPRAGMASTART---
3 6     6   1800 use v5.42;
  6         34  
4 6     6   39 use strict;
  6         13  
  6         172  
5 6     6   33 use diagnostics;
  6         13  
  6         106  
6 6     6   265 use mro 'c3';
  6         12  
  6         38  
7 6     6   295 use English;
  6         13  
  6         77  
8 6     6   2782 use Carp qw[carp croak confess cluck longmess shortmess];
  6         47  
  6         659  
9             our $VERSION = 0.5;
10 6     6   77 use autodie qw( close );
  6         14  
  6         43  
11 6     6   2164 use Array::Contains;
  6         13  
  6         415  
12 6     6   41 use utf8;
  6         12  
  6         65  
13 6     6   224 use Data::Dumper;
  6         16  
  6         335  
14 6     6   36 use Data::Printer;
  6         23  
  6         42  
15             #---AUTOPRAGMAEND---
16              
17              
18 6     6   570 use parent 'Exporter';
  6         12  
  6         46  
19              
20             ###############################################################################
21             # OPERATIONS
22             ###############################################################################
23              
24             use constant {
25 6         1583 PEP_OPERATION_OPEN => 1,
26             PEP_OPERATION_CLOSE => 2,
27             PEP_OPERATION_RECOVERY => 3,
28             PEP_OPERATION_TRANSACTION => 4,
29             PEP_OPERATION_SETTLEMENT => 5,
30             PEP_OPERATION_UTILITY => 6,
31             PEP_OPERATION_AUXILIARY => 7,
32             PEP_OPERATION_DOWNLOAD_LICENSE => 8,
33 6     6   719 };
  6         26  
34              
35             ###############################################################################
36             # STATES
37             ###############################################################################
38              
39             use constant {
40 6         2597 PEP_STATE_CREATED => 1,
41             PEP_STATE_CONFIGURING => 2,
42             PEP_STATE_IDLE => 3,
43             PEP_STATE_PREPARING_OPEN => 10,
44             PEP_STATE_STARTING_OPEN => 11,
45             PEP_STATE_EXECUTING_OPEN => 12,
46             PEP_STATE_FINALIZING_OPEN => 13,
47             PEP_STATE_OPEN => 14,
48             PEP_STATE_PREPARING_CLOSE => 20,
49             PEP_STATE_STARTING_CLOSE => 21,
50             PEP_STATE_EXECUTING_CLOSE => 22,
51             PEP_STATE_FINALIZING_CLOSE => 23,
52             PEP_STATE_CLOSED => 24,
53             PEP_STATE_PREPARING_RECOVERY => 30,
54             PEP_STATE_STARTING_RECOVERY => 31,
55             PEP_STATE_EXECUTING_RECOVERY => 32,
56             PEP_STATE_FINALIZING_RECOVERY => 33,
57             PEP_STATE_PREPARING_TRANSACTION => 40,
58             PEP_STATE_STARTING_TRANSACTION => 41,
59             PEP_STATE_EXECUTING_TRANSACTION => 42,
60             PEP_STATE_FINALIZING_TRANSACTION => 43,
61             PEP_STATE_PREPARING_SETTLEMENT => 50,
62             PEP_STATE_STARTING_SETTLEMENT => 51,
63             PEP_STATE_EXECUTING_SETTLEMENT => 52,
64             PEP_STATE_FINALIZING_SETTLEMENT => 53,
65             PEP_STATE_PREPARING_UTILITY => 60,
66             PEP_STATE_STARTING_UTILITY => 61,
67             PEP_STATE_EXECUTING_UTILITY => 62,
68             PEP_STATE_FINALIZING_UTILITY => 63,
69             PEP_STATE_PREPARING_AUXILIARY => 70,
70             PEP_STATE_STARTING_AUXILIARY => 71,
71             PEP_STATE_EXECUTING_AUXILIARY => 72,
72             PEP_STATE_FINALIZING_AUXILIARY => 73,
73             PEP_STATE_PREPARING_DOWNLOAD_LICENSE => 80,
74             PEP_STATE_STARTING_DOWNLOAD_LICENSE => 81,
75             PEP_STATE_EXECUTING_DOWNLOAD_LICENSE => 82,
76             PEP_STATE_FINALIZING_DOWNLOAD_LICENSE => 83,
77 6     6   47 };
  6         12  
78              
79             ###############################################################################
80             # TRANSACTION TYPES
81             ###############################################################################
82              
83             use constant {
84 6         1028 PEP_TRANSACTION_TYPE_GOODS_PAYMENT => 11,
85             PEP_TRANSACTION_TYPE_VOID_GOODS_PAYMENT => 12,
86             PEP_TRANSACTION_TYPE_GOODS_PAYMENT_WITH_TIP => 13,
87             PEP_TRANSACTION_TYPE_CREDIT => 41,
88             PEP_TRANSACTION_TYPE_RESERVATION => 51,
89             PEP_TRANSACTION_TYPE_BOOK_RESERVATION => 52,
90             PEP_TRANSACTION_TYPE_CANCEL_RESERVATION => 53,
91             PEP_TRANSACTION_TYPE_VOID_RESERVATION => 54,
92             PEP_TRANSACTION_TYPE_VOID_BOOK_RESERVATION => 55,
93             PEP_TRANSACTION_TYPE_TIP_ONLY_PAYMENT => 61,
94             PEP_TRANSACTION_TYPE_VOID_TIP_ONLY_PAYMENT => 62,
95 6     6   51 };
  6         14  
96              
97             ###############################################################################
98             # CALLBACK EVENTS AND OPTIONS
99             ###############################################################################
100              
101             use constant {
102 6         719 PEP_CALLBACK_EVENT_OUTPUT => 1,
103             PEP_CALLBACK_EVENT_INPUT => 2,
104 6     6   43 };
  6         11  
105              
106             use constant {
107 6         849 PEP_CALLBACK_OPTION_INTERMEDIATE_STATUS => 1,
108             PEP_CALLBACK_OPTION_OPERATION_FINISHED => 8,
109             PEP_CALLBACK_OPTION_INTERMEDIATE_TICKET => 16,
110             PEP_CALLBACK_OPTION_SELECTION_LIST => 65_536,
111             PEP_CALLBACK_OPTION_NUMERICAL_INPUT => 131_072,
112             PEP_CALLBACK_OPTION_ALPHANUMERICAL_INPUT => 262_144,
113             PEP_CALLBACK_OPTION_COMPLEX_INPUT => 524_288,
114 6     6   47 };
  6         13  
115              
116             ###############################################################################
117             # TICKET TYPES
118             ###############################################################################
119              
120             use constant {
121 6         671 PEP_TICKET_TYPE_CLIENT => 1,
122             PEP_TICKET_TYPE_MERCHANT => 2,
123             PEP_TICKET_TYPE_SETTLEMENT => 3,
124             PEP_TICKET_TYPE_CONFIGURATION => 4,
125             PEP_TICKET_TYPE_DIAGNOSIS => 5,
126             PEP_TICKET_TYPE_INITIALIZATION => 6,
127 6     6   74 };
  6         14  
128              
129             ###############################################################################
130             # UTILITY CODES
131             ###############################################################################
132              
133             use constant {
134 6         547 PEP_UTILITY_CODE_GET_STATE => 1,
135 6     6   78 };
  6         13  
136              
137             ###############################################################################
138             # AUXILIARY CODES
139             ###############################################################################
140              
141             use constant {
142 6         1196 PEP_AUXILIARY_CODE_PRINT_DATA => 1,
143             PEP_AUXILIARY_CODE_DIAGNOSIS => 2,
144             PEP_AUXILIARY_CODE_INITIALIZATION => 3,
145             PEP_AUXILIARY_CODE_STATUS_ENQUIRY => 4,
146             PEP_AUXILIARY_CODE_RESET_TERMINAL => 5,
147             PEP_AUXILIARY_CODE_DISPLAY_MENU => 6,
148             PEP_AUXILIARY_CODE_GET_CUSTOMER_DETAILS => 7,
149 6     6   39 };
  6         15  
150              
151             ###############################################################################
152             # CURRENCIES (ISO 4217)
153             ###############################################################################
154              
155             use constant {
156 6         2954 PEP_CURRENCY_EUR => 978, # Euro
157             PEP_CURRENCY_USD => 840, # US Dollar
158             PEP_CURRENCY_GBP => 826, # Pound Sterling
159             PEP_CURRENCY_CHF => 756, # Swiss Franc
160             PEP_CURRENCY_CHW => 948, # WIR Franc
161             PEP_CURRENCY_JPY => 392, # Yen
162             PEP_CURRENCY_CNY => 156, # Yuan Renminbi
163             PEP_CURRENCY_CAD => 124, # Canadian Dollar
164             PEP_CURRENCY_AUD => 36, # Australian Dollar
165             PEP_CURRENCY_NZD => 554, # New Zealand Dollar
166             PEP_CURRENCY_SEK => 752, # Swedish Krona
167             PEP_CURRENCY_NOK => 578, # Norwegian Krone
168             PEP_CURRENCY_DKK => 208, # Danish Krone
169             PEP_CURRENCY_PLN => 985, # Zloty
170             PEP_CURRENCY_CZK => 203, # Czech Koruna
171             PEP_CURRENCY_HUF => 348, # Forint
172             PEP_CURRENCY_RON => 946, # Romanian Leu
173             PEP_CURRENCY_BGN => 975, # Bulgarian Lev
174             PEP_CURRENCY_HRK => 191, # Croatian Kuna
175             PEP_CURRENCY_RUB => 643, # Russian Ruble
176             PEP_CURRENCY_TRY => 949, # Turkish Lira
177             PEP_CURRENCY_INR => 356, # Indian Rupee
178             PEP_CURRENCY_BRL => 986, # Brazilian Real
179             PEP_CURRENCY_ZAR => 710, # Rand
180             PEP_CURRENCY_MXN => 484, # Mexican Peso
181             PEP_CURRENCY_SGD => 702, # Singapore Dollar
182             PEP_CURRENCY_HKD => 344, # Hong Kong Dollar
183             PEP_CURRENCY_THB => 764, # Baht
184             PEP_CURRENCY_MYR => 458, # Malaysian Ringgit
185             PEP_CURRENCY_IDR => 360, # Rupiah
186             PEP_CURRENCY_PHP => 608, # Philippine Peso
187             PEP_CURRENCY_KRW => 410, # Won
188             PEP_CURRENCY_AED => 784, # UAE Dirham
189             PEP_CURRENCY_SAR => 682, # Saudi Riyal
190             PEP_CURRENCY_ILS => 376, # New Israeli Sheqel
191             PEP_CURRENCY_ARS => 32, # Argentine Peso
192             PEP_CURRENCY_CLP => 152, # Chilean Peso
193             PEP_CURRENCY_COP => 170, # Colombian Peso
194 6     6   45 };
  6         12  
195              
196             ###############################################################################
197             # COMMUNICATION PARAMETERS
198             ###############################################################################
199              
200             use constant {
201 6         603 PEP_BAUD_RATE_9600 => 9_600,
202             PEP_BAUD_RATE_19200 => 19_200,
203             PEP_BAUD_RATE_38400 => 38_400,
204             PEP_BAUD_RATE_57600 => 57_600,
205             PEP_BAUD_RATE_115200 => 115_200,
206 6     6   52 };
  6         15  
207              
208             use constant {
209 6         539 PEP_PARITY_NONE => 0,
210             PEP_PARITY_ODD => 1,
211             PEP_PARITY_EVEN => 2,
212 6     6   60 };
  6         14  
213              
214             use constant {
215 6         441 PEP_DATA_BITS_7 => 7,
216             PEP_DATA_BITS_8 => 8,
217 6     6   40 };
  6         13  
218              
219             use constant {
220 6         432 PEP_STOP_BITS_1 => 1,
221             PEP_STOP_BITS_2 => 2,
222 6     6   37 };
  6         10  
223              
224             ###############################################################################
225             # PAYMENT MODE
226             ###############################################################################
227              
228             use constant {
229 6         500 PEP_PAYMENT_MODE_UNDEFINED => 0,
230             PEP_PAYMENT_MODE_CARD_PRESENT => 1,
231             PEP_PAYMENT_MODE_CARD_NOT_PRESENT => 2,
232             PEP_PAYMENT_MODE_TIPPABLE => 3, # Enables tip/gratuity dialog on terminal
233 6     6   34 };
  6         13  
234              
235             ###############################################################################
236             # PROTOCOL VERSION
237             ###############################################################################
238              
239             use constant {
240 6         497 PEP_PROTOCOL_VERSION_UNDEFINED => 0,
241             PEP_PROTOCOL_VERSION_ZVT => 1,
242 6     6   35 };
  6         12  
243              
244             ###############################################################################
245             # TICKET PRINTING MODE
246             ###############################################################################
247              
248             use constant {
249 6         769 PEP_TICKET_PRINTING_MODE_POS => 0, # POS/cash register prints (disables terminal printer)
250             PEP_TICKET_PRINTING_MODE_EFT => 1, # Terminal prints
251             PEP_TICKET_PRINTING_MODE_CLIENT_ONLY_EFT => 2, # Client receipt on terminal only
252             PEP_TICKET_PRINTING_MODE_NONE => 3, # No printing at all
253             PEP_TICKET_PRINTING_MODE_ECR_AND_TERMINAL => 4, # Print on both terminal and POS
254 6     6   39 };
  6         10  
255              
256             ###############################################################################
257             # CONFIG BYTE VALUES
258             ###############################################################################
259              
260             use constant {
261 6         2422 PEP_CONFIG_BYTE_NORMAL => 0x00, # Normal operation
262             PEP_CONFIG_BYTE_DISABLE_PRINTER => 0x06, # Disable terminal printer (bit 1 + bit 2)
263 6     6   40 };
  6         15  
264              
265             ###############################################################################
266             # ERROR CODES (PEPFunctionResult)
267             ###############################################################################
268              
269             use constant {
270             # Success
271 6         4921 PEP_FUNCTION_RESULT_SUCCESS => 0,
272              
273             # Generic failures
274             PEP_FUNCTION_RESULT_FAILURE_GENERIC => -1,
275             PEP_FUNCTION_RESULT_FAILURE_GENERIC_INVALID_VALUE => -2,
276             PEP_FUNCTION_RESULT_FAILURE_GENERIC_INVALID_STATE => -3,
277             PEP_FUNCTION_RESULT_FAILURE_GENERIC_FUNCTIONALITY_NOT_LICENSED => -4,
278             PEP_FUNCTION_RESULT_FAILURE_GENERIC_OUT_OF_MEMORY => -5,
279              
280             # Library initialization errors (-100 to -106)
281             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_INITIALIZATION_GENERIC => -100,
282             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_ALREADY_INITIALIZED => -101,
283             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_LOADING_ERROR => -102,
284             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_NOT_INITIALIZED => -103,
285             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_VERSION_MISMATCH => -104,
286             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_DEPENDENCY_ERROR => -105,
287             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_STILL_IN_USE => -106,
288              
289             # Configuration errors (-200 to -204)
290             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_GENERIC => -200,
291             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_INVALID => -201,
292             PEP_FUNCTION_RESULT_FAILURE_MISSING_CONFIGURATION_FILE => -202,
293             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_FILE_INVALID => -203,
294             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_INCOMPLETE => -204,
295              
296             # Logging errors (-300 to -303)
297             PEP_FUNCTION_RESULT_FAILURE_LOGGING_GENERIC => -300,
298             PEP_FUNCTION_RESULT_FAILURE_LOGGING_INITIALIZATION => -301,
299             PEP_FUNCTION_RESULT_FAILURE_LOGGING_FILE_CREATION => -302,
300             PEP_FUNCTION_RESULT_FAILURE_LOGGING_FILE_WRITE => -303,
301              
302             # Persistence errors (-400 to -405)
303             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_GENERIC => -400,
304             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_DATABASE_ERROR => -401,
305             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_FILE_ERROR => -402,
306             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_DATA_CORRUPT => -403,
307             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_NO_DATA => -404,
308             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_INVALID_DATA => -405,
309              
310             # Core errors (-500 to -502)
311             PEP_FUNCTION_RESULT_FAILURE_CORE_GENERIC => -500,
312             PEP_FUNCTION_RESULT_FAILURE_CORE_INITIALIZATION => -501,
313             PEP_FUNCTION_RESULT_FAILURE_CORE_OPERATION => -502,
314              
315             # License errors (-700 to -708)
316             PEP_FUNCTION_RESULT_FAILURE_LICENSE_GENERIC => -700,
317             PEP_FUNCTION_RESULT_FAILURE_LICENSE_INVALID => -701,
318             PEP_FUNCTION_RESULT_FAILURE_LICENSE_EXPIRED => -702,
319             PEP_FUNCTION_RESULT_FAILURE_LICENSE_NOT_FOUND => -703,
320             PEP_FUNCTION_RESULT_FAILURE_LICENSE_DOWNLOAD_FAILED => -704,
321             PEP_FUNCTION_RESULT_FAILURE_LICENSE_VERIFICATION_FAILED => -705,
322             PEP_FUNCTION_RESULT_FAILURE_LICENSE_FEATURE_NOT_LICENSED => -706,
323             PEP_FUNCTION_RESULT_FAILURE_LICENSE_TERMINAL_NOT_LICENSED => -707,
324             PEP_FUNCTION_RESULT_FAILURE_LICENSE_LIMIT_EXCEEDED => -708,
325              
326             # Handle errors (-1000 to -1004)
327             PEP_FUNCTION_RESULT_FAILURE_HANDLE_INVALID => -1000,
328             PEP_FUNCTION_RESULT_FAILURE_HANDLE_NULL => -1001,
329             PEP_FUNCTION_RESULT_FAILURE_HANDLE_NOT_FOUND => -1002,
330             PEP_FUNCTION_RESULT_FAILURE_HANDLE_TYPE_MISMATCH => -1003,
331             PEP_FUNCTION_RESULT_FAILURE_HANDLE_CREATION_FAILED => -1004,
332              
333             # Option list errors (-1100 to -1106)
334             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_GENERIC => -1100,
335             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_ELEMENT_NOT_FOUND => -1101,
336             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_TYPE_MISMATCH => -1102,
337             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_INVALID_KEY => -1103,
338             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_EMPTY => -1104,
339             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_DUPLICATE_KEY => -1105,
340             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_OPERATION_FAILED => -1106,
341              
342             # Instance errors (-1200 to -1208)
343             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_GENERIC => -1200,
344             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CREATION_FAILED => -1201,
345             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_NOT_CONFIGURED => -1202,
346             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_INVALID_STATE => -1203,
347             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_OPERATION_PENDING => -1204,
348             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_NOT_OPEN => -1205,
349             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_ALREADY_OPEN => -1206,
350             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CONFIGURATION_ERROR => -1207,
351             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CALLBACK_ERROR => -1208,
352              
353             # State machine errors (-1300 to -1304)
354             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_GENERIC => -1300,
355             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_INVALID_TRANSITION => -1301,
356             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_OPERATION_NOT_ALLOWED => -1302,
357             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_TIMEOUT => -1303,
358             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_ABORTED => -1304,
359              
360             # Card type errors (-1400 to -1402)
361             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_GENERIC => -1400,
362             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_NOT_FOUND => -1401,
363             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_CONFIGURATION_ERROR => -1402,
364              
365             # Communication errors (-1500 to -1509)
366             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_GENERIC => -1500,
367             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_CONNECTION_FAILED => -1501,
368             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_DISCONNECTED => -1502,
369             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TIMEOUT => -1503,
370             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_SEND_ERROR => -1504,
371             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_RECEIVE_ERROR => -1505,
372             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_PROTOCOL_ERROR => -1506,
373             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_INVALID_RESPONSE => -1507,
374             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TERMINAL_BUSY => -1508,
375             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TERMINAL_ERROR => -1509,
376 6     6   48 };
  6         14  
377              
378             ###############################################################################
379             # TRANSACTION RESULTS
380             ###############################################################################
381              
382             use constant {
383 6         605 PEP_TRANSACTION_RESULT_AUTHORIZED => 0,
384             PEP_TRANSACTION_RESULT_NOT_AUTHORIZED => -1,
385             PEP_TRANSACTION_RESULT_UNCERTAIN => -2,
386 6     6   52 };
  6         14  
387              
388             ###############################################################################
389             # SPECIAL VALUES
390             ###############################################################################
391              
392             use constant {
393 6         482 PEP_INVALID_HANDLE => -1,
394             PEP_FALSE => 0,
395             PEP_TRUE => 1,
396 6     6   41 };
  6         13  
397              
398             ###############################################################################
399             # LANGUAGE CODES (for ZVT)
400             ###############################################################################
401              
402             use constant {
403 6         549 PEP_LANGUAGE_GERMAN => 25_701,
404             PEP_LANGUAGE_ENGLISH => 25_966,
405 6     6   41 };
  6         11  
406              
407             ###############################################################################
408             # TERMINAL TYPES
409             ###############################################################################
410              
411             use constant {
412 6         7463 PEP_TERMINAL_TYPE_GENERIC_ZVT => 118,
413             PEP_TERMINAL_TYPE_HOBEX_ZVT => 120,
414             PEP_TERMINAL_TYPE_GLOBALPAYMENTS_ZVT => 129,
415             PEP_TERMINAL_TYPE_MOCK => 999,
416 6     6   42 };
  6         12  
417              
418             ###############################################################################
419             # EXPORT TAGS
420             ###############################################################################
421              
422             our @EXPORT_OK = qw(
423             PEP_OPERATION_OPEN
424             PEP_OPERATION_CLOSE
425             PEP_OPERATION_RECOVERY
426             PEP_OPERATION_TRANSACTION
427             PEP_OPERATION_SETTLEMENT
428             PEP_OPERATION_UTILITY
429             PEP_OPERATION_AUXILIARY
430             PEP_OPERATION_DOWNLOAD_LICENSE
431              
432             PEP_STATE_CREATED
433             PEP_STATE_CONFIGURING
434             PEP_STATE_IDLE
435             PEP_STATE_PREPARING_OPEN
436             PEP_STATE_STARTING_OPEN
437             PEP_STATE_EXECUTING_OPEN
438             PEP_STATE_FINALIZING_OPEN
439             PEP_STATE_OPEN
440             PEP_STATE_PREPARING_CLOSE
441             PEP_STATE_STARTING_CLOSE
442             PEP_STATE_EXECUTING_CLOSE
443             PEP_STATE_FINALIZING_CLOSE
444             PEP_STATE_CLOSED
445             PEP_STATE_PREPARING_RECOVERY
446             PEP_STATE_STARTING_RECOVERY
447             PEP_STATE_EXECUTING_RECOVERY
448             PEP_STATE_FINALIZING_RECOVERY
449             PEP_STATE_PREPARING_TRANSACTION
450             PEP_STATE_STARTING_TRANSACTION
451             PEP_STATE_EXECUTING_TRANSACTION
452             PEP_STATE_FINALIZING_TRANSACTION
453             PEP_STATE_PREPARING_SETTLEMENT
454             PEP_STATE_STARTING_SETTLEMENT
455             PEP_STATE_EXECUTING_SETTLEMENT
456             PEP_STATE_FINALIZING_SETTLEMENT
457             PEP_STATE_PREPARING_UTILITY
458             PEP_STATE_STARTING_UTILITY
459             PEP_STATE_EXECUTING_UTILITY
460             PEP_STATE_FINALIZING_UTILITY
461             PEP_STATE_PREPARING_AUXILIARY
462             PEP_STATE_STARTING_AUXILIARY
463             PEP_STATE_EXECUTING_AUXILIARY
464             PEP_STATE_FINALIZING_AUXILIARY
465             PEP_STATE_PREPARING_DOWNLOAD_LICENSE
466             PEP_STATE_STARTING_DOWNLOAD_LICENSE
467             PEP_STATE_EXECUTING_DOWNLOAD_LICENSE
468             PEP_STATE_FINALIZING_DOWNLOAD_LICENSE
469              
470             PEP_TRANSACTION_TYPE_GOODS_PAYMENT
471             PEP_TRANSACTION_TYPE_VOID_GOODS_PAYMENT
472             PEP_TRANSACTION_TYPE_GOODS_PAYMENT_WITH_TIP
473             PEP_TRANSACTION_TYPE_CREDIT
474             PEP_TRANSACTION_TYPE_RESERVATION
475             PEP_TRANSACTION_TYPE_BOOK_RESERVATION
476             PEP_TRANSACTION_TYPE_CANCEL_RESERVATION
477             PEP_TRANSACTION_TYPE_VOID_RESERVATION
478             PEP_TRANSACTION_TYPE_VOID_BOOK_RESERVATION
479             PEP_TRANSACTION_TYPE_TIP_ONLY_PAYMENT
480             PEP_TRANSACTION_TYPE_VOID_TIP_ONLY_PAYMENT
481              
482             PEP_CALLBACK_EVENT_OUTPUT
483             PEP_CALLBACK_EVENT_INPUT
484             PEP_CALLBACK_OPTION_INTERMEDIATE_STATUS
485             PEP_CALLBACK_OPTION_OPERATION_FINISHED
486             PEP_CALLBACK_OPTION_INTERMEDIATE_TICKET
487             PEP_CALLBACK_OPTION_SELECTION_LIST
488             PEP_CALLBACK_OPTION_NUMERICAL_INPUT
489             PEP_CALLBACK_OPTION_ALPHANUMERICAL_INPUT
490             PEP_CALLBACK_OPTION_COMPLEX_INPUT
491              
492             PEP_TICKET_TYPE_CLIENT
493             PEP_TICKET_TYPE_MERCHANT
494             PEP_TICKET_TYPE_SETTLEMENT
495             PEP_TICKET_TYPE_CONFIGURATION
496             PEP_TICKET_TYPE_DIAGNOSIS
497             PEP_TICKET_TYPE_INITIALIZATION
498              
499             PEP_UTILITY_CODE_GET_STATE
500              
501             PEP_AUXILIARY_CODE_PRINT_DATA
502             PEP_AUXILIARY_CODE_DIAGNOSIS
503             PEP_AUXILIARY_CODE_INITIALIZATION
504             PEP_AUXILIARY_CODE_STATUS_ENQUIRY
505             PEP_AUXILIARY_CODE_RESET_TERMINAL
506             PEP_AUXILIARY_CODE_DISPLAY_MENU
507             PEP_AUXILIARY_CODE_GET_CUSTOMER_DETAILS
508              
509             PEP_CURRENCY_EUR
510             PEP_CURRENCY_USD
511             PEP_CURRENCY_GBP
512             PEP_CURRENCY_CHF
513             PEP_CURRENCY_CHW
514             PEP_CURRENCY_JPY
515             PEP_CURRENCY_CNY
516             PEP_CURRENCY_CAD
517             PEP_CURRENCY_AUD
518             PEP_CURRENCY_NZD
519             PEP_CURRENCY_SEK
520             PEP_CURRENCY_NOK
521             PEP_CURRENCY_DKK
522             PEP_CURRENCY_PLN
523             PEP_CURRENCY_CZK
524             PEP_CURRENCY_HUF
525             PEP_CURRENCY_RON
526             PEP_CURRENCY_BGN
527             PEP_CURRENCY_HRK
528             PEP_CURRENCY_RUB
529             PEP_CURRENCY_TRY
530             PEP_CURRENCY_INR
531             PEP_CURRENCY_BRL
532             PEP_CURRENCY_ZAR
533             PEP_CURRENCY_MXN
534             PEP_CURRENCY_SGD
535             PEP_CURRENCY_HKD
536             PEP_CURRENCY_THB
537             PEP_CURRENCY_MYR
538             PEP_CURRENCY_IDR
539             PEP_CURRENCY_PHP
540             PEP_CURRENCY_KRW
541             PEP_CURRENCY_AED
542             PEP_CURRENCY_SAR
543             PEP_CURRENCY_ILS
544             PEP_CURRENCY_ARS
545             PEP_CURRENCY_CLP
546             PEP_CURRENCY_COP
547              
548             PEP_BAUD_RATE_9600
549             PEP_BAUD_RATE_19200
550             PEP_BAUD_RATE_38400
551             PEP_BAUD_RATE_57600
552             PEP_BAUD_RATE_115200
553              
554             PEP_PARITY_NONE
555             PEP_PARITY_ODD
556             PEP_PARITY_EVEN
557              
558             PEP_DATA_BITS_7
559             PEP_DATA_BITS_8
560              
561             PEP_STOP_BITS_1
562             PEP_STOP_BITS_2
563              
564             PEP_PAYMENT_MODE_UNDEFINED
565             PEP_PAYMENT_MODE_CARD_PRESENT
566             PEP_PAYMENT_MODE_CARD_NOT_PRESENT
567             PEP_PAYMENT_MODE_TIPPABLE
568              
569             PEP_PROTOCOL_VERSION_UNDEFINED
570             PEP_PROTOCOL_VERSION_ZVT
571              
572             PEP_TICKET_PRINTING_MODE_POS
573             PEP_TICKET_PRINTING_MODE_EFT
574             PEP_TICKET_PRINTING_MODE_CLIENT_ONLY_EFT
575             PEP_TICKET_PRINTING_MODE_NONE
576             PEP_TICKET_PRINTING_MODE_ECR_AND_TERMINAL
577              
578             PEP_CONFIG_BYTE_NORMAL
579             PEP_CONFIG_BYTE_DISABLE_PRINTER
580              
581             PEP_FUNCTION_RESULT_SUCCESS
582             PEP_FUNCTION_RESULT_FAILURE_GENERIC
583             PEP_FUNCTION_RESULT_FAILURE_GENERIC_INVALID_VALUE
584             PEP_FUNCTION_RESULT_FAILURE_GENERIC_INVALID_STATE
585             PEP_FUNCTION_RESULT_FAILURE_GENERIC_FUNCTIONALITY_NOT_LICENSED
586             PEP_FUNCTION_RESULT_FAILURE_GENERIC_OUT_OF_MEMORY
587             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_INITIALIZATION_GENERIC
588             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_ALREADY_INITIALIZED
589             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_LOADING_ERROR
590             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_NOT_INITIALIZED
591             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_VERSION_MISMATCH
592             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_DEPENDENCY_ERROR
593             PEP_FUNCTION_RESULT_FAILURE_LIBRARY_STILL_IN_USE
594             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_GENERIC
595             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_INVALID
596             PEP_FUNCTION_RESULT_FAILURE_MISSING_CONFIGURATION_FILE
597             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_FILE_INVALID
598             PEP_FUNCTION_RESULT_FAILURE_CONFIGURATION_INCOMPLETE
599             PEP_FUNCTION_RESULT_FAILURE_LOGGING_GENERIC
600             PEP_FUNCTION_RESULT_FAILURE_LOGGING_INITIALIZATION
601             PEP_FUNCTION_RESULT_FAILURE_LOGGING_FILE_CREATION
602             PEP_FUNCTION_RESULT_FAILURE_LOGGING_FILE_WRITE
603             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_GENERIC
604             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_DATABASE_ERROR
605             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_FILE_ERROR
606             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_DATA_CORRUPT
607             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_NO_DATA
608             PEP_FUNCTION_RESULT_FAILURE_PERSISTENCE_INVALID_DATA
609             PEP_FUNCTION_RESULT_FAILURE_CORE_GENERIC
610             PEP_FUNCTION_RESULT_FAILURE_CORE_INITIALIZATION
611             PEP_FUNCTION_RESULT_FAILURE_CORE_OPERATION
612             PEP_FUNCTION_RESULT_FAILURE_LICENSE_GENERIC
613             PEP_FUNCTION_RESULT_FAILURE_LICENSE_INVALID
614             PEP_FUNCTION_RESULT_FAILURE_LICENSE_EXPIRED
615             PEP_FUNCTION_RESULT_FAILURE_LICENSE_NOT_FOUND
616             PEP_FUNCTION_RESULT_FAILURE_LICENSE_DOWNLOAD_FAILED
617             PEP_FUNCTION_RESULT_FAILURE_LICENSE_VERIFICATION_FAILED
618             PEP_FUNCTION_RESULT_FAILURE_LICENSE_FEATURE_NOT_LICENSED
619             PEP_FUNCTION_RESULT_FAILURE_LICENSE_TERMINAL_NOT_LICENSED
620             PEP_FUNCTION_RESULT_FAILURE_LICENSE_LIMIT_EXCEEDED
621             PEP_FUNCTION_RESULT_FAILURE_HANDLE_INVALID
622             PEP_FUNCTION_RESULT_FAILURE_HANDLE_NULL
623             PEP_FUNCTION_RESULT_FAILURE_HANDLE_NOT_FOUND
624             PEP_FUNCTION_RESULT_FAILURE_HANDLE_TYPE_MISMATCH
625             PEP_FUNCTION_RESULT_FAILURE_HANDLE_CREATION_FAILED
626             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_GENERIC
627             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_ELEMENT_NOT_FOUND
628             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_TYPE_MISMATCH
629             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_INVALID_KEY
630             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_EMPTY
631             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_DUPLICATE_KEY
632             PEP_FUNCTION_RESULT_FAILURE_OPTION_LIST_OPERATION_FAILED
633             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_GENERIC
634             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CREATION_FAILED
635             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_NOT_CONFIGURED
636             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_INVALID_STATE
637             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_OPERATION_PENDING
638             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_NOT_OPEN
639             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_ALREADY_OPEN
640             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CONFIGURATION_ERROR
641             PEP_FUNCTION_RESULT_FAILURE_INSTANCE_CALLBACK_ERROR
642             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_GENERIC
643             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_INVALID_TRANSITION
644             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_OPERATION_NOT_ALLOWED
645             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_TIMEOUT
646             PEP_FUNCTION_RESULT_FAILURE_STATE_MACHINE_ABORTED
647             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_GENERIC
648             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_NOT_FOUND
649             PEP_FUNCTION_RESULT_FAILURE_CARD_TYPE_CONFIGURATION_ERROR
650             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_GENERIC
651             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_CONNECTION_FAILED
652             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_DISCONNECTED
653             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TIMEOUT
654             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_SEND_ERROR
655             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_RECEIVE_ERROR
656             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_PROTOCOL_ERROR
657             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_INVALID_RESPONSE
658             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TERMINAL_BUSY
659             PEP_FUNCTION_RESULT_FAILURE_COMMUNICATION_TERMINAL_ERROR
660              
661             PEP_TRANSACTION_RESULT_AUTHORIZED
662             PEP_TRANSACTION_RESULT_NOT_AUTHORIZED
663             PEP_TRANSACTION_RESULT_UNCERTAIN
664              
665             PEP_INVALID_HANDLE
666             PEP_FALSE
667             PEP_TRUE
668              
669             PEP_LANGUAGE_GERMAN
670             PEP_LANGUAGE_ENGLISH
671              
672             PEP_TERMINAL_TYPE_GENERIC_ZVT
673             PEP_TERMINAL_TYPE_HOBEX_ZVT
674             PEP_TERMINAL_TYPE_GLOBALPAYMENTS_ZVT
675             PEP_TERMINAL_TYPE_MOCK
676             );
677              
678             our %EXPORT_TAGS = (
679             all => \@EXPORT_OK,
680             operations => [grep { /^PEP_OPERATION_/ } @EXPORT_OK],
681             states => [grep { /^PEP_STATE_/ } @EXPORT_OK],
682             transactions => [grep { /^PEP_TRANSACTION_/ } @EXPORT_OK],
683             callbacks => [grep { /^PEP_CALLBACK_/ } @EXPORT_OK],
684             tickets => [grep { /^PEP_TICKET_/ } @EXPORT_OK],
685             utilities => [grep { /^PEP_UTILITY_|^PEP_TICKET_PRINTING_MODE_|^PEP_CONFIG_BYTE_/ } @EXPORT_OK],
686             auxiliary => [grep { /^PEP_AUXILIARY_/ } @EXPORT_OK],
687             currencies => [grep { /^PEP_CURRENCY_/ } @EXPORT_OK],
688             communication => [grep { /^PEP_(BAUD_RATE|PARITY|DATA_BITS|STOP_BITS)_/ } @EXPORT_OK],
689             payment => [grep { /^PEP_PAYMENT_MODE_/ } @EXPORT_OK],
690             protocol => [grep { /^PEP_PROTOCOL_VERSION_/ } @EXPORT_OK],
691             errors => [grep { /^PEP_FUNCTION_RESULT_/ } @EXPORT_OK],
692             results => [grep { /^PEP_TRANSACTION_RESULT_/ } @EXPORT_OK],
693             special => [qw(PEP_INVALID_HANDLE PEP_FALSE PEP_TRUE)],
694             language => [grep { /^PEP_LANGUAGE_/ } @EXPORT_OK],
695             terminals => [grep { /^PEP_TERMINAL_TYPE_/ } @EXPORT_OK],
696             );
697              
698             1;
699              
700             __END__