SET TERM ^ ;

CREATE OR ALTER trigger ttbpdv_conferencia_item_b10u for tbpdv_conferencia_item
active before update or delete position 10
AS
DECLARE VARIABLE TIPO INTEGER;
DECLARE VARIABLE PERMISSAO_USUARIO INTEGER;
BEGIN

    IF(UPDATING) THEN
    BEGIN

        IF(OLD.QUANTIDADE <> NEW.QUANTIDADE AND OLD.DATA <> CURRENT_DATE) THEN
        BEGIN
    
            FOR SELECT FIRST 1
                T.TIPO
            FROM TBPDV_CONFERENCIA T
            WHERE T.ID = NEW.PDV_CONFERENCIA_ID
            INTO :TIPO
            DO BEGIN
                IF(:TIPO = 2) THEN
                BEGIN
                    :PERMISSAO_USUARIO = CAST(FN_PARAMETRO('TBUSUARIO.EXCLUIR_ITEM_POR_DATA', FN_CURRENT_USER_ID()) AS INTEGER);
    
                    IF(:PERMISSAO_USUARIO = 0) THEN
                    BEGIN
                       EXCEPTION "..."'USUARIO NAO POSSUI PERMISSAO PARA EXCLUIR ITENS DA DATA '||FORMATDATE(OLD.DATA);
                    END
    
                END
    
            END
        END
    END

    IF(DELETING) THEN
    BEGIN

        IF(OLD.DATA <> CURRENT_DATE) THEN
        BEGIN
            FOR SELECT FIRST 1
                T.TIPO
            FROM TBPDV_CONFERENCIA T
            WHERE T.ID = OLD.PDV_CONFERENCIA_ID
            INTO :TIPO
            DO BEGIN
                IF(:TIPO = 2) THEN
                BEGIN
                    :PERMISSAO_USUARIO = CAST(FN_PARAMETRO('TBUSUARIO.EXCLUIR_ITEM_POR_DATA', FN_CURRENT_USER_ID()) AS INTEGER);
    
                    IF(:PERMISSAO_USUARIO = 0) THEN
                    BEGIN
                       EXCEPTION "..."'USUARIO NAO POSSUI PERMISSAO PARA EXCLUIR ITENS DA DATA '||FORMATDATE(OLD.DATA);
                    END
    
                END
    
            END
        END
    END

END
^

SET TERM ; ^



COMMENT ON TRIGGER TTBPDV_CONFERENCIA_ITEM_B10U IS 'VERIFICACAO PARA EXCLUSAO DE ITENS PELA TELA 19160 POR DATA';

