Hi All,
Please, someone help me finfing out the problem of this &*#Q¨CURSOR!!!!!!!
I can´t get it, why does not work. If i execute the code outised of the procedure and the if statemente, the CURSOR just works fine. But when i execute the proc, it just get @@FETCH_STATUS = -1
HERES THE CODE! The problem part is in bold. Thanks, any help would be VERY appreciated
1 ALTER PROCEDURE [dbo].[_V2_SpTempClienteUpdate]
2 (@IdCliente AS INT,@IdUsuarioAprovacao AS INT,@GerarLogSecretaria AS BIT = 'TRUE',@IdTempEspecifico AS INT = 0)
3 AS
4
5
6 DECLARE @IdTemp AS INT
7 IF (@IdTempEspecifico = 0)
8 BEGIN
9 SET @IdTemp = (SELECT IdTemp FROM _v2_TbTemps WHERE IdCliente = @IdCliente)
10 END
11 ELSE
12 BEGIN
13 SET @IdTemp = @IdTempEspecifico
14 END
15
16 DECLARE @IdNivelHierarquico AS INT
17 SET @IdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbTempClientes WHERE IdCliente = @IdCliente)
18
19 IF (@IdNivelHierarquico = 17 OR @IdNivelHierarquico = 72)
20 BEGIN
21
22 --DELETE NA TABELA DE TEMPSECRETARIAS (CASO ALGUEM TROCOU A EMPRESA DA SECRETARIA E MANTEVE OS EXECUTIVOS DA OUTRA EMPRESA)
23 DELETE FROM [_V2_TbTempClientesSecretarias] WHERE IdCliente NOT IN
24 (SELECT IdCliente FROM _V2_VwClientes WHERE IdEmpresa IN(SELECT IdEmpresa FROM _V2_TbTempClientes WHERE @IdTemp = @IdTemp))
25 AND IdTemp = @IdTemp
26
27 --DELETE CASO MUDOU DE EXECUTIVA PARA SECRETARIA
28 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdCliente = @IdCliente
29
30 END
31
32 ELSE
33 BEGIN
34 --DELETE NA TABELA DE TEMPSECRETARIAS (CASO ALGUEM TROCOU A EMPRESA DO CONTATO E MANTEVE AS SECRETARIAS DA OUTRA EMPRESA)
35 DELETE FROM [_V2_TbTempClientesSecretarias] WHERE IdSecretaria NOT IN
36 (SELECT IdCliente FROM _V2_VwSecretarias WHERE IdEmpresa IN(SELECT IdEmpresa FROM [_V2_TbTempClientes] WHERE @IdTemp = @IdTemp))
37 AND IdTemp = @IdTemp
38
39 --DELETE CASO MUDOU DE SECRETARIA PARA EXECUTIVA
40 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdSecretaria = @IdCliente
41 END
42
43
44
45 --UPDATE NA TABELA DE CLIENTE
46 UPDATE _V2_TbClientes SET
47 _V2_TbClientes.Nome = _V2_TbTempClientes.Nome ,
48 _V2_TbClientes.Tratamento = _V2_TbTempClientes.Tratamento ,
49 _V2_TbClientes.Sexo = _V2_TbTempClientes.Sexo ,
50 _V2_TbClientes.Email = _V2_TbTempClientes.Email ,
51 _V2_TbClientes.CargoNaEmpresa = _V2_TbTempClientes.CargoNaEmpresa ,
52 _V2_TbClientes.FlEmailOptIn = _V2_TbTempClientes.FlEmailOptIn ,
53 _V2_TbClientes.FlContatoDesmond = _V2_TbTempClientes.FlContatoDesmond ,
54 _V2_TbClientes.FlAccountManager = _V2_TbTempClientes.FlAccountManager ,
55 _V2_TbClientes.FlContatoPresidencia = _V2_TbTempClientes.FlContatoPresidencia ,
56 _V2_TbClientes.FlContatoJuridico = _V2_TbTempClientes.FlContatoJuridico ,
57 _V2_TbClientes.FlContatoRH = _V2_TbTempClientes.FlContatoRH ,
58 _V2_TbClientes.FlContatoProdutos = _V2_TbTempClientes.FlContatoProdutos ,
59 _V2_TbClientes.FlFuncTercMasterCard = _V2_TbTempClientes.FlFuncTercMasterCard ,
60 _V2_TbClientes.FlRecebeBolo = _V2_TbTempClientes.FlRecebeBolo ,
61 _V2_TbClientes.FlGrupoDiversidade = _V2_TbTempClientes.FlGrupoDiversidade ,
62 _V2_TbClientes.DtNascimento = _V2_TbTempClientes.DtNascimento ,
63 _V2_TbClientes.DtUltimaAtualizacao = GETDATE() ,
64 _V2_TbClientes.FlExcluido = 0 , --PARA CASO FOR UMA INSERÇÃO, ATUALIZAR O CONTATO PARA APARECER =)
65 _V2_TbClientes.DtExclusao = _V2_TbTempClientes.DtExclusao ,
66 _V2_TbClientes.IdEmpresa = _V2_TbTempClientes.IdEmpresa ,
67 _V2_TbClientes.IdQualificacao = _V2_TbTempClientes.IdQualificacao ,
68 _V2_TbClientes.IdEstadoCivil = _V2_TbTempClientes.IdEstadoCivil ,
69 _V2_TbClientes.IdAtuacao = _V2_TbTempClientes.IdAtuacao ,
70 _V2_TbClientes.IdPublico = _V2_TbTempClientes.IdPublico ,
71 _V2_TbClientes.IdNivelHierarquico = _V2_TbTempClientes.IdNivelHierarquico ,
72 _V2_TbClientes.IdArea = _V2_TbTempClientes.IdArea
73 FROM _V2_TbClientes INNER JOIN _V2_TbTemps ON _V2_TbClientes.IdCliente = _V2_TbTemps.IdCliente
74 INNER JOIN _V2_TbTempClientes ON _V2_TbTempClientes.IdTemp = _V2_TbTemps.IdTemp
75 WHERE _V2_TbTemps.IdTemp = @IdTemp
76
77
78 --UPDATE NA TABELA DE TELEFONES
79 --PRIMEIRO LIMPAR
80 DELETE FROM _V2_TbTelefones WHERE IdCliente = @IdCliente
81
82 --AGORA INSERIR
83 INSERT INTO _V2_TbTelefones
84 (DDI,DDD,Telefone,IdTelefoneTipo,IdCliente)
85 (SELECT DDI,DDD,Telefone,IdTelefoneTipo,@IdCliente FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp)
86
87 --UPDATE NA TABELA DE ENDERECOS
88 --PRIMEIRO LIMPAR
89 DELETE FROM _V2_TbEnderecos WHERE IdCliente = @IdCliente
90
91 --AGORA INSERIR
92 INSERT INTO _V2_TbEnderecos
93 (Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente)
94 (SELECT Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,@IdCliente FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp)
95
96
97
98 --UPDATE NA TABELA DE SECRETARIAS
99 --PRIMEIRO LIMPAR
100 DELETE FROM _V2_TbClientesSecretarias WHERE IdSecretaria = @IdCliente
101 DELETE FROM _V2_TbClientesSecretarias WHERE IdCliente = @IdCliente
102
103 --AGORA INSERIR
104 INSERT INTO _V2_TbClientesSecretarias
105 (IdCliente,IdSecretaria)
106 (SELECT IdCliente,IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp)
107
108
109 --UPDATE NA TABELA DE FILHOS
110 --PRIMEIRO LIMPAR
111 DELETE FROM _V2_TbFilhos WHERE IdCliente = @IdCliente
112
113 --AGORA INSERIR
114 INSERT INTO _V2_TbFilhos
115 (IdCliente,Nome,DtNascimento)
116 (SELECT IdCliente,Nome,DtNascimento FROM _V2_TbTempFilhos WHERE IdTemp = @IdTemp)
117
118
119 --UPDATE NA TABELA DE PSICOGRAFICOS
120 --PRIMEIRO LIMPAR
121 DELETE FROM _V2_TbClientesPsicograficos WHERE IdCliente = @IdCliente
122
123 --AGORA INSERIR
124 INSERT INTO _V2_TbClientesPsicograficos
125 (IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros)
126 (SELECT IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp)
127
128
129
130 --INSERIR LOGS AGORA
131
132 --PRIMEIRO A TABELA DE CONTROLE DOS LOGS
133 DECLARE @IdUsuario AS INT --USUARIO QUE FEZ A ALTERACAO
134 SET @IdUsuario = (SELECT IdUsuario FROM _V2_TbTemps WHERE IdTemp = @IdTemp)
135
136 DECLARE @IdLog AS INT
137 SET @IdLog = (SELECT ISNULL(MAX(IdLog) + 1,1) FROM _V2_TbLogs)
138
139
140 INSERT INTO _V2_TbLogs
141 (IdLog,IdCliente,IdUsuario,IdUsuarioAprovacao,DtLog)
142 VALUES
143 (@IdLog,@IdCliente,@IdUsuario,@IdUsuarioAprovacao,GETDATE())
144
145
146 --AGORA INSERIR DIRETO E RETO
147 INSERT INTO _V2_TbLogClientes
148 (IdLog,IdCliente,Nome,Tratamento,Sexo,Email,CargoNaEmpresa,FlEmailOptIn,FlContatoDesmond,FlAccountManager,FlContatoPresidencia,
149 FlContatoJuridico,FlContatoRH,FlContatoProdutos,FlFuncTercMasterCard,FlRecebeBolo,FlGrupoDiversidade,DtNascimento,DtUltimaAtualizacao,FlExcluido,DtExclusao,
150 IdEmpresa,IdQualificacao,IdEstadoCivil,IdAtuacao,IdPublico,IdNivelHierarquico,IdArea)
151 (SELECT @IdLog,IdCliente,Nome,Tratamento,Sexo,Email,CargoNaEmpresa,FlEmailOptIn,FlContatoDesmond,FlAccountManager,FlContatoPresidencia,
152 FlContatoJuridico,FlContatoRH,FlContatoProdutos,FlFuncTercMasterCard,FlRecebeBolo,FlGrupoDiversidade,DtNascimento,DtUltimaAtualizacao,FlExcluido,DtExclusao,
153 IdEmpresa,IdQualificacao,IdEstadoCivil,IdAtuacao,IdPublico,IdNivelHierarquico,IdArea FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp)
154
155 INSERT INTO _V2_TbLogTelefones
156 (IdLog,DDI,DDD,Telefone,IdTelefoneTipo,IdCliente)
157 (SELECT @IdLog,DDI,DDD,Telefone,IdTelefoneTipo,IdCliente FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp)
158
159 INSERT INTO _V2_TbLogEnderecos
160 (IdLog,Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente)
161 (SELECT @IdLog,Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp)
162
163 INSERT INTO _V2_TbLogClientesSecretarias
164 (IdLog,IdCliente,IdSecretaria)
165 (SELECT @IdLog,IdCliente,IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp)
166
167 --INSERINDO OS LOGS PARA TODOS OS AFETADOS NA RELACAO SECRETARIA X EXECUTIVO
168 IF (@GerarLogSecretaria = 'TRUE')
169 BEGIN
170
171 DECLARE @OldIdNivelHierarquico AS INT ,@NewIdNivelHierarquico AS INT,@LastIdLog AS INT
172 SET @LastIdLog = (SELECT TOP 1 IdLog FROM _V2_TbLogs WHERE IdCliente = @IdCliente ORDER BY DtLog DESC)
173 SET @OldIdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbLogClientes WHERE IdLog = @LastIdLog)
174 SET @NewIdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp)
175 DECLARE @TempTable TABLE (IdTemp INT)
176 DECLARE @IdTempTemp AS INT
177 DECLARE @IdSecExec AS INT
178
179 --ERA SECRETARIA E VIROU EXECUTIVA
180 IF ( (@OldIdNivelHierarquico = 72 OR @OldIdNivelHierarquico = 17) AND (@NewIdNivelHierarquico <> 72 AND @NewIdNivelHierarquico <> 17) )
181 BEGIN
182 PRINT('ERA SEC E VIROU EXEC')
183 DELETE FROM @TempTable
184
185 --DROPANDO TODA RELAÇÃO COM EXECUTIVOS QUE TINHA
186 DECLARE CrSecExec CURSOR LOCAL
187 FOR SELECT IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog;
188
189 OPEN CrSecExec
190 FETCH NEXT FROM CrSecExec INTO @IdSecExec
191
192 WHILE ( @@Fetch_Status = 0 )
193 BEGIN
194 --CARREGANDO ELE NO TEMP
195 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
196 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
197
198 --DELETANDO A SECRETARIA QUE ERA DO EXECUTIVO NO TEMP
199 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdSecretaria = @IdCliente
200
201 --COMITANDO O CLIENTE
202 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
203
204 FETCH NEXT FROM CrSecExec INTO @IdSecExec
205
206 END
207 CLOSE CrSecExec
208 DEALLOCATE CrSecExec
209
210
211 DELETE FROM @TempTable
212 --CRIANDO NOVAS RELAÇÕES COM SECRETARIAS
213 DECLARE CrSecExec CURSOR LOCAL
214 FOR SELECT IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp;
215
216 OPEN CrSecExec
217
218 FETCH NEXT FROM CrSecExec INTO @IdSecExec
219 WHILE ( @@Fetch_Status = 0 )
220 BEGIN
221 --CARREGANDO A SECRETARIA NO TEMP
222 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
223 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
224
225 --ALTERANDO A SECRETARIA NO TEMP
226 INSERT INTO _V2_TbTempClientesSecretarias
227 (IdTemp,IdCliente,IdSecretaria)
228 VALUES
229 (@IdTempTemp,@IdCliente,@IdSecExec)
230
231 --COMITANDO A SECRETARIA
232 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
233
234 FETCH NEXT FROM CrSecExec INTO @IdSecExec
235 END
236
237 CLOSE CrSecExec
238 DEALLOCATE CrSecExec
239 END
240
241 --ERA EXECUTIVA E VIROU SECRETARIA
242 ELSE IF ( (@OldIdNivelHierarquico <> 72 AND @OldIdNivelHierarquico <> 17) AND (@NewIdNivelHierarquico = 72 AND @NewIdNivelHierarquico = 17) )
243 BEGIN
244 PRINT('ERA EXEC E VIROU SEC')
245 DELETE FROM @TempTable
246 --DROPANDO TODA RELAÇÃO COM AS SECRETARIAS QUE TINHA
247 DECLARE CrSecExec CURSOR LOCAL
248 FOR SELECT IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog;
249
250 OPEN CrSecExec
251
252 FETCH NEXT FROM CrSecExec INTO @IdSecExec
253 WHILE ( @@Fetch_Status = 0 )
254 BEGIN
255 --CARREGANDO ELE NO TEMP
256 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
257 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
258
259 --ALTERANDO A SECRETARIA NO TEMP
260 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdCliente = @IdCliente
261
262 --COMITANDO O CLIENTE
263 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
264
265 FETCH NEXT FROM CrSecExec INTO @IdSecExec
266 END
267 CLOSE CrSecExec
268 DEALLOCATE CrSecExec
269
270
271 DELETE FROM @TempTable
272 --CRIANDO NOVAS RELAÇÕES COM EXECUTIVOS
273 DECLARE CrSecExec CURSOR LOCAL
274 FOR SELECT IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp;
275
276 OPEN CrSecExec
277
278 FETCH NEXT FROM CrSecExec INTO @IdSecExec
279 WHILE ( @@Fetch_Status = 0 )
280 BEGIN
281 --CARREGANDO O EXECUTIVO NO TEMP
282 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
283 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
284
285 --ALTERANDO A SECRETARIA DO EXECUTIVO NO TEMP
286 INSERT INTO _V2_TbTempClientesSecretarias
287 (IdTemp,IdCliente,IdSecretaria)
288 VALUES
289 (@IdTempTemp,@IdSecExec,@IdCliente)
290
291 --COMITANDO O EXECUTIVO
292 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
293
294 FETCH NEXT FROM CrSecExec INTO @IdSecExec
295 END
296
297 CLOSE CrSecExec
298 DEALLOCATE CrSecExec
299 END
300
301 --CONTINUA SENDO SECRETARIA
302 ELSE IF ( (@OldIdNivelHierarquico = 72 OR @OldIdNivelHierarquico = 17) AND (@NewIdNivelHierarquico = 72 OR @NewIdNivelHierarquico = 17) )
303 BEGIN
304 PRINT('CONTINUA SEC')
305 DELETE FROM @TempTable
306 --DROPANDO RELACOES COM OS EXECUTIVOS QUE DEIXOU DE TER307 PRINT('-----> LASTIDLOG -->' + CONVERT(VARCHAR,@LastIdLog))
308 PRINT('-----> IDTEMP -->' + CONVERT(VARCHAR,@IdTemp))309 DECLARE CrSecExec CURSOR LOCAL
310 FOR (SELECT * FROM (SELECT IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog) AS Old WHERE IdCliente NOT IN (SELECT IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp));
311 PRINT('FETCH 1 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
312 OPEN CrSecExec
313 PRINT('FETCH 2 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
314 FETCH NEXT FROM CrSecExec INTO @IdSecExec
315 PRINT('FETCH 3 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
316 SELECT @IdSecExec
317 PRINT('FETCH 4 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
318 PRINT('IDCLIENTEANTIGO ' + CONVERT(VARCHAR,@IdSecExec))
319 WHILE ( @@Fetch_Status = 0 )
320 BEGIN
321 PRINT('DROPPING ' + CONVERT(VARCHAR,@IdSecExec))
322 --CARREGANDO ELE NO TEMP323 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
324 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
325
326 --DELETANDO A SECRETARIA QUE ERA DO EXECUTIVO NO TEMP327 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdSecretaria = @IdCliente
328
329 --COMITANDO O CLIENTE330 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
331
332 FETCH NEXT FROM CrSecExec INTO @IdSecExec
333 END
334 CLOSE CrSecExec
335 DEALLOCATE CrSecExec
336
337
338 DELETE FROM @TempTable
339 --CRIANDO NOVAS RELAÇÕES COM EXECUTIVOS340 DECLARE CrSecExec CURSOR LOCAL
341 FOR SELECT IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp AND IdCliente NOT IN (SELECT IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog);
342
343 OPEN CrSecExec
344
345 FETCH NEXT FROM CrSecExec INTO @IdSecExec
346 WHILE ( @@Fetch_Status = 0 )
347 BEGIN
348 PRINT('INSERTING ' + CONVERT(VARCHAR,@IdSecExec))
349 --CARREGANDO O EXECUTIVO NO TEMP350 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
351 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
352
353 --ALTERANDO A SECRETARIA DO EXECUTIVO NO TEMP354 INSERT INTO _V2_TbTempClientesSecretarias
355 (IdTemp,IdCliente,IdSecretaria)
356 VALUES
357 (@IdTempTemp,@IdSecExec,@IdCliente)
358
359 --COMITANDO O EXECUTIVO 360 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
361
362 FETCH NEXT FROM CrSecExec INTO @IdSecExec
363 END
364
365 CLOSE CrSecExec
366 DEALLOCATE CrSecExec
367
368 END
369
370 --CONTINUA SENDO EXECUTIVO
371 ELSE IF ( (@OldIdNivelHierarquico <> 72 OR @OldIdNivelHierarquico <> 17) AND (@NewIdNivelHierarquico <> 72 OR @NewIdNivelHierarquico <> 17) )
372 BEGIN
373 PRINT('CONTINUA EXEC')
374 DELETE FROM @TempTable
375 --DROPANDO TODA RELAÇÃO COM AS SECRETARIAS QUE TINHA
376 DECLARE CrSecExec CURSOR LOCAL
377 FOR SELECT IdSecretaria FROM (SELECT IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog) AS Old WHERE IdSecretaria NOT IN (SELECT IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp);
378
379 OPEN CrSecExec
380
381 FETCH NEXT FROM CrSecExec INTO @IdSecExec
382 WHILE ( @@Fetch_Status = 0 )
383 BEGIN
384 --CARREGANDO ELE NO TEMP
385 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
386 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
387
388 --ALTERANDO A SECRETARIA NO TEMP
389 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdCliente = @IdCliente
390
391 --COMITANDO O CLIENTE
392 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
393
394 FETCH NEXT FROM CrSecExec INTO @IdSecExec
395 END
396 CLOSE CrSecExec
397 DEALLOCATE CrSecExec
398
399 DELETE FROM @TempTable
400 --CRIANDO NOVAS RELAÇÕES COM SECRETARIAS
401 DECLARE CrSecExec CURSOR LOCAL
402 FOR SELECT IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp AND IdSecretaria NOT IN (SELECT IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog);
403
404 OPEN CrSecExec
405
406 FETCH NEXT FROM CrSecExec INTO @IdSecExec
407 WHILE ( @@Fetch_Status = 0 )
408 BEGIN
409 --CARREGANDO A SECRETARIA NO TEMP
410 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
411 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
412
413 --ALTERANDO A SECRETARIA NO TEMP
414 INSERT INTO _V2_TbTempClientesSecretarias
415 (IdTemp,IdCliente,IdSecretaria)
416 VALUES
417 (@IdTempTemp,@IdCliente,@IdSecExec)
418
419 --COMITANDO A SECRETARIA
420 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
421
422 FETCH NEXT FROM CrSecExec INTO @IdSecExec
423 END
424
425 CLOSE CrSecExec
426 DEALLOCATE CrSecExec
427 END
428
429
430 END
431
432
433
434 INSERT INTO _V2_TbLogClientesPsicograficos
435 (IdLog,IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros)
436 (SELECT @IdLog,IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp)
437
438
439 --FINALMENTE LIMPAR AS TABELAS TEMPORARIAS
440 DELETE FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp
441 DELETE FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp
442 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp
443 DELETE FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp
444 DELETE FROM _V2_TbTempFilhos WHERE IdTemp = @IdTemp
445 DELETE FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp
446 DELETE FROM _V2_TbTemps WHERE IdTemp = @IdTemp
447
448
449
450
451
452
453
454