Advertisement
brunobola

Untitled

Nov 15th, 2022
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.98 KB | None | 0 0
  1. USE PRIINF0383
  2. --Variáveis
  3. DECLARE @codigoEmpPri NVARCHAR(50); --para empresa ERP e codigo
  4. DECLARE @nomeCl NVARCHAR(100);
  5. DECLARE @morada NVARCHAR(500);
  6. DECLARE @localidade NVARCHAR(100);
  7. DECLARE @codPostal NVARCHAR(150);
  8. DECLARE @localidadePostal NVARCHAR(100);
  9. DECLARE @telefone NVARCHAR(50);
  10. DECLARE @telemovel NVARCHAR(50);
  11. DECLARE @fax NVARCHAR(50);
  12. DECLARE @email NVARCHAR(100);
  13. DECLARE @website NVARCHAR(100);
  14. DECLARE @numContrib NVARCHAR(50);
  15. DECLARE @numIdentificacao NVARCHAR(50);
  16. DECLARE @numSegSocial NVARCHAR(50);
  17. DECLARE @valorAvenca FLOAT;
  18. DECLARE @valorHoraLiquido FLOAT;
  19. DECLARE @margemLucro FLOAT;
  20. DECLARE @supervisor NVARCHAR(50);
  21. DECLARE @ativo BIT;
  22. DECLARE @codEmpPrincipal NVARCHAR(50);
  23.  
  24. DECLARE cursor_clientesAtivos CURSOR FOR
  25.     SELECT DISTINCT CL.Cliente
  26.          , CL.Nome
  27.          , CL.Fac_Mor
  28.          , CL.Fac_Local
  29.          , CL.Fac_Cp
  30.          , CL.Fac_Cploc
  31.          , CL.Fac_Tel
  32.          , CL.Telefone2
  33.          , CL.Fac_Fax
  34.          , CL.CDU_EMAIL
  35.          , CL.EnderecoWeb
  36.          , CL.NumContrib
  37.          , CL.CDU_NISS
  38.          , CL.CDU_SUPERVISOR
  39.     FROM Clientes CL WITH (nolock)
  40.  
  41.  
  42. OPEN cursor_clientesAtivos
  43. FETCH FROM cursor_clientesAtivos
  44. INTO @codEmpPrincipal, @nomeCl, @morada, @localidade, @codPostal, @localidadePostal, @telefone, @telemovel, @fax, @email, @website, @numContrib, @numSegSocial, @supervisor
  45.  
  46. WHILE @@FETCH_STATUS = 0
  47. BEGIN
  48.     --SET @supervisor = (select TOP 1 CDU_SUPERVISOR from PRIINF0383.dbo.Clientes where cliente = @codEmpPrincipal)
  49.     SET @supervisor = (SELECT TOP 1 Codigo FROM TGGabinetes.dbo.Funcionarios WHERE VendedorERP = @supervisor)
  50.     SET @codigoEmpPri = (SELECT TOP 1 Codigo FROM TGGabinetes.dbo.Clientes WHERE CodigoEmpresaPrincipal = @codEmpPrincipal)
  51.  
  52.     IF(SELECT Situacao FROM Clientes WHERE Cliente = @codEmpPrincipal) = 'ACTIVO'
  53.         SET @ativo = 1
  54.     ELSE IF(SELECT Situacao FROM Clientes WHERE Cliente = @codEmpPrincipal) = 'INACTIVO'
  55.         SET @ativo = 0
  56.     ELSE IF(SELECT Situacao FROM Clientes WHERE Cliente = @codEmpPrincipal) IS NULL
  57.         SET @ativo = 0
  58.  
  59.     IF(SELECT COUNT(*) FROM TGGabinetes.dbo.Clientes WHERE Codigo = @codigoEmpPri) = 0
  60.         INSERT INTO TGGabinetes.dbo.Clientes(Codigo, Nome, Morada, Localidade, CodigoPostal, LocalidadeCodigoPostal,
  61.         Telefone, Telemovel, Fax, Email, Website, NumeroContribuinte, NumeroSegurancaSocial, EmpresaERP, CodigoEmpresaPrincipal, Ativo, FuncionarioResponsavel)
  62.         VALUES(@codigoEmpPri, @nomeCl, @morada, @localidade, @codPostal, @localidadePostal, @telefone, @telemovel, @fax, @email,
  63.         @website, @numContrib, @numSegSocial, @codigoEmpPri, @codEmpPrincipal, @ativo, @supervisor)
  64.  
  65.     IF(SELECT COUNT(*) FROM TGGabinetes.dbo.Clientes WHERE Codigo = @codigoEmpPri) > 0
  66.         UPDATE TGGabinetes.dbo.Clientes
  67.         --Validar depois se atualizamos os outros campos
  68.         SET Ativo = @ativo
  69.  
  70.     FETCH NEXT FROM cursor_clientesAtivos
  71.     INTO @codEmpPrincipal, @nomeCl, @morada, @localidade, @codPostal, @localidadePostal, @telefone, @telemovel, @fax, @email, @website, @numContrib, @numSegSocial, @supervisor
  72. END
  73. CLOSE cursor_clientesAtivos
  74. DEALLOCATE cursor_clientesAtivos
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement