-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSSIMATXT.PRW
More file actions
209 lines (171 loc) · 6.09 KB
/
Copy pathSSIMATXT.PRW
File metadata and controls
209 lines (171 loc) · 6.09 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
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWMBROWSE.CH"
#include "rwmake.ch"
#include "TbiConn.ch"
#include "TbiCode.ch"
#DEFINE CODIGO 1
#DEFINE CHAASS 2
#DEFINE FNC 3
#DEFINE CLIENT 4
#DEFINE PROD 5
#DEFINE CRITIC 6
#DEFINE RESUMO 7
#DEFINE ROTINA 8
#DEFINE STATUS 9
#DEFINE ENTPE 10
#DEFINE GRUPO 11
#DEFINE DTINI_C 12
#DEFINE DTFIM_C 13
#DEFINE ANALI_C 14
#DEFINE CATEG 15
#DEFINE ITEM 16
#DEFINE OCORRE 17
#DEFINE ACAO 18
#DEFINE ANALIS 19
#DEFINE EQUIPE 20
#DEFINE DATINI 21
#DEFINE HRINI 22
#DEFINE DATFIM 23
#DEFINE HRFIM 24
// #########################################################################################
// Projeto: SSIM Controle
// Modulo : SIGATMK
// Rotina : SSIMATXT
// ---------+-------------------+-----------------------------------------------------------
// Data | Autor: William Gurzoni
// ---------+-------------------+-----------------------------------------------------------
// 24/10/15 | Importação do TXT com chamados
// ---------+-------------------+-----------------------------------------------------------
// #########################################################################################
User Function SSIMATXT()
Local cBuffer := ""
Local cTitulo1 := "Selecione o arquivo"
Local cExtens := "Arquivo CSV | *.csv"
Local aLinha := {}
Private cFileOpen := ""
/***
* _________________________________________________________
* cGetFile(<ExpC1>,<ExpC2>,<ExpN1>,<ExpC3>,<ExpL1>,<ExpN2>)
* ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
* <ExpC1> - Expressão de filtro
* <ExpC2> - Titulo da janela
* <ExpN1> - Numero de mascara default 1 para *.Exe
* <ExpC3> - Diretório inicial se necessário
* <ExpL1> - .F. botão salvar - .T. botão abrir
* <ExpN2> - Mascara de bits para escolher as opções de visualização do objeto
* (prconst.ch)
*/
cFileOpen := cGetFile(cExtens,cTitulo1,,,.T.)
Processa( {|| Import() }, "Processando..." )
Return Nil
// #########################################################################################
// Projeto: SSIM Controle
// Modulo : SIGATMK
// Rotina : Import
// ---------+-------------------+-----------------------------------------------------------
// Data | Autor: William Gurzoni
// ---------+-------------------+-----------------------------------------------------------
// 24/10/15 | Importação do TXT com chamados
// ---------+-------------------+-----------------------------------------------------------
// #########################################################################################
Static Function Import()
Local lAchouCHA := .F.
Local lFirstCHA := .T.
If !File(cFileOpen)
MsgAlert("Arquivo texto: "+cFileOpen+" não localizado",cCadastro)
Return
Endif
FT_FUSE(cFileOpen)
// Vai ao inicio do arquivo
FT_FGOTOP()
// Pula cabecalho
FT_FSKIP()
ProcRegua(FT_FLASTREC())
DbSelectArea("ZA0")
DbSetOrder(1)
DbSelectArea("ZA1")
DbSetOrder(1)
While !FT_FEOF()
IncProc()
// Zera variavel
lAchouCHA := .F.
// Ler linha
cBuffer := FT_FREADLN()
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
cBuffer := StrTran(cBuffer, ";;", "; ;")
// Transforma linha em array
aLinha := StrTokArr(cBuffer, ";")
//aLinha := StrTokArr2(cBuffer, ";", .T.) //Para usar este tenho que atualizar a build
If ZA0->(DbSeek(xFilial("ZA0")+aLinha[CODIGO]))
lAchouCHA := .T.
EndIf
//If lFirstCHA
RecLock("ZA0", !lAchouCHA)
ZA0->ZA0_FILIAL := xFilial("ZA0")
ZA0->ZA0_CODIGO := aLinha[CODIGO]
ZA0->ZA0_CLIENT := aLinha[CLIENT]
ZA0->ZA0_CRITIC := aLinha[CRITIC]
ZA0->ZA0_CHAASS := aLinha[CHAASS]
ZA0->ZA0_FNC := IIF(Empty(AllTrim(aLinha[FNC])), .F., .T.)
ZA0->ZA0_PROD := aLinha[PROD]
ZA0->ZA0_ROTINA := aLinha[ROTINA]
ZA0->ZA0_CATEG := aLinha[CATEG]
ZA0->ZA0_RESUMO := AllTrim(aLinha[RESUMO])
ZA0->ZA0_STATUS := aLinha[STATUS]
ZA0->ZA0_GRUPO := aLinha[GRUPO]
ZA0->ZA0_ANALIS := aLinha[ANALI_C]
ZA0->ZA0_DATINI := sToD(aLinha[DTINI_C])
ZA0->ZA0_HRINI := "00:00:00" // AJUSTAR A QUERY PARA CAPTURAR ESTA INFORMACAO
ZA0->ZA0_DATFIM := sToD(aLinha[DTFIM_C])
ZA0->ZA0_HRFIM := "00:00:00" // AJUSTAR A QUERY PARA CAPTURAR ESTA INFORMACAO
ZA0->ZA0_ENTPE := aLinha[ENTPE]
MsUnLock()
// lFirstCHA := .F.
//EndIf
If !ZA1->(DbSeek(xFilial("ZA1")+aLinha[CODIGO]+aLinha[ITEM]))
RecLock("ZA1", .T.)
ZA1->ZA1_FILIAL := xFilial("ZA1")
ZA1->ZA1_CODIGO := aLinha[CODIGO]
ZA1->ZA1_ITEM := Replicate("0", 3 - Len(AllTrim(aLinha[ITEM]))) + AllTrim(aLinha[ITEM])
ZA1->ZA1_OCORRE := Replicate("0", 6 - Len(AllTrim(aLinha[OCORRE]))) + AllTrim(aLinha[OCORRE])
ZA1->ZA1_ACAO := Replicate("0", 6 - Len(AllTrim(aLinha[ACAO]))) + AllTrim(aLinha[ACAO])
ZA1->ZA1_ANALIS := aLinha[ANALIS]
ZA1->ZA1_DATA := sToD(IIF(!Empty(AllTrim(aLinha[DATINI])), aLinha[DATINI], aLinha[DATFIM]))
ZA1->ZA1_HORA := IIF(TrataHora(aLinha[HRINI]) != "00:00:00", TrataHora(aLinha[HRINI]), TrataHora(aLinha[HRFIM]))
ZA1->ZA1_EQUIPE := aLinha[EQUIPE]
MsUnLock()
EndIf
FT_FSKIP()
EndDo
FT_FUSE()
// Calcula o tempo dos chamados
U_SSIMA010()
MsgInfo("Processo finalizada")
Return Nil
// #########################################################################################
// Projeto: SSIM Controle
// Modulo : SIGATMK
// Rotina : TrataHora
// ---------+-------------------+-----------------------------------------------------------
// Data | Autor: William Gurzoni
// ---------+-------------------+-----------------------------------------------------------
// 31/10/15 | Trata a hora do chamado
// ---------+-------------------+-----------------------------------------------------------
// #########################################################################################
Static Function TrataHora(cHora)
Local cRet := ""
cHora := AllTrim(cHora)
If(Len(cHora) == 5)
cRet := cHora + ":00"
Else
cRet := "00:00:00"
EndIf
Return cRet