CREATE TABLE TBPDV_USUARIOS (
ID INTEGER NOT NULL,
STATUS INTEGER,
NOME VARCHAR(100) CHARACTER SET UTF8 COLLATE UTF8,
SENHA VARCHAR(32) CHARACTER SET UTF8 COLLATE UTF8);

ALTER TABLE TBPDV_USUARIOS
ADD CONSTRAINT PK_TBPDV_USUARIOS
PRIMARY KEY (ID);

ALTER TABLE TBPDV_USUARIOS
ADD CODIGO_ADMINISTRATIVO VARCHAR(30) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBPDV_USUARIOS
ADD CODIGO_QUIOSQUE INTEGER;


CREATE SEQUENCE GTBPDV_USUARIOS;

CREATE TRIGGER TTBPDV_USUARIOS_B01I FOR TBPDV_USUARIOS
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(GTBPDV_USUARIOS,1);
end;

CREATE TRIGGER TTBPDV_USUARIOS_B02I FOR TBPDV_USUARIOS
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Usuário incluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBPDV_USUARIOS_B03I FOR TBPDV_USUARIOS
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE CODIGO_ADMINISTRATIVO VARCHAR(500);
BEGIN
        CODIGO_ADMINISTRATIVO = COALESCE((SELECT T.CODIGO_ADMINISTRATIVO FROM TBPDV_USUARIOS T WHERE CODIGO_ADMINISTRATIVO = NEW.CODIGO_ADMINISTRATIVO), '');

        IF(CODIGO_ADMINISTRATIVO <> '') THEN
        BEGIN
            EXCEPTION "..." 'Codigo Administrativo ja existente, por favor insira um Codigo diferente.';
        END
end;

CREATE OR ALTER TRIGGER TTBPDV_USUARIOS_B01U FOR TBPDV_USUARIOS
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||'Nome usuario:'|| OLD.NOME||'->'||NEW.NOME;
    END

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||',Status usuario:'|| OLD.STATUS||'->'||NEW.STATUS;
    END

    IF ( OLD.SENHA <> NEW.SENHA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Senha Usuario Alterada:';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBPDV_USUARIOS_B01D FOR TBPDV_USUARIOS
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Usuario Excluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',old.ID, HISTORICO);
    END
end;

ALTER TABLE TBQUIOSQUE
ADD USUARIO VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD NUMERO_CAIXA INTEGER;

ALTER TABLE TBQUIOSQUE
ADD WEBSITE VARCHAR(300) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD EMAIL VARCHAR(200) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD LOGOMARCA VARCHAR(300) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD PORTA SMALLINT;

ALTER TABLE TBQUIOSQUE
ADD TIPO_APLICATIVO VARCHAR(10) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMPRESSORA VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMPRESSORA_FORMATO SMALLINT;

ALTER TABLE TBQUIOSQUE
ADD CERTIFICADO_NUMERO VARCHAR(40) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD CERTIFICADO_SENHA VARCHAR(60) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_TIPO_AMBIENTE CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_UF_DESTINO VARCHAR(2) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_PROXY_HOST VARCHAR(200) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_PROXY_PORTA SMALLINT;

ALTER TABLE TBQUIOSQUE
ADD WS_PROXY_USUARIO VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_PROXY_SENHA VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD WS_TIMEOUT INTEGER;

ALTER TABLE TBQUIOSQUE
ADD WS_TENTATIVAS INTEGER;

ALTER TABLE TBQUIOSQUE
ADD WS_INTERVALO_TENTATIVAS INTEGER;

ALTER TABLE TBQUIOSQUE
ADD WS_TEMPO_CONS_RET INTEGER;

ALTER TABLE TBQUIOSQUE
ADD WS_AJUSTA_CONS_RET CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_SERVIDOR VARCHAR(300) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_PORTA SMALLINT;

ALTER TABLE TBQUIOSQUE
ADD SMTP_USUARIO VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_SENHA VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_SSL CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_TLS CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_ASSUNTO VARCHAR(200) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SMTP_MENSAGEM BLOB SUB_TYPE 0 SEGMENT SIZE 80;

ALTER TABLE TBQUIOSQUE
ADD NFCE_ULTIMO_NUMERO INTEGER;

ALTER TABLE TBQUIOSQUE
ADD NFCE_TOKEN_ID VARCHAR(50) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD NFCE_TOKEN_NUMERO VARCHAR(50) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMP_MODELO VARCHAR(30) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMP_PORTA VARCHAR(250) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMP_VELOCIDADE INTEGER;

ALTER TABLE TBQUIOSQUE
ADD IMP_UMA_LINHA CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMP_IGNORA_FORMATACAO CHAR(1) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD IMP_PAGINA_CODIGO VARCHAR(30) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_MODELO VARCHAR(20) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_GRAVAR_LOG VARCHAR(255) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_VERSAO_XML VARCHAR(10) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_COD_ATIVACAO VARCHAR(50) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_SH_CNPJ VARCHAR(14) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SAT_SH_ASSINATURA VARCHAR(344) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD TEF_TIPO VARCHAR(30) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_IP VARCHAR(50) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_LOJA CHAR(8) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_TERMINAL CHAR(8) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_PORTAPINPAD INTEGER;

ALTER TABLE TBQUIOSQUE
ADD SITEF_PARAMETROS VARCHAR(300) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_MSGPINPAD VARCHAR(33) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD MFE_CHAVE_ACESSO VARCHAR(50) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD SITEF_TIPOIMP INTEGER;

ALTER TABLE TBPDV_USUARIOS
ADD USUARIO VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

ALTER TABLE TBQUIOSQUE
ADD USUARIO VARCHAR(100) CHARACTER SET UTF8 
COLLATE UTF8;

CREATE TRIGGER TTBQUIOSQUE_B02I FOR TBQUIOSQUE
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro Incluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBQUIOSQUE_B01U FOR TBQUIOSQUE
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Descricao:'|| OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||',Status:'|| OLD.STATUS||'->'||NEW.STATUS;
    END

    IF ( OLD.WEBSITE <> NEW.WEBSITE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Website:'|| OLD.WEBSITE||'->'||NEW.WEBSITE;
    END

    IF ( OLD.EMAIL <> NEW.EMAIL) THEN
    BEGIN
        HISTORICO = HISTORICO||',Email:'|| OLD.EMAIL||'->'||NEW.EMAIL;
    END

    IF ( OLD.LOGOMARCA <> NEW.LOGOMARCA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Logomarca:'|| OLD.LOGOMARCA||'->'||NEW.LOGOMARCA;
    END

    IF ( OLD.PORTA <> NEW.PORTA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Porta:'|| OLD.PORTA||'->'||NEW.PORTA;
    END

    IF ( OLD.TIPO_APLICATIVO <> NEW.TIPO_APLICATIVO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tipo Aplicativo:'|| OLD.TIPO_APLICATIVO||'->'||NEW.TIPO_APLICATIVO;
    END

    IF ( OLD.IMPRESSORA <> NEW.IMPRESSORA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Impressora:'|| OLD.IMPRESSORA||'->'||NEW.IMPRESSORA;
    END

    IF ( OLD.IMPRESSORA_FORMATO <> NEW.IMPRESSORA_FORMATO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Formato Impressora:'|| OLD.IMPRESSORA_FORMATO||'->'||NEW.IMPRESSORA_FORMATO;
    END

    IF ( OLD.CERTIFICADO_NUMERO <> NEW.CERTIFICADO_NUMERO) THEN
    BEGIN
        HISTORICO = HISTORICO||',N.Certificado:'|| OLD.CERTIFICADO_NUMERO||'->'||NEW.CERTIFICADO_NUMERO;
    END

    IF ( OLD.CERTIFICADO_SENHA <> NEW.CERTIFICADO_SENHA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Certificado Senha:'|| OLD.CERTIFICADO_SENHA||'->'||NEW.CERTIFICADO_SENHA;
    END

    IF ( OLD.WS_TIPO_AMBIENTE <> NEW.WS_TIPO_AMBIENTE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Ambiente Tipo:'|| OLD.WS_TIPO_AMBIENTE||'->'||NEW.WS_TIPO_AMBIENTE;
    END

    IF ( OLD.WS_UF_DESTINO <> NEW.WS_UF_DESTINO) THEN
    BEGIN
        HISTORICO = HISTORICO||',UF Destino:'|| OLD.WS_UF_DESTINO||'->'||NEW.WS_UF_DESTINO;
    END

    IF ( OLD.WS_PROXY_HOST <> NEW.WS_PROXY_HOST) THEN
    BEGIN
        HISTORICO = HISTORICO||',Host Proxy:'|| OLD.WS_PROXY_HOST||'->'||NEW.WS_PROXY_HOST;
    END

    IF ( OLD.WS_PROXY_PORTA <> NEW.WS_PROXY_PORTA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Porta Proxy:'|| OLD.WS_PROXY_PORTA||'->'||NEW.WS_PROXY_PORTA;
    END

    IF ( OLD.WS_PROXY_USUARIO <> NEW.WS_PROXY_USUARIO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Usuario Proxy:'|| OLD.WS_PROXY_USUARIO||'->'||NEW.WS_PROXY_USUARIO;
    END

    IF ( OLD.WS_PROXY_SENHA <> NEW.WS_PROXY_SENHA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Senha Proxy:'|| OLD.WS_PROXY_SENHA||'->'||NEW.WS_PROXY_SENHA;
    END

    IF ( OLD.WS_TIMEOUT <> NEW.WS_TIMEOUT) THEN
    BEGIN
        HISTORICO = HISTORICO||',Timeout:'|| OLD.WS_TIMEOUT||'->'||NEW.WS_TIMEOUT;
    END

    IF ( OLD.WS_TENTATIVAS <> NEW.WS_TENTATIVAS) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tentativas:'|| OLD.WS_TENTATIVAS||'->'||NEW.WS_TENTATIVAS;
    END

    IF ( OLD.WS_INTERVALO_TENTATIVAS <> NEW.WS_INTERVALO_TENTATIVAS) THEN
    BEGIN
        HISTORICO = HISTORICO||',Intervalo Tentativas:'|| OLD.WS_INTERVALO_TENTATIVAS||'->'||NEW.WS_INTERVALO_TENTATIVAS;
    END

    IF ( OLD.WS_TEMPO_CONS_RET <> NEW.WS_TEMPO_CONS_RET) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tempo Ret:'|| OLD.WS_TEMPO_CONS_RET||'->'||NEW.WS_TEMPO_CONS_RET;
    END

    IF ( OLD.WS_AJUSTA_CONS_RET <> NEW.WS_AJUSTA_CONS_RET) THEN
    BEGIN
        HISTORICO = HISTORICO||',Ajuste Ret:'|| OLD.WS_AJUSTA_CONS_RET||'->'||NEW.WS_AJUSTA_CONS_RET;
    END

    IF ( OLD.SMTP_SERVIDOR <> NEW.SMTP_SERVIDOR) THEN
    BEGIN
        HISTORICO = HISTORICO||',Servidor SMTP:'|| OLD.SMTP_SERVIDOR||'->'||NEW.SMTP_SERVIDOR;
    END

    IF ( OLD.SMTP_PORTA <> NEW.SMTP_PORTA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Porta SMTP:'|| OLD.SMTP_PORTA||'->'||NEW.SMTP_PORTA;
    END

    IF ( OLD.SMTP_USUARIO <> NEW.SMTP_USUARIO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Usuario SMTP:'|| OLD.SMTP_USUARIO||'->'||NEW.SMTP_USUARIO;
    END

    IF ( OLD.SMTP_SENHA <> NEW.SMTP_SENHA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Senha SMTP:'|| OLD.SMTP_SENHA||'->'||NEW.SMTP_SENHA;
    END

    IF ( OLD.SMTP_SSL <> NEW.SMTP_SSL) THEN
    BEGIN
        HISTORICO = HISTORICO||',TLS SMTP:'|| OLD.SMTP_SSL||'->'||NEW.SMTP_SSL;
    END

    IF ( OLD.SMTP_ASSUNTO <> NEW.SMTP_ASSUNTO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Assunto SMTP:'|| OLD.SMTP_ASSUNTO||'->'||NEW.SMTP_ASSUNTO;
    END

    IF ( OLD.SMTP_MENSAGEM <> NEW.SMTP_MENSAGEM) THEN
    BEGIN
        HISTORICO = HISTORICO||',Mensagem SMTP:'|| OLD.SMTP_MENSAGEM||'->'||NEW.SMTP_MENSAGEM;
    END

    IF ( OLD.NFCE_ULTIMO_NUMERO <> NEW.NFCE_ULTIMO_NUMERO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Ultimo Numero:'|| OLD.NFCE_ULTIMO_NUMERO||'->'||NEW.NFCE_ULTIMO_NUMERO;
    END

    IF ( OLD.NFCE_TOKEN_ID <> NEW.NFCE_TOKEN_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||',ID Token:'|| OLD.NFCE_TOKEN_ID||'->'||NEW.NFCE_TOKEN_ID;
    END

    IF ( OLD.IMP_MODELO <> NEW.IMP_MODELO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Modelo IMP:'|| OLD.IMP_MODELO||'->'||NEW.IMP_MODELO;
    END

    IF ( OLD.IMP_PORTA <> NEW.IMP_PORTA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Porta IMP:'|| OLD.IMP_PORTA||'->'||NEW.IMP_PORTA;
    END

    IF ( OLD.IMP_VELOCIDADE <> NEW.IMP_VELOCIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Velocidade IMP:'|| OLD.IMP_VELOCIDADE||'->'||NEW.IMP_VELOCIDADE;
    END

    IF ( OLD.IMP_UMA_LINHA <> NEW.IMP_UMA_LINHA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Opc. Uma Linha:'|| OLD.IMP_UMA_LINHA||'->'||NEW.IMP_UMA_LINHA;
    END

    IF ( OLD.IMP_IGNORA_FORMATACAO <> NEW.IMP_IGNORA_FORMATACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Opc. Ignora Formatacao:'|| OLD.IMP_IGNORA_FORMATACAO||'->'||NEW.IMP_IGNORA_FORMATACAO;
    END

    IF ( OLD.IMP_PAGINA_CODIGO <> NEW.IMP_PAGINA_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Codigo Pagina:'|| OLD.IMP_PAGINA_CODIGO||'->'||NEW.IMP_PAGINA_CODIGO;
    END

    IF ( OLD.SAT_MODELO <> NEW.SAT_MODELO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Modelo Sat:'|| OLD.SAT_MODELO||'->'||NEW.SAT_MODELO;
    END

    IF ( OLD.SAT_GRAVAR_LOG <> NEW.SAT_GRAVAR_LOG) THEN
    BEGIN
        HISTORICO = HISTORICO||'Opc.Gravar Log:'|| OLD.SAT_GRAVAR_LOG||'->'||NEW.SAT_GRAVAR_LOG;
    END

    IF ( OLD.SAT_VERSAO_XML <> NEW.SAT_VERSAO_XML) THEN
    BEGIN
        HISTORICO = HISTORICO||',Versão XML:'|| OLD.SAT_VERSAO_XML||'->'||NEW.SAT_VERSAO_XML;
    END

    IF ( OLD.SAT_COD_ATIVACAO <> NEW.SAT_COD_ATIVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Cod. Ativacao:'|| OLD.SAT_COD_ATIVACAO||'->'||NEW.SAT_COD_ATIVACAO;
    END

    IF ( OLD.SAT_SH_CNPJ <> NEW.SAT_SH_CNPJ) THEN
    BEGIN
        HISTORICO = HISTORICO||',CNPJ Sat:'|| OLD.SAT_SH_CNPJ||'->'||NEW.SAT_SH_CNPJ;
    END

    IF ( OLD.SAT_SH_ASSINATURA <> NEW.SAT_SH_ASSINATURA) THEN
    BEGIN
        HISTORICO = HISTORICO||'Assinatura Sat:'|| OLD.SAT_SH_ASSINATURA||'->'||NEW.SAT_SH_ASSINATURA;
    END

    IF ( OLD.TEF_TIPO <> NEW.TEF_TIPO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tef Tipo:'|| OLD.TEF_TIPO||'->'||NEW.TEF_TIPO;
    END

    IF ( OLD.SITEF_IP <> NEW.SITEF_IP) THEN
    BEGIN
        HISTORICO = HISTORICO||'Ip Sitef:'|| OLD.SITEF_IP||'->'||NEW.SITEF_IP;
    END

    IF ( OLD.SITEF_LOJA <> NEW.SITEF_LOJA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Loja Sitef:'|| OLD.SITEF_LOJA||'->'||NEW.SITEF_LOJA;
    END

    IF ( OLD.SITEF_TERMINAL <> NEW.SITEF_TERMINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||'Terminal Sitef:'|| OLD.SITEF_TERMINAL||'->'||NEW.SITEF_TERMINAL;
    END

    IF ( OLD.SITEF_PORTAPINPAD <> NEW.SITEF_PORTAPINPAD) THEN
    BEGIN
        HISTORICO = HISTORICO||',Porta Pinpad Sitef:'|| OLD.SITEF_PORTAPINPAD||'->'||NEW.SITEF_PORTAPINPAD;
    END

    IF ( OLD.SITEF_PARAMETROS <> NEW.SITEF_PARAMETROS) THEN
    BEGIN
        HISTORICO = HISTORICO||'Parametros Sitef:'|| OLD.SITEF_PARAMETROS||'->'||NEW.SITEF_PARAMETROS;
    END

    IF ( OLD.SITEF_MSGPINPAD <> NEW.SITEF_MSGPINPAD) THEN
    BEGIN
        HISTORICO = HISTORICO||',Mensagem Pinpad:'|| OLD.SITEF_MSGPINPAD||'->'||NEW.SITEF_MSGPINPAD;
    END

    IF ( OLD.MFE_CHAVE_ACESSO <> NEW.MFE_CHAVE_ACESSO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Chave de Acesso:'|| OLD.MFE_CHAVE_ACESSO||'->'||NEW.MFE_CHAVE_ACESSO;
    END

    IF ( OLD.SITEF_TIPOIMP <> NEW.SITEF_TIPOIMP) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tipo Imp Sitef:'|| OLD.SITEF_TIPOIMP||'->'||NEW.SITEF_TIPOIMP;
    END

    IF ( OLD.USUARIO <> NEW.USUARIO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Usuario:'|| OLD.USUARIO||'->'||NEW.USUARIO;
    END

    IF ( OLD.LOCALIZACAO_ESTOQUE <> NEW.LOCALIZACAO_ESTOQUE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Loc. Estoque:'|| OLD.LOCALIZACAO_ESTOQUE||'->'||NEW.LOCALIZACAO_ESTOQUE;
    END

    IF ( OLD.ESTABELECIMENTO_ID <> NEW.ESTABELECIMENTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||',Id do Estabelecimento:'|| OLD.ESTABELECIMENTO_ID||'->'||NEW.ESTABELECIMENTO_ID;
    END

    IF ( OLD.OPERACAO_SAIDA <> NEW.OPERACAO_SAIDA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Tipo Ope. Saida:'|| OLD.OPERACAO_SAIDA||'->'||NEW.OPERACAO_SAIDA;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBQUIOSQUE_B01D FOR TBQUIOSQUE
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro Excluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',old.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBPDV_EMPRESA_B02I FOR TBPDV_EMPRESA
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Dados da Empresa Incluidos';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBPDV_EMPRESA_B01U FOR TBPDV_EMPRESA
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.CRT <> NEW.CRT) THEN
    BEGIN
        HISTORICO = HISTORICO||'Campo CRT:'|| OLD.CRT||'->'||NEW.CRT;
    END

    IF ( OLD.RAZAO_SOCIAL <> NEW.RAZAO_SOCIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||',Razão Social:'|| OLD.RAZAO_SOCIAL||'->'||NEW.RAZAO_SOCIAL;
    END

    IF ( OLD.NOME_FANTASIA <> NEW.NOME_FANTASIA) THEN
    BEGIN
        HISTORICO = HISTORICO||',Nome Fantasia:'|| OLD.NOME_FANTASIA||'->'||NEW.NOME_FANTASIA;
    END

    IF ( OLD.CNPJ <> NEW.CNPJ) THEN
    BEGIN
        HISTORICO = HISTORICO||',CNPJ:'|| OLD.CNPJ||'->'||NEW.CNPJ;
    END

    IF ( OLD.IE <> NEW.IE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Campo IE:'|| OLD.IE||'->'||NEW.IE;
    END

    IF ( OLD.IM <> NEW.IM) THEN
    BEGIN
        HISTORICO = HISTORICO||',Campo IM:'|| OLD.IM||'->'||NEW.IM;
    END

    IF ( OLD.CNAE <> NEW.CNAE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Campo CNAE:'|| OLD.CNAE||'->'||NEW.CNAE;
    END

    IF ( OLD.FONE <> NEW.FONE) THEN
    BEGIN
        HISTORICO = HISTORICO||',Telefone:'|| OLD.FONE||'->'||NEW.FONE;
    END

    IF ( OLD.ENDERECO <> NEW.ENDERECO) THEN
    BEGIN
        HISTORICO = HISTORICO||',Endereço:'|| OLD.ENDERECO||'->'||NEW.ENDERECO;
    END

    IF ( OLD.NUMERO <> NEW.NUMERO) THEN
    BEGIN
        HISTORICO = HISTORICO||',End. Numero:'|| OLD.NUMERO||'->'||NEW.NUMERO;
    END

    IF ( OLD.COMPLEMENTO <> NEW.COMPLEMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||',End. Complemento:'|| OLD.COMPLEMENTO||'->'||NEW.COMPLEMENTO;
    END

    IF ( OLD.BAIRRO <> NEW.BAIRRO) THEN
    BEGIN
        HISTORICO = HISTORICO||',End. Bairro:'|| OLD.BAIRRO||'->'||NEW.BAIRRO;
    END

    IF ( OLD.CIDADE <> NEW.CIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||',End. Cidade:'|| OLD.CIDADE||'->'||NEW.CIDADE;
    END

    IF ( OLD.CEP <> NEW.CEP) THEN
    BEGIN
        HISTORICO = HISTORICO||',End. CEP:'|| OLD.CEP||'->'||NEW.CEP;
    END

    IF ( OLD.PDV_ID <> NEW.PDV_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||',Campo ID do PDV:'|| OLD.PDV_ID||'->'||NEW.PDV_ID;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',NEW.ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBPDV_EMPRESA_B01D FOR TBPDV_EMPRESA
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro Endereco Excluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBQUIOSQUE',old.ID, HISTORICO);
    END
end;


