-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFiscalCommand.inc
More file actions
231 lines (204 loc) · 12.4 KB
/
FiscalCommand.inc
File metadata and controls
231 lines (204 loc) · 12.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
! --------------------------------------------------------------------------------------------------
! CLASS : FiscalCommand
!
! 2025 - Gustavo Saracca ©
!
! --------------------------------------------------------------------------------------------------
OMIT('_EndOfInclude_', _FiscalCommand_ )
_FiscalCommand_ EQUATE(1)
include( 'FiscalHTTP.inc' ),once
! --------------------------------------------------------------------------------------------------
! Estado de la ejecución del último comando (RUN) - Flags
! --------------------------------------------------------------------------------------------------
FISCAL_OK EQUATE(000H) ! OK - Sin errores
FISCAL_ERROR EQUATE(001H) ! ERROR - Hubo algún error (bandera general)
FISCAL_PRINTER_ERROR EQUATE(002H) ! PRINTER ERROR - Error de impresora
FISCAL_SYNTAX_ERROR EQUATE(004H) ! ERROR - Error de sintaxis (ABORT)
FISCAL_NET_ERROR EQUATE(008H) ! NETWORK ERROR (ABORT)
FISCAL_BUSY EQUATE(010H) ! FISCAL RESPONSE "BUSY"
FISCAL_RESPONSE_ERROR EQUATE(020H) ! FISCAL RESPONSE "ERROR"
FISCAL_UNKNOWN EQUATE(040H) ! ERROR - DESCONOCIDO.
FISCAL_UNKNOWN_COMMAND EQUATE(080H) ! COMANDO NO RECONOCIDO.
FISCAL_AUX EQUATE(100H) ! FISCAL STATUS AUXILIAR
FISCAL_INTERNAL EQUATE(200H) ! FISCAL STATUS INTERNAL
! --------------------------------------------------------------------------------------------------
! Message Definitions
! --------------------------------------------------------------------------------------------------
TQMessageDefinition queue,type
id long
id_str cstring(64)
id_desc cstring(256)
error_id long
end !* queue *
! --------------------------------------------------------------------------------------------------
! FiscalMessagesClass()
!
! Mensajes de los Comandos de la Impresora.
! --------------------------------------------------------------------------------------------------
FiscalMessagesClass class,type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
QMessageDefinition &TQMessageDefinition,private
AddMessage procedure( long _id, string _ids, string _desc, long _error_id ),private
GetErrorType procedure( string _ids ),long
GetDesc procedure( string _ids ),string
clean procedure()
construct procedure() ! Construct
destruct procedure() ! Destruct
end !* class *
TQmessages queue,type
message_id cstring(64)
end !* queue *
! --------------------------------------------------------------------------------------------------
! CONST
! --------------------------------------------------------------------------------------------------
MAX_PRINTER_STATE equate(12)
MAX_FISCAL_STATE equate(08)
! --------------------------------------------------------------------------------------------------
! TYPES
! --------------------------------------------------------------------------------------------------
EstadoType group,type,name('Estado')
Impresora cstring(64),DIM(MAX_PRINTER_STATE),name('Impresora') ! max string(17)
Fiscal cstring(64),DIM(MAX_FISCAL_STATE),name('Fiscal') ! max string(25),max array[1]
end !* group *
ErrorType group,type,name('Error')
Identificador cstring(64),name('Identificador')
Descripcion cstring(256),name('Descripcion')
Contexto cstring(1000),name('Contexto')
end !* group *
! --------------------------------------------------------------------------------------------------
! FiscalCommandClass : class()
!
! Solo realiza la llamada, sin ejecutar reintentos
! --------------------------------------------------------------------------------------------------
FiscalCommandClass class(FiscalHTTP),type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
secuencia long,private
command cstring(256),private
current_command cstring(256),private
error like(ErrorType),private
QAllMessages &TQmessages
QErrorMessages &TQmessages
FiscalMessages &FiscalMessagesClass
! -------------------------------------------------------------------------------------------------
SetSecuencia procedure( long _secuencia )
GetSecuencia procedure(),long
AddAllMessage procedure( string _id ),private
AddErrMessage procedure( string _id ),private
AddMessage procedure( string _id ),private
HasMessage procedure( string _message ),long,private
CountErrors procedure(),long
FiscalToDate procedure( *cstring _date ),long
FiscalToTime procedure( *cstring _time ),long
DateToFiscal procedure( long _date ),string
! -------------------------------------------------------------------------------------------------
SetCommand procedure( string _command )
GetCommand procedure(),string
SetCurrentCommand procedure( string _command ),private
GetCurrentCommand procedure(),string,protected
! -------------------------------------------------------------------------------------------------
! -------------------------------------------------------------------------------------------------
Encode procedure(),protected,virtual
Decode procedure(),long,protected,virtual
CountErrors procedure( long _filter ),long,private
DecodeSecuencia procedure( *cJSON jChild ),long,private
DecodeEstadoGroup procedure( *cJson jChild ),long,private
DecodeEstados procedure( *EstadoType Estado ),private
DecodeOcupado procedure(),long,private
DecodeError procedure(),long,private
DecodeResponse procedure(),long,private
AddEstado procedure( string _estado )
GetEstadoErrors procedure(),string,protected
! -------------------------------------------------------------------------------------------------
SetErrorId procedure( string _id ),private
SetErrorDesc procedure( string _desc ),private
SetErrorContexto procedure( string _context ),private
GetErrorId procedure(),string
GetErrorDesc procedure(),string
GetErrorContexto procedure(),string
! -------------------------------------------------------------------------------------------------
IsDocumentoAbierto procedure(),long
ShowMessage procedure( string _title )
! -------------------------------------------------------------------------------------------------
Run procedure(),long
! -------------------------------------------------------------------------------------------------
CleanError procedure(),private
CleanMessages procedure(),private
clean procedure(),private
! -------------------------------------------------------------------------------------------------
Construct procedure()
Destruct procedure()
end !* class *
! --------------------------------------------------------------------------------------------------
! FiscalUltimoError : class()
! --------------------------------------------------------------------------------------------------
FiscalUltimoError class(FiscalCommandClass),type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
UltimoError cstring(256),private
Descripcion cstring(256),private
Contexto cstring(256),private
NumeroParametro long,private
NombreParametro cstring(256),private
! ----------------------------------------------------------------------------------
SetUltimoError procedure( string _param )
SetDescripcion procedure( string _param )
SetContexto procedure( string _param )
SetNumeroParametro procedure( long _param )
SetNombreParametro procedure( string _param )
! ----------------------------------------------------------------------------------
GetUltimoError procedure(),string
GetDescripcion procedure(),string
GetContexto procedure(),string
GetNumeroParametro procedure(),long
GetNombreParametro procedure(),string
! ----------------------------------------------------------------------------------
Encode procedure(),virtual
Decode procedure(),long,virtual
! ----------------------------------------------------------------------------------
clean procedure(),private
! ----------------------------------------------------------------------------------
Construct procedure()
Destruct procedure()
! ----------------------------------------------------------------------------------
Run procedure(),long
end !* class *
! --------------------------------------------------------------------------------------------------
! FiscalOcupadoClass : class()
! --------------------------------------------------------------------------------------------------
FiscalOcupadoClass class(FiscalCommandClass),type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
Encode procedure(),virtual
Decode procedure(),long,virtual
! ----------------------------------------------------------------------------------
Clean procedure()
! ----------------------------------------------------------------------------------
Construct procedure()
Destruct procedure()
! ----------------------------------------------------------------------------------
end !* class *
! --------------------------------------------------------------------------------------------------
! FiscalCommand : class()
!
! Ejecución de Comandos con reintentos.
! --------------------------------------------------------------------------------------------------
NotifyClass class(),type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
Notify procedure( long _intento, long _max_retry ),virtual
end !* class *
FiscalCommand class(FiscalCommandClass),type,module( 'FiscalCommand.clw' ),link( 'FiscalCommand.clw' )
intentos long,private
WaitDelay long,private
WaitRetry long,private
Notify &NotifyClass,private
SetIntentos procedure( long _intentos ),private
StartIntentos procedure(),private
NextIntentos procedure(),private
GetIntentos procedure(),long,private
SetOnRetryNotify procedure( *NotifyClass _OnRetry )
CallOnRetryNotify procedure()
SetDelayBetweenWaitLines procedure( long _delay )
SetSilentRetry procedure( long _retries )
WaitLine procedure(),private
WaitControler procedure(),long
! ----------------------------------------------------------------------------------
Construct procedure()
Destruct procedure()
! ----------------------------------------------------------------------------------
Run procedure(),long
end !* class *
_EndOfInclude_
!* end *