Pesquisa

terça-feira, 25 de fevereiro de 2025

Procedure para comparar Estado do Parceiro com o da Empresa

 Esta procedure foi criada através do Evento na tabela TGFCAB

 

create or replace PROCEDURE "SPTJ_VERIFICA_ESTADO" (

    P_TIPOEVENTO INT,      

    P_IDSESSAO VARCHAR,

    P_MENSAGEM OUT VARCHAR2  

 

 

) AS

    v_codcid_parceiro VARCHAR2(20);

    v_codcid_empresa  VARCHAR2(20);

    v_codtipoper      VARCHAR2(20);

   

   

BEGIN

    -- Obter a cidade da empresa

    SELECT MAX(EMP.CODCID)

    INTO v_codcid_empresa

    FROM TGFCAB CAB

    JOIN TSIEMP EMP ON EMP.CODEMP = CAB.CODEMP

    WHERE EMP.CODEMP = TO_NUMBER(EVP_GET_CAMPO_INT(P_IDSESSAO, 'CODEMP'));

 

    -- Obter a cidade do parceiro

    SELECT MAX(PAR.CODCID)

    INTO v_codcid_parceiro

    FROM TGFCAB CAB

    JOIN TGFPAR PAR ON PAR.CODPARC = CAB.CODPARC

    WHERE CAB.CODPARC = TO_NUMBER(EVP_GET_CAMPO_INT(P_IDSESSAO, 'CODPARC'));

 

    -- Obter o tipo de operação

    SELECT MAX(TOP1.CODTIPOPER)

    INTO v_codtipoper

    FROM TGFTOP TOP1

    JOIN TGFCAB CAB ON TOP1.CODTIPOPER = CAB.CODTIPOPER

    WHERE CAB.DHTIPOPER = TOP1.DHALTER

      AND CAB.CODTIPOPER = TO_NUMBER(EVP_GET_CAMPO_INT(P_IDSESSAO, 'CODTIPOPER'));

 

    -- Verificação das cidades e tipo de operação

    IF v_codcid_parceiro <> v_codcid_empresa

       AND v_codtipoper = '1000' THEN

        RAISE_APPLICATION_ERROR(-20101, 'As cidades do parceiro e da empresa são diferentes. Verifique antes de continuar.');

    END IF;

 

    P_MENSAGEM := 'Atualizado com sucesso';

 

END;