CREATE OR ALTER TRIGGER TTBPDV_CFE_FORMA_PAGAMENTO_B03I FOR TBPDV_CFE_FORMA_PAGAMENTO
ACTIVE BEFORE INSERT POSITION 3
AS
DECLARE VARIABLE OLD_SALDO_DEPOSITO NUMERIC(15,2);
DECLARE VARIABLE NEW_SALDO_DEPOSITO NUMERIC(15,2);

BEGIN

  IF(COALESCE(NEW.PDV_MOVIMENTO_DETALHE_ID, 0) > 0) THEN
  BEGIN
        SELECT
            T.VALOR_SALDO
        FROM TBPDV_MOVIMENTO_DETALHE T
        WHERE T.ID = NEW.PDV_MOVIMENTO_DETALHE_ID
        INTO :OLD_SALDO_DEPOSITO;

        IF(COALESCE(:OLD_SALDO_DEPOSITO, 0) > 0) THEN
        BEGIN
            :NEW_SALDO_DEPOSITO = ROUND(:OLD_SALDO_DEPOSITO - NEW.VALOR_LIQUIDO, 2);

            IF(:NEW_SALDO_DEPOSITO < 0) THEN
            BEGIN

                EXCEPTION "..."'SALDO DE DEPOSITO ANTECIPADO NAO PODE FICAR NEGATIVO. SALDO ATUAL: '||:OLD_SALDO_DEPOSITO||'. A BAIXAR: '||NEW.VALOR_LIQUIDO;

            END
        END
      IF(COALESCE(NEW.PDV_CFE_ID,0) > 0)THEN
      BEGIN
         /*GERAR VOUCHER DO CUPOM FISCAL*/
         EXECUTE PROCEDURE SPI_GERAR_COMISSAO(NEW.PDV_CFE_ID,'CFE');
      END

  END
END;