-
Notifications
You must be signed in to change notification settings - Fork 0
/
gpaz08d2.txt
535 lines (485 loc) · 22.2 KB
/
gpaz08d2.txt
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
*----------------------------------------------------------------*
ID DIVISION.
*----------------------------------------------------------------*
PROGRAM-ID. GPAZ08D2.
AUTHOR. KARINA.
*----------------------------------------------------------------*
ENVIRONMENT DIVISION.
*----------------------------------------------------------------*
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MOVPRDD2 ASSIGN TO UT-S-MOVPRDD2
FILE STATUS IS FS-MOVPRDD2
.
*----------------------------------------------------------------*
DATA DIVISION.
*----------------------------------------------------------------*
FILE SECTION.
FD MOVPRDD2
RECORDING MODE IS F.
COPY BK001D2 REPLACING ==::== BY ====.
*----------------------------------------------------------------*
WORKING-STORAGE SECTION.
*----------------------------------------------------------------*
COPY BK001D2 REPLACING ==::== BY ==WS-==.
COPY VARDATA.
COPY VARTEMPO.
EXEC SQL
INCLUDE BK002TP
END-EXEC
EXEC SQL
INCLUDE SQLCA
END-EXEC
* INDICATORS
01 INDICADORES.
* 05 ICODPROD PIC S9(04) COMP.
* 05 IDESCPROD PIC S9(04) COMP.
05 IUNIDPROD PIC S9(04) COMP.
05 ILOCALPROD PIC S9(04) COMP.
05 IQTDEST PIC S9(04) COMP.
05 IQTDMAX PIC S9(04) COMP.
05 IQTDMIN PIC S9(04) COMP.
05 IPRECOCOMPRA PIC S9(04) COMP.
05 IPRECOVENDA PIC S9(04) COMP.
05 IPERCOMIS PIC S9(04) COMP.
01 WS-CONTADORES-COMP.
05 WS-CTLIDO PIC 9(05) COMP.
05 WS-CTINS PIC 9(05) COMP.
05 WS-CTEXC PIC 9(05) COMP.
05 WS-CTINV PIC 9(05) COMP.
05 WS-CTALT PIC 9(05) COMP.
05 WS-CTCON PIC 9(05) COMP.
01 WS-CONTADORES-FORMATADOS.
05 WS-CTLIDO-F PIC ZZ.ZZ9.
05 WS-CTINS-F PIC ZZ.ZZ9.
05 WS-CTEXC-F PIC ZZ.ZZ9.
05 WS-CTINV-F PIC ZZ.ZZ9.
05 WS-CTALT-F PIC ZZ.ZZ9.
05 WS-CTCON-F PIC ZZ.ZZ9.
01 FS-MOVPRDD2 PIC X(02).
88 SUCESSO-MOV VALUE "00".
88 FIM-ARQ-MOV VALUE "10".
01 VAR-CONSULTA.
05 CODPROD-FF PIC 9999.
05 QTDEST-FF PIC ZZ.ZZ9.
05 QTDMAX-FF PIC ZZ.ZZ9.
05 QTDMIN-FF PIC ZZ.ZZ9.
05 PRECOCOMPRA-FF PIC ZZZ.ZZ9,99.
05 PRECOVENDA-FF PIC ZZZ.ZZ9,99.
05 PERCOMIS-FF PIC Z9,99.
77 WS-SQLCODE PIC +9(9).
77 WS-MSG PIC X(60).
77 WS-FS PIC X(02).
*----------------------------------------------------------------*
PROCEDURE DIVISION.
*----------------------------------------------------------------*
PERFORM 1000-INICIALIZAR
PERFORM 3000-PROCESSAR UNTIL FIM-ARQ-MOV
PERFORM 3000-TERMINO
STOP RUN
.
*----------------------------------------------------------------*
1000-INICIALIZAR.
ACCEPT WS-HORARIO-INICIAL FROM TIME
INITIALIZE WS-CONTADORES-COMP
OPEN INPUT MOVPRDD2
IF NOT SUCESSO-MOV
MOVE "ERRO ABERTURA MOVPRDD2"
TO WS-MSG
MOVE FS-MOVPRDD2 TO WS-FS
GO TO 9000-ERRO
END-IF
PERFORM 2000-LER-MOVPRDD2
.
*----------------------------------------------------------------*
2000-LER-MOVPRDD2.
READ MOVPRDD2 INTO WS-REG-MOVPRDD2
IF SUCESSO-MOV
ADD 1 TO WS-CTLIDO
ELSE
IF NOT FIM-ARQ-MOV
MOVE "ERRO LEITURA MOVPRDD2"
TO WS-MSG
MOVE FS-MOVPRDD2 TO WS-FS
GO TO 9000-ERRO
END-IF
END-IF
.
*----------------------------------------------------------------*
3000-PROCESSAR.
EVALUATE WS-TIPOMOVTO-D2
WHEN "I" PERFORM 3100-INCLUSAO
WHEN "E" PERFORM 3200-EXCLUSAO
WHEN "A" PERFORM 3300-ALTERACAO
WHEN "C" PERFORM 3400-CONSULTAR
WHEN OTHER
ADD 1 TO WS-CTINV
END-EVALUATE
PERFORM 2000-LER-MOVPRDD2
.
*----------------------------------------------------------------*
3100-INCLUSAO.
* MOVER DA VARIAVEL ESPELHO PARA A VARIAVEL HOSPEDEIRA
MOVE WS-CODPROD-D2 TO CODPROD
MOVE +20 TO DESCPROD-LEN
MOVE WS-DESCPROD-D2 TO DESCPROD-TEXT
MOVE WS-UNIDPROD-D2 TO UNIDPROD
MOVE WS-LOCALPROD-D2 TO LOCALPROD
MOVE WS-QTDEST-D2 TO QTDEST
MOVE WS-QTDMAX-D2 TO QTDMAX
MOVE WS-QTDMIN-D2 TO QTDMIN
MOVE WS-PRECOCOMPRA-D2 TO PRECOCOMPRA
MOVE WS-PRECOVENDA-D2 TO PRECOVENDA
MOVE WS-PERCOMIS-D2 TO PERCOMIS
* INSERT USANDO AS VARIAVEIS HOSPEDEIRAS
EXEC SQL
INSERT INTO TBPRODUTO
( CODPROD
, DESCPROD
, UNIDPROD
, LOCALPROD
, QTDEST
, QTDMAX
, QTDMIN
, PRECOCOMPRA
, PRECOVENDA
, PERCOMIS
)
VALUES
( :CODPROD
, :DESCPROD
, :UNIDPROD
, :LOCALPROD
, :QTDEST
, :QTDMAX
, :QTDMIN
, :PRECOCOMPRA
, :PRECOVENDA
, :PERCOMIS
)
END-EXEC
EVALUATE SQLCODE
WHEN 0 ADD 1 TO WS-CTINS
WHEN -803 ADD 1 TO WS-CTINV
WHEN -545 ADD 1 TO WS-CTINV
WHEN OTHER
MOVE "ERRO INSERT NA TABELA TBPRODUTO"
TO WS-MSG
MOVE SQLCODE TO WS-SQLCODE
GO TO 9000-ERRO-DB2
END-EVALUATE
.
*----------------------------------------------------------------*
3200-EXCLUSAO.
MOVE WS-CODPROD-D2 TO CODPROD
EXEC SQL
DELETE FROM TBPRODUTO
WHERE CODPROD = :CODPROD
END-EXEC
EVALUATE SQLCODE
WHEN 0 ADD 1 TO WS-CTEXC
WHEN +100 ADD 1 TO WS-CTINV
WHEN OTHER
MOVE "ERRO DELETE NA TABELA TBPRODUTO"
TO WS-MSG
MOVE SQLCODE TO WS-SQLCODE
GO TO 9000-ERRO-DB2
END-EVALUATE
.
*----------------------------------------------------------------*
3300-ALTERACAO.
MOVE WS-CODPROD-D2 TO CODPROD
EXEC SQL
SELECT CODPROD
, DESCPROD
, UNIDPROD
, LOCALPROD
, QTDEST
, QTDMAX
, QTDMIN
, PRECOCOMPRA
, PRECOVENDA
, PERCOMIS
INTO :CODPROD
, :DESCPROD
, :UNIDPROD :IUNIDPROD
, :LOCALPROD :ILOCALPROD
, :QTDEST :IQTDEST
, :QTDMAX :IQTDMAX
, :QTDMIN :IQTDMIN
, :PRECOCOMPRA :IPRECOCOMPRA
, :PRECOVENDA :IPRECOVENDA
, :PERCOMIS :IPERCOMIS
FROM TBPRODUTO
WHERE CODPROD = :CODPROD
END-EXEC
EVALUATE SQLCODE
WHEN 0
PERFORM 9000-TRATA-INDICATOR
PERFORM 3310-UPDATE
WHEN +100
ADD 1 TO WS-CTINV
WHEN OTHER
MOVE "ERRO SELECT NA TABELA TBPRODUTO"
TO WS-MSG
MOVE SQLCODE TO WS-SQLCODE
GO TO 9000-ERRO-DB2
END-EVALUATE
.
*----------------------------------------------------------------*
3310-UPDATE.
MOVE WS-CODPROD-D2 TO CODPROD
IF WS-DESCPROD-D2 NOT = SPACES
MOVE +20 TO DESCPROD-LEN
MOVE WS-DESCPROD-D2 TO DESCPROD-TEXT
END-IF
IF WS-UNIDPROD-D2 NOT = SPACES
MOVE WS-UNIDPROD-D2 TO UNIDPROD
END-IF
IF WS-LOCALPROD-D2 NOT = SPACES
MOVE WS-LOCALPROD-D2 TO LOCALPROD
END-IF
IF WS-QTDEST-D2 IS NUMERIC
MOVE WS-QTDEST-D2 TO QTDEST
END-IF
IF WS-QTDMAX-D2 IS NUMERIC
MOVE WS-QTDMAX-D2 TO QTDMAX
END-IF
IF WS-QTDMIN-D2 IS NUMERIC
MOVE WS-QTDMIN-D2 TO QTDMIN
END-IF
IF WS-PRECOCOMPRA-D2 IS NUMERIC
MOVE WS-PRECOCOMPRA-D2 TO PRECOCOMPRA
END-IF
IF WS-PRECOVENDA-D2 IS NUMERIC
MOVE WS-PRECOVENDA-D2 TO PRECOVENDA
END-IF
IF WS-PERCOMIS-D2 IS NUMERIC
MOVE WS-PERCOMIS-D2 TO PERCOMIS
END-IF
EXEC SQL
UPDATE TBPRODUTO
SET DESCPROD = :DESCPROD
, UNIDPROD = :UNIDPROD
, LOCALPROD = :LOCALPROD
, QTDEST = :QTDEST
, QTDMAX = :QTDMAX
, QTDMIN = :QTDMIN
, PRECOCOMPRA = :PRECOCOMPRA
, PRECOVENDA = :PRECOVENDA
, PERCOMIS = :PERCOMIS
WHERE CODPROD = :CODPROD
END-EXEC
EVALUATE SQLCODE
WHEN 0 ADD 1 TO WS-CTALT
WHEN +100 ADD 1 TO WS-CTINV
WHEN -545 ADD 1 TO WS-CTINV
WHEN OTHER
MOVE "ERRO UPDATE NA TABELA TBPRODUTO"
TO WS-MSG
MOVE SQLCODE TO WS-SQLCODE
GO TO 9000-ERRO-DB2
END-EVALUATE
.
*----------------------------------------------------------------*
3400-CONSULTAR.
MOVE WS-CODPROD-D2 TO CODPROD
EXEC SQL
SELECT CODPROD
, DESCPROD
, UNIDPROD
, LOCALPROD
, QTDEST
, QTDMAX
, QTDMIN
, PRECOCOMPRA
, PRECOVENDA
, PERCOMIS
INTO :CODPROD
, :DESCPROD
, :UNIDPROD
, :LOCALPROD
, :QTDEST
, :QTDMAX
, :QTDMIN
, :PRECOCOMPRA
, :PRECOVENDA
, :PERCOMIS
FROM TBPRODUTO
WHERE CODPROD = :CODPROD
END-EXEC
IF SQLCODE = 0
ADD 1 TO WS-CTCON
PERFORM 9000-TRATA-INDICATOR
PERFORM 9000-IMPRIME-PRODUTO
ELSE
IF SQLCODE = +100
ADD 1 TO WS-CTINV
ELSE
MOVE "ERRO CONSULTA NA TABELA TBPRODUTO"
TO WS-MSG
MOVE SQLCODE TO WS-SQLCODE
GO TO 9000-ERRO-DB2
END-IF
END-IF
.
*----------------------------------------------------------------*
3000-TERMINO.
CLOSE MOVPRDD2
IF NOT SUCESSO-MOV
MOVE "ERRO FECHAMENTO MOVPRDD2"
TO WS-MSG
MOVE FS-MOVPRDD2 TO WS-FS
GO TO 9000-ERRO
END-IF
ACCEPT WS-HORARIO-FINAL FROM TIME
COPY CALCTEMP.
MOVE WS-CTLIDO TO WS-CTLIDO-F
MOVE WS-CTINS TO WS-CTINS-F
MOVE WS-CTEXC TO WS-CTEXC-F
MOVE WS-CTINV TO WS-CTINV-F
MOVE WS-CTCON TO WS-CTCON-F
MOVE WS-CTALT TO WS-CTALT-F
PERFORM 9000-IMPRIME-DATA
DISPLAY " "
DISPLAY "*------------------------------------------*"
DISPLAY " "
DISPLAY " EH O BICHO !!! )/_ "
DISPLAY " _.--..---'-,--O_ "
DISPLAY " \|..' ._O__)_ "
DISPLAY " ,-. _./ _ \..--( / "
DISPLAY " `\.-''__.-' \ ( \_ "
DISPLAY " `''' `\__ /\ "
DISPLAY " /) "
DISPLAY "*------------------------------------------*"
DISPLAY " "
DISPLAY "=================================================="
DISPLAY "== ESTATISTICA FINAL DE PROCESSAMENTO =="
DISPLAY "=================================================="
DISPLAY "QTDE. PRODUTOS LIDOS MOVPRDD2........: " WS-CTLIDO-F
DISPLAY "QTDE. PRODUTOS INSERIDOS TBPRODUTO...: " WS-CTINS-F
DISPLAY "QTDE. PRODUTOS EXCLUIDOS TBPRODUTO...: " WS-CTEXC-F
DISPLAY "QTDE. PRODUTOS ALTERADOS TBPRPDUTO...: " WS-CTALT-F
DISPLAY "QTDE. PRODUTOS CONSULTADOS TBPRODUTO.: " WS-CTCON-F
DISPLAY "QTDE. PRODUTOS INVALIDOS.............: " WS-CTINV-F
DISPLAY "=================================================="
DISPLAY "TEMPO TOTAL DE PROCESSAMENTO.........: "
WS-TEMPO-PROCESSAMENTO
DISPLAY "=================================================="
DISPLAY "== TERMINO NORMAL DO PROGRAMA GPAZ08D2 =="
DISPLAY "=================================================="
.
*----------------------------------------------------------------*
9000-ERRO.
DISPLAY "=================================================="
DISPLAY " "
DISPLAY " ._`-\ )\,`-.-. "
DISPLAY " \'\` \)\ \)\ \|.) "
DISPLAY " \`) |\) )\ .)\ )\| "
DISPLAY " \ \)\ |)\ ` \ .')/| "
DISPLAY " ``-.\ \ )\ ` . ., '( "
DISPLAY " \\ -. `)\``- ._ .)` |\(,_ "
DISPLAY " `__ '\ `-- _\`. ` (/ "
DISPLAY " `\,\ .\\ / "
DISPLAY " '` ) (`-.\\ ` "
DISPLAY " /||\ `. * _*| "
DISPLAY " `-.( `\ "
DISPLAY " `. \ "
DISPLAY " `(C "
DISPLAY " DEU ERRO VEJA O FILE STATUS !!! "
DISPLAY "=================================================="
DISPLAY " "
DISPLAY "=================================================="
DISPLAY "MENSAGEM....: " WS-MSG
DISPLAY "FILE STATUS.: " WS-FS
DISPLAY "=================================================="
DISPLAY " TERMINO ANORMAL DO GPAZ08D2 "
DISPLAY "=================================================="
MOVE 12 TO RETURN-CODE
STOP RUN
.
*----------------------------------------------------------------*
9000-ERRO-DB2.
DISPLAY "=================================================="
DISPLAY " "
DISPLAY " ._`-\ )\,`-.-. "
DISPLAY " \'\` \)\ \)\ \|.) "
DISPLAY " \`) |\) )\ .)\ )\| "
DISPLAY " \ \)\ |)\ ` \ .')/| "
DISPLAY " ``-.\ \ )\ ` . ., '( "
DISPLAY " \\ -. `)\``- ._ .)` |\(,_ "
DISPLAY " `__ '\ `-- _\`. ` (/ "
DISPLAY " `\,\ .\\ / "
DISPLAY " '` ) (`-.\\ ` "
DISPLAY " /||\ `. * _*| "
DISPLAY " `-.( `\ "
DISPLAY " `. \ "
DISPLAY " `(C "
DISPLAY " DEU ERRO VEJA O FILE STATUS !!! "
DISPLAY "=================================================="
DISPLAY " "
DISPLAY "=================================================="
DISPLAY "MESSAGE..: " WS-MSG
DISPLAY "SQLCODE..: " WS-SQLCODE
DISPLAY "=================================================="
DISPLAY " TERMINO ANORMAL DO GPAZ08D2 "
DISPLAY "=================================================="
MOVE 16 TO RETURN-CODE
STOP RUN
.
*----------------------------------------------------------------*
9000-TRATA-INDICATOR.
IF IUNIDPROD LESS ZERO
MOVE SPACES TO UNIDPROD
END-IF
IF ILOCALPROD LESS ZERO
MOVE SPACES TO LOCALPROD
END-IF
IF IQTDEST LESS ZERO
MOVE ZEROS TO QTDEST
END-IF
IF IQTDMAX LESS ZERO
MOVE ZEROS TO QTDMAX
END-IF
IF IQTDMIN LESS ZERO
MOVE ZEROS TO QTDMIN
END-IF
IF IPRECOCOMPRA LESS ZERO
MOVE ZEROS TO PRECOCOMPRA
END-IF
IF IPRECOVENDA LESS ZERO
MOVE ZEROS TO PRECOVENDA
END-IF
IF IPERCOMIS LESS ZERO
MOVE ZEROS TO PERCOMIS
END-IF
.
*----------------------------------------------------------------*
9000-IMPRIME-PRODUTO.
MOVE CODPROD TO CODPROD-FF
MOVE QTDEST TO QTDEST-FF
MOVE QTDMAX TO QTDMAX-FF
MOVE QTDMIN TO QTDMIN-FF
MOVE PRECOCOMPRA TO PRECOCOMPRA-FF
MOVE PRECOVENDA TO PRECOVENDA-FF
MOVE PERCOMIS TO PERCOMIS-FF
DISPLAY "=================================================="
DISPLAY "== CONSULTA DE PRODUTOS =="
DISPLAY "=================================================="
DISPLAY "CODIGO...................: " CODPROD
DISPLAY "DESCRICAO................: " DESCPROD-TEXT
DISPLAY "UNIDADE DE VENDA.........: " UNIDPROD
DISPLAY "LOCALIZACAO NO ESTOQUE...: " LOCALPROD
DISPLAY "QTDE. EM ESTOQUE.........: " QTDEST
DISPLAY "QTDE. MAXIMA ARMAZENADA..: " QTDMAX
DISPLAY "QTDE. MINIMA ARMAZENADA..: " QTDMIN
DISPLAY "PRECO DE COMPRA..........: " PRECOCOMPRA
DISPLAY "PRECO DE VENDA...........: " PRECOVENDA
DISPLAY "PERCENTUAL DE COMISSAO...: " PERCOMIS
DISPLAY "=================================================="
.
COPY ROTDATA.
.