SET TERM ^ ;

CREATE OR ALTER procedure SPU_CLIENTE_PDV
as
declare variable PDV_CFE_ID integer;
declare variable CLIENTE_NOME varchar(200);
declare variable CLIENTE_CPF varchar(14);
declare variable CLIENTE_FONE varchar(15);
declare variable CLIENTE_CEP varchar(8);
declare variable CLIENTE_ENDERECO varchar(200);
declare variable CLIENTE_NUMERO varchar(20);
declare variable CLIENTE_BAIRRO varchar(20);
declare variable CLIENTE_UF varchar(2);
declare variable CLIENTE_IE varchar(20);
declare variable CLIENTE_CIDADE integer;
BEGIN
    FOR SELECT
            T.ID,
            E.RAZAOSOCIAL,
            E.CNPJ,
            E.FONE,
            E.CEP,
            E.ENDERECO,
            E.NUMERO,
            E.BAIRRO,
            E.UF,
            E.IE,
            CID.ID AS CIDADE_ID
        FROM TBPDV_CFE T
        INNER JOIN TBEMPRESA E ON E.CODIGO = T.CLIENTE_ID
        INNER JOIN TBCIDADE CID ON CID.DESCRICAO = E.CIDADE AND CID.UF = E.UF
        WHERE E.CNPJ <> T.CLIENTE_CPF
        AND T.CLIENTE_CPF <> ''
        AND E.CNPJ NOT IN ('99999999999999', '00000000000000')
        INTO :PDV_CFE_ID, :CLIENTE_NOME, :CLIENTE_CPF, :CLIENTE_FONE,
            :CLIENTE_CEP, :CLIENTE_ENDERECO, :CLIENTE_NUMERO, :CLIENTE_BAIRRO, :CLIENTE_UF, :CLIENTE_IE, :CLIENTE_CIDADE
    
    DO BEGIN
        
        IF(COALESCE(:PDV_CFE_ID, 0) > 0) THEN
        BEGIN
            UPDATE TBPDV_CFE C SET
                C.CLIENTE_CPF           = :CLIENTE_CPF,
                C.CLIENTE_NOME          = :CLIENTE_NOME,
                C.CLIENTE_FONE          = :CLIENTE_FONE,
                C.CLIENTE_CEP           = :CLIENTE_CEP,
                C.CLIENTE_ENDERECO      = :CLIENTE_ENDERECO,
                C.CLIENTE_NUMERO        = :CLIENTE_NUMERO,
                C.CLIENTE_BAIRRO        = :CLIENTE_BAIRRO,
                C.CLIENTE_CIDADE        = :CLIENTE_CIDADE,
                C.CLIENTE_UF            = :CLIENTE_UF,
                C.CLIENTE_IE            = :CLIENTE_IE
            WHERE C.ID = :PDV_CFE_ID;

        END


    END
END
^

SET TERM ; ^

