SET TERM ^ ;

CREATE OR ALTER procedure SPI_LOG_RFID (
    ESTABELECIMENTO_ID integer,
    SETOR_RFID_CODIGO integer,
    QUANTIDADE_EPCS integer,
    TABELA varchar(200),
    TABELA_ID integer,
    TIPO integer = 1,
    METODO integer = 1,
    SALES_ID VARCHAR(500) = NULL)
returns (
    LOG_RFID_ID integer)
as
BEGIN

    UPDATE OR INSERT INTO TBLOG_RFID (ESTABELECIMENTO_ID, SETOR_RFID_CODIGO, QUANTIDADE_EPCS, STATUS, TRANSFERENCE_ID, DATAHORA_SINC, TABELA, TABELA_ID, TIPO, METODO, SALES_ID)
        VALUES (:ESTABELECIMENTO_ID, :SETOR_RFID_CODIGO, :QUANTIDADE_EPCS, 0, NULL, NULL, :TABELA, :TABELA_ID, :TIPO, :METODO, :SALES_ID)
    MATCHING(TABELA, TABELA_ID)
    RETURNING ID INTO :LOG_RFID_ID;

  SUSPEND;
END
^

SET TERM ; ^

