bug 4802 add missing order search help file
[koha.git] / C4 / SIP / Sip / Constants.pm
blobee58b44c476005d8e01788a009bab7e7e2db02a2
2 # Sip::Constants.pm
4 # Various protocol constant values for 3M's Standard Interchange
5 # Protocol for communication between a library's Automated
6 # Checkout System (ACS) and stand-alone Self-Check (SC) units
8 package Sip::Constants;
10 use strict;
11 use warnings;
12 use Exporter;
14 our (@ISA, @EXPORT_OK, %EXPORT_TAGS);
16 BEGIN {
17 @ISA = qw(Exporter);
18 %EXPORT_TAGS = (
20 SC_msgs => [qw(
21 PATRON_STATUS_REQ
22 CHECKOUT CHECKIN
23 SC_STATUS REQUEST_ACS_RESEND
24 LOGIN PATRON_INFO END_PATRON_SESSION
25 FEE_PAID ITEM_INFORMATION ITEM_STATUS_UPDATE
26 HOLD RENEW RENEW_ALL
27 PATRON_ENABLE
28 BLOCK_PATRON
29 )],
31 ACS_msgs => [qw(
32 PATRON_STATUS_RESP
33 CHECKOUT_RESP CHECKIN_RESP
34 ACS_STATUS REQUEST_SC_RESEND
35 LOGIN_RESP PATRON_INFO_RESP END_SESSION_RESP
36 FEE_PAID_RESP ITEM_INFO_RESP ITEM_STATUS_UPDATE_RESP
37 HOLD_RESP RENEW_RESP RENEW_ALL_RESP
38 PATRON_ENABLE_RESP
39 )],
41 SC_status => [qw(SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN)],
42 formats => [qw(SIP_DATETIME)],
43 constant_msgs => [qw(REQUEST_ACS_RESEND_CKSUM REQUEST_SC_RESEND_CKSUM)],
45 field_ids => [qw(
46 FID_PATRON_ID FID_ITEM_ID
47 FID_TERMINAL_PWD FID_PATRON_PWD
48 FID_PERSONAL_NAME FID_DUE_DATE
49 FID_SCREEN_MSG FID_PRINT_LINE
50 FID_TITLE_ID FID_BLOCKED_CARD_MSG
51 FID_TERMINAL_LOCN FID_INST_ID
52 FID_CURRENT_LOCN FID_LIBRARY_NAME
53 FID_PERM_LOCN
54 FID_HOLD_ITEMS FID_HOLD_ITEMS_LMT
55 FID_OVERDUE_ITEMS FID_OVERDUE_ITEMS_LMT
56 FID_CHARGED_ITEMS FID_CHARGED_ITEMS_LMT
57 FID_FINE_ITEMS FID_SEQNO
58 FID_CKSUM FID_HOME_ADDR
59 FID_EMAIL FID_HOME_PHONE
60 FID_OWNER FID_CURRENCY
61 FID_CANCEL
62 FID_TRANSACTION_ID FID_VALID_PATRON
63 FID_RENEWED_ITEMS
64 FID_UNRENEWED_ITEMS
65 FID_FEE_ACK
66 FID_START_ITEM FID_END_ITEM FID_QUEUE_POS
67 FID_PICKUP_LOCN FID_FEE_TYPE
68 FID_RECALL_ITEMS
69 FID_FEE_AMT FID_FEE_LMT
70 FID_EXPIRATION
71 FID_SUPPORTED_MSGS
72 FID_HOLD_TYPE
73 FID_UNAVAILABLE_HOLD_ITEMS
74 FID_HOLD_QUEUE_LEN
75 FID_FEE_ID FID_ITEM_PROPS
76 FID_RECALL_DATE FID_SECURITY_INHIBIT
77 FID_MEDIA_TYPE FID_SORT_BIN
78 FID_HOLD_PICKUP_DATE
79 FID_LOGIN_UID FID_LOGIN_PWD
80 FID_LOCATION_CODE
81 FID_VALID_PATRON_PWD
82 FID_PATRON_BIRTHDATE
83 FID_PATRON_CLASS
84 FID_INET_PROFILE
86 FID_COLLECTION_CODE
87 FID_CALL_NUMBER
88 FID_DESTINATION_LOCATION
89 FID_ALERT_TYPE
90 FID_HOLD_PATRON_ID
91 FID_HOLD_PATRON_NAME
92 )],
95 # Add the contents of the other ":class" tags to make an ":all" class (deleting duplicates)
96 # This is the textbook example from http://perldoc.perl.org/Exporter.html
97 my %seen;
98 push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS;
99 Exporter::export_ok_tags('all'); # now add :all to @EXPORT_OK
103 # Declare message types
106 # Messages from SC to ACS
107 use constant {
108 PATRON_STATUS_REQ => '23',
109 CHECKOUT => '11',
110 CHECKIN => '09',
111 BLOCK_PATRON => '01',
112 SC_STATUS => '99',
113 REQUEST_ACS_RESEND => '97',
114 LOGIN => '93',
115 PATRON_INFO => '63',
116 END_PATRON_SESSION => '35',
117 FEE_PAID => '37',
118 ITEM_INFORMATION => '17',
119 ITEM_STATUS_UPDATE => '19',
120 PATRON_ENABLE => '25',
121 HOLD => '15',
122 RENEW => '29',
123 RENEW_ALL => '65',
126 # Message responses from ACS to SC
127 use constant {
128 PATRON_STATUS_RESP => '24',
129 CHECKOUT_RESP => '12',
130 CHECKIN_RESP => '10',
131 ACS_STATUS => '98',
132 REQUEST_SC_RESEND => '96',
133 LOGIN_RESP => '94',
134 PATRON_INFO_RESP => '64',
135 END_SESSION_RESP => '36',
136 FEE_PAID_RESP => '38',
137 ITEM_INFO_RESP => '18',
138 ITEM_STATUS_UPDATE_RESP => '20',
139 PATRON_ENABLE_RESP => '26',
140 HOLD_RESP => '16',
141 RENEW_RESP => '30',
142 RENEW_ALL_RESP => '66',
146 # Some messages are short and invariant, so they're constant's too
148 use constant {
149 REQUEST_ACS_RESEND_CKSUM => '97AZFEF5',
150 REQUEST_SC_RESEND_CKSUM => '96AZFEF6',
154 # Field Identifiers
156 use constant {
157 FID_PATRON_ID => 'AA',
158 FID_ITEM_ID => 'AB',
159 FID_TERMINAL_PWD => 'AC',
160 FID_PATRON_PWD => 'AD',
161 FID_PERSONAL_NAME => 'AE',
162 FID_SCREEN_MSG => 'AF',
163 FID_PRINT_LINE => 'AG',
164 FID_DUE_DATE => 'AH',
165 # UNUSED AI
166 FID_TITLE_ID => 'AJ',
167 # UNUSED AK
168 FID_BLOCKED_CARD_MSG => 'AL',
169 FID_LIBRARY_NAME => 'AM',
170 FID_TERMINAL_LOCN => 'AN',
171 FID_INST_ID => 'AO',
172 FID_CURRENT_LOCN => 'AP',
173 FID_PERM_LOCN => 'AQ',
174 # UNUSED AR
175 FID_HOLD_ITEMS => 'AS', # SIP 2.0
176 FID_OVERDUE_ITEMS => 'AT', # SIP 2.0
177 FID_CHARGED_ITEMS => 'AU', # SIP 2.0
178 FID_FINE_ITEMS => 'AV', # SIP 2.0
179 # UNUSED AW
180 # UNUSED AX
181 FID_SEQNO => 'AY',
182 FID_CKSUM => 'AZ',
184 # SIP 2.0 Fields
185 # UNUSED BA
186 # UNUSED BB
187 # UNUSED BC
188 FID_HOME_ADDR => 'BD',
189 FID_EMAIL => 'BE',
190 FID_HOME_PHONE => 'BF',
191 FID_OWNER => 'BG',
192 FID_CURRENCY => 'BH',
193 FID_CANCEL => 'BI',
194 # UNUSED BJ
195 FID_TRANSACTION_ID => 'BK',
196 FID_VALID_PATRON => 'BL',
197 FID_RENEWED_ITEMS => 'BM',
198 FID_UNRENEWED_ITEMS => 'BN',
199 FID_FEE_ACK => 'BO',
200 FID_START_ITEM => 'BP',
201 FID_END_ITEM => 'BQ',
202 FID_QUEUE_POS => 'BR',
203 FID_PICKUP_LOCN => 'BS',
204 FID_FEE_TYPE => 'BT',
205 FID_RECALL_ITEMS => 'BU',
206 FID_FEE_AMT => 'BV',
207 FID_EXPIRATION => 'BW',
208 FID_SUPPORTED_MSGS => 'BX',
209 FID_HOLD_TYPE => 'BY',
210 FID_HOLD_ITEMS_LMT => 'BZ',
211 FID_OVERDUE_ITEMS_LMT => 'CA',
212 FID_CHARGED_ITEMS_LMT => 'CB',
213 FID_FEE_LMT => 'CC',
214 FID_UNAVAILABLE_HOLD_ITEMS => 'CD',
215 # UNUSED CE
216 FID_HOLD_QUEUE_LEN => 'CF',
217 FID_FEE_ID => 'CG',
218 FID_ITEM_PROPS => 'CH',
219 FID_SECURITY_INHIBIT => 'CI',
220 FID_RECALL_DATE => 'CJ',
221 FID_MEDIA_TYPE => 'CK',
222 FID_SORT_BIN => 'CL',
223 FID_HOLD_PICKUP_DATE => 'CM',
224 FID_LOGIN_UID => 'CN',
225 FID_LOGIN_PWD => 'CO',
226 FID_LOCATION_CODE => 'CP',
227 FID_VALID_PATRON_PWD => 'CQ',
229 # SIP Extensions used by Envisionware Terminals
230 FID_PATRON_BIRTHDATE => 'PB',
231 FID_PATRON_CLASS => 'PC',
233 # SIP Extension for reporting patron internet privileges... application unknown
234 FID_INET_PROFILE => 'PI',
236 # SIP Extensions by 3M spec: Document Revision 1.20, 02/14/2005
237 FID_COLLECTION_CODE => 'CR',
238 FID_CALL_NUMBER => 'CS',
239 FID_DESTINATION_LOCATION => 'CT',
240 FID_ALERT_TYPE => 'CV',
241 FID_HOLD_PATRON_ID => 'CY',
242 FID_HOLD_PATRON_NAME => 'DA',
246 # SC Status Codes
248 use constant {
249 SC_STATUS_OK => '0',
250 SC_STATUS_PAPER => '1',
251 SC_STATUS_SHUTDOWN => '2',
255 # Various format strings
257 use constant {
258 SIP_DATETIME => "%Y%m%d %H%M%S",