CREATE OR REPLACE PROCEDURE EAM_IMPORTA_AJUSTE(V_ERRO OUT VARCHAR2)
IS
V_COUNTCODAJUSTE FLOAT;
V_COUNTAJUSTEEXISTE FLOAT;
V_CDFILIAL VARCHAR2(4);
V_NRLANBOLREC VARCHAR2(10);
V_CDEMPRESA VARCHAR2(2);

BEGIN
	FOR C_AJUSTES IN(SELECT CODTRANSACAO, CODBOLETO, VRAJUSTE, CODAJUSTE, IDACRESDESC
							 FROM USR_EAM_AJUSTE
                     WHERE DTIMPORTACAO IS NULL
                       AND ERRO IS NULL) LOOP

		--Verifica se existe o código de ajuste informado
		BEGIN
		   SELECT COUNT(CDAJUCTREC)
			  INTO V_COUNTCODAJUSTE
           FROM TIPOAJRECEBER
          WHERE CDAJUCTREC = C_AJUSTES.CODAJUSTE;
		EXCEPTION
			WHEN NO_DATA_FOUND THEN
			V_COUNTCODAJUSTE := 0;
		END;

		--Verifica se já existe no boleto um ajuste com o mesmo código informado
		BEGIN
		   SELECT COUNT(BO.NRLANBOLREC)
			   INTO V_COUNTAJUSTEEXISTE
			  FROM AJBOLREC AJ,TIPOAJRECEBER TP, BOLETRECEBER BO
			WHERE AJ.CDAJUCTREC = C_AJUSTES.CODAJUSTE
			  AND AJ.CDAJUCTREC = TP.CDAJUCTREC
			  AND BO.NRLANBOLREC = AJ.NRLANBOLREC
			  AND BO.CDFILIAL = AJ.CDFILIAL
			  AND LPAD(BO.USR_CODBOLETO,10,'0') = LPAD(C_AJUSTES.CODBOLETO,10,'0');
		EXCEPTION
			WHEN NO_DATA_FOUND THEN
			V_COUNTAJUSTEEXISTE := 0;
		END;

		IF (V_COUNTCODAJUSTE = 0) THEN
			UPDATE USR_EAM_AJUSTE
            SET ERRO = 'A TRANSAÇÃO DE AJUSTE DE CÓDIGO '||C_AJUSTES.CODTRANSACAO||
                       'NÃO FOI IMPORTADA POIS NÃO ESTÁ CADASTRADO O TIPO DE AJUSTE  DE '||
				    		  DECODE(IDACRESDESC,'A','ACRÉSCIMO','DESCONTO')||'COM O CÓDIGO ' ||C_AJUSTES.CODAJUSTE
          WHERE CODTRANSACAO = C_AJUSTES.CODTRANSACAO;

		ELSIF(V_COUNTAJUSTEEXISTE <> 0) THEN
			UPDATE USR_EAM_AJUSTE
            SET ERRO = 'A TRANSAÇÃO DE AJUSTE DE CÓDIGO '||C_AJUSTES.CODTRANSACAO||
                       'NÃO FOI IMPORTADA POIS JÁ EXISTE NO BOLETO UM AJUSTE COM O TIPO DE '||
				    		  DECODE(IDACRESDESC,'A','ACRÉSCIMO','DESCONTO')||'COM O CÓDIGO ' ||C_AJUSTES.CODAJUSTE
          WHERE CODTRANSACAO = C_AJUSTES.CODTRANSACAO;
		ELSE
			BEGIN
				SELECT CDFILIAL, NRLANBOLREC, CDEMPRESA
				  INTO V_CDFILIAL, V_NRLANBOLREC, V_CDEMPRESA
				  FROM BOLETRECEBER BO
				  WHERE LPAD(BO.USR_CODBOLETO,10,'0') = LPAD(C_AJUSTES.CODBOLETO,10,'0')
				    AND BO.IDSTATBREC = 'A';
			EXCEPTION
				WHEN NO_DATA_FOUND THEN
				V_CDFILIAL := NULL;
				V_NRLANBOLREC := NULL;
				V_CDEMPRESA := NULL;
			END;

			IF(V_NRLANBOLREC IS NOT NULL) THEN
				GERA_AJUSTE_BOL(V_CDEMPRESA,V_CDFILIAL,V_NRLANBOLREC,C_AJUSTES.CODAJUSTE, C_AJUSTES.VRAJUSTE);
				UPDATE USR_EAM_AJUSTE
				   SET DTIMPORTACAO = SYSDATE
				 WHERE CODTRANSACAO = C_AJUSTES.CODTRANSACAO;
			END IF;
		END IF;
		COMMIT;
	END LOOP;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('EAM_IMPORTA_AJUSTE','6.39.006'); END;
/
