USE DADOSADV
-- DESBLOQUEAR CLIENTES QUE NAO TENHA TITULOS EM ABERTOS E QUE NAO TENHAM TITULOS INCOBRAVEIS
DECLARE
@CodigoCliente VARCHAR(6),
@NomeCliente VARCHAR(255)
DECLARE cur_cliente CURSOR FOR
SELECT A1_COD, A1_NOME from DADOSADV..SA1010
WHERE (A1_CATEGFI = 'BL' OR A1_MSBLQL = 1) AND D_E_L_E_T_ = '' --AND A1_COD = '46711'
UNION
SELECT A1_COD, A1_NOME from DADOSADV..SA1200
WHERE (A1_CATEGFI = 'BL' OR A1_MSBLQL = 1) AND D_E_L_E_T_ = ''-- AND A1_COD = '46711'
OPEN cur_cliente
FETCH NEXT FROM cur_cliente
INTO @CodigoCliente, @NomeCliente
WHILE @@FETCH_STATUS = 0
BEGIN
--select @CodigoCliente + ' - ' + @NomeCliente
--IF (SELECT COUNT(*) FROM Atendimento..VW_TitulosNaoBaixados WHERE E1_CLIENTE = @CodigoCliente AND E1_VENCREA < DATEADD(d,-2,GETDATE()) )= 0
IF (SELECT COUNT(*) FROM DADOSADV..SE1010 WHERE SE1010.D_E_L_E_T_ = '' AND E1_BAIXA = '' AND E1_VENCREA < DATEADD(d,-1,GETDATE()) AND E1_CLIENTE = @CodigoCliente) = 0 AND
(SELECT COUNT(*) FROM SE1010 WHERE E1_NUM IN (SELECT E5_NUMERO FROM SE5010 WHERE E5_HISTOR LIKE '%INCOBRAVEIS%' AND E5_CLIFOR = @CodigoCliente) AND E1_CLIENTE = @CodigoCliente) = 0 AND
(SELECT COUNT(*) FROM SE1010 WHERE E1_NUM IN (SELECT E5_NUMERO FROM SE5100 WHERE E5_HISTOR LIKE '%INCOBRAVEIS%' AND E5_CLIFOR = @CodigoCliente) AND E1_CLIENTE = @CodigoCliente) = 0 AND
(SELECT COUNT(*) FROM DADOSADV..SE1200 WHERE SE1200.D_E_L_E_T_ = '' AND E1_BAIXA = '' AND E1_VENCREA < DATEADD(d,-1,GETDATE()) AND E1_CLIENTE = @CodigoCliente) = 0 AND
(SELECT COUNT(*) FROM SE1200 WHERE E1_NUM IN (SELECT E5_NUMERO FROM SE5200 WHERE E5_HISTOR LIKE '%INCOBRAVEIS%' AND E5_CLIFOR = @CodigoCliente) AND E1_CLIENTE = @CodigoCliente) = 0
BEGIN
INSERT INTO ClienteBloqueadoDesbloqueado VALUES(@CodigoCliente,@NomeCliente, GETDATE(), 'DESBLOQUEADO')
UPDATE SA1010 SET A1_CATEGFI = 'SR',A1_CATEGCO = 'AT',A1_MSBLQL = 2 WHERE A1_COD = @CodigoCliente
END
ELSE
INSERT INTO ClienteBloqueadoDesbloqueado VALUES(@CodigoCliente,@NomeCliente, GETDATE(), 'NAO DESBLOQUEADO')
FETCH NEXT FROM cur_cliente
INTO @CodigoCliente, @NomeCliente
END
CLOSE cur_cliente
DEALLOCATE cur_cliente
--- BLOQUEAR OS CLIENTES QUE ESTÃO COM PAGAMENTOS ATRASADOS EM MAIS DE UM DIA
INSERT INTO ClienteBloqueadoDesbloqueado SELECT DISTINCT E1_CLIENTE, B.A1_NOME, GETDATE(), 'BLOQUEADO' from Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1010 B
ON A.E1_CLIENTE = B.A1_COD
where E1_VENCREA < DATEADD(d,-1,GETDATE()) AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1) AND A.E1_TIPO <> 'RA' and A.E1_TIPO <> 'NCC'
AND A1_COD NOT IN ('40502','10119','37777','44089','44114','43380','61929','64012','62834','38606') AND B.A1_CATEGMA <> 'RE'
UPDATE SA1010 SET A1_CATEGFI = 'BL', A1_MSBLQL = 1,A1_CATEGCO = 'SJ' WHERE A1_COD IN(
SELECT DISTINCT E1_CLIENTE from Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1010 B
ON A.E1_CLIENTE = B.A1_COD
where E1_VENCREA < DATEADD(d,-1,GETDATE()) AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1) AND A.E1_TIPO <> 'RA' and A.E1_TIPO <> 'NCC'
AND A1_COD NOT IN ('40502','10119','37777','44089','44114','43380','61929','64012','62834','38606')AND B.A1_CATEGMA <> 'RE')
--BLOQUEAR CLIENTES QUE TEM ALGUM TITULO EM INCOBRAVEIS E EM FALENCIA
INSERT INTO ClienteBloqueadoDesbloqueado SELECT A1_COD,A1_NOME,GETDATE(), 'BLOQUEADO' FROM SA1010 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5010 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%') AND D_E_L_E_T_ = '') AND A1_CATEGFI <> 'BL'
UPDATE SA1010 SET A1_CATEGFI = 'BL', A1_MSBLQL = 1,A1_CATEGCO = 'SJ' WHERE A1_COD IN (SELECT A1_COD FROM SA1010 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5010 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%') AND D_E_L_E_T_ = '' ) AND A1_CATEGFI <> 'BL')
INSERT INTO ClienteBloqueadoDesbloqueado SELECT A1_COD,A1_NOME,GETDATE(), 'BLOQUEADO' FROM SA1010 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5100 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%') AND D_E_L_E_T_ = '') AND A1_CATEGFI <> 'BL'
UPDATE SA1010 SET A1_CATEGFI = 'BL', A1_MSBLQL = 1,A1_CATEGCO = 'SJ' WHERE A1_COD IN (SELECT A1_COD FROM SA1010 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5100 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%')AND D_E_L_E_T_ = '') AND A1_CATEGFI <> 'BL')
INSERT INTO ClienteBloqueadoDesbloqueado SELECT A1_COD,A1_NOME,GETDATE(), 'BLOQUEADO' FROM SA1200 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5200 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%') AND D_E_L_E_T_ = '') AND A1_CATEGFI <> 'BL'
UPDATE SA1010 SET A1_CATEGFI = 'BL', A1_MSBLQL = 1,A1_CATEGCO = 'SJ' WHERE A1_COD IN (SELECT A1_COD FROM SA1200 WHERE A1_COD IN (SELECT E5_CLIFOR FROM SE5200 WHERE (E5_HISTOR LIKE '%INCOBRAVEIS%' OR E5_HISTOR LIKE '%FALENCIA%')AND D_E_L_E_T_ = '') AND A1_CATEGFI <> 'BL')
---------------------------------------------------------------------------------FIM DA TRATATIVA DOS CLIENTES----------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------TRATATIVA DOS FORNECEDORES-------------------------------------------------------------------------------------------------------
DECLARE
@Codigo VARCHAR(6),
@Titulo VARCHAR(6),
@Prefixo VARCHAR(6),
@Filial VARCHAR(255),
@Atraso VARCHAR(3)
DECLARE cur_representantes CURSOR FOR
SELECT DISTINCT B.A1_COD, B.A1_NOME FROM Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1010 B
ON A.E1_CLIENTE = B.A1_COD
where A.ATRASO BETWEEN 2 AND 7
--AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1)
AND A.E1_TIPO <> 'RA'
AND A.E1_TIPO <> 'NCC'
AND B.A1_CATEGMA = 'RE'
UNION
SELECT DISTINCT B.A1_COD, B.A1_NOME FROM Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1100 B
ON A.E1_CLIENTE = B.A1_COD
WHERE A.ATRASO BETWEEN 2 AND 7
--AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1)
AND A.E1_TIPO <> 'RA'
AND A.E1_TIPO <> 'NCC'
AND B.A1_CATEGMA = 'RE'
OPEN cur_representantes
FETCH NEXT FROM cur_representantes
INTO @Codigo, @NomeCliente
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE cur_titulos CURSOR FOR
SELECT A.E1_NUM, A.E1_PREFIXO, A.E1_FILIAL, A.ATRASO FROM Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1010 B
ON A.E1_CLIENTE = B.A1_COD
WHERE A.ATRASO BETWEEN 2 AND 7
--AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1)
AND A.E1_TIPO <> 'RA'
AND A.E1_TIPO <> 'NCC'
AND B.A1_CATEGMA = 'RE'
AND B.A1_COD = @Codigo
UNION
SELECT A.E1_NUM, A.E1_PREFIXO, A.E1_FILIAL, A.ATRASO FROM Atendimento..VW_TitulosNaoBaixados A
INNER JOIN DADOSADV..SA1100 B
ON A.E1_CLIENTE = B.A1_COD
WHERE A.ATRASO BETWEEN 2 AND 7
--AND (B.A1_CATEGFI <> 'BL' AND B.A1_MSBLQL <> 1)
AND A.E1_TIPO <> 'RA'
AND A.E1_TIPO <> 'NCC'
AND B.A1_CATEGMA = 'RE'
AND B.A1_COD = @Codigo
OPEN cur_titulos
FETCH NEXT FROM cur_titulos
INTO @Titulo, @Prefixo, @Filial, @Atraso
DECLARE
@Assunto VARCHAR(255),
@Corpo VARCHAR(MAX)
SET @Corpo = 'Atenção
'
SET @Assunto = 'Representante ' + @Codigo + ' - ' + @NomeCliente
SET @Corpo = @Corpo + 'O Representante ' + @Codigo + ' - ' + @NomeCliente + ' está inadimplente. Possui o(s) seguinte(s) título(s) em aberto:
'
SET @Corpo = @Corpo + '
FILIAL | Prefixo | Nro Título | Dias em Atraso | ' WHILE @@FETCH_STATUS = 0 BEGIN SET @Corpo = @Corpo + '
---|---|---|---|
' + @Filial + ' | ' + @Prefixo + ' | ' + @Titulo + ' | ' + @Atraso + ' |