SET TERM ^ ;
CREATE OR ALTER TRIGGER TTBNFS_PARCELAMENTO_A01U FOR TBNFS_PARCELAMENTO
ACTIVE AFTER UPDATE POSITION 1
AS
DECLARE VARIABLE PDV_CFE_ID INTEGER;
DECLARE VARIABLE CONTROLE_LANC INTEGER;

BEGIN
  IF((  (NEW.VALOR_SALDO                <> OLD.VALOR_SALDO)
    OR  (NEW.PAGAMENTO_FORMA            <> OLD.PAGAMENTO_FORMA))
    AND COALESCE(NEW.COLABORADOR_ID, 0) > 0) THEN
  BEGIN
       EXECUTE PROCEDURE SPU_SALDO_COLABORADOR(NEW.COLABORADOR_ID);
  END

  IF(NEW.PAGAMENTO_FORMA <> OLD.PAGAMENTO_FORMA
  OR NEW.VALOR           <> OLD.VALOR) THEN
  BEGIN
     :PDV_CFE_ID = COALESCE((SELECT FIRST 1 CFE_PAG.PDV_CFE_ID FROM TBPDV_CFE_FORMA_PAGAMENTO CFE_PAG WHERE CFE_PAG.ID = NEW.PDV_CFE_FORMA_PAGAMENTO_ID),0);

     IF(:PDV_CFE_ID > 0)THEN
     BEGIN
        EXECUTE PROCEDURE SPI_CFE_GERAR_COMISSAO(:PDV_CFE_ID);

        EXECUTE PROCEDURE SPI_GERAR_COMISSAO(:PDV_CFE_ID,'CFE');
     END

     IF(NEW.AVULSO = '1')THEN
     BEGIN
       EXECUTE PROCEDURE SPI_GERAR_COMISSAO(NEW.CONTROLE,'AVU');
     END
  END

  IF(NEW.REPRESENTANTE_ID <> OLD.REPRESENTANTE_ID) THEN
  BEGIN
    :CONTROLE_LANC = COALESCE((SELECT FIRST 1 PAG.CONTROLE FROM TBCAIXABANCO_LANCAMENTO_REG PAG, TBCONTA_RECEBER_OPERACAO OPE
                                    WHERE PAG.NFS_PARCELAMENTO_CONTROLE = NEW.CONTROLE AND PAG.OPERACAO_CODIGO = OPE.CODIGO
                                    AND OPE.COMISSAO = '1' AND PAG.TIPO = 'C' AND COALESCE(PAG.TARIFA_ADQUIRENTE,'0') <> '1'),0);
    IF(:CONTROLE_LANC > 0)THEN
    BEGIN
       EXECUTE PROCEDURE SPI_GERAR_COMISSAO(:CONTROLE_LANC,'LAN');
    END
  END
END
^ SET TERM ; ^